subtree updates july 21 2023 poky,openembedded

poky: 13b646c0e1..b398c7653e:
  Adrian Freihofer (2):
        runqemu-ifdown: catch up with ifup
        runqemu: drop uid parameter for ifdown

  Alejandro Hernandez Samaniego (3):
        baremetal-helloworld: Fix race condition
        runqemu: Stop using warn() since its been deprecated
        runqemu: Fix automated call to runqemu-ifup

  Alex Kiernan (3):
        rootfs: Add debugfs package db file copy and cleanup
        rpm: Pick debugfs package db files/dirs explicitly
        eudev: Add group sgx to eudev package

  Alexander Kanavin (27):
        insane.bbclass: enable 32 bit time API check (as a warning) on affected architectures
        libxcrypt: upgrade 4.4.34 -> 4.4.35
        libxml2: update 2.10.4 -> 2.11.4
        ovmf: update 202302 -> 202305
        lua: update 5.4.4 -> 5.4.6
        cargo.bbclass: set up cargo environment in common do_compile
        rust-common.bbclass: move musl-specific linking fix from rust-source.inc
        python3-cryptography: update 39.0.2 -> 41.0.1
        python3-cryptography-vectors: update 39.0.2 -> 41.0.1
        python3: update 3.11.3 -> 3.11.4
        diffutils: update 3.9 -> 3.10
        shadow: remove dependency on pam-plugin-lastlog
        libpam: update 1.5.2 -> 1.5.3
        librsvg: update 2.56.0 -> 2.56.1
        vulkan-validation-layers: update 1.3.243 -> 1.3.250
        xcb-util-cursor: add a recipe from meta-oe
        weston: update 11.0.1 -> 12.0.1
        libdmx: update 1.1.4 -> 1.1.5
        xtrans: update 1.4.0 -> 1.5.0
        libproxy: fetch from git
        libproxy: update 0.4.18 -> 0.5.2
        libssh2: update 1.10.0 -> 1.11.0
        gstreamer1.0-plugins-base: enable glx/opengl support
        webkitgtk: update 2.38.5 -> 2.40.2
        python3-cryptography: update a patch to upstream's better followup fix
        time64.inc: annotate and clean up recipe-specific Y2038 exceptions
        Revert "rootfs-postcommands.bbclass: add post func remove_unused_dnf_log_lock"

  Andrej Valek (3):
        cve-check: add option to add additional patched CVEs
        oeqa/selftest/cve_check: rework test to new cve status handling
        cve_check: convert CVE_CHECK_IGNORE to CVE_STATUS

  Anuj Mittal (7):
        rpm: backport fix to prevent crashes with latest sqlite
        sqlite3: upgrade 3.41.2 -> 3.42.0
        vte: upgrade 0.72.1 -> 0.72.2
        libpng: upgrade 1.6.39 -> 1.6.40
        glib-networking: upgrade 2.76.0 -> 2.76.1
        bluez5: upgrade 5.66 -> 5.68
        selftest/cases/glibc.py: fix the override syntax

  BELOUARGA Mohamed (9):
        bitbake: fetch2/npmsw: Add support for the new format of the shrinkwrap file
        bitbake: fetch2/npmsw: Don't fetch dev dependencies when they are not demanded
        bitbake: fetch2/npm: Remove special caracters that causes recipe tool to fail
        recipetool: create: npm: Remove duplicate function to not have future conflicts
        classes: npm: Handle peer dependencies for npm packages
        recipetool: create: npm: Add support for the new format of the shrinkwrap file
        recipetool: create: npm: Add support to handle peer dependencies
        classes: npm: Add support for the new format of the shrinkwrap file
        classe-recipes: npm: Add support for dependencies and devDependencies

  Benjamin Bouvier (1):
        util-linux: add alternative links for ipcs,ipcrm

  Bruce Ashfield (19):
        perf: fix buildpaths QA warning in 6.4+
        linux-libc-headers: bump to 6.4
        kernel: fix localversion in v6.3+
        linux-yocto: introduce 6.4 reference kernel recipes
        linux-yocto/6.4: update to latest
        linux-yocto/6.4: aufs6 integration
        linux-yocto/6.4: refresh configuration
        linux-yocto-rt/6.4: integrate -rt6
        linux-yocto/6.4: update to v6.4.2
        linux-yocto-tiny/6.4: fix configuration warnings (HID)
        linux-yocto-tiny/arm: fix configuration warnings (HID)
        linux-yocto/ppc: add elfutils-native to DEPENDS
        linux-yocto/6.1: update to v6.1.36
        linux-yocto/6.1: update to v6.1.37
        linux-yocto/6.1: update to v6.1.38
        linux-yocto/6.x: cfg: update ima.cfg to match current meta-integrity
        linux-yocto/6.4: update to v6.4.3
        kernel: set HOSTPKG_CONFIG to use pkg-config-native
        linux-yocto/6.4: fix menuconfig

  Changqing Li (2):
        dnf: only write the log lock to root for native dnf
        rootfs-postcommands.bbclass: add post func remove_unused_dnf_log_lock

  Denys Dmytriyenko (1):
        bitbake: runqueue: convert deferral messages from bb.note to bb.debug

  Enrico Scholz (1):
        shadow-sysroot: add license information

  Etienne Cordonnier (2):
        libxcrypt: fix hard-coded ".so" extension
        qemu: fix typo

  Fabio Estevam (3):
        u-boot: Update Upstream-Status
        u-boot: Upgrade to 2023.07
        u-boot: Upgrade to 2023.07.02

  Frederic Martinsons (1):
        ptest-cargo.bbclass: fix condition to detect test executable

  Joe Slater (1):
        ghostscript: advance to version 10.01.2

  Jose Quaresma (12):
        kernel: config modules directories are handled by kernel-module-split
        kernel-module-split: install config modules directories only when they are needed
        kernel-module-split: use context manager to open files
        kernel-module-split: make autoload and probeconf distribution specific
        kernel-module-split add systemd modulesloaddir and modprobedir config
        pybootchartgui: calcule elapsed_time when starting the loop
        pybootchartgui: concatenate the elapsed time with the process
        pybootchartgui: fix overlapping argument in render_processes_chart
        pybootchartgui: fix width max usage in draw_label_in_box
        openssl: add PERLEXTERNAL path to test its existence
        openssl: use a glob on the PERLEXTERNAL to track updates on the path
        go: update 1.20.5 -> 1.20.6

  Julien Stephan (1):
        automake: fix buildtest patch

  Khem Raj (9):
        ffmpeg: Fix build on riscv
        libpam: Fix examples build on musl
        webkitgtk: Enable JIT on RISCV64
        musl: Guard fallocate64 with _LARGEFILE64_SOURCE
        alsa-lib: Disable old API symbols
        mesa: Fix build with upcoming LLVM 17
        meson.bbclass: Point to llvm-config from native sysroot
        webkitgtk: Unbreak build on platforms using pvr graphics drivers
        python3-lxml: upgrade 4.9.2 -> 4.9.3

  Martin Jansa (4):
        selftest: multiconfig-image-packager: try to respect IMAGE_LINK_NAME
        kernel-devicetree: install dtb files without -${KERNEL_DTB_NAME} suffix
        image-artifact-names: include ${IMAGE_NAME_SUFFIX} directly in both ${IMAGE_NAME} and ${IMAGE_LINK_NAME}
        cpio: respect MLPREFIX for PACKAGE_WRITE_DEPS

  Michael Halstead (1):
        resulttool/resultutils: allow index generation despite corrupt json

  Mingli Yu (1):
        qemu: Add qemu-user-* and qemu-system-* to PACKAGES_DYNAMIC

  Natasha Bailey (1):
        tiff: backport a fix for CVE-2023-26965

  Ovidiu Panait (5):
        mdadm: fix util-linux ptest dependency
        mdadm: fix 07revert-inplace ptest
        mdadm: fix segfaults when running ptests
        mdadm: skip running known broken ptests
        mdadm: re-add mdadm-ptest to PTESTS_SLOW

  Peter Hoyes (5):
        bitbake: bitbake: tests/fetch: Mark TestTimeout as not a test suite
        bitbake: bitbake: tests/fetch: Rename assertRaisesRegexp to assertRaisesRegex
        bitbake: bitbake: tests/fetch: Set git config if not already set
        bitbake: bitbake: tests: Use assertLogs to test logging output
        bitbake: bitbake: Bootstrap pytest for self-tests

  Peter Marko (4):
        cve-update-nvd2-native: fix cvssV3 metrics
        gcsections: apply section removal also in C++, not only in C
        cve-update-nvd2-native: retry all errors and sleep between retries
        cve-update-nvd2-native: increase retry count

  Piotr Łobacz (1):
        bitbake.conf: Add acl distro native features support

  Quentin Schulz (1):
        uboot-extlinux-config.bbclass: fix old override syntax in comment

  Richard Purdie (14):
        defaultsetup: Enable largefile and 64bit time_t support systemwide for 32 bit platforms
        time64: Disable CFLAGS for strace
        bitbake: runqueue: Fix deferred task/multiconfig race issue
        strace: Update patches/tests with upstream fixes
        bitbake: fetch2/npmsw: Support old and new shrinkwrap formats
        ptest-runner: Pull in "runner: Remove threads and mutexes" fix
        bitbake: server/process: Show command in timeout message
        bitbake: cooker: Log when parsing starts in server log
        gcc-testsuite: Fix ppc cpu specification
        ptest-runner: Pull in parallel test fixes and output handling
        oeqa/selftest/rust: Various fixes to work correctly
        bitbake: runqueue: Add pressure change logging
        build-appliance-image: Update to master head revision
        glibc-testsuite: Fix network restrictions causing test failures

  Ross Burton (26):
        cve-update-db-native: remove
        cve-update-nvd2-native: handle all configuration nodes, not just first
        cve-update-nvd2-native: use exact times, don't truncate
        ghostscript: remove CVE_CHECK_IGNORE for CVE-2013-6629
        pkgconf: update SRC_URI
        libjpeg-turbo: upgrade to 3.0.0
        cups: upgrade to 2.4.6
        tiff: upgrade to 4.5.1
        linux-yocto/cve-exclusion: move entries from cve-extra-exclusions
        linux-yocto/cve-exclusion: ignore more backported CVEs
        python3: fix missing comma in get_module_deps3.py
        python3-jsonpointer: upgrade to 2.4
        oeqa/runtime/cases/rpm: fix wait_for_no_process_for_user failure case
        cml1: add showconfig task to easily find the generated .config file
        rootfs_rpm: don't depend on opkg-native for update-alternatives
        poky: add Debian 12 to supported distribution list
        cve-update-nvd2-native: log a little more
        cve-update-nvd2-native: actually use API keys
        gcc: don't pass --enable-standard-branch-protection
        machine/arch-arm64: add -mbranch-protection=standard
        qemuarm: pin kernel to 6.1
        libdmx: remove obsolete library
        linux-yocto_6.1: ignore backported CVEs
        python3: ignore CVE-2023-36632
        ltp: add RDEPENDS on findutils
        oeqa/ltp: rewrote LTP testcase and parser

  Siddharth Doshi (2):
        bind: Upgrade 9.18.15 -> 9.18.16
        flac: Upgrade 1.4.2 -> 1.4.3

  Soumya (1):
        perl: Fix CVE-2023-31486

  Staffan Rydén (1):
        kernel: Fix path comparison in kernel staging dir symlinking

  Stéphane Veyret (1):
        scripts/oe-setup-builddir: copy conf-notes.txt to build dir

  Sudip Mukherjee (1):
        libssh2: disable rpath to fix curl-native build

  Thomas Roos (1):
        testimage/oeqa: Drop testimage_dump_host functionality

  Tim Orling (10):
        python3-pytest-subtests: upgrade 0.10.0 -> 0.11.0
        python3-urllib3: upgrade 2.0.2 -> 2.0.3
        python3-typing-extensions: upgrade 4.6.3 -> 4.7.0
        python3-hypothesis: upgrade 6.79.2 -> 6.80.0
        python3-pygments: upgrade 2.14.0 -> 2.15.1
        python3-importlib-metadata: upgrade 6.7.0 -> 6.8.0
        python3-typing-extensions: upgrade 4.7.0 -> 4.7.1
        python3-cryptography{-vectors}: upgrade 41.0.1 -> 41.0.2
        python3-zipp: upgrade 3.15.0 -> 3.16.2
        python3-hypothesis: upgrade 6.80.0 -> 6.81.2

  Trevor Gamblin (15):
        python3: add cgitb, zipapp ptest dependencies
        qemu: upgrade 8.0.0 -> 8.0.3
        python3: parallelize ptests, add test_cppext dependencies
        python3-setuptools: upgrade 67.6.1 -> 68.0.0
        diffoscope: upgrade 242 -> 243
        p11-kit: upgrade 0.24.1 -> 0.25.0
        diffoscope: add missing RDEPENDS and alphabetize
        linux-firmware: upgrade 20230515 -> 20230625
        python3-trove-classifiers: upgrade 2023.5.24 -> 2023.7.6
        python3-cython: upgrade 0.29.35 -> 0.29.36
        icu: upgrade 72-1 -> 73-2
        python3-editables: add python3-io to RDEPENDS
        python3: ensure ptest regression capture
        diffoscope: upgrade 243 -> 244
        xeyes: upgrade 1.2.0 -> 1.3.0

  Wang Mingyu (51):
        freetype: upgrade 2.13.0 -> 2.13.1
        gstreamer1.0: upgrade 1.22.3 -> 1.22.4
        kbd: upgrade 2.5.1 -> 2.6.0
        libassuan: upgrade 2.5.5 -> 2.5.6
        libksba: upgrade 1.6.3 -> 1.6.4
        libmd: upgrade 1.0.4 -> 1.1.0
        libsdl2: upgrade 2.26.5 -> 2.28.0
        libtraceevent: upgrade 1.7.2 -> 1.7.3
        libx11: upgrade 1.8.5 -> 1.8.6
        lttng-ust: upgrade 2.13.5 -> 2.13.6
        nettle: upgrade 3.9 -> 3.9.1
        nghttp2: upgrade 1.53.0 -> 1.54.0
        ccache: upgrade 4.8.1 -> 4.8.2
        mesa: upgrade 23.1.1 -> 23.1.3
        python3-numpy: upgrade 1.24.3 -> 1.25.0
        python3-typing-extensions: upgrade 4.6.2 -> 4.6.3
        xorgproto: upgrade 2022.2 -> 2023.2
        python3-hatchling: upgrade 1.17.0 -> 1.18.0
        python3-hypothesis: upgrade 6.75.7 -> 6.79.2
        python3-importlib-metadata: upgrade 6.6.0 -> 6.7.0
        python3-iso8601: upgrade 1.1.0 -> 2.0.0
        python3-markupsafe: upgrade 2.1.2 -> 2.1.3
        python3-pluggy: upgrade 1.0.0 -> 1.2.0
        python3-pycairo: upgrade 1.23.0 -> 1.24.0
        python3-pyparsing: upgrade 3.0.9 -> 3.1.0
        python3-pytest: upgrade 7.3.1 -> 7.4.0
        python3-ruamel-yaml: upgrade 0.17.31 -> 0.17.32
        python3-sphinx-rtd-theme: upgrade 1.2.1 -> 1.2.2
        xkeyboard-config: upgrade 2.38 -> 2.39
        xwayland: upgrade 23.1.1 -> 23.1.2
        wayland-protocols: upgrade 1.31 -> 1.32
        taglib: upgrade 1.13 -> 1.13.1
        libxcrypt: upgrade 4.4.35 -> 4.4.36
        msmtp: upgrade 1.8.23 -> 1.8.24
        libwebp: upgrade 1.3.0 -> 1.3.1
        libuv: upgrade 1.45.0 -> 1.46.0
        acpica: upgrade 20230331 -> 20230628
        libnss-nis: upgrade 3.1 -> 3.2
        harfbuzz: upgrade 7.3.0 -> 8.0.1
        libproxy: upgrade 0.5.2 -> 0.5.3
        nghttp2: upgrade 1.54.0 -> 1.55.1
        debianutils: upgrade 5.7 -> 5.8
        glib-2.0: upgrade 2.76.3 -> 2.76.4
        python3-pip: upgrade 23.1.2 -> 23.2
        opkg: upgrade 0.6.1 -> 0.6.2
        opkg-utils: upgrade 0.5.0 -> 0.6.2
        python3-editables: upgrade 0.3 -> 0.4
        python3-git: upgrade 3.1.31 -> 3.1.32
        python3-numpy: upgrade 1.25.0 -> 1.25.1
        repo: upgrade 2.34.1 -> 2.35
        libva: upgrade to 2.19.0

  Yash Shinde (1):
        oeqa/selftest: Add rust selftests

  Yi Zhao (1):
        ifupdown: install missing directories

  Yoann Congal (2):
        recipetool: Fix inherit in created -native* recipes
        oeqa/selftest/devtool: add unit test for "devtool add -b"

  Yuta Hayama (1):
        systemd-systemctl: fix errors in instance name expansion

meta-openembedded: 2638d458a5..0e3f5e5201:
  Alex Kiernan (1):
        ostree: Upgrade 2023.4 -> 2023.5

  Archana Polampalli (1):
        tcpreplay: upgrade 4.4.3 -> 4.4.4

  Beniamin Sandu (1):
        mbedtls: fix builds with crypto extensions

  Bruce Ashfield (1):
        vboxguestdrivers: fix compilation against 6.4 kernel / headers

  Carlos Rafael Giani (3):
        pipewire: Disable libmysofa since it is not available in OE
        pipewire: Improve packageconfigs
        pipewire: Add dedicated aes67 package and fix rlimits.d package assignment

  Chee Yang Lee (1):
        rabbitmq-c: Fix CVE-2023-35789

  Jasper Orschulko (8):
        python3-pytest-cov: Add initial recipe 4.1.0
        python3-covdefaults: Add initial recipe 2.3.0
        python3-platformdirs: Fix recipe version 3.6.0
        python3-distlib: Add initial recipe 0.3.6
        python3-filelock: Add initial recipe 3.12.0
        python3-virtualenv: Add initial recipe 20.23.0
        python3-pyproject-api: Add initial recipe 1.5.1
        python3-tox: Add initial recipe 4.6.0

  Joe Slater (1):
        libgpiod: modify RDEPENDS for ptest

  Justin Bronder (2):
        python3-asyncinotify: upgrade 3.0.1 -> 4.0.2
        python3-pytest-asyncio: upgrade 0.16.0 -> 0.21.1

  Kai Kang (2):
        libtimezonemap: rename downloaded file name
        fltk-native: fix libdl link issue

  Khem Raj (33):
        gupnp-av: Fix build with libxml2-2.11 and newer
        xcb-util-cursor: Delete recipe
        pidgin-sipe: Add packageconfig to turn Werror on/off
        fbida: Fix build on musl
        pcp: Update to 6.0.5
        geos: Upgrade to 3.12.0
        ctags: Extend to build native package
        libcoap: Build linker symbol file explicitly
        geos: Use cmake directly
        pcp: Fix build race
        sblim-sfcc: Fix build with clang17
        minifi-cpp: Fix build with clang 17
        python3-grpcio-tools: Upgrade to 1.56.0
        python3-grpcio: Upgrade to 1.56.0
        python3-grpcio: Fix build on musl
        python3-grpcio-tools: Fix build with musl
        thin-provisioning-tools: Upgrade to 1.0.4
        thin-provisioning-tools: Fix build on musl.
        pcp: Disable parallel build
        crash: Fix build with glibc 2.38+
        breakpad: Update to latest trunk
        python3-requests-toolbelt: Fix ptest failures seen with urllib3 2.0
        ptest-packagelists-meta-oe: Limit mcelog to x86/x86_64
        graphviz: Upgrade to 8.1.0 release
        emlog: Update to latest to fix build with 6.4 kernel
        dlm: Upgrade to 4.2.0
        mdio-tools: Update to latest on trunk
        dlm: Fix build with linux kernel 6.4+
        dlm: Do not pass -fcf-protection=full via Makefile
        dlm: Do not use -fcf-protection=full on arm platforms
        zfs: Update to 2.2.0 rc1
        zfs: Disable builds on aarch64 for now
        dhcp-relay: Pass cross configure flags to bind build

  Luke Schaefer (1):
        nginx: Add stream Signed-off-by: Luke Schaefer <lukeschafer17@gmail.com>

  Marek Vasut (4):
        lvgl: Factor out and unify lv-drivers configuration
        lvgl: Add default input device configuration option
        linux-serial-test: Update to latest git revision
        libiio: enable c++ bindings

  Markus Volk (10):
        pipewire: upgrade 0.3.71 -> 0.3.72
        pipewire: upgrade 0.3.72 -> 0.3.73
        gnome-software: upgrade 44.2 -> 44.3
        eog: upgrade 44.2 -> 44.3
        spdlog: upgrade 1.11.0 -> 1.12.0
        flatpak: update dependencies
        gnome-control-center: upgrade 44.2 -> 44.3
        gnome-shell: upgrade 44.2 -> 44.3
        mutter: upgrade 44.2 -> 44.3
        gnome-settings-daemon: upgrade 44.0 -> 44.1

  Martin Jansa (4):
        nodejs: use PIE for host binaries
        gupnp: backport a fix not to use deprecated xmlReadMemory
        pidgin-sipe: allow to build with libxml2-2.11
        raptor2: backport a fix to build with libxml2-2.11

  Michael Haener (1):
        nginx: upgrade to 1.24.0 release

  Michael Weiß (1):
        pv: Show progress bar even if no terminal is set as in 1.6.6

  Mingli Yu (1):
        snort: Add systemd unit file

  Peter Kjellerstedt (1):
        cppzmq: Move the version to the recipe file name

  Petr Gotthard (2):
        python3-pyroute2: upgrade 0.5.19 -> 0.7.9
        networkmanager: upgrade 1.42.6 -> 1.42.8

  Ricardo Salveti (1):
        lshw: bump to b4e0673

  Ross Burton (5):
        poppler: fix missing include
        libpaper: remove redundant autoreconf --install
        liblbxutil: remove obsolete library
        xsetmode: remove obsolete utility
        libxkbui: remove obsolete recipe

  Tim Orling (1):
        python3-argh: upgrade 0.26.2 -> 0.28.1

  Trevor Gamblin (9):
        python3-alembic: upgrade 1.10.4 -> 1.11.1
        python3-sqlalchemy: upgrade 2.0.15 -> 2.0.19
        python3-argcomplete: upgrade 3.1.0 -> 3.1.1
        python3-arpeggio: upgrade 2.0.0 -> 2.0.2
        python3-astroid: upgrade 2.15.5 -> 2.15.6
        python3-autobahn: upgrade 23.6.1 -> 23.6.2
        python3-bandit: upgrade 1.7.4 -> 1.7.5
        python3-bandit: add python3-rich to RDEPENDS
        python3-bitarray: upgrade 2.7.3 -> 2.7.6

  Wang Mingyu (44):
        cppzmq: upgrade 4.9.0 -> 4.10.0
        iwd: upgrade 2.5 -> 2.6
        libburn: upgrade 1.5.4 -> 1.5.6
        libzip: upgrade 1.9.2 -> 1.10.0
        openfortivpn: upgrade 1.20.3 -> 1.20.5
        psqlodbc: upgrade 13.02.0000 -> 15.00.0000
        python3-aenum: upgrade 3.1.12 -> 3.1.14
        python3-can: upgrade 4.2.1 -> 4.2.2
        python3-google-api-python-client: upgrade 2.89.0 -> 2.90.0
        python3-h5py: upgrade 3.8.0 -> 3.9.0
        python3-natsort: upgrade 8.3.1 -> 8.4.0
        python3-pymodbus: upgrade 3.3.1 -> 3.3.2
        python3-pymongo: upgrade 4.3.3 -> 4.4.0
        python3-pyscaffold: upgrade 4.4.1 -> 4.5
        python3-pyzstd: upgrade 0.15.7 -> 0.15.9
        python3-requests-futures: upgrade 1.0.0 -> 1.0.1
        python3-sentry-sdk: upgrade 1.25.1 -> 1.26.0
        python3-zeroconf: upgrade 0.68.0 -> 0.69.0
        weechat: upgrade 3.8 -> 4.0.0
        python3-platformdirs: upgrade 3.6.0 -> 3.8.0
        renderdoc: upgrade 1.13 -> 1.27
        gegl: upgrade 0.4.44 -> 0.4.46
        gvfs: upgrade 1.50.4 -> 1.51.1
        weechat: upgrade 4.0.0 -> 4.0.1
        avro-c: upgrade 1.11.1 -> 1.11.2
        glfw: upgrade 3.3 -> 3.3.8
        hwloc: upgrade 2.9.1 -> 2.9.2
        minicoredumper: upgrade 2.0.3 -> 2.0.6
        thingsboard-gateway: upgrade 3.2 -> 3.3
        xterm: upgrade 382 -> 383
        passwdqc: upgrade 2.0.2 -> 2.0.3
        python3-aenum: upgrade 3.1.14 -> 3.1.15
        python3-configargparse : upgrade 1.5.3 -> 1.5.5
        python3-elementpath: upgrade 4.1.3 -> 4.1.4
        python3-google-api-python-client: upgrade 2.90.0 -> 2.92.0
        python3-google-auth: upgrade 2.20.0 -> 2.21.0
        python3-joblib: upgrade 1.2.0 -> 1.3.1
        python3-pillow: upgrade 9.5.0 -> 10.0.0
        python3-redis: upgrade 4.5.5 -> 4.6.0
        python3-tox: upgrade 4.6.0 -> 4.6.3
        python3-virtualenv: upgrade 20.23.0 -> 20.23.1
        python3-zeroconf: upgrade 0.69.0 -> 0.70.0
        libyang: Fix install conflict when enable multilib.
        php: Fix install conflict when enable multilib.

  Wolfgang Meyer (4):
        fbida: Switch to git fetcher
        fbida: build with meson
        fbida: SRC_REV bump ac9005b..eb769e3
        fbida: make fbpdf build optional

  Yi Zhao (6):
        conntrack-tools: add systemd unit file
        conntrack-tools: add required kernel modules to RRECOMMENDS
        frr: upgrade 8.4.2 -> 8.4.4
        mbedtls: upgrade 2.28.2 -> 2.28.3
        open-vm-tools: Security fix CVE-2023-20867
        samba: upgrade 4.18.3 -> 4.18.4

  Zoltán Böszörményi (1):
        opencv: 4.8.0

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I48c2ba4573ee81b637b1ba890c312f491004f666
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/burnia/libburn_1.5.4.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/burnia/libburn_1.5.6.bb
similarity index 82%
rename from meta-openembedded/meta-filesystems/recipes-filesystems/burnia/libburn_1.5.4.bb
rename to meta-openembedded/meta-filesystems/recipes-filesystems/burnia/libburn_1.5.6.bb
index 4f8c183..e0f6664 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/burnia/libburn_1.5.4.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/burnia/libburn_1.5.6.bb
@@ -6,7 +6,7 @@
                     file://COPYRIGHT;md5=a91b9b862895b64e68e5b321873c9111"
 
 SRC_URI = "http://files.libburnia-project.org/releases/${BP}.tar.gz"
-SRC_URI[sha256sum] = "525059d10759c5cb8148eebc863bb510e311c663603da7bd2d21c46b7cf63b54"
+SRC_URI[sha256sum] = "7295491b4be5eeac5e7a3fb2067e236e2955ffdc6bbd45f546466edee321644b"
 
 inherit autotools pkgconfig lib_package
 
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/zfs/zfs/aaf28a4630af60496c9d33db1d06a7d7d8983422.patch b/meta-openembedded/meta-filesystems/recipes-filesystems/zfs/zfs/aaf28a4630af60496c9d33db1d06a7d7d8983422.patch
index bcca563..f5504b3 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/zfs/zfs/aaf28a4630af60496c9d33db1d06a7d7d8983422.patch
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/zfs/zfs/aaf28a4630af60496c9d33db1d06a7d7d8983422.patch
@@ -54,14 +54,3 @@
  endif
  
  # Suppress unused-value warnings in sparc64 architecture headers
---- a/META
-+++ b/META
-@@ -1,7 +1,7 @@
- Meta:          1
- Name:          zfs
- Branch:        1.0
--Version:       2.1.99
-+Version:       2.1.11
- Release:       1
- Release-Tags:  relext
- License:       CDDL
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/zfs/zfs_2.1.11.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/zfs/zfs_2.2.0.bb
similarity index 90%
rename from meta-openembedded/meta-filesystems/recipes-filesystems/zfs/zfs_2.1.11.bb
rename to meta-openembedded/meta-filesystems/recipes-filesystems/zfs/zfs_2.2.0.bb
index bd463b8..a62a8a3 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/zfs/zfs_2.1.11.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/zfs/zfs_2.2.0.bb
@@ -4,8 +4,8 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=7087caaf1dc8a2856585619f4a787faa"
 HOMEPAGE ="https://github.com/openzfs/zfs"
 
-SRCREV = "0f03a411615a797425de488eecfaaf63fc41acfe"
-SRC_URI = "git://github.com/openzfs/zfs;protocol=https;branch=master \
+SRCREV = "009d3288dea524c7ad373b04b65bee8bb6f0bfea"
+SRC_URI = "git://github.com/openzfs/zfs;protocol=https;branch=zfs-2.2-release \
            file://0001-Define-strndupa-if-it-does-not-exist.patch \
            file://aaf28a4630af60496c9d33db1d06a7d7d8983422.patch \
            file://0001-fs-tests-cmd-readmmap-Replace-uint_t-with-uint32_t.patch \
@@ -73,3 +73,5 @@
 COMPATIBLE_HOST:riscv32 = "null"
 # conflicting definition of ABS macro from asm/asm.h from kernel
 COMPATIBLE_HOST:mips = "null"
+# FTBFS on aarch64 with 6.2+ kernel see https://github.com/openzfs/zfs/issues/14555
+COMPATIBLE_HOST:aarch64 = "null"
diff --git a/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.44.bb b/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.46.bb
similarity index 96%
rename from meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.44.bb
rename to meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.46.bb
index 3c1a024..3a94787 100644
--- a/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.44.bb
+++ b/meta-openembedded/meta-gnome/recipes-gimp/gegl/gegl_0.4.46.bb
@@ -26,7 +26,7 @@
 SHPV = "${@gnome_verdir("${PV}")}"
 
 SRC_URI = "https://download.gimp.org/pub/${BPN}/${SHPV}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "0a4cdb41635e406a0849cd0d3f03caf7d97cab8aa13d28707d532d0089d56126"
+SRC_URI[sha256sum] = "d0b3b2481bc8774c5f3d0a487611910166d18eef823a859fb91e781ab7b1e892"
 
 PACKAGECONFIG ??= "gexiv2 jpeg libpng libraw librsvg pango poppler sdl2"
 PACKAGECONFIG:class-native = "libpng librsvg"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/eog/eog_44.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/eog/eog_44.3.bb
similarity index 88%
rename from meta-openembedded/meta-gnome/recipes-gnome/eog/eog_44.2.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/eog/eog_44.3.bb
index 110e73f..06203fb 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/eog/eog_44.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/eog/eog_44.3.bb
@@ -22,7 +22,7 @@
 # FIXME: whilst eog uses libpeas <2, g-i is needed. This can be removed when libpeas2 is used.
 REQUIRED_DISTRO_FEATURES = "opengl gobject-introspection-data"
 
-SRC_URI[archive.sha256sum] = "468f539f6b67ee46188170f244480cc311dd1efe4786fe1554bffe26a65c72c4"
+SRC_URI[archive.sha256sum] = "d6b2d70f4b432ff8cf494c8f9029b2621d08e7817938317d64063ae6c4da9d8c"
 
 GTKDOC_MESON_OPTION = "gtk_doc"
 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_44.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_44.3.bb
similarity index 94%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_44.2.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_44.3.bb
index b2c04c2..0066f58 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_44.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_44.3.bb
@@ -37,7 +37,7 @@
 REQUIRED_DISTRO_FEATURES += "opengl polkit pulseaudio systemd x11"
 
 SRC_URI += "file://0001-Add-meson-option-to-pass-sysroot.patch"
-SRC_URI[archive.sha256sum] = "0623d7d21cfe970d2ef34420623545a5945b9892e641f9a011cecec21afda10c"
+SRC_URI[archive.sha256sum] = "066a65052fc3ecfae860025e85f797e6ab2b87a58c4f8ab9c66ec20718a80c7a"
 
 PACKAGECONFIG ??= "ibus ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)}"
 PACKAGECONFIG[cups] = ",,cups,cups"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_44.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_44.1.bb
similarity index 92%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_44.0.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_44.1.bb
index e8f2014..104f4a6 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_44.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_44.1.bb
@@ -25,7 +25,7 @@
 REQUIRED_DISTRO_FEATURES = "x11 polkit pulseaudio systemd gobject-introspection-data"
 GIR_MESON_OPTION = ""
 
-SRC_URI[archive.sha256sum] = "b417ada1c1342a8cf29837ecf2dec9bdcdb754235b1a161b6435c3d11f210999"
+SRC_URI[archive.sha256sum] = "12653b72d81f151300a47d700ac9410ac1bcce38e83f1bdd19cded2932943989"
 
 PACKAGECONFIG ??= " \
     cups nm \
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_44.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_44.3.bb
similarity index 95%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_44.2.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_44.3.bb
index 09995e5..e1aa051 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_44.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_44.3.bb
@@ -32,7 +32,7 @@
 # gobject-introspection is mandatory and cannot be configured
 REQUIRED_DISTRO_FEATURES += "gobject-introspection-data"
 
-SRC_URI[archive.sha256sum] = "55f279ec6303b7c0c89246eced81247c87fc1c73948f45eb212a647218d1b63f"
+SRC_URI[archive.sha256sum] = "55694b71c2ee4eaef60d93428003f2eaa4cf00186848f5e36b45cfe506fc31bf"
 SRC_URI += "file://0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch"
 
 PACKAGECONFIG ??= "bluetooth nm ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.3.bb
similarity index 93%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.2.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.3.bb
index 60aeecd..a7807c3 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.3.bb
@@ -29,7 +29,7 @@
 
 EXTRA_OEMESON += "-Dtests=false -Dsoup2=false"
 
-SRC_URI[archive.sha256sum] = "c02dce70e52b37cd29c037650b372adb19b27d20fe44bc0921d81a959d35616c"
+SRC_URI[archive.sha256sum] = "325abb722cab20b6aa67f158ea2ff2ea899830ca0a883e24594d9def85fd1622"
 
 PACKAGECONFIG ?= "flatpak"
 PACKAGECONFIG[flatpak] = "-Dflatpak=true,-Dflatpak=false,flatpak ostree"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.50.4.bb b/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.51.1.bb
similarity index 97%
rename from meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.50.4.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.51.1.bb
index 31eea47..32d47ef 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.50.4.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gvfs/gvfs_1.51.1.bb
@@ -20,7 +20,7 @@
 
 SRC_URI = "https://download.gnome.org/sources/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.xz;name=archive"
 
-SRC_URI[archive.sha256sum] = "ab9059a676a537edbea21388c2aafe1a7e2c8f1ac2dfdc6d64550233075457fd"
+SRC_URI[archive.sha256sum] = "5baaf0cc81e2c690a726f7d5eb59eed48a33ea220fd5378df93c556173a3c143"
 
 ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
 
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb b/meta-openembedded/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb
index 00d66b4..bafe7af 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb
@@ -4,7 +4,7 @@
 LICENSE = "GPL-3.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
-SRC_URI = "${DEBIAN_MIRROR}/main/libt/${BPN}/${BPN}_${PV}.orig.tar.gz"
+SRC_URI = "${DEBIAN_MIRROR}/main/libt/${BPN}/${BPN}_${PV}.orig.tar.gz;downloadfilename=${BP}.tar.gz"
 SRC_URI[sha256sum] = "0d634cc2476d8f57d1ee1864bd4f442180ae4bf040a9ae4bf73b66bbd85d7195"
 
 DEPENDS = "gtk+3 gdk-pixbuf libsoup-2.4 json-glib gnome-common-native"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_44.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_44.3.bb
similarity index 96%
rename from meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_44.2.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_44.3.bb
index 9c25eda..6bd8a7b 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_44.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/mutter/mutter_44.3.bb
@@ -25,7 +25,7 @@
 
 inherit gnomebase gsettings gobject-introspection gettext features_check
 
-SRC_URI[archive.sha256sum] = "37566d7e55c93dc8894e9c7f23a7ba5879a8b30baf65558223009d2b467402a1"
+SRC_URI[archive.sha256sum] = "185cbebf2150d3e450550e371bdb13a8b4db096978b14f99521e966eacc70551"
 
 # x11 is still manadatory - see meson.build
 REQUIRED_DISTRO_FEATURES = "wayland x11 polkit"
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av/0001-all-Drop-xmlRecoverMemory.patch b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av/0001-all-Drop-xmlRecoverMemory.patch
new file mode 100644
index 0000000..92b52ad
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av/0001-all-Drop-xmlRecoverMemory.patch
@@ -0,0 +1,44 @@
+From d99f71a4a52da7582d5e26992a1ab303b280d28a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 30 Jun 2023 03:23:12 -0700
+Subject: [PATCH] Drop xmlRecoverMemory
+
+newer libxml has deprecated xmlRecoverMemory therefore replace it with xmlReadMemory
+
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gupnp/-/commit/80e68995b745a5900eaaa1d0c424d3a9d354e42d]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gupnp-didl-lite-parser.c    | 2 +-
+ gupnp-feature-list-parser.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gupnp-didl-lite-parser.c b/gupnp-didl-lite-parser.c
+index 3a5727f..840d718 100644
+--- a/libgupnp-av/gupnp-didl-lite-parser.c
++++ b/libgupnp-av/gupnp-didl-lite-parser.c
+@@ -230,7 +230,7 @@ gupnp_didl_lite_parser_parse_didl_recursive (GUPnPDIDLLiteParser *parser,
+         GUPnPAVXMLDoc *xml_doc = NULL;
+         gboolean       result;
+ 
+-        doc = xmlRecoverMemory (didl, strlen (didl));
++        doc = xmlReadMemory (didl, strlen (didl), NULL, NULL, XML_PARSE_NONET | XML_PARSE_RECOVER);
+         if (doc == NULL) {
+                 g_set_error (error,
+                              G_MARKUP_ERROR,
+diff --git a/gupnp-feature-list-parser.c b/gupnp-feature-list-parser.c
+index 16208b5..f804fe7 100644
+--- a/libgupnp-av/gupnp-feature-list-parser.c
++++ b/libgupnp-av/gupnp-feature-list-parser.c
+@@ -114,7 +114,7 @@ gupnp_feature_list_parser_parse_text
+         xmlNode      *element;
+         GList        *feature_list = NULL;
+ 
+-        doc = xmlRecoverMemory (text, strlen (text));
++        doc = xmlReadMemory (text, strlen (text), NULL, NULL, XML_PARSE_NONET | XML_PARSE_RECOVER);
+         if (doc == NULL) {
+                 g_set_error (error,
+                              G_MARKUP_ERROR,
+-- 
+2.41.0
+
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.0.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.0.bb
index b253c54..48de586 100644
--- a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.0.bb
+++ b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.0.bb
@@ -8,5 +8,7 @@
 
 inherit meson pkgconfig gobject-introspection vala
 
-SRC_URI = "${GNOME_MIRROR}/${BPN}/0.14/${BPN}-${PV}.tar.xz"
+SRC_URI = "${GNOME_MIRROR}/${BPN}/0.14/${BPN}-${PV}.tar.xz \
+           file://0001-all-Drop-xmlRecoverMemory.patch \
+          "
 SRC_URI[sha256sum] = "20aed546fc882e78a3f186a0c8bce5c841cc3a44b7ea528298fbdc82596fb156"
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp/0001-all-Drop-xmlRecoverMemory.patch b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp/0001-all-Drop-xmlRecoverMemory.patch
new file mode 100644
index 0000000..a3941f3
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp/0001-all-Drop-xmlRecoverMemory.patch
@@ -0,0 +1,107 @@
+From 46f13d9929c81ec2340a1a5d48f596b1892c5a81 Mon Sep 17 00:00:00 2001
+From: Jens Georg <mail@jensge.org>
+Date: Thu, 4 May 2023 19:14:29 +0200
+Subject: [PATCH] all: Drop xmlRecoverMemory
+
+use xmlReadMemory, also use NONET flat
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Upstream-Status: Backport [https://github.com/GNOME/gupnp/commit/80e68995b745a5900eaaa1d0c424d3a9d354e42d]
+---
+ libgupnp/gupnp-control-point.c        | 7 +++++--
+ libgupnp/gupnp-service-info.c         | 7 +++++--
+ libgupnp/gupnp-service-proxy-action.c | 7 +++++--
+ libgupnp/gupnp-service-proxy.c        | 7 +++++--
+ libgupnp/gupnp-service.c              | 7 +++++--
+ 5 files changed, 25 insertions(+), 10 deletions(-)
+
+diff --git a/libgupnp/gupnp-control-point.c b/libgupnp/gupnp-control-point.c
+index dc04732..99ebda5 100644
+--- a/libgupnp/gupnp-control-point.c
++++ b/libgupnp/gupnp-control-point.c
+@@ -608,8 +608,11 @@ got_description_url (SoupSession           *session,
+                 xmlDoc *xml_doc;
+ 
+                 /* Parse response */
+-                xml_doc = xmlRecoverMemory (msg->response_body->data,
+-                                            msg->response_body->length);
++                xml_doc = xmlReadMemory (msg->response_body->data,
++                                         msg->response_body->length,
++                                         NULL,
++                                         NULL,
++                                         XML_PARSE_NONET | XML_PARSE_RECOVER);
+                 if (xml_doc) {
+                         doc = gupnp_xml_doc_new (xml_doc);
+ 
+diff --git a/libgupnp/gupnp-service-info.c b/libgupnp/gupnp-service-info.c
+index 9a9f4de..d468801 100644
+--- a/libgupnp/gupnp-service-info.c
++++ b/libgupnp/gupnp-service-info.c
+@@ -592,8 +592,11 @@ got_scpd_url (G_GNUC_UNUSED SoupSession *session,
+         if (SOUP_STATUS_IS_SUCCESSFUL (msg->status_code)) {
+                 xmlDoc *scpd;
+ 
+-                scpd = xmlRecoverMemory (msg->response_body->data,
+-                                         msg->response_body->length);
++                scpd = xmlReadMemory (msg->response_body->data,
++                                      msg->response_body->length,
++                                      NULL,
++                                      NULL,
++                                      XML_PARSE_NONET | XML_PARSE_RECOVER);
+                 if (scpd) {
+                         introspection = gupnp_service_introspection_new (scpd);
+ 
+diff --git a/libgupnp/gupnp-service-proxy-action.c b/libgupnp/gupnp-service-proxy-action.c
+index 4d9336c..ef8a808 100644
+--- a/libgupnp/gupnp-service-proxy-action.c
++++ b/libgupnp/gupnp-service-proxy-action.c
+@@ -86,8 +86,11 @@ check_action_response (G_GNUC_UNUSED GUPnPServiceProxy *proxy,
+         }
+ 
+         /* Parse response */
+-        response = xmlRecoverMemory (action->msg->response_body->data,
+-                                     action->msg->response_body->length);
++        response = xmlReadMemory (action->msg->response_body->data,
++                                  action->msg->response_body->length,
++                                  NULL,
++                                  NULL,
++                                  XML_PARSE_NONET | XML_PARSE_RECOVER);
+ 
+         if (!response) {
+                 if (action->msg->status_code == SOUP_STATUS_OK) {
+diff --git a/libgupnp/gupnp-service-proxy.c b/libgupnp/gupnp-service-proxy.c
+index 25d5ef6..af2fd46 100644
+--- a/libgupnp/gupnp-service-proxy.c
++++ b/libgupnp/gupnp-service-proxy.c
+@@ -1560,8 +1560,11 @@ server_handler (G_GNUC_UNUSED SoupServer        *soup_server,
+         }
+ 
+         /* Parse the actual XML message content */
+-        doc = xmlRecoverMemory (msg->request_body->data,
+-                                msg->request_body->length);
++        doc = xmlReadMemory (msg->request_body->data,
++                             msg->request_body->length,
++                             NULL,
++                             NULL,
++                             XML_PARSE_NONET | XML_PARSE_RECOVER);
+         if (doc == NULL) {
+                 /* Failed */
+                 g_warning ("Failed to parse NOTIFY message body");
+diff --git a/libgupnp/gupnp-service.c b/libgupnp/gupnp-service.c
+index 67b3d43..0ebfb26 100644
+--- a/libgupnp/gupnp-service.c
++++ b/libgupnp/gupnp-service.c
+@@ -985,8 +985,11 @@ control_server_handler (SoupServer                      *server,
+                 *end = '\0';
+ 
+         /* Parse action_node */
+-        doc = xmlRecoverMemory (msg->request_body->data,
+-                                msg->request_body->length);
++        doc = xmlReadMemory (msg->request_body->data,
++                             msg->request_body->length,
++                             NULL,
++                             NULL,
++                             XML_PARSE_NONET | XML_PARSE_RECOVER);
+         if (doc == NULL) {
+                 soup_message_set_status (msg, SOUP_STATUS_BAD_REQUEST);
+ 
diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb
index 708e384..c21e7a0 100644
--- a/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb
+++ b/meta-openembedded/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb
@@ -7,7 +7,9 @@
 
 inherit meson pkgconfig vala gobject-introspection
 
-SRC_URI = "${GNOME_MIRROR}/${BPN}/1.4/${BPN}-${PV}.tar.xz"
+SRC_URI = "${GNOME_MIRROR}/${BPN}/1.4/${BPN}-${PV}.tar.xz \
+    file://0001-all-Drop-xmlRecoverMemory.patch \
+"
 SRC_URI[sha256sum] = "899196b5e66f03b8e25f046a7a658cd2a6851becb83f2d55345ab3281655dc0c"
 
 SYSROOT_PREPROCESS_FUNCS += "gupnp_sysroot_preprocess"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.71.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.73.bb
similarity index 94%
rename from meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.71.bb
rename to meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.73.bb
index 7f117e1..b27886d 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.71.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.73.bb
@@ -13,7 +13,7 @@
 
 DEPENDS = "dbus ncurses"
 
-SRCREV = "bd225b14bbda1a6e2dc7a52780eaf728920e0ff2"
+SRCREV = "44deacbc670ccf6c02d66a48b756a16167d8048f"
 SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
@@ -48,7 +48,7 @@
 # it just prevents this subproject feature.
 #
 # AptX and LDAC are not available in OE. Currently, neither
-# are lv2 and ROC.
+# are lv2, ROC, and libmysofa.
 #
 # The RTKit module is deprecated in favor of the newer RT module.
 # It still exists for legacy setups that still include it in
@@ -66,6 +66,7 @@
     -Dbluez5-codec-aptx=disabled \
     -Dbluez5-codec-ldac=disabled \
     -Dlegacy-rtkit=false \
+    -Dlibmysofa=disabled \
 "
 
 # spa alsa plugin code uses typedef redefinition, which is officially a C11 feature.
@@ -87,7 +88,7 @@
     ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service systemd-user-service', '', d)} \
     ${@bb.utils.filter('DISTRO_FEATURES', 'alsa vulkan pulseaudio', d)} \
     ${PIPEWIRE_SESSION_MANAGER} \
-    ${FFMPEG_AVAILABLE} avahi flatpak gstreamer gsettings jack libusb pw-cat raop sndfile v4l2 udev volume webrtc-echo-cancelling libcamera \
+    ${FFMPEG_AVAILABLE} avahi flatpak gstreamer gsettings jack libusb pw-cat raop sndfile v4l2 udev volume webrtc-echo-cancelling libcamera readline \
 "
 
 # "jack" and "pipewire-jack" packageconfigs cannot be both enabled,
@@ -100,6 +101,10 @@
 PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc"
 PACKAGECONFIG[bluez-aac] = "-Dbluez5-codec-aac=enabled,-Dbluez5-codec-aac=disabled,fdk-aac"
 PACKAGECONFIG[bluez-opus] = "-Dbluez5-codec-opus=enabled,-Dbluez5-codec-opus=disabled,libopus"
+# From the pipewire git log:
+# "Some Linux phones doesn't use oFono but ModemManager to control the modem."
+# This packageconfig enables modemmanager specific code in the BlueZ backend.
+PACKAGECONFIG[bluez-backend-native-mm] = "-Dbluez5-backend-native-mm=enabled,-Dbluez5-backend-native-mm=disabled,modemmanager"
 PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native graphviz-native"
 PACKAGECONFIG[ffmpeg] = "-Dffmpeg=enabled,-Dffmpeg=disabled,ffmpeg"
 PACKAGECONFIG[flatpak] = "-Dflatpak=enabled,-Dflatpak=disabled,glib-2.0"
@@ -115,6 +120,9 @@
 PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=enabled -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=disabled,jack,,pipewire-jack,jack"
 PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled"
 PACKAGECONFIG[raop] = "-Draop=enabled,-Draop=disabled,openssl"
+# Starting with version 0.3.60, readline usage can be turned off in pw-cli.
+# If it is disabled, getline() is used as a fallback.
+PACKAGECONFIG[readline] = "-Dreadline=enabled,-Dreadline=disabled,readline"
 PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,libsdl2"
 PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1"
 PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd"
@@ -241,6 +249,7 @@
     ${PN}-modules-meta \
     ${PN}-alsa-card-profile \
     ${PN}-v4l2 \
+    ${PN}-aes67 \
     gstreamer1.0-pipewire \
 "
 
@@ -255,8 +264,6 @@
     ${systemd_user_unitdir} \
     ${bindir}/pipewire \
     ${bindir}/pipewire-avb \
-    ${bindir}/pipewire-aes67 \
-    ${sysconfdir}/security/limits.d \
 "
 
 RRECOMMENDS:${PN}:class-target += " \
@@ -350,6 +357,7 @@
 CONFFILES:${PN}-modules-rt = "${datadir}/pipewire/client-rt.conf"
 FILES:${PN}-modules-rt += " \
     ${datadir}/pipewire/client-rt.conf \
+    ${sysconfdir}/security/limits.d/* \
     "
 
 CONFFILES:${PN}-modules-filter-chain = "${datadir}/pipewire/filter-chain/*"
@@ -368,6 +376,11 @@
     ${libdir}/${PW_MODULE_SUBDIR}/v4l2/libpw-v4l2.so \
 "
 
+# AES67 is a standard for audio over IP, from the Audio Engineering Society (AES).
+FILES:${PN}-aes67 += " \
+    ${bindir}/pipewire-aes67 \
+"
+
 FILES:gstreamer1.0-pipewire = " \
     ${libdir}/gstreamer-1.0/* \
 "
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3p1.bb b/meta-openembedded/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3p1.bb
index d36646c..e5f7e03 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3p1.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3p1.bb
@@ -34,7 +34,14 @@
 CFLAGS += "-D_GNU_SOURCE -fcommon"
 LDFLAGS:append = " -pthread"
 
-EXTRA_OECONF = "--enable-paranoia \
+BIND_EXTRA_CONFIG = "\
+        --build=${BUILD_SYS} \
+        --host=${HOST_SYS} \
+        --target=${TARGET_SYS} \
+"
+
+EXTRA_OECONF = "--with-bind-extra-config="${BIND_EXTRA_CONFIG}" \
+                --enable-paranoia \
                 --disable-static \
                 --enable-libtool \
                 --with-randomdev=/dev/random \
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls/0001-aesce-do-not-specify-an-arch-version-when-enabling-c.patch b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls/0001-aesce-do-not-specify-an-arch-version-when-enabling-c.patch
new file mode 100644
index 0000000..d98d8fa
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls/0001-aesce-do-not-specify-an-arch-version-when-enabling-c.patch
@@ -0,0 +1,33 @@
+From 2246925e3cb16183e25d4e2cfd13fb800df86270 Mon Sep 17 00:00:00 2001
+From: Beniamin Sandu <beniaminsandu@gmail.com>
+Date: Sun, 25 Jun 2023 19:58:08 +0300
+Subject: [PATCH] aesce: do not specify an arch version when enabling crypto
+ instructions
+
+Building mbedtls with different aarch64 tuning variations revealed
+that we should use the crypto extensions without forcing a particular
+architecture version or core, as that can create issues.
+
+Upstream-Status: Submitted [https://github.com/Mbed-TLS/mbedtls/pull/7834]
+
+Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com>
+---
+ library/aesce.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/library/aesce.c b/library/aesce.c
+index fe056dc4c..843de3973 100644
+--- a/library/aesce.c
++++ b/library/aesce.c
+@@ -60,7 +60,7 @@
+ #           error "A more recent GCC is required for MBEDTLS_AESCE_C"
+ #       endif
+ #       pragma GCC push_options
+-#       pragma GCC target ("arch=armv8-a+crypto")
++#       pragma GCC target ("+crypto")
+ #       define MBEDTLS_POP_TARGET_PRAGMA
+ #   else
+ #       error "Only GCC and Clang supported for MBEDTLS_AESCE_C"
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls/0002-aesce-use-correct-target-attribute-when-building-wit.patch b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls/0002-aesce-use-correct-target-attribute-when-building-wit.patch
new file mode 100644
index 0000000..4775c8d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls/0002-aesce-use-correct-target-attribute-when-building-wit.patch
@@ -0,0 +1,34 @@
+From 03d3523f974536f2358047382aadb0d4cc762f8a Mon Sep 17 00:00:00 2001
+From: Beniamin Sandu <beniaminsandu@gmail.com>
+Date: Mon, 26 Jun 2023 12:07:21 +0300
+Subject: [PATCH] aesce: use correct target attribute when building with clang
+
+Seems clang has its own issues when it comes to crypto extensions,
+and right now the best way to avoid them is to accurately enable
+the needed instructions instead of the broad crypto feature.
+
+E.g.: https://github.com/llvm/llvm-project/issues/61645
+
+Upstream-Status: Pending
+
+Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com>
+---
+ library/aesce.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/library/aesce.c b/library/aesce.c
+index 843de3973..7bea088ba 100644
+--- a/library/aesce.c
++++ b/library/aesce.c
+@@ -53,7 +53,7 @@
+ #       if __clang_major__ < 4
+ #           error "A more recent Clang is required for MBEDTLS_AESCE_C"
+ #       endif
+-#       pragma clang attribute push (__attribute__((target("crypto"))), apply_to=function)
++#       pragma clang attribute push (__attribute__((target("aes"))), apply_to=function)
+ #       define MBEDTLS_POP_TARGET_PRAGMA
+ #   elif defined(__GNUC__)
+ #       if __GNUC__ < 6
+-- 
+2.25.1
+
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.2.bb b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.3.bb
similarity index 92%
rename from meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.2.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.3.bb
index 242495e..ce094d5 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.2.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.3.bb
@@ -23,7 +23,7 @@
 SECTION = "libs"
 
 S = "${WORKDIR}/git"
-SRCREV = "89f040a5c938985c5f30728baed21e49d0846a53"
+SRCREV = "981743de6fcdbe672e482b6fd724d31d0a0d2476"
 SRC_URI = "git://github.com/ARMmbed/mbedtls.git;protocol=https;branch=mbedtls-2.28 \
            file://run-ptest \
           "
@@ -62,6 +62,12 @@
 # Fix merged upstream https://github.com/Mbed-TLS/mbedtls/commit/9a4a9c66a48edfe9ece03c7e4a53310adf73a86c
 CVE_CHECK_IGNORE += "CVE-2021-45451"
 
+# Strip host paths from autogenerated test files
+do_compile:append() {
+	sed -i 's+${S}/++g' ${B}/tests/*.c 2>/dev/null || :
+	sed -i 's+${B}/++g' ${B}/tests/*.c 2>/dev/null || :
+}
+
 # Export source files/headers needed by Arm Trusted Firmware
 sysroot_stage_all:append() {
 	sysroot_stage_dir "${S}/library" "${SYSROOT_DESTDIR}/usr/share/mbedtls-source/library"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.4.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.4.0.bb
index ebc6ba5..b8c9662 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.4.0.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.4.0.bb
@@ -25,8 +25,9 @@
 S = "${WORKDIR}/git"
 SRCREV = "1873d3bfc2da771672bd8e7e8f41f57e0af77f33"
 SRC_URI = "git://github.com/ARMmbed/mbedtls.git;protocol=https;branch=master \
-           file://run-ptest \
-          "
+	file://0001-aesce-do-not-specify-an-arch-version-when-enabling-c.patch \
+	file://0002-aesce-use-correct-target-attribute-when-building-wit.patch \
+	file://run-ptest"
 
 inherit cmake update-alternatives ptest
 
@@ -41,9 +42,6 @@
 
 EXTRA_OECMAKE = "-DLIB_INSTALL_DIR:STRING=${libdir}"
 
-# Needs crypto instructions on aarch64
-TUNE_CCARGS_MARCH_OPTS:append:aarch64 = "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '', '+crypto', d)}"
-
 # For now the only way to enable PSA is to explicitly pass a -D via CFLAGS
 CFLAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'psa', ' -DMBEDTLS_USE_PSA_CRYPTO', '', d)}"
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.42.6.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.42.8.bb
similarity index 98%
rename from meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.42.6.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.42.8.bb
index 3196b0c..5d9c6f4 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.42.6.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.42.8.bb
@@ -32,7 +32,7 @@
     file://enable-iwd.conf \
 "
 
-SRC_URI[sha256sum] = "8c388ac3775ac6bceb605fae21be2c3e261cafe6067994a89f0dfa4610ed0279"
+SRC_URI[sha256sum] = "0337e7583d2ec5ade2ba2e8c625d2f09eeccda1d22836ee29aa72925d399c353"
 
 S = "${WORKDIR}/NetworkManager-${PV}"
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/openfortivpn/openfortivpn_1.20.3.bb b/meta-openembedded/meta-networking/recipes-connectivity/openfortivpn/openfortivpn_1.20.5.bb
similarity index 93%
rename from meta-openembedded/meta-networking/recipes-connectivity/openfortivpn/openfortivpn_1.20.3.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/openfortivpn/openfortivpn_1.20.5.bb
index bfd51f7..bcfe646 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/openfortivpn/openfortivpn_1.20.3.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/openfortivpn/openfortivpn_1.20.5.bb
@@ -3,7 +3,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3d575262a651a6f1a17210ce41bf907d"
 
 SRC_URI = "git://github.com/adrienverge/openfortivpn.git;protocol=https;branch=master"
-SRCREV = "45cb8e0f9984f1d54b648e499bda637d96568908"
+SRCREV = "1ccb8ee682af255ae85fecd5fcbab6497ccb6b38"
 
 DEPENDS = "openssl"
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.3.bb b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.4.bb
similarity index 99%
rename from meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.3.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.4.bb
index ee3665c..66089ed 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.3.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.4.bb
@@ -32,7 +32,7 @@
            file://cmocka-uintptr_t.patch \
            "
 
-SRC_URI[sha256sum] = "c67e1453165a3918ffffad600236ca3966b47bde4798e89ae600ae3903ccc32c"
+SRC_URI[sha256sum] = "6ba7b3503cc59c9ff4f6fcb1b510c2c855fff93e0b366ab891a32a4732e88e53"
 
 UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.18(\.\d+)+).tar.gz"
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/snort.default b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/snort.default
new file mode 100644
index 0000000..f1f67c5
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/snort.default
@@ -0,0 +1 @@
+INTERFACES="eth0"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/snort.service b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/snort.service
new file mode 100644
index 0000000..487328c
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort/snort.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Snort NIDS Daemon
+After=syslog.target network.target
+
+[Service]
+Type=simple
+EnvironmentFile=/etc/default/snort
+ExecStartPre=/bin/mkdir -p /var/log/snort
+ExecStart=/usr/bin/snort -q -c /etc/snort/snort.conf -l /var/log/snort -i $INTERFACES
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.20.bb b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.20.bb
index c15c204..8b9092b 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.20.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.20.bb
@@ -8,6 +8,8 @@
 
 SRC_URI = "https://www.snort.org/downloads/archive/snort/${BP}.tar.gz \
     file://snort.init \
+    file://snort.service \
+    file://snort.default \
     file://volatiles.99_snort \
     file://0001-libpcap-search-sysroot-for-headers.patch \
     file://fix-host-contamination-when-enable-static-daq.patch \
@@ -19,11 +21,15 @@
 UPSTREAM_CHECK_URI = "https://www.snort.org/downloads"
 UPSTREAM_CHECK_REGEX = "snort-(?P<pver>\d+(\.\d+)+)\.tar"
 
-inherit autotools gettext update-rc.d pkgconfig
+inherit autotools gettext update-rc.d pkgconfig systemd
 
 INITSCRIPT_NAME = "snort"
 INITSCRIPT_PARAMS = "defaults"
 
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "snort.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
 EXTRA_OECONF = " \
     --enable-gre \
     --enable-linux-smp-stats \
@@ -69,8 +75,17 @@
            ${D}${sysconfdir}/snort/snort.conf
 
     cp ${S}/preproc_rules/*.rules ${D}${sysconfdir}/snort/preproc_rules/
-    install -m 755 ${WORKDIR}/snort.init ${D}${sysconfdir}/init.d/snort
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+        install -m 755 ${WORKDIR}/snort.init ${D}${sysconfdir}/init.d/snort
+    fi
 
+    if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+        install -d ${D}/${systemd_system_unitdir}
+        install -m 644 ${WORKDIR}/snort.service ${D}/${systemd_system_unitdir}
+        # Install default environment file
+        install -d ${D}/${sysconfdir}/default
+        install -m 0644 ${WORKDIR}/snort.default ${D}${sysconfdir}/default/snort
+    fi
     install -d ${D}${sysconfdir}/default/volatiles
     install -m 0644 ${WORKDIR}/volatiles.99_snort ${D}${sysconfdir}/default/volatiles/99_snort
 
@@ -87,6 +102,7 @@
     ${libdir}/snort_dynamicengine/*.so.* \
     ${libdir}/snort_dynamicpreprocessor/*.so.* \
     ${libdir}/snort_dynamicrules/*.so.* \
+    ${systemd_system_unitdir}/snort.service \
 "
 FILES:${PN}-dbg += " \
     ${libdir}/snort_dynamicengine/.debug \
diff --git a/meta-openembedded/meta-networking/recipes-devtools/libcoap/libcoap_4.3.1.bb b/meta-openembedded/meta-networking/recipes-devtools/libcoap/libcoap_4.3.1.bb
index 0fc3425..efea3fa 100644
--- a/meta-openembedded/meta-networking/recipes-devtools/libcoap/libcoap_4.3.1.bb
+++ b/meta-openembedded/meta-networking/recipes-devtools/libcoap/libcoap_4.3.1.bb
@@ -16,6 +16,8 @@
 
 inherit autotools manpages pkgconfig ptest
 
+DEPENDS += "ctags-native"
+
 PACKAGECONFIG ?= "\
     async openssl tcp \
     ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
@@ -42,6 +44,10 @@
 
 export SGML_CATALOG_FILES="file://${STAGING_ETCDIR_NATIVE}/xml/catalog"
 
+do_compile:prepend() {
+    oe_runmake update-map-file
+}
+
 do_install_ptest () {
 	install -d ${D}${PTEST_PATH}
 	install -m 0755 ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/run-ptest
diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-Disable-annobin-plugin.patch b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-Disable-annobin-plugin.patch
new file mode 100644
index 0000000..6302829
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-Disable-annobin-plugin.patch
@@ -0,0 +1,31 @@
+From 5a0799d0bacc0cf93e15febdac7d8c50b21e7234 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 15 Jul 2023 13:13:12 -0700
+Subject: [PATCH] Disable annobin plugin
+
+OE gcc does not build this plugin, moreover there are non gcc compilers
+which can be used with OE as well e.g. clang which might not have it
+either
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ dlm_controld/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dlm_controld/Makefile b/dlm_controld/Makefile
+index 8802d88..0380ec9 100644
+--- a/dlm_controld/Makefile
++++ b/dlm_controld/Makefile
+@@ -47,7 +47,7 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
+ 
+ BIN_CFLAGS += $(CFLAGS) -fPIE -DPIE
+ BIN_CFLAGS += -I../include -I../libdlm
+-LIB_CFLAGS += $(CFLAGS) -fPIC -fplugin=annobin
++LIB_CFLAGS += $(CFLAGS) -fPIC
+ 
+ BIN_LDFLAGS += $(LDFLAGS) -Wl,-z,relro -Wl,-z,now -pie
+ BIN_LDFLAGS += -lpthread -lrt -lcpg -lcmap -lcfg -lquorum -luuid
+-- 
+2.41.0
+
diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-Remove-fcf-protection-full.patch b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-Remove-fcf-protection-full.patch
new file mode 100644
index 0000000..6290aa4
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-Remove-fcf-protection-full.patch
@@ -0,0 +1,64 @@
+From e4ae70ae71f88d48cf1ab63810c9f7b4177af3a5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 15 Jul 2023 19:05:54 -0700
+Subject: [PATCH] Remove -fcf-protection=full
+
+This option is not available on all architectures e.g. RISC-V
+Fixes
+| cc1: error: '-fcf-protection=full' is not supported for this target
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ dlm_controld/Makefile | 1 -
+ dlm_tool/Makefile     | 1 -
+ fence/Makefile        | 1 -
+ libdlm/Makefile       | 4 ++--
+ 4 files changed, 2 insertions(+), 5 deletions(-)
+
+--- a/dlm_controld/Makefile
++++ b/dlm_controld/Makefile
+@@ -43,7 +43,7 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
+ 	-Wno-sign-compare -Wno-unused-parameter -Wp,-D_FORTIFY_SOURCE=2 \
+ 	-fexceptions -fasynchronous-unwind-tables -fdiagnostics-show-option \
+ 	-Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong \
+-	-fstack-clash-protection -fcf-protection=full
++	-fstack-clash-protection
+ 
+ BIN_CFLAGS += $(CFLAGS) -fPIE -DPIE
+ BIN_CFLAGS += -I../include -I../libdlm
+--- a/dlm_tool/Makefile
++++ b/dlm_tool/Makefile
+@@ -15,7 +15,7 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
+ 	-Wno-sign-compare -Wno-unused-parameter -Wp,-D_FORTIFY_SOURCE=2 \
+ 	-fexceptions -fasynchronous-unwind-tables -fdiagnostics-show-option \
+ 	-Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong \
+-	-fstack-clash-protection -fcf-protection=full
++	-fstack-clash-protection
+ 
+ CFLAGS += -fPIE -DPIE
+ CFLAGS += -I../include -I../libdlm -I../dlm_controld
+--- a/fence/Makefile
++++ b/fence/Makefile
+@@ -15,7 +15,7 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
+ 	-Wno-sign-compare -Wno-unused-parameter -Wp,-D_FORTIFY_SOURCE=2 \
+ 	-fexceptions -fasynchronous-unwind-tables -fdiagnostics-show-option \
+ 	-Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong \
+-	-fstack-clash-protection -fcf-protection=full
++	-fstack-clash-protection
+ 
+ CFLAGS += -fPIE -DPIE
+ CFLAGS += -I../include
+--- a/libdlm/Makefile
++++ b/libdlm/Makefile
+@@ -80,8 +80,8 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
+ 	-fdiagnostics-show-option \
+ 	-fPIC
+ 
+-LIB_CFLAGS += $(CFLAGS) -D_REENTRANT -fcf-protection=full
+-LLT_CFLAGS += $(CFLAGS) -fcf-protection=full
++LIB_CFLAGS += $(CFLAGS) -D_REENTRANT
++LLT_CFLAGS += $(CFLAGS)
+ 
+ LIB_LDFLAGS += $(LDFLAGS) -lpthread -Wl,-z,now
+ LLT_LDFLAGS += $(LDFLAGS) -Wl,-z,now
diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch
deleted file mode 100644
index 3d15515..0000000
--- a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From da08f5ec5e553bd43f92a0b0f7476179b0b74502 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Wed, 26 Jun 2019 11:49:33 +0800
-Subject: [PATCH] dlm: fix compile error since xml2-config should not be used
-
-xml2-config is disabled, so change Makefile to use pkgconfig
-to find libxml2.
-
-Upstream-Status: Inappropriate [oe-specific]
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-
----
- fence/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/fence/Makefile b/fence/Makefile
-index 2b080468..ff2eda3f 100644
---- a/fence/Makefile
-+++ b/fence/Makefile
-@@ -18,12 +18,12 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
- 	-fstack-clash-protection -Wl,-z,now
- 
- CFLAGS += -fPIE -DPIE
--CFLAGS += `xml2-config --cflags`
-+CFLAGS += `pkg-config libxml-2.0 --cflags`
- CFLAGS += -I../include
- CFLAGS += $(shell pkg-config --cflags pacemaker-fencing)
- 
- LDFLAGS += -Wl,-z,relro -Wl,-z,defs -pie
--LDFLAGS += `xml2-config --libs`
-+LDFLAGS += `pkg-config libxml-2.0 --libs`
- LDFLAGS += -ldl
- 
- all: $(BIN_TARGET)
diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm_controld-remove-unnecessary-header-include.patch b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm_controld-remove-unnecessary-header-include.patch
new file mode 100644
index 0000000..55efcea
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0001-dlm_controld-remove-unnecessary-header-include.patch
@@ -0,0 +1,35 @@
+From 4c40289eb9e47cfd272a8cc402fd2ddb29e2a3dc Mon Sep 17 00:00:00 2001
+From: Alexander Aring <aahringo@redhat.com>
+Date: Wed, 24 May 2023 13:50:59 +0000
+Subject: [PATCH] dlm_controld: remove unnecessary header include
+
+The timewarn netlink functionality got dropped and will be removed by
+kernel v6.4. The user space part was already dropped by commit 34ea31e7
+("controld: remove timewarn handling"). This is just a left over of this
+commit. Recent builds fails now because the UAPI header in the Linux
+kernel was removed. This means older dlm sources cannot be build with
+newer kernel-headers, however it is not recommended to use older dlm
+sources and all existing users should upgrade anyway.
+
+Upstream-Status: Backport [https://pagure.io/dlm/c/ddbba6608896f81bfce8f8edf3d0f507714cfc43?branch=main]
+Reported-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ dlm_controld/main.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/dlm_controld/main.c b/dlm_controld/main.c
+index 7cf6348..e70e96a 100644
+--- a/dlm_controld/main.c
++++ b/dlm_controld/main.c
+@@ -12,7 +12,6 @@
+ #include <pthread.h>
+ #include <linux/netlink.h>
+ #include <linux/genetlink.h>
+-#include <linux/dlm_netlink.h>
+ #include <uuid/uuid.h>
+ 
+ #ifdef USE_SD_NOTIFY
+-- 
+2.41.0
+
diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0004-include-string.h-for-memset-prototype.patch b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0004-include-string.h-for-memset-prototype.patch
deleted file mode 100644
index 257c5d0..0000000
--- a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm/0004-include-string.h-for-memset-prototype.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 9652e6b3c43b4c051f2ff0e000d7ebf5fbab418e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 29 Aug 2022 10:54:51 -0700
-Subject: [PATCH] include string.h for memset prototype
-
-Upstream-Status: Submitted [https://pagure.io/dlm/pull-request/3]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- dlm_controld/lib.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/dlm_controld/lib.c b/dlm_controld/lib.c
-index 8cbdd27f..a7502fcd 100644
---- a/dlm_controld/lib.c
-+++ b/dlm_controld/lib.c
-@@ -10,6 +10,7 @@
- #include <stdlib.h>
- #include <unistd.h>
- #include <stdint.h>
-+#include <string.h>
- #include <errno.h>
- #include <time.h>
- #include <sys/types.h>
diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.1.1.bb b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.2.0.bb
similarity index 79%
rename from meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.1.1.bb
rename to meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.2.0.bb
index bb33890..094dbb1 100644
--- a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.1.1.bb
+++ b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.2.0.bb
@@ -6,13 +6,14 @@
 REQUIRED_DISTRO_FEATURES = "systemd"
 
 SRC_URI = "https://pagure.io/dlm/archive/dlm-${PV}/dlm-dlm-${PV}.tar.gz \
-           file://0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch \
            file://0001-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch \
            file://0001-make-Replace-cp-a-with-mode-preserving-options.patch \
-           file://0004-include-string.h-for-memset-prototype.patch \
+           file://0001-dlm_controld-remove-unnecessary-header-include.patch \
+           file://0001-Disable-annobin-plugin.patch \
+           file://0001-Remove-fcf-protection-full.patch \
            "
 
-SRC_URI[sha256sum] = "f12c0056b9196dfcecbec2fa8930feb87c605a86ef0f3d7bd6fb0b77cd7f45ca"
+SRC_URI[sha256sum] = "90237e18af7422ac15fc756899b3bb6932597b13342296de8e0e120e6d8729ab"
 
 UPSTREAM_CHECK_URI = "https://pagure.io/dlm/releases"
 UPSTREAM_CHECK_REGEX = "dlm-(?P<pver>\d+(\.\d+)+)"
@@ -35,11 +36,15 @@
 
 export EXTRA_OEMAKE = ""
 
-DONTBUILD = "${@bb.utils.contains('PACKAGECONFIG', 'pacemaker', '', 'fence', d)}"
+CFPROTECTION ?= "-fcf-protection=full"
+CFPROTECTION:riscv64 = ""
+CFPROTECTION:arm = ""
 
-do_compile:prepend:toolchain-clang() {
-    sed -i -e "s/-fstack-clash-protection//g" ${S}/*/Makefile
-}
+CFLAGS += "${CFPROTECTION}"
+
+PARALLEL_MAKE = ""
+
+DONTBUILD = "${@bb.utils.contains('PACKAGECONFIG', 'pacemaker', '', 'fence', d)}"
 
 do_compile() {
     sed -i "s/libsystemd-daemon/libsystemd/g" ${S}/dlm_controld/Makefile
@@ -57,4 +62,3 @@
         install -Dm 0644 ${S}/init/dlm.service ${D}${systemd_unitdir}/system/dlm.service
     fi
 }
-
diff --git a/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.7.bb b/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.7.bb
index 8b47ceb..0c6fd90 100644
--- a/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.7.bb
+++ b/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.7.bb
@@ -11,6 +11,7 @@
 SRC_URI = "http://www.netfilter.org/projects/conntrack-tools/files/conntrack-tools-${PV}.tar.bz2 \
     file://conntrack-failover \
     file://init \
+    file://conntrackd.service \
 "
 SRC_URI[sha256sum] = "099debcf57e81690ced57f516b493588a73518f48c14d656f823b29b4fc24b5d"
 
@@ -25,6 +26,10 @@
 
 INITSCRIPT_NAME = "conntrackd"
 
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "conntrackd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
 do_install:append() {
 	install -d ${D}/${sysconfdir}/conntrackd
 	install -d ${D}/${sysconfdir}/init.d
@@ -37,6 +42,11 @@
 	sed -i 's!/etc/!${sysconfdir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd
 	sed -i 's!/var/!${localstatedir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd ${D}/${sysconfdir}/conntrackd/conntrackd.conf.sample
 	sed -i 's!^export PATH=.*!export PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}/${sysconfdir}/init.d/conntrackd
+
+	if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+		install -d ${D}/${systemd_system_unitdir}
+		install -m 644 ${WORKDIR}/conntrackd.service ${D}/${systemd_system_unitdir}
+	fi
 }
 
 # fix error message: Do not forget that you need *root* or CAP_NET_ADMIN capabilities ;-)
@@ -44,3 +54,7 @@
 	setcap cap_net_admin+ep "$D/${sbindir}/conntrack"
 }
 PACKAGE_WRITE_DEPS += "libcap-native"
+
+RRECOMMENDS:${PN} = "kernel-module-nf-conntrack kernel-module-nfnetlink \
+                     kernel-module-nf-conntrack-netlink \
+                    "
diff --git a/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/conntrackd.service b/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/conntrackd.service
new file mode 100644
index 0000000..b3b0f1d
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-filter/conntrack-tools/files/conntrackd.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Conntrack Daemon
+Documentation=man:conntrackd(8) man:conntrackd.conf(5)
+
+[Service]
+Type=notify
+ExecStartPre=-/bin/rm -f /var/lock/conntrackd.lock
+ExecStart=/usr/sbin/conntrackd -C /etc/conntrackd/conntrackd.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_3.8.bb b/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_4.0.1.bb
similarity index 93%
rename from meta-openembedded/meta-networking/recipes-irc/weechat/weechat_3.8.bb
rename to meta-openembedded/meta-networking/recipes-irc/weechat/weechat_4.0.1.bb
index 8c77093..00472e2 100644
--- a/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_3.8.bb
+++ b/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_4.0.1.bb
@@ -10,7 +10,7 @@
            file://0001-use-pkg-config-for-gcrypt-instead.patch \
            "
 
-SRC_URI[sha256sum] = "f7cb65c200f8c090c56f2cf98c0b184051e516e5f7099a4308cacf86f174bf28"
+SRC_URI[sha256sum] = "1b9533123af427922b3d7fabede958dc85392d50881d97d0b7986d8f514556e9"
 
 inherit cmake pkgconfig
 
diff --git a/meta-openembedded/meta-networking/recipes-protocols/frr/frr_8.4.2.bb b/meta-openembedded/meta-networking/recipes-protocols/frr/frr_8.4.4.bb
similarity index 98%
rename from meta-openembedded/meta-networking/recipes-protocols/frr/frr_8.4.2.bb
rename to meta-openembedded/meta-networking/recipes-protocols/frr/frr_8.4.4.bb
index 9669260..b87c3e7 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/frr/frr_8.4.2.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/frr/frr_8.4.4.bb
@@ -14,7 +14,7 @@
            file://0001-m4-ax_python.m4-check-for-python-x.y-emded.pc-not-py.patch \
            "
 
-SRCREV = "62ac43de9f3bc470586cf4f51fadf013bf542b32"
+SRCREV = "45e36c0c00a517ad1606135b18c5753e210cfc0d"
 
 UPSTREAM_CHECK_GITTAGREGEX = "frr-(?P<pver>\d+(\.\d+)+)$"
 
diff --git a/meta-openembedded/meta-networking/recipes-support/mdio-tools/mdio-tools.inc b/meta-openembedded/meta-networking/recipes-support/mdio-tools/mdio-tools.inc
index 7afe1c5..46d0c1b 100644
--- a/meta-openembedded/meta-networking/recipes-support/mdio-tools/mdio-tools.inc
+++ b/meta-openembedded/meta-networking/recipes-support/mdio-tools/mdio-tools.inc
@@ -5,4 +5,4 @@
 LIC_FILES_CHKSUM = "file://${WORKDIR}/git/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
 SRC_URI = "git://github.com/wkz/mdio-tools.git;protocol=https;branch=master"
-SRCREV = "ee47c32d958ae0dcb9900b3b06654a8c08001331"
+SRCREV = "0dbfca13a094d20d736153c63161cf11b9ccf2d3"
diff --git a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/CVE-2023-20867.patch b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/CVE-2023-20867.patch
new file mode 100644
index 0000000..170dddf
--- /dev/null
+++ b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools/CVE-2023-20867.patch
@@ -0,0 +1,163 @@
+From 3028cdd4c0b2461b904cbe5a5868c8e591aa0941 Mon Sep 17 00:00:00 2001
+From: John Wolfe <jwolfe@vmware.com>
+Date: Mon, 8 May 2023 19:04:57 -0700
+Subject: [PATCH] Remove some dead code.
+
+Address CVE-2023-20867.
+Remove some authentication types which were deprecated long
+ago and are no longer in use. These are dead code.
+
+CVE: CVE-2023-20867
+
+Upstream-Status: Backport
+[https://github.com/vmware/open-vm-tools/blob/CVE-2023-20867.patch/2023-20867-Remove-some-dead-code.patch]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ open-vm-tools/services/plugins/vix/vixTools.c | 102 --------------------------
+ 1 file changed, 102 deletions(-)
+
+diff --git a/open-vm-tools/services/plugins/vix/vixTools.c b/open-vm-tools/services/plugins/vix/vixTools.c
+index 9f376a7..85c5ba7 100644
+--- a/open-vm-tools/services/plugins/vix/vixTools.c
++++ b/open-vm-tools/services/plugins/vix/vixTools.c
+@@ -254,8 +254,6 @@ char *gImpersonatedUsername = NULL;
+ #define  VIX_TOOLS_CONFIG_API_AUTHENTICATION          "Authentication"
+ #define  VIX_TOOLS_CONFIG_AUTHTYPE_AGENTS             "InfrastructureAgents"
+ 
+-#define VIX_TOOLS_CONFIG_INFRA_AGENT_DISABLED_DEFAULT  TRUE
+-
+ /*
+  * The switch that controls all APIs
+  */
+@@ -730,9 +728,6 @@ VixError GuestAuthSAMLAuthenticateAndImpersonate(
+ 
+ void GuestAuthUnimpersonate();
+ 
+-static Bool VixToolsCheckIfAuthenticationTypeEnabled(GKeyFile *confDictRef,
+-                                                     const char *typeName);
+-
+ #if SUPPORT_VGAUTH
+ 
+ VGAuthError TheVGAuthContext(VGAuthContext **ctx);
+@@ -8013,29 +8008,6 @@ VixToolsImpersonateUser(VixCommandRequestHeader *requestMsg,   // IN
+                                           userToken);
+       break;
+    }
+-   case VIX_USER_CREDENTIAL_ROOT:
+-   {
+-      if ((requestMsg->requestFlags & VIX_REQUESTMSG_HAS_HASHED_SHARED_SECRET) &&
+-          !VixToolsCheckIfAuthenticationTypeEnabled(gConfDictRef,
+-                                            VIX_TOOLS_CONFIG_AUTHTYPE_AGENTS)) {
+-          /*
+-           * Don't accept hashed shared secret if disabled.
+-           */
+-          g_message("%s: Requested authentication type has been disabled.\n",
+-                    __FUNCTION__);
+-          err = VIX_E_GUEST_AUTHTYPE_DISABLED;
+-          goto done;
+-      }
+-   }
+-   // fall through
+-
+-   case VIX_USER_CREDENTIAL_CONSOLE_USER:
+-      err = VixToolsImpersonateUserImplEx(NULL,
+-                                          credentialType,
+-                                          NULL,
+-                                          loadUserProfile,
+-                                          userToken);
+-      break;
+    case VIX_USER_CREDENTIAL_NAME_PASSWORD:
+    case VIX_USER_CREDENTIAL_NAME_PASSWORD_OBFUSCATED:
+    case VIX_USER_CREDENTIAL_NAMED_INTERACTIVE_USER:
+@@ -8205,36 +8177,6 @@ VixToolsImpersonateUserImplEx(char const *credentialTypeStr,         // IN
+       }
+ 
+       /*
+-       * If the VMX asks to be root, then we allow them.
+-       * The VMX will make sure that only it will pass this value in,
+-       * and only when the VM and host are configured to allow this.
+-       */
+-      if ((VIX_USER_CREDENTIAL_ROOT == credentialType)
+-            && (thisProcessRunsAsRoot)) {
+-         *userToken = PROCESS_CREATOR_USER_TOKEN;
+-
+-         gImpersonatedUsername = Util_SafeStrdup("_ROOT_");
+-         err = VIX_OK;
+-         goto quit;
+-      }
+-
+-      /*
+-       * If the VMX asks to be root, then we allow them.
+-       * The VMX will make sure that only it will pass this value in,
+-       * and only when the VM and host are configured to allow this.
+-       *
+-       * XXX This has been deprecated XXX
+-       */
+-      if ((VIX_USER_CREDENTIAL_CONSOLE_USER == credentialType)
+-            && ((allowConsoleUserOps) || !(thisProcessRunsAsRoot))) {
+-         *userToken = PROCESS_CREATOR_USER_TOKEN;
+-
+-         gImpersonatedUsername = Util_SafeStrdup("_CONSOLE_USER_NAME_");
+-         err = VIX_OK;
+-         goto quit;
+-      }
+-
+-      /*
+        * If the VMX asks us to run commands in the context of the current
+        * user, make sure that the user who requested the command is the
+        * same as the current user.
+@@ -10917,50 +10859,6 @@ VixToolsCheckIfVixCommandEnabled(int opcode,                          // IN
+ /*
+  *-----------------------------------------------------------------------------
+  *
+- * VixToolsCheckIfAuthenticationTypeEnabled --
+- *
+- *    Checks to see if a given authentication type has been
+- *    disabled via the tools configuration.
+- *
+- * Return value:
+- *    TRUE if enabled, FALSE otherwise.
+- *
+- * Side effects:
+- *    None
+- *
+- *-----------------------------------------------------------------------------
+- */
+-
+-static Bool
+-VixToolsCheckIfAuthenticationTypeEnabled(GKeyFile *confDictRef,     // IN
+-                                         const char *typeName)      // IN
+-{
+-   char authnDisabledName[64]; // Authentication.<AuthenticationType>.disabled
+-   gboolean disabled;
+-
+-   Str_Snprintf(authnDisabledName, sizeof(authnDisabledName),
+-                VIX_TOOLS_CONFIG_API_AUTHENTICATION ".%s.disabled",
+-                typeName);
+-
+-   ASSERT(confDictRef != NULL);
+-
+-   /*
+-    * XXX Skip doing the strcmp() to verify the auth type since we only
+-    * have the one typeName (VIX_TOOLS_CONFIG_AUTHTYPE_AGENTS), and default
+-    * it to VIX_TOOLS_CONFIG_INFRA_AGENT_DISABLED_DEFAULT.
+-    */
+-   disabled = VMTools_ConfigGetBoolean(confDictRef,
+-                                       VIX_TOOLS_CONFIG_API_GROUPNAME,
+-                                       authnDisabledName,
+-                                       VIX_TOOLS_CONFIG_INFRA_AGENT_DISABLED_DEFAULT);
+-
+-   return !disabled;
+-}
+-
+-
+-/*
+- *-----------------------------------------------------------------------------
+- *
+  * VixTools_ProcessVixCommand --
+  *
+  *
+-- 
+2.6.2
+
diff --git a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools_12.1.5.bb b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools_12.1.5.bb
index d389d24..e12e4be 100644
--- a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools_12.1.5.bb
+++ b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools_12.1.5.bb
@@ -43,6 +43,7 @@
            file://0012-hgfsServerLinux-Consider-64bit-time_t-possibility.patch;patchdir=.. \
            file://0013-open-vm-tools-Correct-include-path-for-poll.h.patch;patchdir=.. \
            file://0001-timeSync-Portable-way-to-print-64bit-time_t.patch;patchdir=.. \
+           file://CVE-2023-20867.patch;patchdir=.. \
            "
 
 UPSTREAM_CHECK_GITTAGREGEX = "stable-(?P<pver>\d+(\.\d+)+)"
diff --git a/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.4.3.bb b/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.4.4.bb
similarity index 88%
rename from meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.4.3.bb
rename to meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.4.4.bb
index d461c8d..c7d14e2 100644
--- a/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.4.3.bb
+++ b/meta-openembedded/meta-networking/recipes-support/tcpreplay/tcpreplay_4.4.4.bb
@@ -11,7 +11,7 @@
            file://0001-libopts.m4-set-POSIX_SHELL-to-bin-sh.patch \
           "
 
-SRC_URI[sha256sum] = "216331692e10c12d7f257945e777928d79bd091117f3e4ffb5b312eb2ca0bf7c"
+SRC_URI[sha256sum] = "44f18fb6d3470ecaf77a51b901a119dae16da5be4d4140ffbb2785e37ad6d4bf"
 
 UPSTREAM_CHECK_URI = "https://github.com/appneta/tcpreplay/releases"
 
diff --git a/meta-openembedded/meta-oe/conf/include/ptest-packagelists-meta-oe.inc b/meta-openembedded/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
index 0c5f6be..77dace0 100644
--- a/meta-openembedded/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
+++ b/meta-openembedded/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
@@ -26,7 +26,6 @@
     libxmlb \
     libyang \
     lmdb \
-    mcelog \
     minicoredumper \
     neon \
     nodejs \
@@ -38,6 +37,9 @@
     xmlsec1 \
     zeromq \
 "
+PTESTS_FAST_META_OE:append:x86 = " mcelog"
+PTESTS_FAST_META_OE:append:x86-64 = " mcelog"
+
 PTESTS_FAST_META_OE:remove:libc-musl = "minicoredumper"
 PTESTS_FAST_META_OE:remove:riscv64 = "nodejs"
 PTESTS_FAST_META_OE:remove:riscv32 = "nodejs"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.2.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.3.bb
similarity index 95%
rename from meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.2.bb
rename to meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.3.bb
index 7c31977..0987522 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.2.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.3.bb
@@ -7,7 +7,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
 
-SRC_URI[sha256sum] = "06fdb1000cb3f25ff78a2441c0e0f9e5bb2abec3eff907d57f58c1709c110217"
+SRC_URI[sha256sum] = "4d27661113c54e3b0998328f15ca7fd9e4837d1975c7c213595cb940f4b11484"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.5.bb b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.6.bb
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.5.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.6.bb
index e1f21c3..64d6232 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.5.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.6.bb
@@ -8,7 +8,7 @@
 SRC_URI = "https://www.kernel.org/pub/linux/network/wireless/${BP}.tar.xz \
            file://0001-build-Use-abs_top_srcdir-instead-of-abs_srcdir-for-e.patch \
            "
-SRC_URI[sha256sum] = "3441effed58297b63779e706c74884234acb874b07872f8b55e0da28729fda32"
+SRC_URI[sha256sum] = "f7ac93aeef672604f5b5194ca038035ae222925be392c4345873c9742f477797"
 
 inherit autotools manpages pkgconfig python3native systemd
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/files/CVE-2023-35789.patch b/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/files/CVE-2023-35789.patch
new file mode 100644
index 0000000..dfd1f98
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/files/CVE-2023-35789.patch
@@ -0,0 +1,131 @@
+CVE: CVE-2023-35789
+Upstream-Status: Backport [ https://github.com/alanxz/rabbitmq-c/commit/463054383fbeef889b409a7f843df5365288e2a0 ]
+Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
+
+From 463054383fbeef889b409a7f843df5365288e2a0 Mon Sep 17 00:00:00 2001
+From: Christian Kastner <ckk@kvr.at>
+Date: Tue, 13 Jun 2023 14:21:52 +0200
+Subject: [PATCH] Add option to read username/password from file (#781)
+
+* Add option to read username/password from file
+---
+ tools/common.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 66 insertions(+)
+
+diff --git a/tools/common.c b/tools/common.c
+index 73b47e25..7efe557b 100644
+--- a/tools/common.c
++++ b/tools/common.c
+@@ -18,6 +18,11 @@
+ #include "compat.h"
+ #endif
+ 
++/* For when reading auth data from a file */
++#define MAXAUTHTOKENLEN 128
++#define USERNAMEPREFIX "username:"
++#define PASSWORDPREFIX "password:"
++
+ void die(const char *fmt, ...) {
+   va_list ap;
+   va_start(ap, fmt);
+@@ -125,6 +130,7 @@ static char *amqp_vhost;
+ static char *amqp_username;
+ static char *amqp_password;
+ static int amqp_heartbeat = 0;
++static char *amqp_authfile;
+ #ifdef WITH_SSL
+ static int amqp_ssl = 0;
+ static char *amqp_cacert = "/etc/ssl/certs/cacert.pem";
+@@ -147,6 +153,8 @@ struct poptOption connect_options[] = {
+      "the password to login with", "password"},
+     {"heartbeat", 0, POPT_ARG_INT, &amqp_heartbeat, 0,
+      "heartbeat interval, set to 0 to disable", "heartbeat"},
++    {"authfile", 0, POPT_ARG_STRING, &amqp_authfile, 0,
++     "path to file containing username/password for authentication", "file"},
+ #ifdef WITH_SSL
+     {"ssl", 0, POPT_ARG_NONE, &amqp_ssl, 0, "connect over SSL/TLS", NULL},
+     {"cacert", 0, POPT_ARG_STRING, &amqp_cacert, 0,
+@@ -158,6 +166,50 @@ struct poptOption connect_options[] = {
+ #endif /* WITH_SSL */
+     {NULL, '\0', 0, NULL, 0, NULL, NULL}};
+ 
++void read_authfile(const char *path) {
++  size_t n;
++  FILE *fp = NULL;
++  char token[MAXAUTHTOKENLEN];
++
++  if ((amqp_username = malloc(MAXAUTHTOKENLEN)) == NULL ||
++      (amqp_password = malloc(MAXAUTHTOKENLEN)) == NULL) {
++    die("Out of memory");
++  } else if ((fp = fopen(path, "r")) == NULL) {
++    die("Could not read auth data file %s", path);
++  }
++
++  if (fgets(token, MAXAUTHTOKENLEN, fp) == NULL ||
++      strncmp(token, USERNAMEPREFIX, strlen(USERNAMEPREFIX))) {
++    die("Malformed auth file (missing username)");
++  }
++  strncpy(amqp_username, &token[strlen(USERNAMEPREFIX)], MAXAUTHTOKENLEN);
++  /* Missing newline means token was cut off */
++  n = strlen(amqp_username);
++  if (amqp_username[n - 1] != '\n') {
++    die("Username too long");
++  } else {
++    amqp_username[n - 1] = '\0';
++  }
++
++  if (fgets(token, MAXAUTHTOKENLEN, fp) == NULL ||
++      strncmp(token, PASSWORDPREFIX, strlen(PASSWORDPREFIX))) {
++    die("Malformed auth file (missing password)");
++  }
++  strncpy(amqp_password, &token[strlen(PASSWORDPREFIX)], MAXAUTHTOKENLEN);
++  /* Missing newline means token was cut off */
++  n = strlen(amqp_password);
++  if (amqp_password[n - 1] != '\n') {
++    die("Password too long");
++  } else {
++    amqp_password[n - 1] = '\0';
++  }
++
++  (void)fgetc(fp);
++  if (!feof(fp)) {
++    die("Malformed auth file (trailing data)");
++  }
++}
++
+ static void init_connection_info(struct amqp_connection_info *ci) {
+   ci->user = NULL;
+   ci->password = NULL;
+@@ -237,6 +289,8 @@ static void init_connection_info(struct amqp_connection_info *ci) {
+   if (amqp_username) {
+     if (amqp_url) {
+       die("--username and --url options cannot be used at the same time");
++    } else if (amqp_authfile) {
++      die("--username and --authfile options cannot be used at the same time");
+     }
+ 
+     ci->user = amqp_username;
+@@ -245,11 +299,23 @@ static void init_connection_info(struct amqp_connection_info *ci) {
+   if (amqp_password) {
+     if (amqp_url) {
+       die("--password and --url options cannot be used at the same time");
++    } else if (amqp_authfile) {
++      die("--password and --authfile options cannot be used at the same time");
+     }
+ 
+     ci->password = amqp_password;
+   }
+ 
++  if (amqp_authfile) {
++    if (amqp_url) {
++      die("--authfile and --url options cannot be used at the same time");
++    }
++
++    read_authfile(amqp_authfile);
++    ci->user = amqp_username;
++    ci->password = amqp_password;
++  }
++
+   if (amqp_vhost) {
+     if (amqp_url) {
+       die("--vhost and --url options cannot be used at the same time");
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.13.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.13.0.bb
index f9c2b2c..ea80ec3 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.13.0.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.13.0.bb
@@ -3,7 +3,9 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=7e12f6e40e662e039e2f02b4893011ec"
 LICENSE = "MIT"
 
-SRC_URI = "git://github.com/alanxz/rabbitmq-c.git;branch=master;protocol=https"
+SRC_URI = "git://github.com/alanxz/rabbitmq-c.git;branch=master;protocol=https \
+           file://CVE-2023-35789.patch \
+"
 # v0.13.0-master
 SRCREV = "974d71adceae6d742ae20a4c880d99c131f1460a"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_4.10.0.bb
similarity index 86%
rename from meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_4.10.0.bb
index 1dbdc3e..948d312 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/cppzmq_4.10.0.bb
@@ -4,8 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=db174eaf7b55a34a7c89551197f66e94"
 DEPENDS = "zeromq"
 
-SRCREV = "d67b6352b87a238775cd17e4376b980d07fa7939"
-PV = "4.9.0"
+SRCREV = "c94c20743ed7d4aa37835a5c46567ab0790d4acc"
 
 SRC_URI = "git://github.com/zeromq/cppzmq.git;branch=master;protocol=https"
 
diff --git a/meta-openembedded/meta-oe/recipes-core/emlog/emlog.inc b/meta-openembedded/meta-oe/recipes-core/emlog/emlog.inc
index 208b39a..0972aff 100644
--- a/meta-openembedded/meta-oe/recipes-core/emlog/emlog.inc
+++ b/meta-openembedded/meta-oe/recipes-core/emlog/emlog.inc
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 
 SRC_URI = "git://github.com/nicupavel/emlog.git;protocol=https;branch=master"
-SRCREV = "aee53e8dee862f35291242ba41b0ca88010f6c71"
+SRCREV = "a9bbf324fde131ff4cf064e32674086c4ced4dca"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.bb b/meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.8.bb
similarity index 90%
rename from meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.bb
rename to meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.8.bb
index f4d983a..ad7a3a7 100644
--- a/meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.bb
+++ b/meta-openembedded/meta-oe/recipes-core/glfw/glfw_3.3.8.bb
@@ -11,8 +11,8 @@
 inherit pkgconfig cmake features_check
 
 PV .= "+git${SRCPV}"
-SRCREV = "781fbbadb0bccc749058177b1385c82da9ace880"
-SRC_URI = "git://github.com/glfw/glfw.git;branch=master;protocol=https"
+SRCREV = "7482de6071d21db77a7236155da44c172a7f6c9e"
+SRC_URI = "git://github.com/glfw/glfw.git;branch=3.3-stable;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
index 469e202..0a88f37 100644
--- a/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
+++ b/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
@@ -569,7 +569,6 @@
     xclock \
     xfontsel \
     xkbprint \
-    xsetmode \
     xlsatoms \
     xlsclients \
     xlsfonts \
@@ -595,9 +594,7 @@
     font-cursor-misc \
     font-misc-misc \
     xorg-fonts-100dpi \
-    liblbxutil \
     libxaw6 \
-    libxkbui \
     libxpresent \
     xcb-util-cursor \
     xserver-common \
diff --git a/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/psqlodbc_13.02.0000.bb b/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/psqlodbc_15.00.0000.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-dbs/psqlodbc/psqlodbc_13.02.0000.bb
rename to meta-openembedded/meta-oe/recipes-dbs/psqlodbc/psqlodbc_15.00.0000.bb
index 57ade61..be79cae 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/psqlodbc_13.02.0000.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/psqlodbc/psqlodbc_15.00.0000.bb
@@ -26,7 +26,7 @@
     file://run-ptest \
 "
 
-SRC_URI[sha256sum] = "b39b7e5c41fd6475c551112fa724bf57c4a446175ec4188a90e2844cc1612585"
+SRC_URI[sha256sum] = "ca57d6349532ea7fb4fae17bbfc107abe5a155ca2f43446315f9e23764b3f8ec"
 
 DEPENDS += "postgresql unixodbc"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Do-not-add-stack-pointer-to-clobber-list.patch b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Do-not-add-stack-pointer-to-clobber-list.patch
deleted file mode 100644
index e572022..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Do-not-add-stack-pointer-to-clobber-list.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 5c63eb5d56abd4e5232add4727247965a863d851 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 15 Dec 2019 14:02:45 -0800
-Subject: [PATCH] Do not add stack pointer to clobber list
-
-It was being ignored until now when gcc 9.0 became capable
-of flagging these silent ignore via [1].
-
-We weren't actually clobbering the stack pointers here
-so it should not cause change in behavior.
-
-[1] https://gcc.gnu.org/PR52813
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- linux_syscall_support.h | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/linux_syscall_support.h b/linux_syscall_support.h
-index 9276f56..6e73309 100644
---- a/linux_syscall_support.h
-+++ b/linux_syscall_support.h
-@@ -1955,7 +1955,7 @@ struct kernel_statfs {
-                            LSS_ENTRYPOINT                                     \
-                            "pop %%ebx"                                        \
-                            args                                               \
--                           : "esp", "memory");                                \
-+                           : "memory");                                       \
-       LSS_RETURN(type,__res)
-     #undef  _syscall0
-     #define _syscall0(type,name)                                              \
-@@ -2012,7 +2012,7 @@ struct kernel_statfs {
-                              : "i" (__NR_##name), "ri" ((long)(arg1)),        \
-                                "c" ((long)(arg2)), "d" ((long)(arg3)),        \
-                                "S" ((long)(arg4)), "D" ((long)(arg5))         \
--                             : "esp", "memory");                              \
-+                             : "memory");                                     \
-         LSS_RETURN(type,__res);                                               \
-       }
-     #undef  _syscall6
-@@ -2034,7 +2034,7 @@ struct kernel_statfs {
-                              : "i" (__NR_##name),  "0" ((long)(&__s)),        \
-                                "c" ((long)(arg2)), "d" ((long)(arg3)),        \
-                                "S" ((long)(arg4)), "D" ((long)(arg5))         \
--                             : "esp", "memory");                              \
-+                             : "memory");                                     \
-         LSS_RETURN(type,__res);                                               \
-       }
-     LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack,
-@@ -2120,7 +2120,7 @@ struct kernel_statfs {
-                            : "0"(-EINVAL), "i"(__NR_clone),
-                              "m"(fn), "m"(child_stack), "m"(flags), "m"(arg),
-                              "m"(parent_tidptr), "m"(newtls), "m"(child_tidptr)
--                           : "esp", "memory", "ecx", "edx", "esi", "edi");
-+                           : "memory", "ecx", "edx", "esi", "edi");
-       LSS_RETURN(int, __res);
-     }
- 
--- 
-2.24.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Remove-HAVE_GETCONTEXT-check-to-add-local-implementa.patch b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Remove-HAVE_GETCONTEXT-check-to-add-local-implementa.patch
index d7a5c06..df41b4d 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Remove-HAVE_GETCONTEXT-check-to-add-local-implementa.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Remove-HAVE_GETCONTEXT-check-to-add-local-implementa.patch
@@ -12,11 +12,9 @@
  Makefile.am | 12 ------------
  1 file changed, 12 deletions(-)
 
-diff --git a/Makefile.am b/Makefile.am
-index ee7454e4..69700192 100644
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -187,10 +187,6 @@ src_client_linux_libbreakpad_client_a_SOURCES = \
+@@ -529,10 +529,6 @@ src_client_linux_libbreakpad_client_a_SO
  	src/common/linux/linux_libc_support.cc \
  	src/common/linux/memory_mapped_file.cc \
  	src/common/linux/safe_readlink.cc
@@ -24,10 +22,10 @@
 -src_client_linux_libbreakpad_client_a_SOURCES += \
 -	src/common/linux/breakpad_getcontext.S
 -endif
- endif LINUX_HOST
  
- if !DISABLE_PROCESSOR
-@@ -508,10 +504,6 @@ src_client_linux_linux_client_unittest_shlib_SOURCES = \
+ # Client tests
+ src_client_linux_linux_dumper_unittest_helper_SOURCES = \
+@@ -580,10 +576,6 @@ src_client_linux_linux_client_unittest_s
  	src/processor/minidump.cc \
  	src/processor/pathname_stripper.cc \
  	src/processor/proc_maps_linux.cc
@@ -38,7 +36,7 @@
  
  src_client_linux_linux_client_unittest_shlib_CPPFLAGS = \
  	$(AM_CPPFLAGS) $(TEST_CFLAGS)
-@@ -541,10 +533,6 @@ src_client_linux_linux_client_unittest_shlib_LDADD = \
+@@ -613,10 +605,6 @@ src_client_linux_linux_client_unittest_s
  	src/common/string_conversion.o \
  	$(TEST_LIBS) \
  	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
@@ -49,6 +47,3 @@
  if ANDROID_HOST
  src_client_linux_linux_client_unittest_shlib_LDFLAGS += \
  	-llog -lm
--- 
-2.30.2
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-exception_handler.cc-Match-the-types-for-SIGSTKSZ.patch b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-exception_handler.cc-Match-the-types-for-SIGSTKSZ.patch
deleted file mode 100644
index afe8a61..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-exception_handler.cc-Match-the-types-for-SIGSTKSZ.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 66a2b6e4ba8e2b49115043127ce4aa0fcd71ad1e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 11 May 2021 11:12:35 -0700
-Subject: [PATCH] exception_handler.cc: Match the types for SIGSTKSZ
-
-In glibc 2.34, SIGSTKSZ is a syscall which returns a long int, therefore
-current check fails
-
-| ../git/src/client/linux/handler/exception_handler.cc:141:49: error: no matching function for call to 'max(int, long int)'
-|   141 |   static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);
-|       |                                         ~~~~~~~~^~~~~~~~~~~~~~~~~
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/client/linux/handler/exception_handler.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc
-index ca353c40..dc0fc4a9 100644
---- a/src/client/linux/handler/exception_handler.cc
-+++ b/src/client/linux/handler/exception_handler.cc
-@@ -138,7 +138,7 @@ void InstallAlternateStackLocked() {
-   // SIGSTKSZ may be too small to prevent the signal handlers from overrunning
-   // the alternative stack. Ensure that the size of the alternative stack is
-   // large enough.
--  static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);
-+  static const unsigned kSigStackSize = std::max(16384u, (unsigned)SIGSTKSZ);
- 
-   // Only set an alternative stack if there isn't already one, or if the current
-   // one is too small.
--- 
-2.31.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch
index f2d1fe6..80e5a8a 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch
@@ -12,7 +12,7 @@
 
 --- a/linux_syscall_support.h
 +++ b/linux_syscall_support.h
-@@ -816,6 +816,9 @@ struct kernel_statfs {
+@@ -1006,6 +1006,9 @@ struct kernel_statx {
  #define FUTEX_TRYLOCK_PI_PRIVATE  (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
  #endif
  
@@ -22,17 +22,17 @@
  
  #if defined(__x86_64__)
  #ifndef ARCH_SET_GS
-@@ -947,6 +950,7 @@ struct kernel_statfs {
- #ifndef __NR_fallocate
- #define __NR_fallocate          324
+@@ -1140,6 +1143,7 @@ struct kernel_statx {
+ #ifndef __NR_getrandom
+ #define __NR_getrandom          355
  #endif
 +
  /* End of i386 definitions                                                   */
  #elif defined(__ARM_ARCH_3__) || defined(__ARM_EABI__)
  #ifndef __NR_setresuid
-@@ -1239,6 +1243,12 @@ struct kernel_statfs {
- #ifndef __NR_fallocate
- #define __NR_fallocate          285
+@@ -1448,6 +1452,12 @@ struct kernel_statx {
+ #ifndef __NR_getrandom
+ #define __NR_getrandom          318
  #endif
 +#ifndef __NR_pread
 +#define __NR_pread __NR_pread64
@@ -43,9 +43,9 @@
  /* End of x86-64 definitions                                                 */
  #elif defined(__mips__)
  #if _MIPS_SIM == _MIPS_SIM_ABI32
-@@ -1418,6 +1428,12 @@ struct kernel_statfs {
- #ifndef __NR_ioprio_get
- #define __NR_ioprio_get         (__NR_Linux + 274)
+@@ -1633,6 +1643,12 @@ struct kernel_statx {
+ #ifndef __NR_getrandom
+ #define __NR_getrandom          (__NR_Linux + 313)
  #endif
 +
 +#undef __NR_pread
diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-mainline-version-gcc-13-cannot-use-uintptr_t-via-inc.patch b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-mainline-version-gcc-13-cannot-use-uintptr_t-via-inc.patch
deleted file mode 100644
index d6d326d..0000000
--- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-mainline-version-gcc-13-cannot-use-uintptr_t-via-inc.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 7ea7ded187b4d739239f3ab7082fcd5a2ccc1eaa Mon Sep 17 00:00:00 2001
-From: mingtaoxt xt <mingtaoxt@gmail.com>
-Date: Wed, 19 Oct 2022 19:36:13 +0800
-Subject: [PATCH] mainline version gcc-13 cannot use "uintptr_t" via "#include <string>"
-
-Change-Id: I0049bb92658b4226e32783ad4d8271787deef5f3
-Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3964166
-Reviewed-by: Mike Frysinger <vapier@chromium.org>
-
-Upstream-Status: Backport [https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3964166]
-Signed-of-by: Khem Raj <raj.khem@gmail.com>
----
- src/client/linux/handler/minidump_descriptor.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/client/linux/handler/minidump_descriptor.h b/src/client/linux/handler/minidump_descriptor.h
-index 4349b88f..d822c9d9 100644
---- a/src/client/linux/handler/minidump_descriptor.h
-+++ b/src/client/linux/handler/minidump_descriptor.h
-@@ -32,6 +32,7 @@
- #include <assert.h>
- #include <sys/types.h>
- 
-+#include <cstdint>
- #include <string>
- 
- #include "client/linux/handler/microdump_extra_info.h"
--- 
-2.39.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch
index cd5546d..81844d0 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch
@@ -14,7 +14,7 @@
 
 --- a/src/common/stabs_reader.cc
 +++ b/src/common/stabs_reader.cc
-@@ -34,7 +34,9 @@
+@@ -38,7 +38,9 @@
  #include "common/stabs_reader.h"
  
  #include <assert.h>
@@ -26,7 +26,7 @@
  #include <string>
 --- a/src/common/stabs_reader.h
 +++ b/src/common/stabs_reader.h
-@@ -58,6 +58,30 @@
+@@ -54,6 +54,30 @@
  #elif defined(HAVE_A_OUT_H)
  #include <a.out.h>
  #endif
@@ -59,7 +59,7 @@
  #include <vector>
 --- a/src/common/stabs_reader_unittest.cc
 +++ b/src/common/stabs_reader_unittest.cc
-@@ -33,7 +33,9 @@
+@@ -36,7 +36,9 @@
  
  #include <assert.h>
  #include <errno.h>
@@ -71,8 +71,8 @@
  #include <string.h>
 --- a/configure.ac
 +++ b/configure.ac
-@@ -72,7 +72,7 @@ AC_ARG_ENABLE(m32,
- AC_HEADER_STDC
+@@ -61,7 +61,7 @@ fi
+ 
  AC_SYS_LARGEFILE
  AX_PTHREAD
 -AC_CHECK_HEADERS([a.out.h sys/mman.h sys/random.h])
diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch
index aa89959..9b16dc3 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch
@@ -11,19 +11,17 @@
  src/client/linux/crash_generation/crash_generation_server.cc | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
 
-diff --git a/src/client/linux/crash_generation/crash_generation_server.cc b/src/client/linux/crash_generation/crash_generation_server.cc
-index 26c50a5c..2596afde 100644
 --- a/src/client/linux/crash_generation/crash_generation_server.cc
 +++ b/src/client/linux/crash_generation/crash_generation_server.cc
-@@ -28,7 +28,6 @@
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+@@ -31,7 +31,6 @@
+ #endif
  
  #include <assert.h>
 -#include <dirent.h>
  #include <fcntl.h>
  #include <limits.h>
  #include <poll.h>
-@@ -49,6 +48,8 @@
+@@ -52,6 +51,8 @@
  #include "common/linux/guid_creator.h"
  #include "common/linux/safe_readlink.h"
  
@@ -32,6 +30,3 @@
  static const char kCommandQuit = 'x';
  
  namespace google_breakpad {
--- 
-2.14.1
-
diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch
index b4bccb4..ff33197 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch
@@ -13,8 +13,8 @@
 
 --- a/src/common/dwarf/elf_reader.cc
 +++ b/src/common/dwarf/elf_reader.cc
-@@ -30,12 +30,16 @@
- #define _GNU_SOURCE  // needed for pread()
+@@ -34,12 +34,16 @@
+ #include <config.h>  // Must come first
  #endif
  
 +#include <config.h>
@@ -32,8 +32,8 @@
  #include <algorithm>
 --- a/configure.ac
 +++ b/configure.ac
-@@ -72,7 +72,7 @@ AC_ARG_ENABLE(m32,
- AC_HEADER_STDC
+@@ -61,7 +61,7 @@ fi
+ 
  AC_SYS_LARGEFILE
  AX_PTHREAD
 -AC_CHECK_HEADERS([a.out.h stab.h sys/mman.h sys/random.h])
diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch
index 3449973..cb323fb 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch
+++ b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch
@@ -3,16 +3,14 @@
 Upstream-Status: Inappropriate [need to consider Android]
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: git/src/client/linux/minidump_writer/linux_core_dumper.cc
-===================================================================
---- git.orig/src/client/linux/minidump_writer/linux_core_dumper.cc
-+++ git/src/client/linux/minidump_writer/linux_core_dumper.cc
-@@ -196,7 +196,7 @@ bool LinuxCoreDumper::EnumerateThreads()
+--- a/src/client/linux/minidump_writer/linux_core_dumper.cc
++++ b/src/client/linux/minidump_writer/linux_core_dumper.cc
+@@ -214,7 +214,7 @@ bool LinuxCoreDumper::EnumerateThreads()
          info.tgid = status->pr_pgrp;
          info.ppid = status->pr_ppid;
  #if defined(__mips__)
--#if defined(__ANDROID__)
-+#if defined(__ANDROID__) || !defined(__GLIBC__)
+-# if defined(__ANDROID__)
++# if defined(__ANDROID__) || !defined(__GLIBC__)
          for (int i = EF_R0; i <= EF_R31; i++)
            info.mcontext.gregs[i - EF_R0] = status->pr_reg[i];
- #else  // __ANDROID__
+ # else  // __ANDROID__
diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
index d1d338c..3462b84 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
@@ -6,11 +6,12 @@
 DESCRIPTION = "Breakpad is a library and tool suite that allows you to distribute an application to users with compiler-provided debugging information removed, record crashes in compact \"minidump\" files, send them back to your server, and produce C and C++ stack traces from these minidumps. "
 HOMEPAGE = "https://code.google.com/p/google-breakpad/"
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8bb274ebd1901085fd71a8d8afe8831b"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=07aeb530115539d62cacf9942fa60cac"
 SECTION = "libs"
 
 inherit autotools
 
+DEPENDS += "zlib"
 DEPENDS:append:libc-musl = " libucontext"
 
 BBCLASSEXTEND = "native"
@@ -21,11 +22,11 @@
 
 SRCREV_FORMAT = "breakpad_gtest_protobuf_lss_gyp"
 
-SRCREV_breakpad = "8b22babdf894e5aa98b2dbbe103f7e3856a71944"
+SRCREV_breakpad = "7a1a190f4f68e8a3e06788498f50a4d5520a69f3"
 #v1.10.0
-SRCREV_gtest = "4fe018038f87675c083d0cfb6a6b57c274fb1753"
+SRCREV_gtest = "e2239ee6043f73722e7aa812a459f54a28552929"
 SRCREV_protobuf = "cb6dd4ef5f82e41e06179dcd57d3b1d9246ad6ac"
-SRCREV_lss = "fd00dbbd0c06a309c657d89e9430143b179ff6db"
+SRCREV_lss = "9719c1e1e676814c456b55f5f070eabad6709d31"
 SRCREV_gyp = "324dd166b7c0b39d513026fa52d6280ac6d56770"
 
 SRC_URI = "git://github.com/google/breakpad;name=breakpad;branch=main;protocol=https \
@@ -40,11 +41,8 @@
            file://0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch \
            file://mcontext.patch \
            file://0001-Remove-HAVE_GETCONTEXT-check-to-add-local-implementa.patch \
-           file://0001-exception_handler.cc-Match-the-types-for-SIGSTKSZ.patch \
-           file://0001-mainline-version-gcc-13-cannot-use-uintptr_t-via-inc.patch \
            file://0001-lss-Match-syscalls-to-match-musl.patch;patchdir=src/third_party/lss \
            file://mips_asm_sgidefs.patch;patchdir=src/third_party/lss \
-           file://0001-Do-not-add-stack-pointer-to-clobber-list.patch;patchdir=src/third_party/lss \
 "
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230611.0.bb b/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230611.0.bb
index 0fd3f8c..1b8d367 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230611.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230611.0.bb
@@ -32,3 +32,5 @@
 PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp"
 PACKAGECONFIG[yaml] = "--enable-yaml,--disable-yaml,libyaml"
 PACKAGECONFIG[manpages] = ",,python3-docutils-native"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.19.2.bb b/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.19.2.bb
index 6420c7e..f5eda17 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.19.2.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.19.2.bb
@@ -12,7 +12,7 @@
 COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64|riscv64).*-linux"
 
 PV .= "+git${SRCPV}"
-SRCREV = "42fef565731411a784101de614a54bff79d1858e"
+SRCREV = "b4e067307906ec6f277cce5c8a882f5edd03cbbc"
 SRC_URI = " \
     git://github.com/lyonel/lshw.git;protocol=https;branch=master \
     file://0001-disable-docbook2man.patch \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_18.16.0.bb b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_18.16.0.bb
index 06631f2..3adb515 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_18.16.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_18.16.0.bb
@@ -79,9 +79,9 @@
 # and we need to use the right flags during host compile,
 # too.
 EXTRA_OEMAKE = "\
-    CC.host='${CC}' \
+    CC.host='${CC} -pie -fPIE' \
     CFLAGS.host='${CPPFLAGS} ${CFLAGS}' \
-    CXX.host='${CXX}' \
+    CXX.host='${CXX} -pie -fPIE' \
     CXXFLAGS.host='${CPPFLAGS} ${CXXFLAGS}' \
     LDFLAGS.host='${LDFLAGS}' \
     AR.host='${AR}' \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_8.2.7.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_8.2.7.bb
index b5da7b3..4dc0399 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php_8.2.7.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php_8.2.7.bb
@@ -42,7 +42,7 @@
     CVE-2007-4596 \
 "
 
-inherit autotools pkgconfig python3native gettext
+inherit autotools pkgconfig python3native gettext multilib_header multilib_script
 
 # phpize is not scanned for absolute paths by default (but php-config is).
 #
@@ -210,6 +210,14 @@
     fi
 }
 
+MULTILIB_SCRIPTS += "${PN}:${bindir}/php-config \
+                     ${PN}:${bindir}/phpize \
+"
+
+do_install:append () {
+        oe_multilib_header php/main/build-defs.h php/main/php_config.h
+}
+
 SYSROOT_PREPROCESS_FUNCS += "php_sysroot_preprocess"
 
 php_sysroot_preprocess () {
diff --git a/meta-openembedded/meta-oe/recipes-extended/flatpak/flatpak_1.15.4.bb b/meta-openembedded/meta-oe/recipes-extended/flatpak/flatpak_1.15.4.bb
index fcf80fc..163d732 100644
--- a/meta-openembedded/meta-oe/recipes-extended/flatpak/flatpak_1.15.4.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/flatpak/flatpak_1.15.4.bb
@@ -28,11 +28,13 @@
     json-glib \
     libarchive \
     libcap \
+    libxml2 \
     libxslt-native \
     ostree \
     polkit \
     python3-pyparsing-native \
     xmlto-native \
+    zstd \
 "
 
 RDEPENDS:${PN} = " \
@@ -40,17 +42,20 @@
     ca-certificates \
     dconf \
     flatpak-xdg-utils \
+    xdg-dbus-proxy \
 "
 
+EXTRA_OEMESON += "-Dsystem_dbus_proxy=${bindir}/xdg-dbus-proxy -Dsystem_bubblewrap=${bindir}/bwrap"
+
 GIR_MESON_OPTION = ""
 
-PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,xauth"
+PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,xauth socat-native"
 PACKAGECONFIG[xauth] = "-Dxauth=enabled,-Dxauth=disabled,xauth"
 PACKAGECONFIG[seccomp] = "-Dseccomp=enabled,-Dseccomp=disabled,libseccomp"
 
 PACKAGECONFIG ?= " \
     ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xauth', '', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'security', 'seccomp', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'seccomp', 'seccomp', '', d)} \
 "
 
 FILES:${PN} += "${libdir} ${datadir}"
diff --git a/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.1.bb b/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.2.bb
similarity index 92%
rename from meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.1.bb
rename to meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.2.bb
index 7e8cd5f..487b7da 100644
--- a/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.1.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/hwloc/hwloc_2.9.2.bb
@@ -8,7 +8,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=79179bb373cd55cbd834463a514fb714"
 
 SRC_URI = "https://www.open-mpi.org/software/${BPN}/v2.9/downloads/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "7cc4931a20fef457e0933af3f375be6eafa7703fde21e137bfb9685b1409599e"
+SRC_URI[sha256sum] = "0a87fdf677f8b00b567d229b6320bf6b25c693edaa43e0b85268d999d6b060cf"
 UPSTREAM_CHECK_URI = "https://www.open-mpi.org/software/hwloc/v2.9/"
 
 inherit autotools bash-completion pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-extended/libyang/libyang_2.1.55.bb b/meta-openembedded/meta-oe/recipes-extended/libyang/libyang_2.1.55.bb
index b1438c3..bddf30b 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libyang/libyang_2.1.55.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libyang/libyang_2.1.55.bb
@@ -16,7 +16,7 @@
 S = "${WORKDIR}/git"
 
 # Main dependencies
-inherit cmake pkgconfig lib_package ptest
+inherit cmake pkgconfig lib_package ptest multilib_header
 DEPENDS = "libpcre2"
 DEPENDS += "${@bb.utils.contains('PTEST_ENABLED', '1', 'cmocka', '', d)}"
 
@@ -30,6 +30,10 @@
     fi
 }
 
+do_install:append () {
+        oe_multilib_header  libyang/config.h
+}
+
 do_install_ptest () {
     install -d ${D}${PTEST_PATH}/tests
     cp -f ${B}/tests/utest_* ${D}${PTEST_PATH}/tests/
diff --git a/meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.9.2.bb b/meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.10.0.bb
similarity index 91%
rename from meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.9.2.bb
rename to meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.10.0.bb
index 7fb58de..e8aa7fd 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.9.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.10.0.bb
@@ -21,7 +21,7 @@
 
 SRC_URI = "https://libzip.org/download/libzip-${PV}.tar.xz"
 
-SRC_URI[sha256sum] = "c93e9852b7b2dc931197831438fee5295976ee0ba24f8524a8907be5c2ba5937"
+SRC_URI[sha256sum] = "cd2a7ac9f1fb5bfa6218272d9929955dc7237515bba6e14b5ad0e1d1e2212b43"
 
 # Patch for CVE-2017-12858 is applied in version 1.2.0.
 CVE_CHECK_IGNORE += "CVE-2017-12858"
diff --git a/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-the-constness-issues-around-autovector-iterator_.patch b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-the-constness-issues-around-autovector-iterator_.patch
new file mode 100644
index 0000000..acb96f4
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-the-constness-issues-around-autovector-iterator_.patch
@@ -0,0 +1,63 @@
+From 787d5052a6034cc722b073c652cc610ae037f933 Mon Sep 17 00:00:00 2001
+From: Levi Tamasi <ltamasi@fb.com>
+Date: Fri, 22 Nov 2019 18:12:35 -0800
+Subject: [PATCH 1/2] Fix the constness issues around
+ autovector::iterator_impl's dereference operators (#6057)
+
+Summary:
+As described in detail in issue https://github.com/facebook/rocksdb/issues/6048, iterators' dereference operators
+(`*`, `->`, and `[]`) should return `pointer`s/`reference`s (as opposed to
+`const_pointer`s/`const_reference`s) even if the iterator itself is `const`
+to be in sync with the standard's iterator concept.
+Pull Request resolved: https://github.com/facebook/rocksdb/pull/6057
+
+Test Plan: make check
+
+Differential Revision: D18623235
+
+Pulled By: ltamasi
+
+fbshipit-source-id: 04e82d73bc0c67fb0ded018383af8dfc332050cc
+---
+ thirdparty/rocksdb/util/autovector.h | 15 ++++-----------
+ 1 file changed, 4 insertions(+), 11 deletions(-)
+
+diff --git a/thirdparty/rocksdb/util/autovector.h b/thirdparty/rocksdb/util/autovector.h
+index b5c84712..6d337908 100644
+--- a/thirdparty/rocksdb/util/autovector.h
++++ b/thirdparty/rocksdb/util/autovector.h
+@@ -120,27 +120,20 @@ class autovector {
+     }
+ 
+     // -- Reference
+-    reference operator*() {
++    reference operator*() const {
+       assert(vect_->size() >= index_);
+       return (*vect_)[index_];
+     }
+ 
+-    const_reference operator*() const {
+-      assert(vect_->size() >= index_);
+-      return (*vect_)[index_];
+-    }
+-
+-    pointer operator->() {
++    pointer operator->() const {
+       assert(vect_->size() >= index_);
+       return &(*vect_)[index_];
+     }
+ 
+-    const_pointer operator->() const {
+-      assert(vect_->size() >= index_);
+-      return &(*vect_)[index_];
++    reference operator[](difference_type len) const {
++      return *(*this + len);
+     }
+ 
+-
+     // -- Logical Operators
+     bool operator==(const self_type& other) const {
+       assert(vect_ == other.vect_);
+-- 
+2.41.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0002-Fix-build-with-clang-17.patch b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0002-Fix-build-with-clang-17.patch
new file mode 100644
index 0000000..7581efc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/files/0002-Fix-build-with-clang-17.patch
@@ -0,0 +1,37 @@
+From a784973e500753747992a51dc0fb1caabbbb03be Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 6 Jul 2023 17:52:38 -0700
+Subject: [PATCH 2/2] Fix build with clang 17
+
+Part of https://github.com/jarro2783/cxxopts/commit/513afbc6dcfe2952cb2ffab0dae2415b11bba2d0
+
+Upstream-Status: Backport [https://github.com/jarro2783/cxxopts/commit/513afbc6dcfe2952cb2ffab0dae2415b11bba2d0]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ thirdparty/cxxopts/include/cxxopts.hpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/thirdparty/cxxopts/include/cxxopts.hpp b/thirdparty/cxxopts/include/cxxopts.hpp
+index e87416f1..bd2d81cf 100644
+--- a/thirdparty/cxxopts/include/cxxopts.hpp
++++ b/thirdparty/cxxopts/include/cxxopts.hpp
+@@ -468,14 +468,14 @@ namespace cxxopts
+         {
+           if (negative)
+           {
+-            if (u > static_cast<U>(-std::numeric_limits<T>::min()))
++            if (u > static_cast<U>((std::numeric_limits<T>::min)()))
+             {
+               throw argument_incorrect_type(text);
+             }
+           }
+           else
+           {
+-            if (u > static_cast<U>(std::numeric_limits<T>::max()))
++            if (u > static_cast<U>((std::numeric_limits<T>::max)()))
+             {
+               throw argument_incorrect_type(text);
+             }
+-- 
+2.41.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb
index 9ae72d2..0986fde 100644
--- a/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb
@@ -33,6 +33,8 @@
             file://0001-civetweb-Disable-lto.patch \
             file://0001-Add-missing-includes-cstdint-and-cstdio.patch \
             file://0001-Do-not-use-LFS64-functions-on-linux-musl.patch \
+            file://0001-Fix-the-constness-issues-around-autovector-iterator_.patch \
+            file://0002-Fix-build-with-clang-17.patch \
             file://minifi.service \
             file://systemd-volatile.conf \
             file://sysvinit-volatile.conf \
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-lib-deploy-Use-off_t-not-__off_t.patch b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-lib-deploy-Use-off_t-not-__off_t.patch
deleted file mode 100644
index a64d9de..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree/0001-lib-deploy-Use-off_t-not-__off_t.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 6d690ebf64ce640afce3085f01da8694a04853a9 Mon Sep 17 00:00:00 2001
-From: Alex Kiernan <alex.kiernan@gmail.com>
-Date: Tue, 20 Jun 2023 19:24:04 +0100
-Subject: [PATCH] lib/deploy: Use off_t not __off_t
-
-Not clear why this was __off_t which is the sole appearance in the code
-base, but it breaks musl builds.
-
-Upstream-Status: Submitted [https://github.com/ostreedev/ostree/pull/2896]
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
----
- src/libostree/ostree-sysroot-deploy.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/libostree/ostree-sysroot-deploy.c b/src/libostree/ostree-sysroot-deploy.c
-index 8fcd5e802758..2454a5877d94 100644
---- a/src/libostree/ostree-sysroot-deploy.c
-+++ b/src/libostree/ostree-sysroot-deploy.c
-@@ -2536,7 +2536,7 @@ get_kernel_layout_size (OstreeSysroot *self, OstreeDeployment *deployment, guint
- /* This is a roundabout but more trustworthy way of doing a space check than
-  * relying on statvfs's f_bfree when you know the size of the objects. */
- static gboolean
--dfd_fallocate_check (int dfd, __off_t len, gboolean *out_passed, GError **error)
-+dfd_fallocate_check (int dfd, off_t len, gboolean *out_passed, GError **error)
- {
-   /* If the requested size is 0 then return early. Passing a 0 len to
-    * fallocate results in EINVAL */
diff --git a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.4.bb b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.5.bb
similarity index 97%
rename from meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.4.bb
rename to meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.5.bb
index d2a7b04..3028c4c 100644
--- a/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.4.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/ostree/ostree_2023.5.bb
@@ -21,9 +21,8 @@
 GITHUB_BASE_URI = "https://github.com/ostreedev/ostree/releases"
 SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libostree-${PV}.tar.xz \
            file://run-ptest \
-           file://0001-lib-deploy-Use-off_t-not-__off_t.patch \
            "
-SRC_URI[sha256sum] = "7cee8ace6aae3c778527927a85abefbfbd491c021f52ae229c51ca3077f9c5d1"
+SRC_URI[sha256sum] = "bc593afb31fe1ac3d50419f917fafe321a0a3561d7bb2ba498a83740fe3adb14"
 
 S = "${WORKDIR}/libostree-${PV}"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-Fix-function-declararions.patch b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-Fix-function-declararions.patch
deleted file mode 100644
index c498c55..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-Fix-function-declararions.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From f97c26f5effd4372f7e03f9e4178d42a9ad8d4b3 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 2 Sep 2022 13:33:16 -0700
-Subject: [PATCH] Fix function declararions
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- TEST/v2test_ec.c              | 2 ++
- TEST/v2test_ein.c             | 1 +
- backend/cimxml/cimXmlParser.c | 6 +++++-
- backend/cimxml/grammar.c      | 2 ++
- 4 files changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/TEST/v2test_ec.c b/TEST/v2test_ec.c
-index ad34dcc..d3e566d 100644
---- a/TEST/v2test_ec.c
-+++ b/TEST/v2test_ec.c
-@@ -6,6 +6,8 @@
- #include "cmcimacs.h"
- 
- extern char *value2Chars(CMPIType type, CMPIValue * value);
-+extern void showClass( CMPIConstClass * in_class );
-+
- /*
-  * comment out this define to use v2 http XML interface
-  */
-diff --git a/TEST/v2test_ein.c b/TEST/v2test_ein.c
-index c1b4692..5d5ef5d 100644
---- a/TEST/v2test_ein.c
-+++ b/TEST/v2test_ein.c
-@@ -6,6 +6,7 @@
- #include "cmcimacs.h"
- 
- extern char *value2Chars(CMPIType type, CMPIValue * value);
-+extern void showObjectPath( CMPIObjectPath * objectpath );
- void showProperty( CMPIData , char * );
- void showInstance( CMPIInstance * );
- static char * CMPIState_str(CMPIValueState);
-diff --git a/backend/cimxml/cimXmlParser.c b/backend/cimxml/cimXmlParser.c
-index d1ab86e..9f5d1ca 100644
---- a/backend/cimxml/cimXmlParser.c
-+++ b/backend/cimxml/cimXmlParser.c
-@@ -34,6 +34,8 @@
- 
- #include <pthread.h>
- 
-+void startParsing(ParserControl *parm);
-+
- static int attrsOk(XmlBuffer * xb, const XmlElement * e, XmlAttr * r,
-                    const char *tag, int etag);
- static char *getValue(XmlBuffer * xb, const char *v);
-@@ -1350,7 +1352,9 @@ ResponseHdr scanCimXmlResponse(const char *xmlData, CMPIObjectPath *cop)
- 
-    control.heap = parser_heap_init();
- 
--   control.respHdr.rc = startParsing(&control);
-+   control.respHdr.rc = 0;
-+
-+   startParsing(&control);
- 
-    parser_heap_term(control.heap);
- 
-diff --git a/backend/cimxml/grammar.c b/backend/cimxml/grammar.c
-index 6a0a969..a3dcdea 100644
---- a/backend/cimxml/grammar.c
-+++ b/backend/cimxml/grammar.c
-@@ -23,6 +23,8 @@
- #include "sfcUtil/utilft.h"
- #include "parserUtil.h"
- 
-+CMPIType guessType(char *val);
-+void setClassMethods(CMPIConstClass *cls, XtokMethods *ms);
- 
- static int ct = 0;
- static int dontLex = 0;
--- 
-2.37.3
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-Fix-implicit-function-declarations.patch b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-Fix-implicit-function-declarations.patch
new file mode 100644
index 0000000..08cd15a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-Fix-implicit-function-declarations.patch
@@ -0,0 +1,80 @@
+From 1e1ed4d58909360997648ca9524ab16441f5474b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 6 Jul 2023 10:15:41 -0700
+Subject: [PATCH] Fix implicit function declarations
+
+Clang 17+ has been finding these errors since its enforcing C99
+more than other compilers
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ TEST/v2test_ec.c              | 1 +
+ TEST/v2test_ein.c             | 1 +
+ backend/cimxml/cimXmlParser.c | 2 +-
+ backend/cimxml/grammar.c      | 2 ++
+ backend/cimxml/grammar.h      | 1 +
+ 5 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/TEST/v2test_ec.c b/TEST/v2test_ec.c
+index ad34dcc..940ca57 100644
+--- a/TEST/v2test_ec.c
++++ b/TEST/v2test_ec.c
+@@ -4,6 +4,7 @@
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include "cmcimacs.h"
++#include "show.h"
+ 
+ extern char *value2Chars(CMPIType type, CMPIValue * value);
+ /*
+diff --git a/TEST/v2test_ein.c b/TEST/v2test_ein.c
+index c1b4692..ede95c1 100644
+--- a/TEST/v2test_ein.c
++++ b/TEST/v2test_ein.c
+@@ -4,6 +4,7 @@
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include "cmcimacs.h"
++#include "show.h"
+ 
+ extern char *value2Chars(CMPIType type, CMPIValue * value);
+ void showProperty( CMPIData , char * );
+diff --git a/backend/cimxml/cimXmlParser.c b/backend/cimxml/cimXmlParser.c
+index d1ab86e..14f5f5c 100644
+--- a/backend/cimxml/cimXmlParser.c
++++ b/backend/cimxml/cimXmlParser.c
+@@ -1350,7 +1350,7 @@ ResponseHdr scanCimXmlResponse(const char *xmlData, CMPIObjectPath *cop)
+ 
+    control.heap = parser_heap_init();
+ 
+-   control.respHdr.rc = startParsing(&control);
++   startParsing(&control);
+ 
+    parser_heap_term(control.heap);
+ 
+diff --git a/backend/cimxml/grammar.c b/backend/cimxml/grammar.c
+index 6a0a969..522ca9e 100644
+--- a/backend/cimxml/grammar.c
++++ b/backend/cimxml/grammar.c
+@@ -23,6 +23,8 @@
+ #include "sfcUtil/utilft.h"
+ #include "parserUtil.h"
+ 
++extern CMPIType guessType(char *val);
++extern void setClassMethods(CMPIConstClass *cls, XtokMethods *ms);
+ 
+ static int ct = 0;
+ static int dontLex = 0;
+diff --git a/backend/cimxml/grammar.h b/backend/cimxml/grammar.h
+index 00d364f..bafdd42 100644
+--- a/backend/cimxml/grammar.h
++++ b/backend/cimxml/grammar.h
+@@ -79,3 +79,4 @@ static void valueRefArray(ParserControl *parm, parseUnion *stateUnion);
+ static void valueReference(ParserControl *parm, parseUnion *stateUnion);
+ static void valueReferenceData(ParserControl *parm, parseUnion *stateUnion);
+ 
++void startParsing(ParserControl *parm);
+-- 
+2.41.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb
index 20bd2b6..c9d3ddd 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb
@@ -4,7 +4,7 @@
 
 SRC_URI = "http://netcologne.dl.sourceforge.net/project/sblim/${BPN}/${BPN}-${PV}.tar.bz2 \
            file://0001-cimxml-Include-sys-select.h-for-fd_set.patch \
-           file://0001-Fix-function-declararions.patch \
+           file://0001-Fix-implicit-function-declarations.patch \
            "
 
 SRC_URI[md5sum] = "0bac0dec19f17ec065b6c332a56d7bae"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_2.14.bb b/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_2.14.bb
deleted file mode 100644
index 3d65399..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_2.14.bb
+++ /dev/null
@@ -1,80 +0,0 @@
-SUMMARY = "Framebuffer image and doc viewer tools"
-DESCRIPTION = "The fbida project contains a few applications for viewing and editing images, \
-               with the main focus being photos."
-HOMEPAGE = "http://linux.bytesex.org/fbida/"
-AUTHOR = "Gerd Hoffmann"
-SECTION = "utils"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e8feb78a32950a909621bbb51f634b39"
-
-DEPENDS = "virtual/libiconv jpeg fontconfig freetype libexif libdrm pixman poppler libepoxy cairo"
-
-SRC_URI = "https://www.kraxel.org/releases/fbida/fbida-${PV}.tar.gz \
-	   file://0001-Avoid-using-host-path.patch \
-	   file://fix-preprocessor.patch \
-           file://support-jpeg-turbo.patch \
-           file://cairo-weak-detect.patch \
-           file://fbida-gcc10.patch \
-	   "
-SRC_URI[sha256sum] = "95b7c01556cb6ef9819f358b314ddfeb8a4cbe862b521a3ed62f03d163154438"
-
-inherit pkgconfig features_check
-
-# Depends on libepoxy
-REQUIRED_DISTRO_FEATURES = "opengl"
-
-EXTRA_OEMAKE = "STRIP= 'srcdir=${S}' -f ${S}/GNUmakefile"
-
-PACKAGECONFIG ??= "gif png curl"
-PACKAGECONFIG[curl] = ",,curl"
-PACKAGECONFIG[gif] = ",,giflib"
-PACKAGECONFIG[png] = ",,libpng"
-PACKAGECONFIG[tiff] = ",,tiff"
-PACKAGECONFIG[motif] = ",,libx11 libxext libxpm libxt openmotif"
-PACKAGECONFIG[webp] = ",,libwebp"
-PACKAGECONFIG[lirc] = ",,lirc"
-# This can only be enabled when cairo has egl enabled in its packageconfig support too
-PACKAGECONFIG[egl] = ",,"
-
-EXTRA_OEMAKE += ""${@bb.utils.contains('PACKAGECONFIG', 'egl', 'HAVE_CAIRO_GL=yes', 'HAVE_CAIRO_GL=no', d)}""
-
-CFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}"
-
-do_compile() {
-    sed -i -e 's# fbgs# \$(srcdir)/fbgs#; s#-Ijpeg#-I\$(srcdir)/jpeg#; s# jpeg/# \$(srcdir)/jpeg/#' ${S}/GNUmakefile
-    sed -i -e 's:/sbin/ldconfig:echo x:' ${S}/mk/Autoconf.mk
-    sed -i -e 's: cpp: ${CPP}:' ${S}/GNUmakefile
-
-    # Be sure to respect preferences (force to "no")
-    # Also avoid issues when ${BUILD_ARCH} == ${HOST_ARCH}
-    if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'curl', d)}" ]; then
-        sed -i -e '/^HAVE_LIBCURL/s/:=.*$/:= no/' ${S}/GNUmakefile
-    fi
-    if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'gif', d)}" ]; then
-        sed -i -e '/^HAVE_LIBGIF/s/:=.*$/:= no/' ${S}/GNUmakefile
-    fi
-    if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'png', d)}" ]; then
-        sed -i -e '/^HAVE_LIBPNG/s/:=.*$/:= no/' ${S}/GNUmakefile
-    fi
-    if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'tiff', d)}" ]; then
-        sed -i -e '/^HAVE_LIBTIFF/s/:=.*$/:= no/' ${S}/GNUmakefile
-    fi
-    if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'motif', d)}" ]; then
-        sed -i -e '/^HAVE_MOTIF/s/:=.*$/:= no/' ${S}/GNUmakefile
-    fi
-    if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'webp', d)}" ]; then
-        sed -i -e '/^HAVE_LIBWEBP/s/:=.*$/:= no/' ${S}/GNUmakefile
-    fi
-    if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'lirc', d)}" ]; then
-        sed -i -e '/^HAVE_LIBLIRC/s/:=.*$/:= no/' ${S}/GNUmakefile
-    fi
-
-    oe_runmake
-}
-
-do_install() {
-    oe_runmake 'DESTDIR=${D}' install
-}
-
-RDEPENDS:${PN} = "ttf-dejavu-sans-mono"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_git.bb b/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_git.bb
new file mode 100644
index 0000000..ebf88cd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_git.bb
@@ -0,0 +1,42 @@
+SUMMARY = "Framebuffer image and doc viewer tools"
+DESCRIPTION = "The fbida project contains a few applications for viewing and editing images, \
+               with the main focus being photos."
+HOMEPAGE = "https://www.kraxel.org/blog/linux/fbida/"
+AUTHOR = "Gerd Hoffmann"
+SECTION = "utils"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e8feb78a32950a909621bbb51f634b39"
+
+DEPENDS = "virtual/libiconv jpeg fontconfig freetype libexif libdrm pixman udev libinput cairo"
+
+PV = "2.14+git${SRCPV}"
+SRC_URI = "git://github.com/kraxel/fbida;protocol=https;branch=master \
+           file://fix-preprocessor.patch \
+           file://support-jpeg-turbo.patch \
+           file://fbida-gcc10.patch \
+           file://0001-meson.build-install-fbgs-shell-script.patch \
+           file://0002-meson.build-add-features-options-for-png-gif-tiff-we.patch \
+           file://0003-meson.build-do-not-require-xkbcommon.patch \
+           file://0001-meson.build-make-fbpdf-build-optional.patch \
+           file://0001-fbida-Include-missing-sys-types.h.patch \
+"
+SRCREV = "eb769e3d7f4a073d4c37ed524ebd5017c6a578f5"
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig features_check
+
+# Depends on libepoxy
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+PACKAGECONFIG ??= "gif png pdf"
+PACKAGECONFIG[gif] = "-Dgif=enabled,-Dgif=disabled,giflib"
+PACKAGECONFIG[png] = "-Dpng=enabled,-Dpng=disabled,libpng"
+PACKAGECONFIG[tiff] = "-Dtiff=enabled,-Dtiff=disabled,tiff"
+PACKAGECONFIG[motif] = "-Dmotif=enabled,-Dmotif=disabled,libx11 libxext libxpm libxt openmotif"
+PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,libwebp"
+PACKAGECONFIG[pdf] = "-Dpdf=enabled,-Dpdf=disabled,poppler libepoxy"
+
+CFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}"
+
+RDEPENDS:${PN} = "ttf-dejavu-sans-mono"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0001-Avoid-using-host-path.patch b/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0001-Avoid-using-host-path.patch
deleted file mode 100644
index cdf2c25..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0001-Avoid-using-host-path.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 8d8fa9f22d9f6a95523bac63ac3af724faf5ff92 Mon Sep 17 00:00:00 2001
-From: Marek Vasut <marex@denx.de>
-Date: Fri, 7 Apr 2017 23:26:09 +0200
-Subject: [PATCH] Avoid using host-path
-
-Remove the explicit reference to /usr/local/* , this is completely
-bogus and causes trouble during cross-compilation.
-
-Signed-off-by: Marek Vasut <marex@denx.de>
-Upstream-Status: Inappropriate [upstream requires this]
----
- mk/Variables.mk | 6 ------
- 1 file changed, 6 deletions(-)
-
-diff --git a/mk/Variables.mk b/mk/Variables.mk
-index 99f787c..3ffd87a 100644
---- a/mk/Variables.mk
-+++ b/mk/Variables.mk
-@@ -42,12 +42,6 @@ CFLAGS		+= -Wall -Wmissing-prototypes -Wstrict-prototypes \
- 		   -Wpointer-arith -Wunused
- CXXFLAGS	+= -Wall -Wpointer-arith -Wunused
- 
--# add /usr/local to the search path if something is in there ...
--ifneq ($(wildcard /usr/local/include/*.h),)
--  CFLAGS  += -I/usr/local/include
--  LDFLAGS += -L/usr/local/$(LIB)
--endif
--
- # fixup include path for $(srcdir) != "."
- ifneq ($(srcdir),.)
-   CFLAGS  += -I. -I$(srcdir)
--- 
-2.11.0
-
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0001-fbida-Include-missing-sys-types.h.patch b/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0001-fbida-Include-missing-sys-types.h.patch
new file mode 100644
index 0000000..0fb58f8
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0001-fbida-Include-missing-sys-types.h.patch
@@ -0,0 +1,31 @@
+From 17490e264e627ead81bf5840c8797de968485943 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 3 Jul 2023 11:25:26 -0700
+Subject: [PATCH] fbida: Include missing <sys/types.h>
+
+Fixes build on musl
+../git/gfx.h:43:5: error: unknown type name 'dev_t'; did you mean 'div_t'?
+    dev_t devnum;
+    ^~~~~
+    div_t
+TOPDIR/build/tmp/work/cortexa57-yoe-linux-musl/fbida/2.14+gitAUTOINC+eb769e3d7f-r0/recipe-sysroot/usr/include/stdlib.h:64:35: note: 'div_t' declared here
+typedef struct { int quot, rem; } div_t;
+                                  ^
+1 error generated
+
+Upstream-Status: Submitted [https://github.com/kraxel/fbida/pull/3]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gfx.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/gfx.h
++++ b/gfx.h
+@@ -1,5 +1,6 @@
+ #include <stdbool.h>
+ #include <inttypes.h>
++#include <sys/types.h>
+ 
+ #include <pixman.h>
+ #include <cairo.h>
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0001-meson.build-install-fbgs-shell-script.patch b/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0001-meson.build-install-fbgs-shell-script.patch
new file mode 100644
index 0000000..d686def
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0001-meson.build-install-fbgs-shell-script.patch
@@ -0,0 +1,28 @@
+From f9c455e81ad4d870c8ae20b9af8598139231ad26 Mon Sep 17 00:00:00 2001
+From: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
+Date: Fri, 9 Sep 2022 09:32:22 +0200
+Subject: [PATCH] meson.build: install fbgs shell script
+
+Upstream-Status: Pending
+Signed-off-by: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
+---
+ meson.build | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/meson.build b/meson.build
+index cbed982..2129896 100644
+--- a/meson.build
++++ b/meson.build
+@@ -126,6 +126,9 @@ executable('fbpdf',
+            sources             : fbpdf_srcs,
+            dependencies        : fbpdf_deps,
+            install             : true)
++install_data('fbgs',
++             install_dir        : get_option('bindir'),
++             install_mode       : 'rwxr--r--')
+ 
+ # build fbcon
+ fbcon_srcs   = [ 'fbcon.c', 'drmtools.c', 'fbtools.c', 'gfx.c', 'vt.c', 'kbd.c' ]
+-- 
+2.37.3
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0001-meson.build-make-fbpdf-build-optional.patch b/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0001-meson.build-make-fbpdf-build-optional.patch
new file mode 100644
index 0000000..304c660
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0001-meson.build-make-fbpdf-build-optional.patch
@@ -0,0 +1,66 @@
+From c00a155e90a9b22bd6ab5fa5407bb9923ee16ca0 Mon Sep 17 00:00:00 2001
+From: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
+Date: Fri, 16 Sep 2022 18:45:58 +0200
+Subject: [PATCH] meson.build: make fbpdf build optional
+
+Upstream-Status: Pending
+Signed-off-by: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
+---
+ meson.build       | 22 ++++++++++++----------
+ meson_options.txt |  1 +
+ 2 files changed, 13 insertions(+), 10 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 6b3daf3..289d1ec 100644
+--- a/meson.build
++++ b/meson.build
+@@ -15,11 +15,11 @@ x11resdir    = x11resrun.stdout().strip()
+ 
+ # pkg-config deps
+ pixman_dep   = dependency('pixman-1')
+-poppler_dep  = dependency('poppler-glib')
++poppler_dep  = dependency('poppler-glib', required: get_option('pdf'))
+ cairo_dep    = dependency('cairo')
+ drm_dep      = dependency('libdrm')
+-gbm_dep      = dependency('gbm')
+-epoxy_dep    = dependency('epoxy')
++gbm_dep      = dependency('gbm', required: get_option('pdf'))
++epoxy_dep    = dependency('epoxy', required: get_option('pdf'))
+ exif_dep     = dependency('libexif')
+ png_dep      = dependency('libpng', required: get_option('png'))
+ tiff_dep     = dependency('libtiff-4', required: get_option('tiff'))
+@@ -132,13 +132,15 @@ fbpdf_deps   = [ drm_dep, gbm_dep, epoxy_dep,
+                  pixman_dep, poppler_dep, cairo_dep,
+                  udev_dep, input_dep ]
+ 
+-executable('fbpdf',
+-           sources             : fbpdf_srcs,
+-           dependencies        : fbpdf_deps,
+-           install             : true)
+-install_data('fbgs',
+-             install_dir        : get_option('bindir'),
+-             install_mode       : 'rwxr--r--')
++if get_option('pdf').enabled()
++    executable('fbpdf',
++               sources             : fbpdf_srcs,
++               dependencies        : fbpdf_deps,
++               install             : true)
++    install_data('fbgs',
++                 install_dir        : get_option('bindir'),
++                 install_mode       : 'rwxr--r--')
++endif
+ 
+ # build fbcon
+ fbcon_srcs   = [ 'fbcon.c', 'drmtools.c', 'fbtools.c', 'gfx.c', 'vt.c', 'kbd.c' ]
+diff --git a/meson_options.txt b/meson_options.txt
+index ce37188..74699ab 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -3,3 +3,4 @@ option('png', type: 'feature', value : 'enabled')
+ option('tiff', type: 'feature', value : 'enabled')
+ option('webp', type: 'feature', value : 'disabled')
+ option('motif', type: 'feature', value : 'disabled')
++option('pdf', type: 'feature', value : 'enabled')
+-- 
+2.37.3
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0002-meson.build-add-features-options-for-png-gif-tiff-we.patch b/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0002-meson.build-add-features-options-for-png-gif-tiff-we.patch
new file mode 100644
index 0000000..fe36fcb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0002-meson.build-add-features-options-for-png-gif-tiff-we.patch
@@ -0,0 +1,124 @@
+From cdcde5c1fd106a69118dff98118600911392762f Mon Sep 17 00:00:00 2001
+From: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
+Date: Fri, 16 Sep 2022 16:25:38 +0200
+Subject: [PATCH] meson.build: add features options for png, gif, tiff, webp, and motif
+
+Upstream-Status: Pending
+Signed-off-by: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
+---
+ meson.build       | 41 +++++++++++++++++++++++++++--------------
+ meson_options.txt |  5 +++++
+ selections.c      |  4 ++++
+ 3 files changed, 36 insertions(+), 14 deletions(-)
+ create mode 100644 meson_options.txt
+
+diff --git a/meson.build b/meson.build
+index cd9cc49..b5e3ffc 100644
+--- a/meson.build
++++ b/meson.build
+@@ -23,9 +23,9 @@ drm_dep      = dependency('libdrm')
+ gbm_dep      = dependency('gbm')
+ epoxy_dep    = dependency('epoxy')
+ exif_dep     = dependency('libexif')
+-png_dep      = dependency('libpng')
+-tiff_dep     = dependency('libtiff-4')
+-webp_dep     = dependency('libwebp', required : false)
++png_dep      = dependency('libpng', required: get_option('png'))
++tiff_dep     = dependency('libtiff-4', required: get_option('tiff'))
++webp_dep     = dependency('libwebp', required : get_option('webp'))
+ udev_dep     = dependency('libudev')
+ input_dep    = dependency('libinput')
+ xkb_dep      = dependency('xkbcommon')
+@@ -36,20 +36,20 @@ jpeg_dep     = cc.find_library('jpeg')
+ util_dep     = cc.find_library('util')
+ math_dep     = cc.find_library('m', required : false)
+ pcd_dep      = cc.find_library('pcd', required : false)
+-gif_dep      = cc.find_library('gif', required : false)
++gif_dep      = cc.find_library('gif', required: get_option('gif'))
+ 
+ # motif + x11 libs
+-motif_dep    = cc.find_library('Xm', required : false)
+-xpm_dep      = cc.find_library('Xpm', required : false)
+-xt_dep       = cc.find_library('Xt', required : false)
+-xext_dep     = cc.find_library('Xext', required : false)
+-x11_dep      = cc.find_library('X11', required : false)
++motif_dep    = cc.find_library('Xm', required : get_option('motif'))
++xpm_dep      = cc.find_library('Xpm', required : get_option('motif'))
++xt_dep       = cc.find_library('Xt', required : get_option('motif'))
++xext_dep     = cc.find_library('Xext', required : get_option('motif'))
++x11_dep      = cc.find_library('X11', required : get_option('motif'))
+ 
+ # image formats
+ read_srcs    = [ 'readers.c', 'rd/read-ppm.c', 'rd/read-bmp.c',
+-                 'rd/read-jpeg.c', 'rd/read-png.c', 'rd/read-tiff.c' ]
++                 'rd/read-jpeg.c' ]
+ write_srcs   = [ 'writers.c', 'wr/write-ppm.c', 'wr/write-ps.c',
+-                 'wr/write-jpeg.c', 'wr/write-png.c', 'wr/write-tiff.c' ]
++                 'wr/write-jpeg.c' ]
+ image_deps   = [ jpeg_dep, png_dep, tiff_dep,
+                  pcd_dep, gif_dep, webp_dep ]
+ 
+@@ -57,11 +57,21 @@ if pcd_dep.found()
+     read_srcs += 'rd/read-pcd.c'
+     config.set('HAVE_LIBPCD', true)
+ endif
+-if gif_dep.found()
++if get_option('png').enabled()
++    read_srcs += 'rd/read-png.c'
++    write_srcs += 'wr/write-png.c'
++    config.set('HAVE_LIBPNG', true)
++endif
++if get_option('tiff').enabled()
++    read_srcs += 'rd/read-tiff.c'
++    write_srcs += 'wr/write-tiff.c'
++    config.set('HAVE_LIBTIFF', true)
++endif
++if get_option('gif').enabled()
+     read_srcs += 'rd/read-gif.c'
+     config.set('HAVE_LIBGIF', true)
+ endif
+-if webp_dep.found()
++if get_option('webp').enabled()
+     read_srcs += 'rd/read-webp.c'
+     config.set('HAVE_LIBWEBP', true)
+ endif
+@@ -168,7 +181,7 @@ ida_srcs     = [ 'ida.c', 'man.c', 'hex.c', 'x11.c', 'viewer.c',
+ ida_deps     = [ pixman_dep, exif_dep, image_deps, math_dep,
+                  motif_dep, xpm_dep, xt_dep, xext_dep, x11_dep ]
+ 
+-if motif_dep.found()
++if get_option('motif').enabled()
+     executable('ida',
+                sources             : ida_srcs,
+                dependencies        : ida_deps,
+diff --git a/meson_options.txt b/meson_options.txt
+new file mode 100644
+index 0000000..ce37188
+--- /dev/null
++++ b/meson_options.txt
+@@ -0,0 +1,5 @@
++option('gif', type: 'feature', value : 'enabled')
++option('png', type: 'feature', value : 'enabled')
++option('tiff', type: 'feature', value : 'enabled')
++option('webp', type: 'feature', value : 'disabled')
++option('motif', type: 'feature', value : 'disabled')
+diff --git a/selections.c b/selections.c
+index 7b16264..ccdc686 100644
+--- a/selections.c
++++ b/selections.c
+@@ -609,8 +609,12 @@ void ipc_init()
+ #ifdef HAVE_LIBGIF
+     targets[ntargets++] = MIME_IMAGE_GIF;
+ #endif
++#ifdef HAVE_LIBPNG
+     targets[ntargets++] = MIME_IMAGE_PNG;
++#endif
++#ifdef HAVE_LIBTIFF
+     targets[ntargets++] = MIME_IMAGE_TIFF;
++#endif
+     targets[ntargets++] = XA_PIXMAP;
+     targets[ntargets++] = XA_STRING;
+ 
+-- 
+2.37.3
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0003-meson.build-do-not-require-xkbcommon.patch b/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0003-meson.build-do-not-require-xkbcommon.patch
new file mode 100644
index 0000000..e769014
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/fbida/files/0003-meson.build-do-not-require-xkbcommon.patch
@@ -0,0 +1,27 @@
+From ec82a194f3454ac203a134c9a99bac6d63095d25 Mon Sep 17 00:00:00 2001
+From: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
+Date: Fri, 16 Sep 2022 18:29:03 +0200
+Subject: [PATCH] meson.build: do not require xkbcommon
+
+Upstream-Status: Pending
+Signed-off-by: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 341939c..b5dab14 100644
+--- a/meson.build
++++ b/meson.build
+@@ -26,7 +26,7 @@ tiff_dep     = dependency('libtiff-4', required: get_option('tiff'))
+ webp_dep     = dependency('libwebp', required : get_option('webp'))
+ udev_dep     = dependency('libudev')
+ input_dep    = dependency('libinput')
+-xkb_dep      = dependency('xkbcommon')
++xkb_dep      = dependency('xkbcommon', required : false)
+ tsm_dep      = dependency('libtsm', required : false)
+ 
+ # other library deps
+-- 
+2.37.3
+
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fbida/files/cairo-weak-detect.patch b/meta-openembedded/meta-oe/recipes-graphics/fbida/files/cairo-weak-detect.patch
deleted file mode 100644
index c7c579c..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/fbida/files/cairo-weak-detect.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-OE configures cairo to disable EGL support, however fbida expects cairo with egl support
-this patch therefore makes it possible to set HAVE_CAIRO_GL via recipe
-
-Upstream-Status: Inappropriate [OE-Specific]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/GNUmakefile
-+++ b/GNUmakefile
-@@ -67,7 +67,7 @@ define make-config
- LIB		:= $(LIB)
- RESDIR		:= $(call ac_resdir)
- HAVE_LINUX_FB_H	:= $(call ac_header,linux/fb.h)
--HAVE_CAIRO_GL	:= $(call ac_pkg_config,cairo-gl)
-+HAVE_CAIRO_GL	?= $(call ac_pkg_config,cairo-gl)
- HAVE_LIBPCD	:= $(call ac_lib,pcd_open,pcd)
- HAVE_LIBGIF	:= $(call ac_lib,DGifOpenFileName,gif)
- HAVE_LIBWEBP	:= $(call ac_pkg_config,libwebp)
diff --git a/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch b/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch
index 6d1d441..99b53e2 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch
+++ b/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch
@@ -11,7 +11,7 @@
 
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1540,7 +1540,7 @@ AC_ARG_ENABLE(tcl,
+@@ -1225,7 +1225,7 @@ AC_ARG_ENABLE(tcl,
    [], [enable_tcl=yes])
  
  if test "x$enable_tcl" != "xyes"; then
@@ -22,12 +22,12 @@
  if test "x$use_tcl" = "x"; then
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -19,7 +19,7 @@ pkginclude_HEADERS = $(top_builddir)/gra
- man_MANS = graphviz.7
+@@ -11,7 +11,7 @@ pkginclude_HEADERS = $(top_builddir)/gra
+ dist_man_MANS = graphviz.7
  
  # $(subdirs) contains the list from: AC_CONFIG_SUBDIRS
--SUBDIRS = $(subdirs) lib plugin cmd tclpkg doc contrib share graphs rtest tests
-+SUBDIRS = $(subdirs) lib plugin cmd doc contrib share graphs rtest tests
+-SUBDIRS = $(subdirs) lib plugin cmd tclpkg doc contrib share graphs tests
++SUBDIRS = $(subdirs) lib plugin cmd doc contrib share graphs tests
  
  .PHONY: doxygen
  doxygen:
diff --git a/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.50.0.bb b/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.50.0.bb
rename to meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb
index b630175..7ab15c9 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.50.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb
@@ -27,8 +27,7 @@
 SRC_URI:append:class-nativesdk = "\
            file://graphviz-setup.sh \
 "
-
-SRC_URI[sha256sum] = "6b16bf990df114195be669773a1dae975dbbffada45e1de2849ddeb5851bb9a8"
+SRC_URI[sha256sum] = "d593695fdaa8a19297523b679ad13d3ef2027b0b7f14cc2bc23e77969ed81565"
 
 CVE_CHECK_IGNORE += "\
     CVE-2014-9157 \
@@ -37,7 +36,7 @@
 PACKAGECONFIG ??= "librsvg"
 PACKAGECONFIG[librsvg] = "--with-librsvg,--without-librsvg,librsvg"
 
-EXTRA_OECONF:append = " PS2PDF=/bin/echo"
+EXTRA_OECONF:append = " PS2PDF=/bin/echo --disable-man-pdfs"
 
 EXTRA_OECONF:class-target = "\
                 --with-expatincludedir=${STAGING_INCDIR} \
diff --git a/meta-openembedded/meta-oe/recipes-graphics/lvgl/lv-drivers.inc b/meta-openembedded/meta-oe/recipes-graphics/lvgl/lv-drivers.inc
new file mode 100644
index 0000000..dcf1ad1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-graphics/lvgl/lv-drivers.inc
@@ -0,0 +1,46 @@
+PACKAGECONFIG[drm] = ",,libdrm"
+PACKAGECONFIG[fbdev] = ",,"
+PACKAGECONFIG[sdl] = ",,virtual/libsdl2"
+PACKAGECONFIG[wayland] = ",,libxkbcommon wayland"
+
+LVGL_CONFIG_USE_DRM = "${@bb.utils.contains('PACKAGECONFIG', 'drm', '1', '0', d)}"
+LVGL_CONFIG_DRM_CARD ?= "/dev/dri/card0"
+
+LVGL_CONFIG_USE_EVDEV = "${@bb.utils.contains_any('PACKAGECONFIG', 'drm fbdev', '1', '0', d)}"
+LVGL_CONFIG_EVDEV_INPUT ?= "/dev/input/touchscreen"
+
+LVGL_CONFIG_USE_FBDEV = "${@bb.utils.contains('PACKAGECONFIG', 'fbdev', '1', '0', d)}"
+
+LVGL_CONFIG_USE_SDL = "${@bb.utils.contains('PACKAGECONFIG', 'sdl', '1', '0', d)}"
+
+LVGL_CONFIG_USE_WAYLAND = "${@bb.utils.contains('PACKAGECONFIG', 'wayland', '1', '0', d)}"
+LVGL_CONFIG_WAYLAND_HOR_RES ?= "480"
+LVGL_CONFIG_WAYLAND_VER_RES ?= "320"
+
+EXTRA_OECMAKE += "-Dinstall:BOOL=ON -DLIB_INSTALL_DIR=${baselib}"
+
+do_configure:append() {
+    # If there is a configuration template, start from that
+    [ -r "${S}/lv_drv_conf_template.h" ] && cp -Lv "${S}/lv_drv_conf_template.h" "${S}/lv_drv_conf.h"
+
+    # Configure the software using sed
+    sed -e "s|#if 0 .*Set it to \"1\" to enable the content.*|#if 1 // Enabled by ${PN}|g" \
+        \
+        -e "s|\(^#  define USE_DRM \).*|#  define USE_DRM ${LVGL_CONFIG_USE_DRM}|g" \
+        -e "s|\(^#  define DRM_CARD \).*|#  define DRM_CARD \"${LVGL_CONFIG_DRM_CARD}\"|g" \
+	\
+        -e "s|\(^#  define USE_EVDEV \).*|#  define USE_EVDEV ${LVGL_CONFIG_USE_EVDEV}|g" \
+        -e "s|\(^#  define EVDEV_NAME \).*|#  define EVDEV_NAME \"${LVGL_CONFIG_EVDEV_INPUT}\"|g" \
+        \
+        -e "s|\(^#  define USE_FBDEV \).*|#  define USE_FBDEV ${LVGL_CONFIG_USE_FBDEV}|g" \
+        \
+        -e "s|\(^# define USE_SDL \).*|#  define USE_SDL ${LVGL_CONFIG_USE_SDL}|g" \
+        -e "s|\(^#  define USE_SDL_GPU \).*|#  define USE_SDL_GPU 1|g" \
+        -e "s|\(^#  define SDL_DOUBLE_BUFFERED \).*|#  define SDL_DOUBLE_BUFFERED 1|g" \
+        \
+        -e "s|\(^#  define USE_WAYLAND \).*|#  define USE_WAYLAND ${LVGL_CONFIG_USE_WAYLAND}|g" \
+        -e "s|\(^ *# *define *WAYLAND_HOR_RES *\).*|\1${LVGL_CONFIG_WAYLAND_HOR_RES}|g" \
+        -e "s|\(^ *# *define *WAYLAND_VER_RES *\).*|\1${LVGL_CONFIG_WAYLAND_VER_RES}|g" \
+        \
+        -i "${S}/lv_drv_conf.h"
+}
diff --git a/meta-openembedded/meta-oe/recipes-graphics/lvgl/lv-drivers_8.3.0.bb b/meta-openembedded/meta-oe/recipes-graphics/lvgl/lv-drivers_8.3.0.bb
index a0a2ee0..e2c5a34 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/lvgl/lv-drivers_8.3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/lvgl/lv-drivers_8.3.0.bb
@@ -14,39 +14,15 @@
 DEPENDS = "lvgl"
 
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland fbdev', d)}"
-PACKAGECONFIG[fbdev] = ",,"
-PACKAGECONFIG[wayland] = ",,libxkbcommon wayland"
-LVGL_CONFIG_USE_FBDEV = "${@bb.utils.contains('PACKAGECONFIG', 'fbdev', '1', '0', d)}"
-LVGL_CONFIG_USE_WAYLAND = "${@bb.utils.contains('PACKAGECONFIG', 'wayland', '1', '0', d)}"
+require lv-drivers.inc
 
 inherit cmake
 
 S = "${WORKDIR}/git"
 
-LVGL_CONFIG_WAYLAND_HOR_RES ?= "480"
-LVGL_CONFIG_WAYLAND_VER_RES ?= "320"
-
-EXTRA_OECMAKE += "-Dinstall:BOOL=ON -DLIB_INSTALL_DIR=${baselib}"
-
 TARGET_CFLAGS += "-DLV_CONF_INCLUDE_SIMPLE=1"
 TARGET_CFLAGS += "-I${STAGING_INCDIR}/lvgl"
 
-# Upstream does not support a default configuration
-# but propose a default "disabled" template, which is used as reference
-# More configuration can be done using external configuration variables
-do_configure:append() {
-    [ -r "${S}/lv_drv_conf.h" ] \
-        || sed -e "s|#if 0 .*Set it to \"1\" to enable the content.*|#if 1 // Enabled by ${PN}|g" \
-	       \
-               -e "s|\(^#  define USE_FBDEV \).*|#  define USE_FBDEV ${LVGL_CONFIG_USE_FBDEV}|g" \
-               -e "s|\(^#  define USE_EVDEV \).*|#  define USE_EVDEV ${LVGL_CONFIG_USE_FBDEV}|g" \
-	       \
-               -e "s|\(^#  define USE_WAYLAND \).*|#  define USE_WAYLAND ${LVGL_CONFIG_USE_WAYLAND}|g" \
-	       -e "s|\(^ *# *define *WAYLAND_HOR_RES *\).*|\1${LVGL_CONFIG_WAYLAND_HOR_RES}|g" \
- 	       -e "s|\(^ *# *define *WAYLAND_VER_RES *\).*|\1${LVGL_CONFIG_WAYLAND_VER_RES}|g" \
-          < "${S}/lv_drv_conf_template.h" > "${S}/lv_drv_conf.h"
-}
-
 FILES:${PN}-dev += "\
     ${includedir}/lvgl/lv_drivers/ \
     "
diff --git a/meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_8.3.0.bb b/meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_8.3.0.bb
index 33e7c94..32f833a 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_8.3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_8.3.0.bb
@@ -11,30 +11,15 @@
 EXTRA_OEMAKE = "DESTDIR=${D}"
 
 PACKAGECONFIG ??= "drm"
-PACKAGECONFIG[drm] = ",,libdrm"
-PACKAGECONFIG[fbdev] = ",,"
-PACKAGECONFIG[sdl] = ",,virtual/libsdl2"
-LVGL_CONFIG_USE_DRM = "${@bb.utils.contains('PACKAGECONFIG', 'drm', '1', '0', d)}"
-LVGL_CONFIG_DRM_CARD ?= "/dev/dri/card0"
-LVGL_CONFIG_USE_FBDEV = "${@bb.utils.contains('PACKAGECONFIG', 'fbdev', '1', '0', d)}"
-LVGL_CONFIG_USE_SDL = "${@bb.utils.contains('PACKAGECONFIG', 'sdl', '1', '0', d)}"
+require lv-drivers.inc
 
 inherit cmake
 
 S = "${WORKDIR}/git"
 
-EXTRA_OECMAKE += "-Dinstall:BOOL=ON -DLIB_INSTALL_DIR=${baselib}"
 TARGET_CFLAGS += "-I${STAGING_INCDIR}/libdrm"
 
 do_configure:prepend() {
-	sed -i -e "s|\(^#  define USE_FBDEV \).*|#  define USE_FBDEV ${LVGL_CONFIG_USE_FBDEV}|g" \
-		-e "s|\(^#  define USE_DRM \).*|#  define USE_DRM ${LVGL_CONFIG_USE_DRM}|g" \
-		-e "s|\(^#  define DRM_CARD \).*|#  define DRM_CARD \"${LVGL_CONFIG_DRM_CARD}\"|g" \
-		-e "s|\(^# define USE_SDL \).*|#  define USE_SDL ${LVGL_CONFIG_USE_SDL}|g" \
-		-e "s|\(^#  define USE_SDL_GPU \).*|#  define USE_SDL_GPU 1|g" \
-		-e "s|\(^#  define SDL_DOUBLE_BUFFERED \).*|#  define SDL_DOUBLE_BUFFERED 1|g" \
-	"${S}/lv_drv_conf.h"
-
 	if [ "${LVGL_CONFIG_USE_DRM}" -eq 1 ] ; then
 		# Add libdrm build dependency
 		sed -i '/^target_link_libraries/ s@lvgl::drivers@& drm@' "${S}/CMakeLists.txt"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.13.bb b/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.27.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.13.bb
rename to meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.27.bb
index ceff54f..c89b2d1 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.13.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/renderdoc/renderdoc_1.27.bb
@@ -2,9 +2,9 @@
 DESCRIPTION = "RenderDoc is a frame-capture based graphics debugger"
 HOMEPAGE = "https://github.com/baldurk/renderdoc"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=5486c0df458c74c85828e0cdbffd499e"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=36d34a46cb71546195d2b0c626a52e5d"
 
-SRCREV = "cc05b288b6d1660ab04c6cf01173f1bb62e6f5dd"
+SRCREV = "35b13a8e8fd2a331854dba6da81a20452e142d6f"
 SRC_URI = " \
     git://github.com/baldurk/${BPN}.git;protocol=https;branch=v1.x \
     file://0001-renderdoc-use-xxd-instead-of-cross-compiling-shim-bi.patch \
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xsetmode_1.0.0.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xsetmode_1.0.0.bb
deleted file mode 100644
index b757329..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xsetmode_1.0.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "X.Org X11 X client utilities"
-HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xsetmode/"
-DESCRIPTION = "xsetmode sets the mode of an XInput device to either absolute \
-or relative."
-SECTION = "x11/app"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9b37e00e7793b667cbc64f9df7b6d733"
-
-DEPENDS += "libxi"
-BBCLASSEXTEND = "native"
-
-SRC_URI[md5sum] = "d074e79d380b031d2f60e4cd56538c93"
-SRC_URI[sha256sum] = "988b47cd922991c6e6adbce15dc386ac75690b61744b526c3af5a4eaa9afa0aa"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_382.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_383.bb
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_382.bb
rename to meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_383.bb
index 3bae136..cac0003 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_382.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_383.bb
@@ -8,7 +8,7 @@
            file://0001-Add-configure-time-check-for-setsid.patch \
           "
 
-SRC_URI[sha256sum] = "0cd0bcf3d0aa746a840ea3f1366ea29a74263694d535b5c777f27eb65d7fceed"
+SRC_URI[sha256sum] = "a06613bcda508c2a1bff6d4230895da74a798799a2e39a23bac82089d7b9a998"
 
 PACKAGECONFIG ?= ""
 PACKAGECONFIG[xft] = "--enable-freetype,--disable-freetype,libxft fontconfig freetype-native"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/0001-lbx_zlib-Mark-declration-with-extern.patch b/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/0001-lbx_zlib-Mark-declration-with-extern.patch
deleted file mode 100644
index 32a24b4..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/0001-lbx_zlib-Mark-declration-with-extern.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 95ed4b743f197e20f1884a326d5a7128187a7ba6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Aug 2020 17:56:30 -0700
-Subject: [PATCH] lbx_zlib: Mark declration with extern
-
-Fixes build with gcc10/-fno-common
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/lbx_zlib/lbx_zlib.h | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/src/lbx_zlib/lbx_zlib.h b/src/lbx_zlib/lbx_zlib.h
-index 8ae8956..bec3b96 100644
---- a/src/lbx_zlib/lbx_zlib.h
-+++ b/src/lbx_zlib/lbx_zlib.h
-@@ -136,9 +136,9 @@ extern void Xfree(pointer /*ptr*/);
- #endif
- 
- /* lbx_zlib.c */
--unsigned long stream_out_compressed;
--unsigned long stream_out_uncompressed;
--unsigned long stream_out_plain;
--unsigned long stream_in_compressed;
--unsigned long stream_in_uncompressed;
--unsigned long stream_in_plain;
-+extern unsigned long stream_out_compressed;
-+extern unsigned long stream_out_uncompressed;
-+extern unsigned long stream_out_plain;
-+extern unsigned long stream_in_compressed;
-+extern unsigned long stream_in_uncompressed;
-+extern unsigned long stream_in_plain;
--- 
-2.28.0
-
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/mkg3states-1.1.patch b/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/mkg3states-1.1.patch
deleted file mode 100644
index af7d208..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/mkg3states-1.1.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Upstream-Status: Pending
-
-diff -uNr liblbxutil-1.1.0.orig/configure.ac liblbxutil-1.1.0/configure.ac
---- liblbxutil-1.1.0.orig/configure.ac	2009-12-04 23:52:04.000000000 +0100
-+++ liblbxutil-1.1.0/configure.ac	2009-12-16 10:45:00.000000000 +0100
-@@ -50,4 +50,5 @@
- 
- AC_OUTPUT([Makefile
- 	   src/Makefile
-+	   src/image/Makefile
- 	   lbxutil.pc])
-diff -uNr liblbxutil-1.1.0.orig/src/image/Makefile.am liblbxutil-1.1.0/src/image/Makefile.am
---- liblbxutil-1.1.0.orig/src/image/Makefile.am	1970-01-01 01:00:00.000000000 +0100
-+++ liblbxutil-1.1.0/src/image/Makefile.am	2009-12-16 10:45:00.000000000 +0100
-@@ -0,0 +1,15 @@
-+# evil hack
-+CFLAGS=$(CFLAGS_FOR_BUILD)
-+CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
-+LDFLAGS=$(LDFLAGS_FOR_BUILD)
-+
-+CC=$(CC_FOR_BUILD)
-+LIBTOOL = @LIBTOOL@ --tag=CC
-+
-+noinst_PROGRAMS = mkg3states
-+
-+mkg3states_SOURCES =				\
-+	mkg3states.c
-+
-+mkg3states_CFLAGS=$(CFLAGS_FOR_BUILD)
-+mkg3states_LDFLAGS=$(LDFLAGS_FOR_BUILD)
-diff -uNr liblbxutil-1.1.0.orig/src/Makefile.am liblbxutil-1.1.0/src/Makefile.am
---- liblbxutil-1.1.0.orig/src/Makefile.am	2009-12-16 10:48:11.000000000 +0100
-+++ liblbxutil-1.1.0/src/Makefile.am	2009-12-16 10:46:47.000000000 +0100
-@@ -3,10 +3,7 @@
- AM_CFLAGS = $(CWARNFLAGS) $(LBXUTIL_CFLAGS)
- INCLUDES = -I$(top_srcdir)/include
- 
--noinst_PROGRAMS = mkg3states
--
--mkg3states_SOURCES =				\
--	$(srcdir)/image/mkg3states.c
-+SUBDIRS = image
- 
- liblbxutil_la_SOURCES =				\
- 	$(srcdir)/lbx_zlib/reqstats.h		\
-@@ -38,9 +35,8 @@
- 
- $(srcdir)/image/dfaxg42d.c: g3states.h
- 
--g3states.h: mkg3states
--	-rm -f g3states.h
--	$(AM_V_GEN) ./mkg3states -c > g3states.h_ && mv g3states.h_ g3states.h
-+g3states.h: image/mkg3states
-+	$(AM_V_GEN) ./image/mkg3states -c > g3states.h_ && mv g3states.h_ g3states.h
- 
- liblbxutil_la_LDFLAGS = -version-number 1:0:0 -no-undefined
- 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb
deleted file mode 100644
index ce06490..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-require recipes-graphics/xorg-lib/xorg-lib-common.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b0d5bdc98f7ebab3b6c3791d9bf40907"
-
-SUMMARY = "XFIXES Extension"
-DEPENDS += " xorgproto zlib"
-PE = "1"
-PR = "r11"
-
-XORG_EXT = "tar.bz2"
-
-SRC_URI += "file://mkg3states-1.1.patch \
-            file://0001-lbx_zlib-Mark-declration-with-extern.patch \
-           "
-SRC_URI[md5sum] = "273329a78c2e9ea189ac416c7fde94a1"
-SRC_URI[sha256sum] = "c6b6ff7858ec619cafa8205debca6bf78c5610a2844a782ed643c7fd017cf8ae"
-
-export CC_FOR_BUILD = "gcc"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb
deleted file mode 100644
index e7c9b64..0000000
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-require recipes-graphics/xorg-lib/xorg-lib-common.inc
-SUMMARY = "X11 keyboard UI presentation library"
-LICENSE = "SGI-1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94"
-DEPENDS += "virtual/libx11 libxt libxkbfile"
-PE = "1"
-PR = "r10"
-
-XORG_EXT = "tar.bz2"
-
-SRC_URI[md5sum] = "1143e456f7429e18e88f2eadb2f2b6b1"
-SRC_URI[sha256sum] = "20c23101d63234ee5f6d696dfa069b29c6c58e39eff433bcd7705b50b3ffa214"
diff --git a/meta-openembedded/meta-oe/recipes-kernel/crash/crash/0001-make-src-string-const-in-strlcpy.patch b/meta-openembedded/meta-oe/recipes-kernel/crash/crash/0001-make-src-string-const-in-strlcpy.patch
new file mode 100644
index 0000000..546973e
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-kernel/crash/crash/0001-make-src-string-const-in-strlcpy.patch
@@ -0,0 +1,69 @@
+From 4ee56105881d7bb1da1e668ac5bb47a4e0846676 Mon Sep 17 00:00:00 2001
+From: Lianbo Jiang <lijiang@redhat.com>
+Date: Wed, 5 Jul 2023 10:02:59 +0800
+Subject: [PATCH] Fix compilation error due to new strlcpy function that glibc
+ added
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The crash-utility has its own strlcpy(), but recently the latest glibc
+has also implemented the strlcpy function, which is derived from
+OpenBSD.  Eventually this caused the following compilation error:
+
+  # make -j8 lzo
+  ...
+  In file included from global_data.c:18:
+  defs.h:5556:8: error: conflicting types for ‘strlcpy’; have ‘size_t(char *, char *, size_t)’ {aka ‘long unsigned int(char *, char *, long unsigned int)’}
+   5556 | size_t strlcpy(char *, char *, size_t);
+        |        ^~~~~~~
+  In file included from memory.c:19:
+  defs.h:5556:8: error: conflicting types for ‘strlcpy’; have ‘size_t(char *, char *, size_t)’ {aka ‘long unsigned int(char *, char *, long unsigned int)’}
+   5556 | size_t strlcpy(char *, char *, size_t);
+        |        ^~~~~~~
+  ...
+
+To fix the issue, let's declare the strlcpy() as a weak function and
+keep the same parameter types as the glibc function has.
+
+Related glibc commits:
+454a20c8756c ("Implement strlcpy and strlcat [BZ #178]")
+d2fda60e7c40 ("manual: Manual update for strlcat, strlcpy, wcslcat, wclscpy")
+388ae538ddcb ("hurd: Add strlcpy, strlcat, wcslcpy, wcslcat to libc.abilist")
+
+Upstream-Status: Backport [https://github.com/kraj/crash/commit/4ee56105881d7bb1da1e668ac5bb47a4e0846676]
+Signed-off-by: Lianbo Jiang <lijiang@redhat.com>
+---
+ defs.h  | 2 +-
+ tools.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/defs.h b/defs.h
+index 8f7d1fa..26afe23 100644
+--- a/defs.h
++++ b/defs.h
+@@ -5553,7 +5553,7 @@ uint32_t swap32(uint32_t, int);
+ uint64_t swap64(uint64_t, int);
+ ulong *get_cpumask_buf(void);
+ int make_cpumask(char *, ulong *, int, int *);
+-size_t strlcpy(char *, char *, size_t);
++size_t strlcpy(char *, const char *, size_t) __attribute__ ((__weak__));
+ struct rb_node *rb_first(struct rb_root *);
+ struct rb_node *rb_parent(struct rb_node *, struct rb_node *);
+ struct rb_node *rb_right(struct rb_node *, struct rb_node *);
+diff --git a/tools.c b/tools.c
+index 392a797..0f2db10 100644
+--- a/tools.c
++++ b/tools.c
+@@ -6795,7 +6795,7 @@ make_cpumask_error:
+  * always be NULL-terminated.
+  */
+ size_t 
+-strlcpy(char *dest, char *src, size_t size)
++strlcpy(char *dest, const char *src, size_t size)
+ {
+ 	size_t ret = strlen(src);
+ 
+-- 
+2.41.0
+
diff --git a/meta-openembedded/meta-oe/recipes-kernel/crash/crash_8.0.2.bb b/meta-openembedded/meta-oe/recipes-kernel/crash/crash_8.0.2.bb
index f58bb6e..f8a460b 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/crash/crash_8.0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/crash/crash_8.0.2.bb
@@ -20,6 +20,7 @@
            file://0001-cross_add_configure_option.patch \
            file://donnot-extract-gdb-during-do-compile.patch \
            file://gdb_build_jobs_and_not_write_crash_target.patch \
+           file://0001-make-src-string-const-in-strlcpy.patch \
            "
 SRCREV = "f1cd581d1c4afa5b8ffdfaa6a3ea9f545fe4ec91"
 
diff --git a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.3.bb b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.6.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.3.bb
rename to meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.6.bb
index 1e8ce7e..dfe9f7b 100644
--- a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.3.bb
+++ b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.6.bb
@@ -9,7 +9,7 @@
 
 inherit autotools pkgconfig ptest systemd update-rc.d
 
-SRCREV = "e4706bf28a0699094add5d77a4b97145c2292c47"
+SRCREV = "da62115c0fab3a4608e4b0ee0c8aa0cf134c14ca"
 
 SRC_URI = "git://github.com/diamon/minicoredumper;protocol=https;branch=master \
            file://minicoredumper.service \
diff --git a/meta-openembedded/meta-oe/recipes-navigation/geos/geos/0001-include-missing-cstdint.patch b/meta-openembedded/meta-oe/recipes-navigation/geos/geos/0001-include-missing-cstdint.patch
deleted file mode 100644
index 6cfd2e8..0000000
--- a/meta-openembedded/meta-oe/recipes-navigation/geos/geos/0001-include-missing-cstdint.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 11b9ef265a942cb3fdd373520d0c3fce67d3cdf9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 26 Jan 2023 18:05:33 -0800
-Subject: [PATCH] include missing <cstdint>
-
-gcc 13 moved some includes around and as a result <cstdint> is no longer transitively included [1]. Explicitly include it for uint{32,64}_t.
-
-[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
-
-Upstream-Status: Backport [https://github.com/kraj/geos/commit/0e8d4368b]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- include/geos/geomgraph/TopologyLocation.h   | 1 +
- include/geos/io/WKTWriter.h                 | 1 +
- include/geos/shape/fractal/HilbertCode.h    | 1 +
- include/geos/shape/fractal/HilbertEncoder.h | 1 +
- include/geos/shape/fractal/MortonCode.h     | 1 +
- 5 files changed, 5 insertions(+)
-
-diff --git a/include/geos/geomgraph/TopologyLocation.h b/include/geos/geomgraph/TopologyLocation.h
-index 4cbbacb3..a3ecd212 100644
---- a/include/geos/geomgraph/TopologyLocation.h
-+++ b/include/geos/geomgraph/TopologyLocation.h
-@@ -25,6 +25,7 @@
- #include <geos/inline.h>
- #include <geos/geom/Location.h>
- 
-+#include <cstdint>
- #include <vector>
- #include <array>
- #include <string>
-diff --git a/include/geos/io/WKTWriter.h b/include/geos/io/WKTWriter.h
-index c0af8e71..0d60e975 100644
---- a/include/geos/io/WKTWriter.h
-+++ b/include/geos/io/WKTWriter.h
-@@ -25,6 +25,7 @@
- 
- #include <string>
- #include <cctype>
-+#include <cstdint>
- 
- #ifdef _MSC_VER
- #pragma warning(push)
-diff --git a/include/geos/shape/fractal/HilbertCode.h b/include/geos/shape/fractal/HilbertCode.h
-index 46012efc..beeb28c6 100644
---- a/include/geos/shape/fractal/HilbertCode.h
-+++ b/include/geos/shape/fractal/HilbertCode.h
-@@ -17,6 +17,7 @@
- 
- #include <geos/export.h>
- #include <string>
-+#include <cstdint>
- 
- // Forward declarations
- namespace geos {
-diff --git a/include/geos/shape/fractal/HilbertEncoder.h b/include/geos/shape/fractal/HilbertEncoder.h
-index 61c0010d..0126d3d9 100644
---- a/include/geos/shape/fractal/HilbertEncoder.h
-+++ b/include/geos/shape/fractal/HilbertEncoder.h
-@@ -16,6 +16,7 @@
- #pragma once
- 
- #include <geos/export.h>
-+#include <cstdint>
- #include <string>
- #include <vector>
- 
-diff --git a/include/geos/shape/fractal/MortonCode.h b/include/geos/shape/fractal/MortonCode.h
-index 6743f87c..ad4a42e7 100644
---- a/include/geos/shape/fractal/MortonCode.h
-+++ b/include/geos/shape/fractal/MortonCode.h
-@@ -17,6 +17,7 @@
- 
- #include <geos/export.h>
- #include <string>
-+#include <cstdint>
- 
- // Forward declarations
- namespace geos {
--- 
-2.39.1
-
diff --git a/meta-openembedded/meta-oe/recipes-navigation/geos/geos_3.9.4.bb b/meta-openembedded/meta-oe/recipes-navigation/geos/geos_3.12.0.bb
similarity index 67%
rename from meta-openembedded/meta-oe/recipes-navigation/geos/geos_3.9.4.bb
rename to meta-openembedded/meta-oe/recipes-navigation/geos/geos_3.12.0.bb
index 558acd9..95cb297 100644
--- a/meta-openembedded/meta-oe/recipes-navigation/geos/geos_3.9.4.bb
+++ b/meta-openembedded/meta-oe/recipes-navigation/geos/geos_3.12.0.bb
@@ -5,13 +5,10 @@
 LICENSE = "LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
 
-SRC_URI = "http://download.osgeo.org/${BPN}/${BP}.tar.bz2 \
-           file://0001-include-missing-cstdint.patch"
-SRC_URI[sha256sum] = "70dff2530d8cd2dfaeeb91a5014bd17afb1baee8f0e3eb18e44d5b4dbea47b14"
+SRC_URI = "http://download.osgeo.org/${BPN}/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "d96db96011259178a35555a0f6d6e75a739e52a495a6b2aa5efb3d75390fbc39"
 
-inherit autotools pkgconfig binconfig
-
-EXTRA_OECONF += "--enable-inline=no"
+inherit cmake pkgconfig binconfig
 
 PACKAGES =+ "geoslib ${PN}-c1"
 
diff --git a/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc/makefile-add-ldflags.patch b/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc/makefile-add-ldflags.patch
index 6e4803f..4e9659a 100644
--- a/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc/makefile-add-ldflags.patch
+++ b/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc/makefile-add-ldflags.patch
@@ -3,10 +3,15 @@
 Upstream-Status: Pending
 
 Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ Makefile | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
 
+diff --git a/Makefile b/Makefile
+index 404f036..a9b18f0 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -68,18 +68,17 @@ XGETTEXT = xgettext
+@@ -75,13 +75,12 @@ XGETTEXT = xgettext
  XGETTEXT_OPTS = --keyword=_ --keyword=P2_:1,1 --keyword=P3_:1,2 --language=C --add-comments
  MSGMERGE = msgmerge
  
@@ -21,9 +26,15 @@
  	-Wl,--soname,$(SHARED_LIB),--version-script,$(MAP_LIB)
  LDFLAGS_lib_SUN = $(LDFLAGS_shared_SUN)
  LDFLAGS_lib_HP = $(LDFLAGS_shared_HP)
+@@ -90,7 +89,7 @@ LDFLAGS_lib_CYGWIN = $(LDFLAGS_shared) \
+ 	-Wl,--export-all-symbols \
+ 	-Wl,--enable-auto-import
  LDFLAGS_pam = $(LDFLAGS_shared)
 -LDFLAGS_pam_LINUX = $(LDFLAGS_shared_LINUX) \
 +LDFLAGS_pam_LINUX = $(LDFLAGS) $(LDFLAGS_shared_LINUX) \
  	-Wl,--version-script,$(MAP_PAM)
  LDFLAGS_pam_SUN = $(LDFLAGS_shared_SUN)
  LDFLAGS_pam_HP = $(LDFLAGS_shared_HP)
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_2.0.2.bb b/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_2.0.3.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_2.0.2.bb
rename to meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_2.0.3.bb
index 8462701..8694052 100644
--- a/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_2.0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-security/passwdqc/passwdqc_2.0.3.bb
@@ -30,7 +30,7 @@
 SRC_URI = "http://www.openwall.com/${BPN}/${BP}.tar.gz \
            file://makefile-add-ldflags.patch \
           "
-SRC_URI[sha256sum] = "ff1f505764c020f6a4484b1e0cc4fdbf2e3f71b522926d90b4709104ca0604ab"
+SRC_URI[sha256sum] = "53b0f4bc49369f06195e9e13abb6cff352d5acb79e861004ec95973896488cf4"
 
 # explicitly define LINUX_PAM in case DISTRO_FEATURES no pam
 # this package's pam_passwdqc.so needs pam
diff --git a/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.11.1.bb b/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.11.2.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.11.1.bb
rename to meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.11.2.bb
index bb0bd7d..9b6a52e 100644
--- a/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.11.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/avro/avro-c_1.11.2.bb
@@ -8,7 +8,7 @@
 DEPENDS = "jansson zlib xz"
 
 BRANCH = "branch-1.11"
-SRCREV = "3a9e5a789b5165e0c8c4da799c387fdf84bfb75e"
+SRCREV = "44d1c4f221ccc4571a4b4b9edb023ed1e89354b7"
 SRC_URI = "git://github.com/apache/avro;branch=${BRANCH};protocol=https \
           "
 
diff --git a/meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb b/meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb
index 8d3992a..3e8e2cd 100644
--- a/meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb
+++ b/meta-openembedded/meta-oe/recipes-support/fltk/fltk-native.bb
@@ -2,6 +2,8 @@
 
 DEPENDS = "zlib-native jpeg-native libpng-native libxext-native libxft-native"
 
+SRC_URI += "file://fltk-native-link-libdl.patch"
+
 inherit native
 
 EXTRA_OECMAKE += " \
@@ -15,9 +17,6 @@
     -DOPTION_USE_XCURSOR=OFF \
 "
 
-# lib/libfltk.a(Fl_Native_File_Chooser.cxx.o): undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
-LDFLAGS += "-ldl"
-
 do_install:append() {
     # make sure native fltk-config is not used accidentaly
     rm -f ${D}${bindir}/fltk-config
diff --git a/meta-openembedded/meta-oe/recipes-support/fltk/fltk/fltk-native-link-libdl.patch b/meta-openembedded/meta-oe/recipes-support/fltk/fltk/fltk-native-link-libdl.patch
new file mode 100644
index 0000000..e140ce2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/fltk/fltk/fltk-native-link-libdl.patch
@@ -0,0 +1,44 @@
+Upstream-Status: Inappropriate [cross build specific]
+
+It fails to build fltk-native on Ubuntu 20.04 with glibc 2.31:
+
+| /path_to/tmp/hosttools/ld: lib/libfltk.a(Fl_Native_File_Chooser.cxx.o): in function `fl_dlopen(char const*, char const*)':
+| Fl_Native_File_Chooser.cxx:(.text+0x61a): undefined reference to `dlopen'
+| /path_to/tmp/hosttools/ld: lib/libfltk.a(Fl_Native_File_Chooser.cxx.o): in function `Fl_GTK_File_Chooser::probe_for_GTK_libs()':
+| Fl_Native_File_Chooser.cxx:(.text+0xf92): undefined reference to `dlerror'
+
+The original fix in fltk-native recipe does not work any more because '-ldl'
+appears before lib/libfltk.a and causes dlopen() unresolved. The reason why it
+doesn't fail on other hosts is that the functions dlopen(), dlerror() etc. have
+been moved to libc.so since glibc 2.34 via the commits in glibc:
+
+0c1c3a771e dlfcn: Move dlopen into libc
+add8d7ea01 dlfcn: Move dlvsym into libc
+6dfc0207eb dlfcn: Move dlinfo into libc
+492560a32e dlfcn: Move dladdr1 into libc
+6a1ed32789 dlfcn: Move dlmopen into libc
+77f876c0e3 dlfcn: Move dlsym into libc
+602252b553 dlfcn: Move dladdr into libc
+d8cce17d2a dlfcn: Move dlclose into libc
+
+Append 'dl' to fltk link items explictly to fix the error.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+---
+ src/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index d153b1c..0fe5c11 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -306,7 +306,7 @@ endif (USE_XFT)
+ #######################################################################
+ 
+ FL_ADD_LIBRARY (fltk STATIC "${STATIC_FILES}")
+-target_link_libraries (fltk ${OPTIONAL_LIBS})
++target_link_libraries (fltk ${OPTIONAL_LIBS} dl)
+ 
+ #######################################################################
+ 
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
index a2d1f57..cb19bc5 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
@@ -34,7 +34,7 @@
 FILES:libgpiodcxx = "${libdir}/libgpiodcxx.so.*"
 
 RRECOMMENDS:${PN}-ptest += "coreutils"
-RDEPENDS:${PN}-ptest += "bats"
+RDEPENDS:${PN}-ptest += "${@bb.utils.contains('PTEST_ENABLED', '1', 'bats', '', d)}"
 
 do_install:append() {
     rm -f ${D}${bindir}/gpiod-test
diff --git a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
index ea51c19..7907dcf 100644
--- a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
@@ -22,6 +22,7 @@
 
 EXTRA_OECMAKE = " \
     -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+    -DCPP_BINDINGS=ON \
     -DFLEX_TARGET_ARG_COMPILE_FLAGS='--noline' \
     -DBISON_TARGET_ARG_COMPILE_FLAGS='--no-lines' \
     -DUDEV_RULES_INSTALL_DIR=${nonarch_base_libdir}/udev/rules.d \
diff --git a/meta-openembedded/meta-oe/recipes-support/libpaper/libpaper_2.1.0.bb b/meta-openembedded/meta-oe/recipes-support/libpaper/libpaper_2.1.0.bb
index 26f8fab..9115825 100644
--- a/meta-openembedded/meta-oe/recipes-support/libpaper/libpaper_2.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libpaper/libpaper_2.1.0.bb
@@ -6,6 +6,4 @@
 
 inherit perlnative autotools
 
-EXTRA_AUTORECONF += "--install"
-
 BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2023-2617.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2023-2617.patch
deleted file mode 100644
index 92c096e..0000000
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/CVE-2023-2617.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-commit ccc277247ac1a7aef0a90353edcdec35fbc5903c
-Author: Nano <nanoapezlk@gmail.com>
-Date:   Wed Apr 26 15:09:52 2023 +0800
-
-    fix(wechat_qrcode): Init nBytes after the count value is determined (#3480)
-
-    * fix(wechat_qrcode): Initialize nBytes after the count value is determined
-
-    * fix(wechat_qrcode): Incorrect count data repair
-
-    * chore: format expr
-
-    * fix(wechat_qrcode): Avoid null pointer exception
-
-    * fix(wechat_qrcode): return when bytes_ is empty
-
-    * test(wechat_qrcode): add test case
-
-    ---------
-
-    Co-authored-by: GZTime <Time.GZ@outlook.com>
-
-CVE: CVE-2023-2617
-
-Upstream-Status: Backport [https://github.com/opencv/opencv_contrib/commit/ccc277247ac1a7aef0a90353edcdec35fbc5903c]
-
-Signed-off-by: Soumya <soumya.sambu@windriver.com>
----
-
-diff --git a/modules/wechat_qrcode/src/zxing/qrcode/decoder/decoded_bit_stream_parser.cpp b/modules/wechat_qrcode/src/zxing/qrcode/decoder/decoded_bit_stream_parser.cpp
-index 05de793c..b3a0a69c 100644
---- a/modules/wechat_qrcode/src/zxing/qrcode/decoder/decoded_bit_stream_parser.cpp
-+++ b/modules/wechat_qrcode/src/zxing/qrcode/decoder/decoded_bit_stream_parser.cpp
-@@ -65,7 +65,8 @@ void DecodedBitStreamParser::append(std::string& result, string const& in,
-
- void DecodedBitStreamParser::append(std::string& result, const char* bufIn, size_t nIn,
-                                     ErrorHandler& err_handler) {
--    if (err_handler.ErrCode()) return;
-+    // avoid null pointer exception
-+    if (err_handler.ErrCode() || bufIn == nullptr) return;
- #ifndef NO_ICONV_INSIDE
-     if (nIn == 0) {
-         return;
-@@ -190,16 +191,20 @@ void DecodedBitStreamParser::decodeByteSegment(Ref<BitSource> bits_, string& res
-                                                CharacterSetECI* currentCharacterSetECI,
-                                                ArrayRef<ArrayRef<char> >& byteSegments,
-                                                ErrorHandler& err_handler) {
--    int nBytes = count;
-     BitSource& bits(*bits_);
-     // Don't crash trying to read more bits than we have available.
-     int available = bits.available();
-     // try to repair count data if count data is invalid
-     if (count * 8 > available) {
--        count = (available + 7 / 8);
-+        count = (available + 7) / 8;
-     }
-+    size_t nBytes = count;
-+
-+    ArrayRef<char> bytes_(nBytes);
-+    // issue https://github.com/opencv/opencv_contrib/issues/3478
-+    if (bytes_->empty())
-+        return;
-
--    ArrayRef<char> bytes_(count);
-     char* readBytes = &(*bytes_)[0];
-     for (int i = 0; i < count; i++) {
-         //    readBytes[i] = (char) bits.readBits(8);
-diff --git a/modules/wechat_qrcode/test/test_qrcode.cpp b/modules/wechat_qrcode/test/test_qrcode.cpp
-index d59932b8..ec2559b0 100644
---- a/modules/wechat_qrcode/test/test_qrcode.cpp
-+++ b/modules/wechat_qrcode/test/test_qrcode.cpp
-@@ -455,5 +455,16 @@ TEST_P(Objdetect_QRCode_Easy_Multi, regression) {
- std::string qrcode_model_path[] = {"", "dnn/wechat_2021-01"};
- INSTANTIATE_TEST_CASE_P(/**/, Objdetect_QRCode_Easy_Multi, testing::ValuesIn(qrcode_model_path));
-
-+TEST(Objdetect_QRCode_bug, issue_3478) {
-+    auto detector = wechat_qrcode::WeChatQRCode();
-+    std::string image_path = findDataFile("qrcode/issue_3478.png");
-+    Mat src = imread(image_path, IMREAD_GRAYSCALE);
-+    ASSERT_FALSE(src.empty()) << "Can't read image: " << image_path;
-+    std::vector<std::string> outs = detector.detectAndDecode(src);
-+    ASSERT_EQ(1, (int) outs.size());
-+    ASSERT_EQ(16, (int) outs[0].size());
-+    ASSERT_EQ("KFCVW50         ", outs[0]);
-+}
-+
- }  // namespace
- }  // namespace opencv_test
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.7.0.bb b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.8.0.bb
similarity index 97%
rename from meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.7.0.bb
rename to meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.8.0.bb
index a1fbaaa..9564bbb 100644
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.7.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.8.0.bb
@@ -10,8 +10,8 @@
 
 DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp"
 
-SRCREV_opencv = "725e440d278aca07d35a5e8963ef990572b07316"
-SRCREV_contrib = "e247b680a6bd396f110274b6c214406a93171350"
+SRCREV_opencv = "f9a59f2592993d3dcc080e495f4f5e02dd8ec7ef"
+SRCREV_contrib = "f10c84d48b0714f2b408c9e5cccfac1277c8e6cc"
 SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26"
 SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d"
 SRCREV_face = "8afa57abc8229d611c4937165d20e2a2d9fc5a12"
@@ -19,8 +19,8 @@
 
 
 SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg"
-SRC_URI = "git://github.com/opencv/opencv.git;name=opencv;branch=master;protocol=https \
-           git://github.com/opencv/opencv_contrib.git;destsuffix=git/contrib;name=contrib;branch=master;protocol=https \
+SRC_URI = "git://github.com/opencv/opencv.git;name=opencv;branch=4.x;protocol=https \
+           git://github.com/opencv/opencv_contrib.git;destsuffix=git/contrib;name=contrib;branch=4.x;protocol=https \
            git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=git/boostdesc;name=boostdesc;protocol=https \
            git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=git/vgg;name=vgg;protocol=https \
            git://github.com/opencv/opencv_3rdparty.git;branch=contrib_face_alignment_20170818;destsuffix=git/face;name=face;protocol=https \
@@ -31,7 +31,6 @@
            file://download.patch \
            file://0001-Make-ts-module-external.patch \
            file://0008-Do-not-embed-build-directory-in-binaries.patch \
-           file://CVE-2023-2617.patch;patchdir=contrib \
            "
 SRC_URI:append:riscv64 = " file://0001-Use-Os-to-compile-tinyxml2.cpp.patch;patchdir=contrib"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/pcp/pcp-native_5.3.6.bb b/meta-openembedded/meta-oe/recipes-support/pcp/pcp-native_6.0.5.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-support/pcp/pcp-native_5.3.6.bb
rename to meta-openembedded/meta-oe/recipes-support/pcp/pcp-native_6.0.5.bb
index 5f3c9b6..2f37b09 100644
--- a/meta-openembedded/meta-oe/recipes-support/pcp/pcp-native_5.3.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pcp/pcp-native_6.0.5.bb
@@ -46,8 +46,3 @@
     PCP_MAN_DIR=${D}/${mandir} \
     PCP_DOC_DIR=${D}/${docdir} 
 }
-#| chkacc1.c:8:10: fatal error: localconfig.h: No such file or directory
-#|     8 | #include "localconfig.h"
-#|       |          ^~~~~~~~~~~~~~~
-PARALLEL_MAKE = ""
-
diff --git a/meta-openembedded/meta-oe/recipes-support/pcp/pcp.inc b/meta-openembedded/meta-oe/recipes-support/pcp/pcp.inc
index 708ebfe..4cafa72 100644
--- a/meta-openembedded/meta-oe/recipes-support/pcp/pcp.inc
+++ b/meta-openembedded/meta-oe/recipes-support/pcp/pcp.inc
@@ -9,24 +9,32 @@
 
 SRC_URI = "https://performancecopilot.jfrog.io/artifactory/pcp-source-release/${BP}.src.tar.gz \
            file://0001-configure-Limit-the-header-search-to-sysroot.patch \
+           file://0001-htop-Change-dependency-order-of-header-and-sourcefil.patch \
            file://config.linux \
 	   "
-SRC_URI[sha256sum] = "6ef33b7aa14c09860ba7cd8873e76d38ccd24eab0c94a50e235f813e77fe3610"
+SRC_URI[sha256sum] = "dacf92ba195f1f2ea8f40bf0c455d2cd2456273a1e30dcc3ee5b5bfd099a99ee"
 
 inherit setuptools3-base pkgconfig autotools-brokensep
 
 # Specify any options you want to pass to the configure script using EXTRA_OECONF:
 CACHED_CONFIGUREVARS = "PACKAGE_DISTRIBUTION=arch"
-EXTRA_OECONF:append = " --with-dstat-symlink=yes --with-infiniband=no \
-                --with-pmdapodman=no --with-python=no --with-python3=yes --with-perl=no \
-		--with-pmdabcc=no --with-pmdajson=no  --with-perfevent=no \
-		--with-pmdabcc=yes \
-		--with-rundir=${localstatedir}/run \
-                --with-sysconfigdir=${sysconfdir} \
-                --with-logdir=${localstatedir}/log \
-                --with-docdir=${docdir} \
-                "
+EXTRA_OECONF:append = "\
+                    --with-dstat-symlink=yes \
+                    --with-infiniband=no \
+                    --with-python=no \
+                    --with-perl=no \
+                    --with-python3=yes \
+                    --with-pmdajson=no  \
+                    --with-perfevent=no \
+                    --with-pmdabcc=yes \
+                    --with-rundir=${localstatedir}/run \
+                    --with-sysconfigdir=${sysconfdir} \
+                    --with-logdir=${localstatedir}/log \
+                    --with-docdir=${docdir} \
+                    "
 
 PACKAGECONFIG[qt5] = "--with-qt=yes --with-qt3d=yes,--with-qt=no --with-qt3d=no,qtbase qt3d"
 
 PACKAGECONFIG ?= ""
+
+PARALLEL_MAKE = ""
diff --git a/meta-openembedded/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch b/meta-openembedded/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch
index 2924998..abf4aee 100644
--- a/meta-openembedded/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch
+++ b/meta-openembedded/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch
@@ -11,11 +11,9 @@
  src/libpcp/src/GNUmakefile | 1 -
  2 files changed, 7 deletions(-)
 
-diff --git a/configure.ac b/configure.ac
-index 5b25382..5d24714 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -623,12 +623,6 @@ fi
+@@ -607,12 +607,6 @@ fi
  which=$WHICH
  AC_SUBST(which)
  
@@ -28,18 +26,14 @@
  ar=$AR
  AC_SUBST(ar)
  
-diff --git a/src/libpcp/src/GNUmakefile b/src/libpcp/src/GNUmakefile
-index 3c4ccd6..d1eba19 100644
 --- a/src/libpcp/src/GNUmakefile
 +++ b/src/libpcp/src/GNUmakefile
-@@ -176,7 +176,6 @@ exports:	exports.in mk.exports
- # cases
+@@ -179,8 +179,6 @@ exports:	exports.in mk.exports
+ # consistent in all placess.
  #
  check.done:	$(OBJECTS)
 -	./check-statics
+-	./check-errorcodes
  	touch check.done
  
  ifneq ($(LIBTARGET),)
--- 
-2.25.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/pcp/pcp/0001-configure-Limit-the-header-search-to-sysroot.patch b/meta-openembedded/meta-oe/recipes-support/pcp/pcp/0001-configure-Limit-the-header-search-to-sysroot.patch
index 591f94f..b03c48e 100644
--- a/meta-openembedded/meta-oe/recipes-support/pcp/pcp/0001-configure-Limit-the-header-search-to-sysroot.patch
+++ b/meta-openembedded/meta-oe/recipes-support/pcp/pcp/0001-configure-Limit-the-header-search-to-sysroot.patch
@@ -14,11 +14,9 @@
  configure.ac | 20 ++++++++++----------
  1 file changed, 10 insertions(+), 10 deletions(-)
 
-diff --git a/configure.ac b/configure.ac
-index 5d24714..4e2d8ec 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -913,7 +913,7 @@ AC_DEFUN([PCP_CHECK_PYTHON_HEADER],
+@@ -907,7 +907,7 @@ AC_DEFUN([PCP_CHECK_PYTHON_HEADER],
    [ PY_MAJOR="$1"
      PY_MINOR="$2"
      PY_VERSION="python$PY_MAJOR.$PY_MINOR"
@@ -27,7 +25,7 @@
      saved_CFLAGS="$CFLAGS"
      saved_CPPFLAGS="$CPPFLAGS"
      CFLAGS="$CFLAGS $PY_INCLUDE_DIRS"
-@@ -1524,7 +1524,7 @@ AC_SUBST(qmake)
+@@ -1603,7 +1603,7 @@ AC_SUBST(qmake)
  
  enable_qt3d=false
  AS_IF([test "x$do_qt3d" != "xno"], [
@@ -36,45 +34,7 @@
      then
  	enable_qt3d=$enable_qt
      elif test x"$do_qt3d" = x"yes"
-@@ -3810,13 +3810,13 @@ then
- 
-     saved_CFLAGS="$CFLAGS"
-     saved_CPPFLAGS="$CPPFLAGS"
--    NSS_INC_DIRS="-I/usr/include/nss -I/usr/include/nss3"
--    NSPR_INC_DIRS="-I/usr/include/nspr -I/usr/include/nspr4"
-+    NSS_INC_DIRS="-I${STAGING_INCDIR}/nss -I${STAGING_INCDIR}/nss3"
-+    NSPR_INC_DIRS="-I${STAGING_INCDIR}/nspr -I${STAGING_INCDIR}/nspr4"
-     CFLAGS="$CFLAGS $NSS_INC_DIRS $NSPR_INC_DIRS"
-     CPPFLAGS="$CPPFLAGS $NSS_INC_DIRS $NSPR_INC_DIRS"
- 
--    AC_CHECK_HEADERS([nss/nss.h], [NSSCFLAGS=-I/usr/include/nss], [
--	AC_CHECK_HEADERS([nss3/nss.h], [NSSCFLAGS=-I/usr/include/nss3], [
-+    AC_CHECK_HEADERS([nss/nss.h], [NSSCFLAGS=-I${STAGING_INCDIR}/nss], [
-+	AC_CHECK_HEADERS([nss3/nss.h], [NSSCFLAGS=-I${STAGING_INCDIR}/nss3], [
- 	    enable_secure=false
- 	    if test "$do_secure" = "yes"
- 	    then
-@@ -3826,8 +3826,8 @@ then
-     ])
-     AC_SUBST(NSSCFLAGS)
- 
--    AC_CHECK_HEADERS([nspr/nspr.h], [NSPRCFLAGS=-I/usr/include/nspr], [
--	AC_CHECK_HEADERS([nspr4/nspr.h], [NSPRCFLAGS=-I/usr/include/nspr4], [
-+    AC_CHECK_HEADERS([nspr/nspr.h], [NSPRCFLAGS=-I${STAGING_INCDIR}/nspr], [
-+	AC_CHECK_HEADERS([nspr4/nspr.h], [NSPRCFLAGS=-I${STAGING_INCDIR}/nspr4], [
- 	    enable_secure=false
- 	    if test "$do_secure" = "yes"
- 	    then
-@@ -3837,7 +3837,7 @@ then
-     ])
-     AC_SUBST(NSPRCFLAGS)
- 
--    AC_CHECK_HEADERS([sasl/sasl.h], [SASLCFLAGS=-I/usr/include/sasl], [
-+    AC_CHECK_HEADERS([sasl/sasl.h], [SASLCFLAGS=-I${STAGING_INCDIR}/sasl], [
- 	enable_secure=false
- 	if test "$do_secure" = "yes"
- 	then
-@@ -3938,7 +3938,7 @@ AC_SUBST(enable_decompression)
+@@ -3699,7 +3699,7 @@ AC_SUBST(enable_decompression)
  AC_SUBST(enable_lzma)
  
  dnl check for array sessions
@@ -83,6 +43,3 @@
  then
      pcp_mpi_dirs=libpcp_mpi\ libpcp_mpiread
  else
--- 
-2.35.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/pcp/pcp/0001-htop-Change-dependency-order-of-header-and-sourcefil.patch b/meta-openembedded/meta-oe/recipes-support/pcp/pcp/0001-htop-Change-dependency-order-of-header-and-sourcefil.patch
new file mode 100644
index 0000000..009dfe2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pcp/pcp/0001-htop-Change-dependency-order-of-header-and-sourcefil.patch
@@ -0,0 +1,36 @@
+From c123980d6bf1bc2bf93ee0dd0d7f8fee3d4ddc96 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 5 Jul 2023 08:45:14 -0700
+Subject: [PATCH] htop: Change dependency order of header and sourcefiles
+
+Fixes build race
+| pcp/Platform.h:29:10: fatal error: DiskIOMeter.h: No such file or directory
+|    29 | #include "DiskIOMeter.h"
+|       |          ^~~~~~~~~~~~~~~
+| compilation terminated.
+| make[3]: *** [<builtin>: pcp-htop.o] Error 1
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/pcp/htop/GNUmakefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/pcp/htop/GNUmakefile b/src/pcp/htop/GNUmakefile
+index 6b7c0c5..5153c63 100644
+--- a/src/pcp/htop/GNUmakefile
++++ b/src/pcp/htop/GNUmakefile
+@@ -186,8 +186,8 @@ CFGMETERS = $(patsubst %,pcp/meters/%,$(METERS))
+ CFGCOLUMNS = $(patsubst %,pcp/columns/%,$(COLUMNS))
+ 
+ CFGXFILES = $(CFGMETERS) $(CFGCOLUMNS)
+-TOPXFILES = $(TOPCFILES) $(TOPHFILES) $(DOCFILES)
+-SUBXFILES = $(SUBCFILES) $(SUBHFILES)
++TOPXFILES = $(TOPHFILES) $(TOPCFILES) $(DOCFILES)
++SUBXFILES = $(SUBHFILES) $(SUBCFILES)
+ CFILES = $(TOPCFILES) $(SUBCFILES)
+ HFILES = $(TOPHFILES) $(SUBHFILES)
+ LDIRT = $(TOPXFILES) $(SUBXFILES) $(CFGXFILES) \
+-- 
+2.41.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/pcp/pcp_5.3.6.bb b/meta-openembedded/meta-oe/recipes-support/pcp/pcp_6.0.5.bb
similarity index 87%
rename from meta-openembedded/meta-oe/recipes-support/pcp/pcp_5.3.6.bb
rename to meta-openembedded/meta-oe/recipes-support/pcp/pcp_6.0.5.bb
index 0543d77..b337df6 100644
--- a/meta-openembedded/meta-oe/recipes-support/pcp/pcp_5.3.6.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pcp/pcp_6.0.5.bb
@@ -18,17 +18,26 @@
 export PCP_DIR="${RECIPE_SYSROOT_NATIVE}"
 #export PCP_RUN_DIR="${RECIPE_SYSROOT_NATIVE}"
 EXTRA_OEMAKE = "CC="${CC}" LD="${LD}""
-inherit useradd systemd features_check
+inherit useradd systemd features_check python3targetconfig
 
 # Needs libx11
 REQUIRED_DISTRO_FEATURES = "x11"
 
 SYSTEMD_AUTO_ENABLE:${PN} = "enable"
-SYSTEMD_SERVICE:${PN} = "pmcd.service pmcd.service pmie_check.service pmie_farm_check.service \
-                         pmlogger_daily.service pmlogger_farm_check.service pmfind.service \
-                         pmie_daily.service  pmlogger.service pmlogger_daily_report.service \
-                         pmproxy.service pmie.service pmie_farm.service pmlogger_check.service \
-                         pmlogger_farm.service"
+SYSTEMD_SERVICE:${PN} = "\
+                        pmie_farm_check.service \
+                        pmie_farm.service \
+                        pmfind.service \
+                        pmlogger_farm_check.service \
+                        pmcd.service \
+                        pmie.service \
+                        pmlogger_daily.service \
+                        pmlogger.service \
+                        pmlogger_farm.service \
+                        pmie_check.service \
+                        pmproxy.service \
+                        pmlogger_check.service \
+                        pmie_daily.service"
 
 USERADD_PACKAGES = "${PN}"
 USERADD_PARAM:${PN} = "--system --home ${localstatedir}/lib/pcp --no-create-home \
@@ -88,7 +97,7 @@
 
 PACKAGES += " ${PN}-export-zabbix-agent ${PN}-testsuite \
 	libpcp-gui2  libpcp-gui2-dev \
-	libpcp-import1 \
+	libpcp-import1 libpcp-archive1 \
 	libpcp-mmv1 libpcp-mmv1-dev \
 	libpcp-pmda3 libpcp-pmda3-dev \
 	libpcp-trace2 libpcp-trace2-dev \
@@ -97,6 +106,8 @@
 "
 FILES:libpcp-gui2 = "${libdir}/libpcp_gui.so.2 \
 "	
+FILES:libpcp-archive1 = "${libdir}/libpcp_archive.so.1 \
+"	
 FILES:libpcp-gui2-dev = " \
 	${libdir}/libpcp_gui.so \
 	${libdir}/libpcp_gui.a \
@@ -166,6 +177,7 @@
 	${datadir}/zsh \
 	${systemd_system_unitdir}/ \
 	${libdir}/pcp/ \
+	${libdir}/sysusers.d/pcp.conf \
 	${datadir}/pcp \
 	${libdir}/*.sh \
 	${datadir}/man \
@@ -184,7 +196,7 @@
 	${mandir}/man3/zbxpcp.3.gz \
 	${libdir}/zabbix \
 "
-FILES:${PN}-testsuite = "${localstatedir}/lib/pcp/testsuite/"
+FILES:${PN}-testsuite = "${localstatedir}/lib/pcp/testsuite/ ${libdir}/sysusers.d/pcp-testsuite.conf"
 FILES:python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}"
 FILES:${PN}-dev += " \
         ${includedir}/pcp \
@@ -222,7 +234,3 @@
         ${datadir}/man/man3/pms* \
         ${datadir}/man/man3/pmt* \
 "
-#| chkacc1.c:8:10: fatal error: localconfig.h: No such file or directory
-#|     8 | #include "localconfig.h"
-#|       |          ^~~~~~~~~~~~~~~
-PARALLEL_MAKE = ""
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb
index c0e1790..6ce42ec 100644
--- a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb
@@ -25,6 +25,8 @@
 PACKAGECONFIG[telepathy] = "--enable-telepathy=yes,--enable-telepathy=no,telepathy-glib"
 #PACKAGECONFIG[gssapi_only] = "--enable-gssapi-only=yes,--enable-gssapi-only=no,krb5"
 PACKAGECONFIG[debug] = "--enable-debug=yes,--enable-debug=no,valgrind"
+# disable Werror by default, useful for dev mode
+PACKAGECONFIG[quality] = "--enable-quality-check=yes,--enable-quality-check=no,"
 
 FILES:${PN}-dev += " \
     ${libdir}/purple-2/*.la \
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler/jpeg-stdio.patch b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/jpeg-stdio.patch
new file mode 100644
index 0000000..70ba1cf
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/jpeg-stdio.patch
@@ -0,0 +1,41 @@
+From 2986f06c7cc9d64a506ebe861b8bf38f73386e86 Mon Sep 17 00:00:00 2001
+From: Jordan Abrahams-Whitehead <ajordanr@google.com>
+Date: Tue, 16 May 2023 18:52:19 +0000
+Subject: [PATCH] Add missing #include <cstdio> prior to jpeglib.h
+
+Fixes #1398
+
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ goo/JpegWriter.cc              | 2 +-
+ poppler/ImageEmbeddingUtils.cc | 1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/goo/JpegWriter.cc b/goo/JpegWriter.cc
+index ca69fd055..566ee38f8 100644
+--- a/goo/JpegWriter.cc
++++ b/goo/JpegWriter.cc
+@@ -23,7 +23,7 @@
+ #ifdef ENABLE_LIBJPEG
+ 
+ #    include "poppler/Error.h"
+-
++#    include <cstdio>
+ extern "C" {
+ #    include <jpeglib.h>
+ }
+diff --git a/poppler/ImageEmbeddingUtils.cc b/poppler/ImageEmbeddingUtils.cc
+index 0c13fe968..07b9dfb62 100644
+--- a/poppler/ImageEmbeddingUtils.cc
++++ b/poppler/ImageEmbeddingUtils.cc
+@@ -14,6 +14,7 @@
+ 
+ #include <memory>
+ #ifdef ENABLE_LIBJPEG
++#    include <cstdio>
+ extern "C" {
+ #    include <jpeglib.h>
+ }
+-- 
+GitLab
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_23.04.0.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_23.04.0.bb
index 099be58..8961768 100644
--- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_23.04.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_23.04.0.bb
@@ -7,6 +7,7 @@
            file://0001-Do-not-overwrite-all-our-build-flags.patch \
            file://basename-include.patch \
            file://0001-cmake-Do-not-use-isystem.patch \
+           file://jpeg-stdio.patch \
            "
 SRC_URI[sha256sum] = "b6d893dc7dcd4138b9e9df59a13c59695e50e80dc5c2cacee0674670693951a1"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/pv/pv/0001-pv-display-handle-error-of-tcgetpgrp-in-pv_in_foregr.patch b/meta-openembedded/meta-oe/recipes-support/pv/pv/0001-pv-display-handle-error-of-tcgetpgrp-in-pv_in_foregr.patch
new file mode 100644
index 0000000..3c364dc
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/pv/pv/0001-pv-display-handle-error-of-tcgetpgrp-in-pv_in_foregr.patch
@@ -0,0 +1,38 @@
+From c5cd932fb08e7ce90cdbf9ae6c5cc7e65ac0738e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michael=20Wei=C3=9F?= <michael.weiss@aisec.fraunhofer.de>
+Date: Tue, 9 May 2023 20:00:26 +0200
+Subject: [PATCH] pv/display: handle error of tcgetpgrp() in pv_in_foreground()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Show pv progress bar even if no terminal is set, e.g., in a busybox
+init script. The description of pv_in_forground() states it will
+return true "if we aren't outputting to a terminal". However, this
+is not the case since tcgetpgrg() will return an error and set ERRNO
+to ENOTTY if the output fd is not an tty. We now handle this error
+correctly and pv_in_foreground() returns also true in that case.
+
+Signed-off-by: Michael Weiß <michael.weiss@aisec.fraunhofer.de>
+---
+ src/pv/display.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/pv/display.c b/src/pv/display.c
+index aff643b..8d1f4c9 100644
+--- a/src/pv/display.c
++++ b/src/pv/display.c
+@@ -48,6 +48,10 @@ bool pv_in_foreground(void)
+ 
+ 	our_process_group = getpgrp();
+ 	tty_process_group = tcgetpgrp(STDERR_FILENO);
++
++	if (tty_process_group == -1 && errno == ENOTTY)
++		return true;
++
+ 	if (our_process_group == tty_process_group)
+ 		return true;
+ 
+-- 
+2.30.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/pv/pv_1.6.20.bb b/meta-openembedded/meta-oe/recipes-support/pv/pv_1.6.20.bb
index 867a621..6d449a9 100644
--- a/meta-openembedded/meta-oe/recipes-support/pv/pv_1.6.20.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pv/pv_1.6.20.bb
@@ -5,6 +5,7 @@
 LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02"
 
 SRC_URI = "https://www.ivarch.com/programs/sources/${BP}.tar.bz2 \
+           file://0001-pv-display-handle-error-of-tcgetpgrp-in-pv_in_foregr.patch \
            file://run-ptest \
 "
 SRC_URI[sha256sum] = "e831951eff0718fba9b1ef286128773b9d0e723e1fbfae88d5a3188814fdc603"
diff --git a/meta-openembedded/meta-oe/recipes-support/raptor2/raptor2/0001-Remove-the-access-to-entities-checked-private-symbol.patch b/meta-openembedded/meta-oe/recipes-support/raptor2/raptor2/0001-Remove-the-access-to-entities-checked-private-symbol.patch
new file mode 100644
index 0000000..e709616
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/raptor2/raptor2/0001-Remove-the-access-to-entities-checked-private-symbol.patch
@@ -0,0 +1,34 @@
+From da171e12d961b41b89196627ef5e5baae1e637ce Mon Sep 17 00:00:00 2001
+From: David Anes <david.anes@suse.com>
+Date: Thu, 4 May 2023 11:54:02 +0200
+Subject: [PATCH] Remove the access to entities 'checked' private symbol for
+ libxml2 2.11.0
+
+Since version 2.11.0, some private symbols that were never intended
+as public API/ABI have been removed from libxml2, therefore the field
+'checked' is no longer present and raptor fails to build in this
+scenario.
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Upstream-Status: Backport [https://github.com/dajobe/raptor/commit/ac914399b9013c54572833d4818e6ce008136dc9]
+---
+ src/raptor_libxml.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/raptor_libxml.c b/src/raptor_libxml.c
+index 538c2c8..8bcee13 100644
+--- a/src/raptor_libxml.c
++++ b/src/raptor_libxml.c
+@@ -246,10 +246,11 @@ raptor_libxml_getEntity(void* user_data, const xmlChar *name)
+     
+     ret->owner = 1;
+ 
+-#if LIBXML_VERSION >= 20627
++#if LIBXML_VERSION >= 20627 && LIBXML_VERSION < 21100
+     /* Checked field was released in 2.6.27 on 2006-10-25
+      * http://git.gnome.org/browse/libxml2/commit/?id=a37a6ad91a61d168ecc4b29263def3363fff4da6
+      *
++     * and was later removed in version 2.11.0
+      */
+ 
+     /* Mark this entity as having been checked - never do this again */
diff --git a/meta-openembedded/meta-oe/recipes-support/raptor2/raptor2_2.0.16.bb b/meta-openembedded/meta-oe/recipes-support/raptor2/raptor2_2.0.16.bb
index 1699112..30df8e0 100644
--- a/meta-openembedded/meta-oe/recipes-support/raptor2/raptor2_2.0.16.bb
+++ b/meta-openembedded/meta-oe/recipes-support/raptor2/raptor2_2.0.16.bb
@@ -11,6 +11,7 @@
 
 SRC_URI = " \
     http://download.librdf.org/source/${BPN}-${PV}.tar.gz \
+    file://0001-Remove-the-access-to-entities-checked-private-symbol.patch \
 "
 SRC_URI[sha256sum] = "089db78d7ac982354bdbf39d973baf09581e6904ac4c92a98c5caadb3de44680"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog/0001-Do-not-use-LFS64-functions-on-linux-musl.patch b/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog/0001-Do-not-use-LFS64-functions-on-linux-musl.patch
deleted file mode 100644
index b997389..0000000
--- a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog/0001-Do-not-use-LFS64-functions-on-linux-musl.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From ce7a593e74c8e0c2ece15c73e7614d4f13a19a53 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 30 Dec 2022 13:04:08 -0800
-Subject: [PATCH] Do not use LFS64 functions on linux/musl
-
-On musl, off_t is 64bit always ( even on 32bit platforms ), therefore using
-LFS64 funcitons is not needed on such platforms. Moreover, musl has stopped
-providing aliases for these functions [1] which means it wont compile on
-newer musl systems. Therefore only use it on 32bit glibc/linux platforms
-and exclude musl like cygwin or OSX
-
-[1] https://git.musl-libc.org/cgit/musl/commit/?id=246f1c811448f37a44b41cd8df8d0ef9736d95f4
-
-Upstream-Status: Submitted [https://github.com/gabime/spdlog/pull/2589]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- include/spdlog/details/os.h | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
---- a/include/spdlog/details/os-inl.h
-+++ b/include/spdlog/details/os-inl.h
-@@ -237,7 +237,7 @@ SPDLOG_INLINE size_t filesize(FILE *f)
-     int fd = ::fileno(f);
- #    endif
- // 64 bits(but not in osx or cygwin, where fstat64 is deprecated)
--#    if (defined(__linux__) || defined(__sun) || defined(_AIX)) && (defined(__LP64__) || defined(_LP64))
-+#    if ((defined(__linux__) && defined(__GLIBC__)) || defined(__sun) || defined(_AIX)) && (defined(__LP64__) || defined(_LP64))
-     struct stat64 st;
-     if (::fstat64(fd, &st) == 0)
-     {
diff --git a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog/fix-build-for-master-fmt.patch b/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog/fix-build-for-master-fmt.patch
deleted file mode 100644
index c767db9..0000000
--- a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog/fix-build-for-master-fmt.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-Upstream-Status: Backport
-[https://github.com/gabime/spdlog/commit/0ca574ae168820da0268b3ec7607ca7b33024d05]
-
-Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
-
-From 0ca574ae168820da0268b3ec7607ca7b33024d05 Mon Sep 17 00:00:00 2001
-From: H1X4 <10332146+H1X4Dev@users.noreply.github.com>
-Date: Fri, 31 Mar 2023 20:39:32 +0300
-Subject: [PATCH] fix build for master fmt (non-bundled) (#2694)
-
-* fix build for master fmt (non-bundled)
-
-* update fmt_runtime_string macro
-
-* fix build of updated macro
----
- include/spdlog/common.h | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/include/spdlog/common.h b/include/spdlog/common.h
-index e69201a81..5f671c5c6 100644
---- a/include/spdlog/common.h
-+++ b/include/spdlog/common.h
-@@ -173,12 +173,19 @@ using format_string_t = fmt::format_string<Args...>;
- template<class T>
- using remove_cvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type;
- 
-+template <typename Char>
-+#if FMT_VERSION >= 90101
-+using fmt_runtime_string = fmt::runtime_format_string<Char>;
-+#else
-+using fmt_runtime_string = fmt::basic_runtime<Char>;
-+#endif
-+
- // clang doesn't like SFINAE disabled constructor in std::is_convertible<> so have to repeat the condition from basic_format_string here,
- // in addition, fmt::basic_runtime<Char> is only convertible to basic_format_string<Char> but not basic_string_view<Char>
- template<class T, class Char = char>
- struct is_convertible_to_basic_format_string
-     : std::integral_constant<bool,
--          std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value>
-+          std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt_runtime_string<Char>>::value>
- {};
- 
- #    if defined(SPDLOG_WCHAR_FILENAMES) || defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT)
diff --git a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.11.0.bb b/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.12.0.bb
similarity index 75%
rename from meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.11.0.bb
rename to meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.12.0.bb
index 2800be4..c7d8ff8 100644
--- a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.11.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.12.0.bb
@@ -3,11 +3,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
 
-SRCREV = "ad0e89cbfb4d0c1ce4d097e134eb7be67baebb36"
-SRC_URI = "git://github.com/gabime/spdlog.git;protocol=https;branch=v1.x \
-           file://0001-Do-not-use-LFS64-functions-on-linux-musl.patch \
-           file://fix-build-for-master-fmt.patch \
-           "
+SRCREV = "7e635fca68d014934b4af8a1cf874f63989352b7"
+SRC_URI = "git://github.com/gabime/spdlog.git;protocol=https;branch=v1.x"
 
 DEPENDS += "fmt"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch
deleted file mode 100644
index 547949d..0000000
--- a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From de869ad2cb19d81257a159770ebe27593a71593c Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 31 Jul 2018 11:29:51 +0800
-Subject: [PATCH] do not strip pdata_tools at do_install
-
-It caused QA Issue:
---------------
-|ERROR: QA Issue: File '/usr/sbin/pdata_tools' from thin-provisioning-tools
-was already stripped, this will prevent future debugging! [already-stripped]
---------------
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- Makefile.in | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 02b75dd..df590b4 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -267,7 +267,6 @@ MANPAGES:=$(patsubst %,man8/%.8,$(TOOLS))
- install: bin/pdata_tools $(MANPAGES)
- 	$(INSTALL_DIR) $(BINDIR)
- 	$(INSTALL_PROGRAM) bin/pdata_tools $(BINDIR)
--	$(STRIP) $(BINDIR)/pdata_tools
- 	ln -s -f pdata_tools $(BINDIR)/cache_check
- 	ln -s -f pdata_tools $(BINDIR)/cache_dump
- 	ln -s -f pdata_tools $(BINDIR)/cache_metadata_size
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/use-sh-on-path.patch b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/use-sh-on-path.patch
deleted file mode 100644
index de934c1..0000000
--- a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/use-sh-on-path.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 38397b42e2c3450c2aee20e6fb92f362db4e35ef Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 2 Jul 2019 13:20:39 +0800
-Subject: [PATCH] thin-provisioning-tools: use sh on path when invoking txt2man
-
-txt2man contains a test which might try to use ksh to run the script, so we
-avoid running /bin/sh.
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: joe.slater <joe.slater@windriver.com>
-
-Rebase to 0.8.5
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 7c867b2..5303994 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -223,7 +223,7 @@ endif
- %.8: %.txt bin/txt2man
- 	@echo "    [txt2man] $<"
- 	@mkdir -p $(dir $@)
--	$(V) bin/txt2man -p -t $(basename $(notdir $<)) $< > $@
-+	$(V) sh bin/txt2man -p -t $(basename $(notdir $<)) $< > $@
- 
- #----------------------------------------------------------------
- 
--- 
-2.7.4
-
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-crates.inc b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-crates.inc
new file mode 100644
index 0000000..f7992b9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-crates.inc
@@ -0,0 +1,306 @@
+# Autogenerated with 'bitbake -c update_crates thin-provisioning-tools'
+
+# from Cargo.lock
+SRC_URI += " \
+    crate://crates.io/adler/1.0.2 \
+    crate://crates.io/aho-corasick/1.0.1 \
+    crate://crates.io/anyhow/1.0.70 \
+    crate://crates.io/atty/0.2.14 \
+    crate://crates.io/autocfg/1.1.0 \
+    crate://crates.io/base64/0.20.0 \
+    crate://crates.io/bitflags/1.3.2 \
+    crate://crates.io/bytemuck/1.13.1 \
+    crate://crates.io/byteorder/1.4.3 \
+    crate://crates.io/cassowary/0.3.0 \
+    crate://crates.io/cc/1.0.79 \
+    crate://crates.io/cfg-if/1.0.0 \
+    crate://crates.io/clap/3.2.23 \
+    crate://crates.io/clap_lex/0.2.4 \
+    crate://crates.io/console/0.15.5 \
+    crate://crates.io/crc32fast/1.3.2 \
+    crate://crates.io/data-encoding/2.3.3 \
+    crate://crates.io/difflib/0.4.0 \
+    crate://crates.io/downcast/0.11.0 \
+    crate://crates.io/duct/0.13.6 \
+    crate://crates.io/either/1.8.1 \
+    crate://crates.io/encode_unicode/0.3.6 \
+    crate://crates.io/env_logger/0.7.1 \
+    crate://crates.io/errno/0.3.1 \
+    crate://crates.io/errno-dragonfly/0.1.2 \
+    crate://crates.io/exitcode/1.1.2 \
+    crate://crates.io/fastrand/1.9.0 \
+    crate://crates.io/fixedbitset/0.4.2 \
+    crate://crates.io/flate2/1.0.25 \
+    crate://crates.io/float-cmp/0.9.0 \
+    crate://crates.io/fragile/2.0.0 \
+    crate://crates.io/futures/0.3.28 \
+    crate://crates.io/futures-channel/0.3.28 \
+    crate://crates.io/futures-core/0.3.28 \
+    crate://crates.io/futures-executor/0.3.28 \
+    crate://crates.io/futures-io/0.3.28 \
+    crate://crates.io/futures-macro/0.3.28 \
+    crate://crates.io/futures-sink/0.3.28 \
+    crate://crates.io/futures-task/0.3.28 \
+    crate://crates.io/futures-util/0.3.28 \
+    crate://crates.io/getrandom/0.1.16 \
+    crate://crates.io/getrandom/0.2.9 \
+    crate://crates.io/hashbrown/0.12.3 \
+    crate://crates.io/hermit-abi/0.1.19 \
+    crate://crates.io/hermit-abi/0.2.6 \
+    crate://crates.io/hermit-abi/0.3.1 \
+    crate://crates.io/indexmap/1.9.3 \
+    crate://crates.io/indicatif/0.17.3 \
+    crate://crates.io/instant/0.1.12 \
+    crate://crates.io/io-lifetimes/1.0.10 \
+    crate://crates.io/iovec/0.1.4 \
+    crate://crates.io/itertools/0.10.5 \
+    crate://crates.io/jobserver/0.1.26 \
+    crate://crates.io/json/0.12.4 \
+    crate://crates.io/lazy_static/1.4.0 \
+    crate://crates.io/libc/0.2.142 \
+    crate://crates.io/linux-raw-sys/0.3.4 \
+    crate://crates.io/log/0.4.17 \
+    crate://crates.io/memchr/2.5.0 \
+    crate://crates.io/minimal-lexical/0.2.1 \
+    crate://crates.io/miniz_oxide/0.6.2 \
+    crate://crates.io/mockall/0.11.4 \
+    crate://crates.io/mockall_derive/0.11.4 \
+    crate://crates.io/nom/7.1.3 \
+    crate://crates.io/normalize-line-endings/0.3.0 \
+    crate://crates.io/num-derive/0.3.3 \
+    crate://crates.io/num-traits/0.2.15 \
+    crate://crates.io/num_cpus/1.15.0 \
+    crate://crates.io/number_prefix/0.4.0 \
+    crate://crates.io/numtoa/0.1.0 \
+    crate://crates.io/once_cell/1.17.1 \
+    crate://crates.io/os_pipe/1.1.4 \
+    crate://crates.io/os_str_bytes/6.5.0 \
+    crate://crates.io/pin-project-lite/0.2.9 \
+    crate://crates.io/pin-utils/0.1.0 \
+    crate://crates.io/pkg-config/0.3.26 \
+    crate://crates.io/portable-atomic/0.3.19 \
+    crate://crates.io/ppv-lite86/0.2.17 \
+    crate://crates.io/predicates/2.1.5 \
+    crate://crates.io/predicates-core/1.0.6 \
+    crate://crates.io/predicates-tree/1.0.9 \
+    crate://crates.io/proc-macro2/1.0.56 \
+    crate://crates.io/quick-xml/0.23.1 \
+    crate://crates.io/quickcheck/0.9.2 \
+    crate://crates.io/quickcheck_macros/0.9.1 \
+    crate://crates.io/quote/1.0.26 \
+    crate://crates.io/rand/0.7.3 \
+    crate://crates.io/rand/0.8.5 \
+    crate://crates.io/rand_chacha/0.2.2 \
+    crate://crates.io/rand_chacha/0.3.1 \
+    crate://crates.io/rand_core/0.5.1 \
+    crate://crates.io/rand_core/0.6.4 \
+    crate://crates.io/rand_hc/0.2.0 \
+    crate://crates.io/rangemap/1.3.0 \
+    crate://crates.io/redox_syscall/0.2.16 \
+    crate://crates.io/redox_syscall/0.3.5 \
+    crate://crates.io/redox_termios/0.1.2 \
+    crate://crates.io/regex/1.8.1 \
+    crate://crates.io/regex-syntax/0.7.1 \
+    crate://crates.io/retain_mut/0.1.7 \
+    crate://crates.io/roaring/0.10.1 \
+    crate://crates.io/rustc_version/0.4.0 \
+    crate://crates.io/rustix/0.37.14 \
+    crate://crates.io/safemem/0.3.3 \
+    crate://crates.io/semver/1.0.17 \
+    crate://crates.io/shared_child/1.0.0 \
+    crate://crates.io/slab/0.4.8 \
+    crate://crates.io/strsim/0.10.0 \
+    crate://crates.io/syn/1.0.109 \
+    crate://crates.io/syn/2.0.15 \
+    crate://crates.io/tempfile/3.5.0 \
+    crate://crates.io/termcolor/1.2.0 \
+    crate://crates.io/termion/1.5.6 \
+    crate://crates.io/termtree/0.4.1 \
+    crate://crates.io/textwrap/0.16.0 \
+    crate://crates.io/thiserror/1.0.40 \
+    crate://crates.io/thiserror-impl/1.0.40 \
+    crate://crates.io/threadpool/1.8.1 \
+    crate://crates.io/tui/0.16.0 \
+    crate://crates.io/unicode-ident/1.0.8 \
+    crate://crates.io/unicode-segmentation/1.10.1 \
+    crate://crates.io/unicode-width/0.1.10 \
+    crate://crates.io/wasi/0.9.0+wasi-snapshot-preview1 \
+    crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
+    crate://crates.io/winapi/0.3.9 \
+    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+    crate://crates.io/winapi-util/0.1.5 \
+    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+    crate://crates.io/windows-sys/0.42.0 \
+    crate://crates.io/windows-sys/0.45.0 \
+    crate://crates.io/windows-sys/0.48.0 \
+    crate://crates.io/windows-targets/0.42.2 \
+    crate://crates.io/windows-targets/0.48.0 \
+    crate://crates.io/windows_aarch64_gnullvm/0.42.2 \
+    crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
+    crate://crates.io/windows_aarch64_msvc/0.42.2 \
+    crate://crates.io/windows_aarch64_msvc/0.48.0 \
+    crate://crates.io/windows_i686_gnu/0.42.2 \
+    crate://crates.io/windows_i686_gnu/0.48.0 \
+    crate://crates.io/windows_i686_msvc/0.42.2 \
+    crate://crates.io/windows_i686_msvc/0.48.0 \
+    crate://crates.io/windows_x86_64_gnu/0.42.2 \
+    crate://crates.io/windows_x86_64_gnu/0.48.0 \
+    crate://crates.io/windows_x86_64_gnullvm/0.42.2 \
+    crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
+    crate://crates.io/windows_x86_64_msvc/0.42.2 \
+    crate://crates.io/windows_x86_64_msvc/0.48.0 \
+    crate://crates.io/zstd/0.11.2+zstd.1.5.2 \
+    crate://crates.io/zstd-safe/5.0.2+zstd.1.5.2 \
+    crate://crates.io/zstd-sys/2.0.8+zstd.1.5.5 \
+"
+
+SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+SRC_URI[aho-corasick-1.0.1.sha256sum] = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
+SRC_URI[anyhow-1.0.70.sha256sum] = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4"
+SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[base64-0.20.0.sha256sum] = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bytemuck-1.13.1.sha256sum] = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
+SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+SRC_URI[cassowary-0.3.0.sha256sum] = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clap-3.2.23.sha256sum] = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
+SRC_URI[clap_lex-0.2.4.sha256sum] = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+SRC_URI[console-0.15.5.sha256sum] = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60"
+SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+SRC_URI[data-encoding-2.3.3.sha256sum] = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb"
+SRC_URI[difflib-0.4.0.sha256sum] = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
+SRC_URI[downcast-0.11.0.sha256sum] = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1"
+SRC_URI[duct-0.13.6.sha256sum] = "37ae3fc31835f74c2a7ceda3aeede378b0ae2e74c8f1c36559fcc9ae2a4e7d3e"
+SRC_URI[either-1.8.1.sha256sum] = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+SRC_URI[encode_unicode-0.3.6.sha256sum] = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+SRC_URI[env_logger-0.7.1.sha256sum] = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
+SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[exitcode-1.1.2.sha256sum] = "de853764b47027c2e862a995c34978ffa63c1501f2e15f987ba11bd4f9bba193"
+SRC_URI[fastrand-1.9.0.sha256sum] = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+SRC_URI[fixedbitset-0.4.2.sha256sum] = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+SRC_URI[flate2-1.0.25.sha256sum] = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841"
+SRC_URI[float-cmp-0.9.0.sha256sum] = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
+SRC_URI[fragile-2.0.0.sha256sum] = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
+SRC_URI[futures-0.3.28.sha256sum] = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+SRC_URI[futures-channel-0.3.28.sha256sum] = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+SRC_URI[futures-core-0.3.28.sha256sum] = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+SRC_URI[futures-executor-0.3.28.sha256sum] = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+SRC_URI[futures-io-0.3.28.sha256sum] = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+SRC_URI[futures-macro-0.3.28.sha256sum] = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+SRC_URI[futures-sink-0.3.28.sha256sum] = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+SRC_URI[futures-task-0.3.28.sha256sum] = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+SRC_URI[futures-util-0.3.28.sha256sum] = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+SRC_URI[getrandom-0.1.16.sha256sum] = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+SRC_URI[getrandom-0.2.9.sha256sum] = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
+SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+SRC_URI[hermit-abi-0.2.6.sha256sum] = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+SRC_URI[hermit-abi-0.3.1.sha256sum] = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+SRC_URI[indexmap-1.9.3.sha256sum] = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+SRC_URI[indicatif-0.17.3.sha256sum] = "cef509aa9bc73864d6756f0d34d35504af3cf0844373afe9b8669a5b8005a729"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[io-lifetimes-1.0.10.sha256sum] = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220"
+SRC_URI[iovec-0.1.4.sha256sum] = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
+SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+SRC_URI[jobserver-0.1.26.sha256sum] = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+SRC_URI[json-0.12.4.sha256sum] = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.142.sha256sum] = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317"
+SRC_URI[linux-raw-sys-0.3.4.sha256sum] = "36eb31c1778188ae1e64398743890d0877fef36d11521ac60406b42016e8c2cf"
+SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[miniz_oxide-0.6.2.sha256sum] = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
+SRC_URI[mockall-0.11.4.sha256sum] = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96"
+SRC_URI[mockall_derive-0.11.4.sha256sum] = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[normalize-line-endings-0.3.0.sha256sum] = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
+SRC_URI[num-derive-0.3.3.sha256sum] = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
+SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+SRC_URI[num_cpus-1.15.0.sha256sum] = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+SRC_URI[number_prefix-0.4.0.sha256sum] = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
+SRC_URI[numtoa-0.1.0.sha256sum] = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef"
+SRC_URI[once_cell-1.17.1.sha256sum] = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+SRC_URI[os_pipe-1.1.4.sha256sum] = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177"
+SRC_URI[os_str_bytes-6.5.0.sha256sum] = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
+SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+SRC_URI[pkg-config-0.3.26.sha256sum] = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+SRC_URI[portable-atomic-0.3.19.sha256sum] = "26f6a7b87c2e435a3241addceeeff740ff8b7e76b74c13bf9acb17fa454ea00b"
+SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[predicates-2.1.5.sha256sum] = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd"
+SRC_URI[predicates-core-1.0.6.sha256sum] = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
+SRC_URI[predicates-tree-1.0.9.sha256sum] = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
+SRC_URI[proc-macro2-1.0.56.sha256sum] = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
+SRC_URI[quick-xml-0.23.1.sha256sum] = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea"
+SRC_URI[quickcheck-0.9.2.sha256sum] = "a44883e74aa97ad63db83c4bf8ca490f02b2fc02f92575e720c8551e843c945f"
+SRC_URI[quickcheck_macros-0.9.1.sha256sum] = "608c156fd8e97febc07dc9c2e2c80bf74cfc6ef26893eae3daf8bc2bc94a4b7f"
+SRC_URI[quote-1.0.26.sha256sum] = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+SRC_URI[rand-0.7.3.sha256sum] = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.2.2.sha256sum] = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.5.1.sha256sum] = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[rand_hc-0.2.0.sha256sum] = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+SRC_URI[rangemap-1.3.0.sha256sum] = "8b9283c6b06096b47afc7109834fdedab891175bb5241ee5d4f7d2546549f263"
+SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+SRC_URI[redox_termios-0.1.2.sha256sum] = "8440d8acb4fd3d277125b4bd01a6f38aee8d814b3b5fc09b3f2b825d37d3fe8f"
+SRC_URI[regex-1.8.1.sha256sum] = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370"
+SRC_URI[regex-syntax-0.7.1.sha256sum] = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c"
+SRC_URI[retain_mut-0.1.7.sha256sum] = "8c31b5c4033f8fdde8700e4657be2c497e7288f01515be52168c631e2e4d4086"
+SRC_URI[roaring-0.10.1.sha256sum] = "ef0fb5e826a8bde011ecae6a8539dd333884335c57ff0f003fbe27c25bbe8f71"
+SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+SRC_URI[rustix-0.37.14.sha256sum] = "d9b864d3c18a5785a05953adeed93e2dca37ed30f18e69bba9f30079d51f363f"
+SRC_URI[safemem-0.3.3.sha256sum] = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+SRC_URI[semver-1.0.17.sha256sum] = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+SRC_URI[shared_child-1.0.0.sha256sum] = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef"
+SRC_URI[slab-0.4.8.sha256sum] = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.15.sha256sum] = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822"
+SRC_URI[tempfile-3.5.0.sha256sum] = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[termion-1.5.6.sha256sum] = "077185e2eac69c3f8379a4298e1e07cd36beb962290d4a51199acf0fdc10607e"
+SRC_URI[termtree-0.4.1.sha256sum] = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
+SRC_URI[textwrap-0.16.0.sha256sum] = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
+SRC_URI[thiserror-1.0.40.sha256sum] = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+SRC_URI[thiserror-impl-1.0.40.sha256sum] = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+SRC_URI[threadpool-1.8.1.sha256sum] = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+SRC_URI[tui-0.16.0.sha256sum] = "39c8ce4e27049eed97cfa363a5048b09d995e209994634a0efc26a14ab6c0c23"
+SRC_URI[unicode-ident-1.0.8.sha256sum] = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+SRC_URI[unicode-segmentation-1.10.1.sha256sum] = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+SRC_URI[unicode-width-0.1.10.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+SRC_URI[wasi-0.9.0+wasi-snapshot-preview1.sha256sum] = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.42.0.sha256sum] = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+SRC_URI[windows-sys-0.45.0.sha256sum] = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-targets-0.42.2.sha256sum] = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+SRC_URI[windows-targets-0.48.0.sha256sum] = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+SRC_URI[windows_aarch64_gnullvm-0.42.2.sha256sum] = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+SRC_URI[windows_aarch64_msvc-0.42.2.sha256sum] = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+SRC_URI[windows_i686_gnu-0.42.2.sha256sum] = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+SRC_URI[windows_i686_msvc-0.42.2.sha256sum] = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+SRC_URI[windows_x86_64_gnu-0.42.2.sha256sum] = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+SRC_URI[windows_x86_64_gnullvm-0.42.2.sha256sum] = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+SRC_URI[windows_x86_64_msvc-0.42.2.sha256sum] = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+SRC_URI[zstd-0.11.2+zstd.1.5.2.sha256sum] = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4"
+SRC_URI[zstd-safe-5.0.2+zstd.1.5.2.sha256sum] = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db"
+SRC_URI[zstd-sys-2.0.8+zstd.1.5.5.sha256sum] = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-git-crates.inc b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-git-crates.inc
new file mode 100644
index 0000000..46e826c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-git-crates.inc
@@ -0,0 +1,10 @@
+SRC_URI += "\
+    git://github.com/zowens/crc32c;protocol=https;nobranch=1;name=crc32c;destsuffix=crc32c;type=git-dependency \
+    git://github.com/jthornber/rio;protocol=https;nobranch=1;name=rio;destsuffix=rio;type=git-dependency \
+"
+
+SRCREV_FORMAT .= "_crc32c"
+SRCREV_crc32c = "3779fe88fea034922f808586b2564fbcab31efdc"
+
+SRCREV_FORMAT .= "_rio"
+SRCREV_rio = "2979a720f671e836302c01546f9cc9f7988610c8"
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools/0001-Replace-LFS-functions.patch b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools/0001-Replace-LFS-functions.patch
new file mode 100644
index 0000000..a9f1c86
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools/0001-Replace-LFS-functions.patch
@@ -0,0 +1,91 @@
+From 289105253fbf342fd22cbcde2ccc1127f732ab09 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Jul 2023 14:21:17 -0700
+Subject: [PATCH] Replace LFS functions
+
+The original functions are able to consume 64bit off_t now a days
+therefore *64 equivalents can be replaced, as a side it fixes build with
+musl.
+
+Upstream-Status: Submitted [https://github.com/jthornber/thin-provisioning-tools/pull/267]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/file_utils.rs     | 10 +++++-----
+ src/io_engine/base.rs |  4 ++--
+ src/thin/trim.rs      |  2 +-
+ 3 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/src/file_utils.rs b/src/file_utils.rs
+index 0ca3c0f..d2b3ee9 100644
+--- a/src/file_utils.rs
++++ b/src/file_utils.rs
+@@ -11,18 +11,18 @@ fn test_bit(mode: u32, flag: u32) -> bool {
+     (mode & libc::S_IFMT) == flag
+ }
+ 
+-fn is_file_or_blk_(info: &libc::stat64) -> bool {
++fn is_file_or_blk_(info: &libc::stat) -> bool {
+     test_bit(info.st_mode, libc::S_IFBLK) || test_bit(info.st_mode, libc::S_IFREG)
+ }
+ 
+ // wrapper of libc::stat64
+-fn libc_stat64(path: &Path) -> io::Result<libc::stat64> {
++fn libc_stat64(path: &Path) -> io::Result<libc::stat> {
+     let c_path = std::ffi::CString::new(path.as_os_str().as_bytes())
+         .map_err(|e| io::Error::new(io::ErrorKind::InvalidInput, e.to_string()))?;
+ 
+     unsafe {
+-        let mut st: libc::stat64 = std::mem::zeroed();
+-        let r = libc::stat64(c_path.as_ptr(), &mut st);
++        let mut st: libc::stat = std::mem::zeroed();
++        let r = libc::stat(c_path.as_ptr(), &mut st);
+         if r == 0 {
+             Ok(st)
+         } else {
+@@ -56,7 +56,7 @@ fn get_device_size<P: AsRef<Path>>(path: P) -> io::Result<u64> {
+     let fd = file.as_raw_fd();
+     let mut cap = 0u64;
+     unsafe {
+-        if libc::ioctl(fd, BLKGETSIZE64 as libc::c_ulong, &mut cap) == 0 {
++        if libc::ioctl(fd, BLKGETSIZE64 as libc::c_int, &mut cap) == 0 {
+             Ok(cap)
+         } else {
+             Err(io::Error::last_os_error())
+diff --git a/src/io_engine/base.rs b/src/io_engine/base.rs
+index 725ebf7..db6209f 100644
+--- a/src/io_engine/base.rs
++++ b/src/io_engine/base.rs
+@@ -115,7 +115,7 @@ pub trait VectoredIo {
+ 
+ fn read_vectored_at(file: &File, bufs: &mut [libc::iovec], pos: u64) -> io::Result<usize> {
+     let ptr = bufs.as_ptr();
+-    let ret = match unsafe { libc::preadv64(file.as_raw_fd(), ptr, bufs.len() as i32, pos as i64) }
++    let ret = match unsafe { libc::preadv(file.as_raw_fd(), ptr, bufs.len() as i32, pos as i64) }
+     {
+         -1 => return Err(io::Error::last_os_error()),
+         n => n,
+@@ -125,7 +125,7 @@ fn read_vectored_at(file: &File, bufs: &mut [libc::iovec], pos: u64) -> io::Resu
+ 
+ fn write_vectored_at(file: &File, bufs: &[libc::iovec], pos: u64) -> io::Result<usize> {
+     let ptr = bufs.as_ptr();
+-    let ret = match unsafe { libc::pwritev64(file.as_raw_fd(), ptr, bufs.len() as i32, pos as i64) }
++    let ret = match unsafe { libc::pwritev(file.as_raw_fd(), ptr, bufs.len() as i32, pos as i64) }
+     {
+         -1 => return Err(io::Error::last_os_error()),
+         n => n,
+diff --git a/src/thin/trim.rs b/src/thin/trim.rs
+index 3d938ca..91a53dd 100644
+--- a/src/thin/trim.rs
++++ b/src/thin/trim.rs
+@@ -135,7 +135,7 @@ impl<'a> Iterator for RangeIterator<'a> {
+ const BLKDISCARD: u32 = 0x1277;
+ fn ioctl_blkdiscard(fd: i32, range: &[u64; 2]) -> std::io::Result<()> {
+     unsafe {
+-        if libc::ioctl(fd, BLKDISCARD as libc::c_ulong, range) == 0 {
++        if libc::ioctl(fd, BLKDISCARD as libc::c_int, range) == 0 {
+             Ok(())
+         } else {
+             Err(std::io::Error::last_os_error())
+-- 
+2.41.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.9.0.bb b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.9.0.bb
deleted file mode 100644
index 25d7200..0000000
--- a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.9.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Tools of dm-thin device-mapper"
-DESCRIPTION = "A suite of tools for manipulating the metadata of the dm-thin device-mapper target."
-HOMEPAGE = "https://github.com/jthornber/thin-provisioning-tools"
-LICENSE = "GPL-3.0-only"
-SECTION = "devel"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-S = "${WORKDIR}/git"
-
-SRC_URI = "git://github.com/jthornber/thin-provisioning-tools;branch=main;protocol=https \
-           file://0001-do-not-strip-pdata_tools-at-do_install.patch \
-           file://use-sh-on-path.patch \
-"
-
-SRCREV = "d6d93c3157631b242a13a81d30f75453e576c55a"
-
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
-
-DEPENDS += "expat libaio boost"
-
-inherit autotools-brokensep
diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.0.4.bb b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.0.4.bb
new file mode 100644
index 0000000..e79f62f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.0.4.bb
@@ -0,0 +1,47 @@
+SUMMARY = "Tools of dm-thin device-mapper"
+DESCRIPTION = "A suite of tools for manipulating the metadata of the dm-thin device-mapper target."
+HOMEPAGE = "https://github.com/jthornber/thin-provisioning-tools"
+LICENSE = "GPL-3.0-only"
+SECTION = "devel"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+S = "${WORKDIR}/git"
+
+SRC_URI = " \
+    git://github.com/jthornber/thin-provisioning-tools;branch=main;protocol=https \
+    "
+SRC_URI:append:libc-musl = " file://0001-Replace-LFS-functions.patch"
+
+SRCREV = "3baa3fa3a3e4f714e6170a4152b186f0fa1d76e1"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+inherit cargo cargo-update-recipe-crates
+
+require ${BPN}-crates.inc
+require ${BPN}-git-crates.inc
+
+do_install:append() {
+	for tool in cache_check \
+	    cache_dump \
+	    cache_metadata_size \
+	    cache_repair \
+	    cache_restore \
+	    cache_writeback \
+	    thin_check \
+	    thin_delta \
+	    thin_dump \
+	    thin_ls \
+	    thin_repair \
+	    thin_restore \
+	    thin_rmap \
+	    thin_metadata_size \
+	    thin_metadata_pack \
+	    thin_metadata_unpack \
+	    thin_trim \
+	    era_check \
+	    era_dump \
+	    era_invalidate \
+	    era_restore; do
+                ln -sf pdata_tools ${D}${bindir}/$tool
+            done
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/virtualbox-guest-additions-7.0.8-kernel-6.4-patch-1.patch b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/virtualbox-guest-additions-7.0.8-kernel-6.4-patch-1.patch
new file mode 100644
index 0000000..37ef3a9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/virtualbox-guest-additions-7.0.8-kernel-6.4-patch-1.patch
@@ -0,0 +1,29 @@
+Initial support for kernel 6.4
+https://www.virtualbox.org/changeset/99666/vbox
+
+Upstream-Status: Backport [https://gitweb.gentoo.org/repo/gentoo.git/tree/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-kernel-6.4-patch-1.patch]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+
+--- a/src/VBox/Additions/linux/sharedfolders/regops.c
++++ b/src/VBox/Additions/linux/sharedfolders/regops.c
+@@ -75,4 +75,11 @@
+ #if RTLNX_VER_MAX(2,5,12)
+ # define PageUptodate(a_pPage) Page_Uptodate(a_pPage)
++#endif
++
++/** Starting from 6.4.0, iter_iov() macro should be used in order to access to iov field.  */
++#if RTLNX_VER_MIN(6,4,0)
++# define VBOX_ITER_IOV(_iter) iter_iov(_iter)
++#else
++# define VBOX_ITER_IOV(_iter) iter->iov
+ #endif
+ 
+@@ -2400,5 +2407,5 @@
+     if (iter_is_iovec(iter) || (VBSF_GET_ITER_TYPE(iter) & ITER_KVEC)) {
+ # endif
+-        const struct iovec *pCurIov    = iter->iov;
++        const struct iovec *pCurIov    = VBOX_ITER_IOV(iter);
+         size_t              cLeft      = iter->nr_segs;
+         size_t              cPagesSpan = 0;
+
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/virtualbox-guest-additions-7.0.8-kernel-6.4-patch-2.patch b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/virtualbox-guest-additions-7.0.8-kernel-6.4-patch-2.patch
new file mode 100644
index 0000000..20c8fbd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/virtualbox-guest-additions-7.0.8-kernel-6.4-patch-2.patch
@@ -0,0 +1,43 @@
+Initial support for kernel 6.4
+https://www.virtualbox.org/changeset/99667/vbox
+
+
+Upstream-Status: Backport [https://gitweb.gentoo.org/repo/gentoo.git/tree/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-kernel-6.4-patch-2.patch]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+
+--- a/src/VBox/Additions/linux/sharedfolders/regops.c
++++ b/src/VBox/Additions/linux/sharedfolders/regops.c
+@@ -77,11 +77,4 @@
+ #endif
+ 
+-/** Starting from 6.4.0, iter_iov() macro should be used in order to access to iov field.  */
+-#if RTLNX_VER_MIN(6,4,0)
+-# define VBOX_ITER_IOV(_iter) iter_iov(_iter)
+-#else
+-# define VBOX_ITER_IOV(_iter) iter->iov
+-#endif
+-
+ 
+ /*********************************************************************************************************************************
+@@ -94,4 +87,12 @@
+ #else
+ # define VBSF_GET_ITER_TYPE(a_pIter) ((a_pIter)->type)
++#endif
++
++/** Starting from 6.4.0, iter_iov() macro should be used in order to access to iov field
++ * of struct iov_iter. */
++#if RTLNX_VER_MIN(6,4,0)
++# define VBSF_GET_ITER_IOV(_iter) iter_iov(_iter)
++#else
++# define VBSF_GET_ITER_IOV(_iter) iter->iov
+ #endif
+ 
+@@ -2407,5 +2408,5 @@
+     if (iter_is_iovec(iter) || (VBSF_GET_ITER_TYPE(iter) & ITER_KVEC)) {
+ # endif
+-        const struct iovec *pCurIov    = VBOX_ITER_IOV(iter);
++        const struct iovec *pCurIov    = VBSF_GET_ITER_IOV(iter);
+         size_t              cLeft      = iter->nr_segs;
+         size_t              cPagesSpan = 0;
+
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.8.bb b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.8.bb
index ed3e429..233323bf 100644
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.8.bb
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.8.bb
@@ -13,6 +13,8 @@
 
 SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
     file://Makefile.utils \
+    file://virtualbox-guest-additions-7.0.8-kernel-6.4-patch-1.patch \
+    file://virtualbox-guest-additions-7.0.8-kernel-6.4-patch-2.patch \
 "
 
 SRC_URI[sha256sum] = "c305fbe480f507eac7c36893ead66dffaacda944f19c3813a4533e9c39bae237"
diff --git a/meta-openembedded/meta-oe/recipes-test/linux-serial-test/linux-serial-test_git.bb b/meta-openembedded/meta-oe/recipes-test/linux-serial-test/linux-serial-test_git.bb
index 7f08a82..7abdcb2 100644
--- a/meta-openembedded/meta-oe/recipes-test/linux-serial-test/linux-serial-test_git.bb
+++ b/meta-openembedded/meta-oe/recipes-test/linux-serial-test/linux-serial-test_git.bb
@@ -6,7 +6,7 @@
 SRC_URI = "git://github.com/cbrake/linux-serial-test.git;protocol=https;branch=master"
 
 PV = "0+git${SRCPV}"
-SRCREV = "cacd2790eae7bf4767d4243f5b31134698d3b20d"
+SRCREV = "2ee61484167eab846f7b7c565284d7c350d738d3"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.12.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.15.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.12.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.15.bb
index e3c4382..f9fdb6a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.12.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aenum_3.1.15.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://aenum/LICENSE;md5=c6a85477543f8b8591b9c1f82abebbe9"
 
-SRC_URI[sha256sum] = "3e531c91860a81f885f7e6e97d219ae9772cb899580084788935dad7d9742ef0"
+SRC_URI[sha256sum] = "8cbd76cd18c4f870ff39b24284d3ea028fbe8731a58df3aa581e434c575b9559"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.10.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.11.1.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.10.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.11.1.bb
index 071f40b..feb2c41 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.10.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-alembic_1.11.1.bb
@@ -4,7 +4,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "295b54bbb92c4008ab6a7dcd1e227e668416d6f84b98b3c4446a2bc6214a556b"
+SRC_URI[sha256sum] = "6a810a6b012c88b33458fceb869aef09ac75d6ace5291915ba7fae44de372c01"
 
 PYPI_PACKAGE = "alembic"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.1.1.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.1.1.bb
index 859ef7b..504e7e2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-argcomplete_3.1.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=2ee41112a44fe7014dce33e26468ba93"
 
-SRC_URI[sha256sum] = "3a81445fa51c9875c36789ae5386d5e95c5c43d503963a0029a747aea74de1e3"
+SRC_URI[sha256sum] = "6c4c563f14f01440aaffa3eae13441c5db2357b5eec639abe7c0b15334627dff"
 
 PYPI_PACKAGE = "argcomplete"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.26.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.26.2.bb
deleted file mode 100644
index c02e31a..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.26.2.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Pattern matching and various utilities for file systems paths."
-
-LICENSE = "LGPL-2.0-only"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=cede70b648dcc81baf5b431d38905bad"
-
-SRC_URI[sha256sum] = "e9535b8c84dc9571a48999094fda7f33e63c3f1b74f3e5f3ac0105a58405bb65"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-logging \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.28.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.28.1.bb
new file mode 100644
index 0000000..2b1cb3e
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-argh_0.28.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "An unobtrusive argparse wrapper with natural syntax"
+DESCRIPTION = "Building a command-line interface? Found yourself uttering \
+'argh!' while struggling with the API of argparse? Don't like the complexity \
+but need the power? \
+\
+Everything should be made as simple as possible, but no simpler. \
+\
+—Albert Einstein (probably) \
+\
+Argh is a smart wrapper for argparse. Argparse is a very powerful \
+tool; Argh just makes it easy to use."
+
+LICENSE = "LGPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=3000208d539ec061b899bce1d9ce9404 \
+                    file://README.rst;beginline=261;endline=275;md5=a8bf3475df7e0d575a53d04c83d5e090"
+
+SRC_URI[sha256sum] = "b2093086f0e809a3ecc24b64a2145309ee8f56d034936cd59e57c558a357329d"
+
+inherit pypi python_flit_core
+
+RDEPENDS:${PN} += " \
+    python3-argcomplete \
+    python3-logging \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-arpeggio_2.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-arpeggio_2.0.2.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-arpeggio_2.0.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-arpeggio_2.0.2.bb
index 96d6de6..1a48a88 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-arpeggio_2.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-arpeggio_2.0.2.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=33b8d1ba459a2fa4d801acfd1d1b7ceb"
 
-SRC_URI[sha256sum] = "d6b03839019bb8a68785f9292ee6a36b1954eb84b925b84a6b8a5e1e26d3ed3d"
+SRC_URI[sha256sum] = "c790b2b06e226d2dd468e4fbfb5b7f506cec66416031fde1441cf1de2a0ba700"
 
 PYPI_PACKAGE = "Arpeggio"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.15.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.15.6.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.15.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.15.6.bb
index 7c85910..7325eb1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.15.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-astroid_2.15.6.bb
@@ -4,7 +4,7 @@
 LICENSE = "LGPL-2.1-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1"
 
-SRC_URI[sha256sum] = "1039262575027b441137ab4a62a793a9b43defb42c32d5670f38686207cd780f"
+SRC_URI[sha256sum] = "903f024859b7c7687d7a7f3a3f73b17301f8e42dfd9cc9df9d4418172d3e2dbd"
 
 inherit pypi python_setuptools_build_meta
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncinotify_3.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncinotify_4.0.2.bb
similarity index 74%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-asyncinotify_3.0.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-asyncinotify_4.0.2.bb
index 2f4adce..08dc77b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncinotify_3.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncinotify_4.0.2.bb
@@ -3,9 +3,9 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec941a1cd6616454970d03cb9c9e8f8"
 
-SRC_URI[sha256sum] = "da812bf2be6a76aac6670b766eec4564d9484da6595d3ce1f9bba8ba78c30445"
+SRC_URI[sha256sum] = "bcac19425b1b418bbbc4d31193ea3c39e24343cd7ddff2074ae7b599f1a04829"
 
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
 
 RDEPENDS:${PN} += " \
     python3-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_23.6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_23.6.2.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_23.6.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_23.6.2.bb
index dc11b85..54c8f23 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_23.6.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-autobahn_23.6.2.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3e2c2c2cc2915edc5321b0e6b1d3f5f8"
 
-SRC_URI[sha256sum] = "ce6e540402e3524ca46c55a1bc46255225969b5837ca792ea5415d21ac571034"
+SRC_URI[sha256sum] = "ec9421c52a2103364d1ef0468036e6019ee84f71721e86b36fe19ad6966c1181"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.4.bb
deleted file mode 100644
index cfdbde9..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.4.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Security oriented static analyser for python code."
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
-
-SRC_URI[sha256sum] = "2d63a8c573417bae338962d4b9b06fbc6080f74ecd955a092849e1e65c717bd2"
-
-DEPENDS = "python3-pbr-native python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
-
-inherit setuptools3 pypi
-
-RDEPENDS:${PN} += "python3-modules python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.5.bb
new file mode 100644
index 0000000..bccdf28
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bandit_1.7.5.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Security oriented static analyser for python code."
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
+
+SRC_URI[sha256sum] = "bdfc739baa03b880c2d15d0431b31c658ffc348e907fe197e54e0389dd59e11e"
+
+DEPENDS = "python3-pbr-native python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
+
+inherit setuptools3 pypi
+
+RDEPENDS:${PN} += "\
+        python3-git \
+        python3-modules \
+        python3-pbr \
+        python3-pyyaml \
+        python3-rich \
+        python3-six \
+        python3-stevedore \
+        "
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.7.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.7.6.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.7.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.7.6.bb
index f766692..b274800 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.7.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.7.6.bb
@@ -3,7 +3,7 @@
 LICENSE = "PSF-2.0"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d"
 
-SRC_URI[sha256sum] = "f71256a32609b036adad932e1228b66a6b4e2cae6be397e588ddc0babd9a78b9"
+SRC_URI[sha256sum] = "3807f9323c308bc3f9b58cbe5d04dc28f34ac32d852999334da96b42f64b5356"
 
 inherit setuptools3 pypi
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-can_4.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-can_4.2.2.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-can_4.2.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-can_4.2.2.bb
index 5e3d54d..7ecbf12 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-can_4.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-can_4.2.2.bb
@@ -3,7 +3,7 @@
 LICENSE = "LGPL-3.0-only"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e6a600fd5e1d9cbde2d983680233ad02"
 
-SRC_URI[sha256sum] = "f1ace82545cb4c7edf92a5aa6024bbb8ad23331ee5b0a1f441e782bf680a67ac"
+SRC_URI[sha256sum] = "6ad50f4613289f3c4d276b6d2ac8901d776dcb929994cce93f55a69e858c595f"
 
 PYPI_PACKAGE="python-can"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.5.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.5.bb
index 7d21375..7d3a5fb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.5.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=da746463714cc35999ed9a42339f2943"
 
-SRC_URI[sha256sum] = "1b0b3cbf664ab59dada57123c81eff3d9737e0d11d8cf79e3d6eb10823f1739f"
+SRC_URI[sha256sum] = "363d80a6d35614bd446e2f2b1b216f3b33741d03ac6d0a92803306f40e555b58"
 
 PYPI_PACKAGE = "ConfigArgParse"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-covdefaults/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-covdefaults/run-ptest
new file mode 100644
index 0000000..3385d68
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-covdefaults/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-covdefaults_2.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-covdefaults_2.3.0.bb
new file mode 100644
index 0000000..b7709aa
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-covdefaults_2.3.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "A coverage plugin to provide sensible default settings"
+HOMEPAGE = "https://github.com/asottile/covdefaults"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a3da826da635201a80d2fb40f3034929"
+
+# Use GitHub SRC_URI, as pypi package does not include tests
+SRC_URI += " \
+    git://github.com/asottile/covdefaults.git;branch=main;protocol=https \
+    file://run-ptest \
+"
+
+SRCREV = "007f5aff5d1c817883385a5f61f742dd11776dc6"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3 ptest
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-coverage \
+"
+
+RDEPENDS:${PN}-ptest += " \
+    ${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+        install -d ${D}${PTEST_PATH}
+        cp -rf ${S}/tests ${D}${PTEST_PATH}
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-distlib_0.3.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-distlib_0.3.6.bb
new file mode 100644
index 0000000..ffffece
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-distlib_0.3.6.bb
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: MIT
+# Copyright (C) 2023 iris-GmbH infrared & intelligent sensors
+
+SUMMARY = "A library which implements low-level functions that relate to packaging and distribution of Python software."
+HOMEPAGE = "https://github.com/pypa/distlib"
+LICENSE = "PSF-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f6a11430d5cd6e2cd3832ee94f22ddfc"
+
+SRC_URI[sha256sum] = "14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"
+
+BBCLASSEXTEND = "native nativesdk"
+inherit pypi python_setuptools_build_meta
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.1.4.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.1.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.1.4.bb
index 2dc8af7..60c54f0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.1.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.1.4.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5dbb7fb7d72da3921202dd7b995d3ecf"
 
-SRC_URI[sha256sum] = "1ce703e1380ef12efe1b6aeb1927c0f3add0e4f77950d89d9d44136d6676794b"
+SRC_URI[sha256sum] = "f991c42ff66fa06e219141ccf65890261e6635b448e7d4c2d8b62dc5bf1de9e8"
 
 PYPI_PACKAGE = "elementpath"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.12.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.12.0.bb
new file mode 100644
index 0000000..8deca31
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-filelock_3.12.0.bb
@@ -0,0 +1,19 @@
+# SPDX-License-Identifier: MIT
+# Copyright (C) 2023 iris-GmbH infrared & intelligent sensors
+
+SUMMARY = "A single module, which implements a platform independent file lock in Python, which provides a simple way of inter-process communication"
+HOMEPAGE = "https://py-filelock.readthedocs.io/"
+LICENSE = "Unlicense"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=911690f51af322440237a253d695d19f"
+
+SRC_URI[sha256sum] = "fc03ae43288c013d2ea83c8597001b1129db351aad9c57fe2409327916b8e718"
+
+UPSTREAM_CHECK_URI = "https://pypi.org/project/lockfile/"
+UPSTREAM_CHECK_REGEX = "/lockfile/(?P<pver>(\d+[\.\-_]*)+)"
+
+BBCLASSEXTEND = "native nativesdk"
+inherit pypi python_hatchling
+
+DEPENDS += "\
+    ${PYTHON_PN}-hatch-vcs-native \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.89.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.92.0.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.89.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.92.0.bb
index a62d599..4d617ec 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.89.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.92.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRC_URI[sha256sum] = "0b0c9503df2da92692ffceee88423ca593cbf0b939d879e2c46fbdc1a39cf091"
+SRC_URI[sha256sum] = "f38a6e106a7417719715506d36f0a233ec253335e422bda311352866a86c4187"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.20.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.21.0.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.20.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.21.0.bb
index 2127e43..ab32ec4 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.20.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.21.0.bb
@@ -6,7 +6,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "030af34138909ccde0fbce611afc178f1d65d32fbff281f25738b1fe1c6f3eaa"
+SRC_URI[sha256sum] = "b28e8048e57727e7cf0e5bd8e7276b212aef476654a09511354aa82753b45c66"
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-direct_mmap-Use-off_t-on-linux.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-direct_mmap-Use-off_t-on-linux.patch
new file mode 100644
index 0000000..9b3e5d4
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-direct_mmap-Use-off_t-on-linux.patch
@@ -0,0 +1,37 @@
+From 45fdade6c0415ec5af3f9312e6311a4ccc682a7b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 28 Dec 2022 18:24:21 -0800
+Subject: [PATCH] direct_mmap: Use off_t on linux
+
+off64_t is not provided without defining _LARGEFILE64_SOURCE on musl
+this define is not defined automatically like glibc where it gets
+defined when _GNU_SOURCE is defined. Using off_t makes it portable
+across musl/glibc and for using 64bit off_t on glibc 32bit systems
+-D_FILE_OFFSET_BITS=64 can be defined during build via CXXFLAGS
+
+Upstream-Status: Submitted [https://github.com/abseil/abseil-cpp/pull/1349]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ absl/base/internal/direct_mmap.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/third_party/abseil-cpp/absl/base/internal/direct_mmap.h
++++ b/third_party/abseil-cpp/absl/base/internal/direct_mmap.h
+@@ -72,7 +72,7 @@ namespace base_internal {
+ // Platform specific logic extracted from
+ // https://chromium.googlesource.com/linux-syscall-support/+/master/linux_syscall_support.h
+ inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd,
+-                        off64_t offset) noexcept {
++                        off_t offset) noexcept {
+ #if defined(__i386__) || defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) || \
+     defined(__m68k__) || defined(__sh__) ||                                  \
+     (defined(__hppa__) && !defined(__LP64__)) ||                             \
+@@ -102,7 +102,7 @@ inline void* DirectMmap(void* start, siz
+ #else
+   return reinterpret_cast<void*>(
+       syscall(SYS_mmap2, start, length, prot, flags, fd,
+-              static_cast<off_t>(offset / pagesize)));
++              offset / pagesize));
+ #endif
+ #elif defined(__s390x__)
+   // On s390x, mmap() arguments are passed in memory.
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-protobuf-Disable-musttail-attribute-on-mips.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-protobuf-Disable-musttail-attribute-on-mips.patch
index 8b13d7a..8c70b2b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-protobuf-Disable-musttail-attribute-on-mips.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-protobuf-Disable-musttail-attribute-on-mips.patch
@@ -14,11 +14,11 @@
 
 --- a/third_party/protobuf/src/google/protobuf/port_def.inc
 +++ b/third_party/protobuf/src/google/protobuf/port_def.inc
-@@ -255,6 +255,7 @@
+@@ -338,6 +338,7 @@ static_assert(PROTOBUF_ABSL_MIN(20230125
  #error PROTOBUF_TAILCALL was previously defined
  #endif
- #if __has_cpp_attribute(clang::musttail) && !defined(__arm__) && \
+ #if __has_cpp_attribute(clang::musttail) && !defined(__arm__) &&      \
 +    !defined(__mips__) &&                                        \
-     !defined(_ARCH_PPC) && !defined(__wasm__) &&                 \
-     !(defined(_MSC_VER) && defined(_M_IX86)) &&                  \
+     !defined(_ARCH_PPC) && !defined(__wasm__) &&                      \
+     !(defined(_MSC_VER) && defined(_M_IX86)) && !defined(__i386__) && \
      !(defined(__NDK_MAJOR__) && __NDK_MAJOR <= 24)
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.51.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.56.0.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.51.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.56.0.bb
index c1dbde1..8fbe1fa 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.51.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio-tools_1.56.0.bb
@@ -11,8 +11,9 @@
 
 SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch \
             file://0001-protobuf-Disable-musttail-attribute-on-mips.patch \
+            file://0001-direct_mmap-Use-off_t-on-linux.patch \
             "
-SRC_URI[sha256sum] = "8e62d23d3fed9d4f81738f98dd193dbd2e21aed4a8f0dd715e75b5439e649727"
+SRC_URI[sha256sum] = "39f5877cea514b3da9f2683dfb3ffb45ef47b05f4ff39c287d7d61c5057f48b8"
 
 RDEPENDS:${PN} = "${PYTHON_PN}-grpcio"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-direct_mmap-Use-off_t-on-linux.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-direct_mmap-Use-off_t-on-linux.patch
new file mode 100644
index 0000000..49df528
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-direct_mmap-Use-off_t-on-linux.patch
@@ -0,0 +1,42 @@
+From 45fdade6c0415ec5af3f9312e6311a4ccc682a7b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 28 Dec 2022 18:24:21 -0800
+Subject: [PATCH] direct_mmap: Use off_t on linux
+
+off64_t is not provided without defining _LARGEFILE64_SOURCE on musl
+this define is not defined automatically like glibc where it gets
+defined when _GNU_SOURCE is defined. Using off_t makes it portable
+across musl/glibc and for using 64bit off_t on glibc 32bit systems
+-D_FILE_OFFSET_BITS=64 can be defined during build via CXXFLAGS
+
+Upstream-Status: Submitted [https://github.com/abseil/abseil-cpp/pull/1349]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ absl/base/internal/direct_mmap.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/absl/base/internal/direct_mmap.h b/absl/base/internal/direct_mmap.h
+index 815b8d23..fdf88f0b 100644
+--- a/absl/base/internal/direct_mmap.h
++++ b/absl/base/internal/direct_mmap.h
+@@ -72,7 +72,7 @@ namespace base_internal {
+ // Platform specific logic extracted from
+ // https://chromium.googlesource.com/linux-syscall-support/+/master/linux_syscall_support.h
+ inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd,
+-                        off64_t offset) noexcept {
++                        off_t offset) noexcept {
+ #if defined(__i386__) || defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) || \
+     defined(__m68k__) || defined(__sh__) ||                                  \
+     (defined(__hppa__) && !defined(__LP64__)) ||                             \
+@@ -102,7 +102,7 @@ inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd,
+ #else
+   return reinterpret_cast<void*>(
+       syscall(SYS_mmap2, start, length, prot, flags, fd,
+-              static_cast<off_t>(offset / pagesize)));
++              offset / pagesize));
+ #endif
+ #elif defined(__s390x__)
+   // On s390x, mmap() arguments are passed in memory.
+-- 
+2.39.0
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
index 1f465db..13911dd 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
@@ -29,11 +29,9 @@
  src/python/grpcio/commands.py |  5 ++++-
  2 files changed, 11 insertions(+), 5 deletions(-)
 
-diff --git a/setup.py b/setup.py
-index 3a50c97..bb2386d 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -205,8 +205,11 @@ def check_linker_need_libatomic():
+@@ -206,8 +206,11 @@ def check_linker_need_libatomic():
      """Test if linker on system needs libatomic."""
      code_test = (b'#include <atomic>\n' +
                   b'int main() { return std::atomic<int64_t>{}; }')
@@ -47,7 +45,7 @@
                                  stdin=PIPE,
                                  stdout=PIPE,
                                  stderr=PIPE)
-@@ -215,8 +218,8 @@ def check_linker_need_libatomic():
+@@ -216,8 +219,8 @@ def check_linker_need_libatomic():
          return False
      # Double-check to see if -latomic actually can solve the problem.
      # https://github.com/grpc/grpc/issues/22491
@@ -58,15 +56,14 @@
                                  stdin=PIPE,
                                  stdout=PIPE,
                                  stderr=PIPE)
-diff --git a/src/python/grpcio/commands.py b/src/python/grpcio/commands.py
-index d93b6c7..a8c4a51 100644
 --- a/src/python/grpcio/commands.py
 +++ b/src/python/grpcio/commands.py
-@@ -228,7 +228,10 @@ class BuildExt(build_ext.build_ext):
+@@ -228,8 +228,10 @@ class BuildExt(build_ext.build_ext):
              """
              try:
                  # TODO(lidiz) Remove the generated a.out for success tests.
--                cc_test = subprocess.Popen(['cc', '-x', 'c', '-std=c++14', '-'],
+-                cc = os.environ.get('CC', 'cc')
+-                cc_test = subprocess.Popen([cc, '-x', 'c', '-std=c++14', '-'],
 +                cc_test, cc_args = os.environ.get('CC').split(' ', 1) or 'gcc'
 +                if not cc_args:
 +                    cc_args = "-g"
@@ -74,6 +71,3 @@
                                             stdin=subprocess.PIPE,
                                             stdout=subprocess.PIPE,
                                             stderr=subprocess.PIPE)
--- 
-2.25.1
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch
index 3de3d0f..4100cf6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch
@@ -18,8 +18,6 @@
  absl/debugging/internal/stacktrace_config.h | 2 +-
  4 files changed, 12 insertions(+), 5 deletions(-)
 
-diff --git a/absl/base/internal/unscaledcycleclock.cc b/absl/base/internal/unscaledcycleclock.cc
-index b1c396c..d62bfd6 100644
 --- a/absl/base/internal/unscaledcycleclock.cc
 +++ b/absl/base/internal/unscaledcycleclock.cc
 @@ -20,7 +20,7 @@
@@ -40,22 +38,6 @@
  
  int64_t UnscaledCycleClock::Now() {
  #ifdef __GLIBC__
-diff --git a/absl/base/internal/unscaledcycleclock.h b/absl/base/internal/unscaledcycleclock.h
-index 2cbeae3..683a5ef 100644
---- a/absl/base/internal/unscaledcycleclock.h
-+++ b/absl/base/internal/unscaledcycleclock.h
-@@ -46,7 +46,8 @@
- 
- // The following platforms have an implementation of a hardware counter.
- #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
--    defined(__powerpc__) || defined(__ppc__) || defined(__riscv) ||     \
-+    ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || \
-+    defined(__riscv) ||     \
-     defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))
- #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
- #else
-diff --git a/absl/debugging/internal/examine_stack.cc b/absl/debugging/internal/examine_stack.cc
-index 5bdd341..a784e0d 100644
 --- a/absl/debugging/internal/examine_stack.cc
 +++ b/absl/debugging/internal/examine_stack.cc
 @@ -33,6 +33,10 @@
@@ -69,7 +51,7 @@
  #include "absl/base/attributes.h"
  #include "absl/base/internal/raw_logging.h"
  #include "absl/base/macros.h"
-@@ -174,8 +178,10 @@ void* GetProgramCounter(void* const vuc) {
+@@ -174,8 +178,10 @@ void* GetProgramCounter(void* const vuc)
      return reinterpret_cast<void*>(context->uc_mcontext.pc);
  #elif defined(__powerpc64__)
      return reinterpret_cast<void*>(context->uc_mcontext.gp_regs[32]);
@@ -81,8 +63,6 @@
  #elif defined(__riscv)
      return reinterpret_cast<void*>(context->uc_mcontext.__gregs[REG_PC]);
  #elif defined(__s390__) && !defined(__s390x__)
-diff --git a/absl/debugging/internal/stacktrace_config.h b/absl/debugging/internal/stacktrace_config.h
-index 3929b1b..23d5e50 100644
 --- a/absl/debugging/internal/stacktrace_config.h
 +++ b/absl/debugging/internal/stacktrace_config.h
 @@ -60,7 +60,7 @@
@@ -94,6 +74,15 @@
  #define ABSL_STACKTRACE_INL_HEADER \
    "absl/debugging/internal/stacktrace_powerpc-inl.inc"
  #elif defined(__aarch64__)
--- 
-2.25.1
-
+--- a/absl/base/internal/unscaledcycleclock_config.h
++++ b/absl/base/internal/unscaledcycleclock_config.h
+@@ -21,7 +21,8 @@
+ 
+ // The following platforms have an implementation of a hardware counter.
+ #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
+-    defined(__powerpc__) || defined(__ppc__) || defined(__riscv) ||     \
++    ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || \
++    defined(__riscv) ||     \
+     defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))
+ #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
+ #else
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/boring_ssl.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/boring_ssl.patch
deleted file mode 100644
index d12e35a..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/boring_ssl.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From f71b32eb8a5c173fc5733847437b9485d75bb2e5 Mon Sep 17 00:00:00 2001
-From: Leon Anavi <leon.anavi@konsulko.com>
-Date: Fri, 9 Apr 2021 14:06:36 +0300
-Subject: [PATCH] setup.py: Fix determining target platform
-
-Do not poke at the build machine to determine target platform or architecture
-pass it from environment instead for cross compiling to work
-
-Upstream-Status: Inappropriate [OE-Specific]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
----
- setup.py | 11 +++++++----
- 1 file changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index c93d419f32..71a944a9d0 100644
---- a/setup.py
-+++ b/setup.py
-@@ -116,6 +116,9 @@ def _env_bool_value(env_name, default):
- BUILD_WITH_BORING_SSL_ASM = _env_bool_value('GRPC_BUILD_WITH_BORING_SSL_ASM',
-                                             'True')
- 
-+BORING_SSL_PLATFORM = os.environ.get('GRPC_BORING_SSL_PLATFORM',
-+                                           'True')
-+
- # Export this environment variable to override the platform variant that will
- # be chosen for boringssl assembly optimizations. This option is useful when
- # crosscompiling and the host platform as obtained by distutils.utils.get_platform()
-@@ -336,13 +339,13 @@ if BUILD_WITH_BORING_SSL_ASM and not BUILD_WITH_SYSTEM_OPENSSL:
-     LINUX_X86_64 = 'linux-x86_64'
-     LINUX_ARM = 'linux-arm'
-     LINUX_AARCH64 = 'linux-aarch64'
--    if LINUX_X86_64 == boringssl_asm_platform:
-+    if LINUX_X86_64 == BORING_SSL_PLATFORM:
-         asm_key = 'crypto_linux_x86_64'
--    elif LINUX_ARM == boringssl_asm_platform:
-+    elif LINUX_ARM == BORING_SSL_PLATFORM:
-         asm_key = 'crypto_linux_arm'
--    elif LINUX_AARCH64 == boringssl_asm_platform:
-+    elif LINUX_AARCH64 == BORING_SSL_PLATFORM:
-         asm_key = 'crypto_linux_aarch64'
--    elif "mac" in boringssl_asm_platform and "x86_64" in boringssl_asm_platform:
-+    elif "mac" in boringssl_asm_platform and "x86_64" in BORING_SSL_PLATFORM:
-         asm_key = 'crypto_mac_x86_64'
-     else:
-         print("ASM Builds for BoringSSL currently not supported on:",
--- 
-2.17.1
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/ppc-boringssl-support.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/ppc-boringssl-support.patch
index 5c9be44..5dacc68 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/ppc-boringssl-support.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio/ppc-boringssl-support.patch
@@ -5,10 +5,10 @@
 
 --- a/third_party/boringssl-with-bazel/src/include/openssl/base.h
 +++ b/third_party/boringssl-with-bazel/src/include/openssl/base.h
-@@ -99,6 +99,9 @@ extern "C" {
- #elif (defined(__PPC64__) || defined(__powerpc64__)) && defined(_LITTLE_ENDIAN)
- #define OPENSSL_64_BIT
- #define OPENSSL_PPC64LE
+@@ -96,6 +96,9 @@ extern "C" {
+ #elif defined(__ARMEL__) || defined(_M_ARM)
+ #define OPENSSL_32_BIT
+ #define OPENSSL_ARM
 +#elif (defined(__PPC__) || defined(__powerpc__))
 +#define OPENSSL_32_BIT
 +#define OPENSSL_PPC
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.51.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.56.0.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.51.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.56.0.bb
index 7a9b7d8..fc871ad 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.51.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.56.0.bb
@@ -8,13 +8,13 @@
 
 SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch"
 SRC_URI:append:class-target = " file://ppc-boringssl-support.patch \
-                                file://boring_ssl.patch \
                                 file://mips_bigendian.patch \
                                 file://0001-Include-missing-cstdint-header.patch \
                                 file://abseil-ppc-fixes.patch;patchdir=third_party/abseil-cpp \
+                                file://0001-direct_mmap-Use-off_t-on-linux.patch;patchdir=third_party/abseil-cpp \
                                 file://0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch \
 "
-SRC_URI[sha256sum] = "e6dfc2b6567b1c261739b43d9c59d201c1b89e017afd9e684d85aa7a186c9f7a"
+SRC_URI[sha256sum] = "4c08ee21b3d10315b8dc26f6c13917b20ed574cdbed2d2d80c53d5508fdcc0f2"
 
 RDEPENDS:${PN} = "${PYTHON_PN}-protobuf \
                   ${PYTHON_PN}-setuptools \
@@ -30,11 +30,14 @@
 
 BORING_SSL_PLATFORM:arm = "linux-arm"
 BORING_SSL_PLATFORM:x86-64 = "linux-x86_64"
+BORING_SSL_PLATFORM:aarch64 = "linux-aarch64"
 BORING_SSL_PLATFORM ?= "unsupported"
 export GRPC_BORING_SSL_PLATFORM = "${BORING_SSL_PLATFORM}"
+export GRPC_BUILD_OVERRIDE_BORING_SSL_ASM_PLATFORM = "${BORING_SSL_PLATFORM}"
 
-BORING_SSL:x86-64 = "1"
 BORING_SSL:arm = "1"
+BORING_SSL:x86-64 = "1"
+BORING_SSL:aarch64 = "1"
 BORING_SSL ?= "0"
 export GRPC_BUILD_WITH_BORING_SSL_ASM = "${BORING_SSL}"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.9.0.bb
similarity index 91%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.8.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.9.0.bb
index 3436444..834bb03 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.8.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-h5py_3.9.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=113251d71fb0384712c719b567261c5c"
 
-SRC_URI[sha256sum] = "6fead82f0c4000cf38d53f9c030780d81bfa0220218aee13b90b7701c937d95f"
+SRC_URI[sha256sum] = "e604db6521c1e367c6bd7fad239c847f53cc46646f2d2651372d05ae5e95f817"
 
 SRC_URI += "file://0001-setup_build.py-avoid-absolute-path.patch"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-joblib_1.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-joblib_1.3.1.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-joblib_1.2.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-joblib_1.3.1.bb
index ec02265..9186cbb 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-joblib_1.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-joblib_1.3.1.bb
@@ -4,7 +4,7 @@
 
 inherit setuptools3 pypi
 
-SRC_URI[sha256sum] = "e1cee4a79e4af22881164f218d4311f60074197fb707e082e803b61f6d137018"
+SRC_URI[sha256sum] = "1f937906df65329ba98013dc9692fe22a4c5e4a648112de500508b18a21b41e3"
 
 RDEPENDS:${PN} += " \
     python3-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-natsort_8.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-natsort_8.4.0.bb
similarity index 75%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-natsort_8.3.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-natsort_8.4.0.bb
index baf94ca..206e322 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-natsort_8.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-natsort_8.4.0.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d32431d1b650010945da4e078011c8fa"
 
 PYPI_PACKAGE = "natsort"
-SRC_URI[sha256sum] = "517595492dde570a4fd6b6a76f644440c1ba51e2338c8a671d7f0475fda8f9fd"
+SRC_URI[sha256sum] = "45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.0.0.bb
similarity index 96%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.5.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.0.0.bb
index 7ec43c6..8683ef2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_9.5.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pillow_10.0.0.bb
@@ -62,4 +62,4 @@
 
 BBCLASSEXTEND = "native"
 
-SRCREV = "204590600c6a8c5246d0564d3312abd6e6b0ed70"
+SRCREV = "6e28ed1f36d0eb74053af54e1eddc9c29db698cd"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-platformdirs_3.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-platformdirs_3.6.0.bb
deleted file mode 100644
index 20b3299..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-platformdirs_3.6.0.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "A small Python module for determining appropriate platform-specific dirs"
-HOMEPAGE = "https://github.com/platformdirs/platformdirs"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ea4f5a41454746a9ed111e3d8723d17a"
-
-SRC_URI = " \
-    git://github.com/platformdirs/platformdirs.git;branch=main;protocol=https \
-    file://run-ptest \
-"
-
-SRCREV ?= "85b0b67eb33a835b797c1d52dab4a06c5554b7ee"
-SRC_URI[sha256sum] = "7954a68d0ba23558d753f73437c55f89027cf8f5108c19844d4b82e5af396335"
-
-inherit python_setuptools_build_meta ptest
-
-DEPENDS += " \
-    python3-hatch-vcs-native \
-    python3-setuptools-scm-native \
-    python3-toml-native \
-"
-
-S = "${WORKDIR}/git"
-
-RDEPENDS:${PN}-ptest += " \
-    ${PYTHON_PN}-appdirs \
-    ${PYTHON_PN}-pytest \
-    ${PYTHON_PN}-pytest-mock \
-"
-
-do_install_ptest() {
-        install -d ${D}${PTEST_PATH}/Tests
-        cp -rf ${S}/tests ${D}${PTEST_PATH}/
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-platformdirs_3.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-platformdirs_3.8.0.bb
new file mode 100644
index 0000000..52fe07a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-platformdirs_3.8.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "A small Python module for determining appropriate platform-specific dirs"
+HOMEPAGE = "https://github.com/platformdirs/platformdirs"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ea4f5a41454746a9ed111e3d8723d17a"
+
+SRC_URI += " \
+    file://run-ptest \
+"
+
+SRC_URI[sha256sum] = "b0cabcb11063d21a0b261d557acb0a9d2126350e63b70cdf7db6347baea456dc"
+
+inherit pypi python_hatchling ptest
+
+DEPENDS += " \
+    ${PYTHON_PN}-hatch-vcs-native \
+"
+
+RDEPENDS:${PN}-ptest += " \
+    ${PYTHON_PN}-appdirs \
+    ${PYTHON_PN}-covdefaults \
+    ${PYTHON_PN}-pytest \
+    ${PYTHON_PN}-pytest-mock \
+    ${PYTHON_PN}-pytest-cov \
+"
+
+do_install_ptest() {
+        install -d ${D}${PTEST_PATH}
+        cp -rf ${S}/tests ${D}${PTEST_PATH}/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.3.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.3.2.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.3.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.3.2.bb
index 0d90c91..2b7dfd7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.3.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.3.2.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=430604f78bee72425da231d42eac9cee"
 DEPENDS += "python3-six-native"
 
-SRC_URI[sha256sum] = "82787121e293f31095c0e9721b3e561a01807a6ac20abcbfb187ce70d24fb40c"
+SRC_URI[sha256sum] = "33f427f39189567600ea1f8f6ebd7e5f26caf50ef330798792679fcae80ef339"
 S = "${WORKDIR}/pymodbus-${PV}"
 
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.4.0.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.3.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.4.0.bb
index c1bc39a..a9bf31d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.3.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.4.0.bb
@@ -8,7 +8,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRC_URI[sha256sum] = "34e95ffb0a68bffbc3b437f2d1f25fc916fef3df5cdeed0992da5f42fae9b807"
+SRC_URI[sha256sum] = "a1b5d286fee4b9b5a0312faede02f2ce2f56ac695685af1d25f428abdac9a22c"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyproject-api_1.5.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyproject-api_1.5.1.bb
new file mode 100644
index 0000000..1b458fa
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyproject-api_1.5.1.bb
@@ -0,0 +1,23 @@
+# SPDX-License-Identifier: MIT
+# Copyright (C) 2023 iris-GmbH infrared & intelligent sensors
+
+SUMMARY = "pyproject-api aims to abstract away interaction with pyproject.toml style projects in a flexible way."
+HOMEPAGE = "https://pyproject-api.readthedocs.io"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=11610a9d8fd95649cf8159be12b98cb7"
+
+SRC_URI[sha256sum] = "435f46547a9ff22cf4208ee274fca3e2869aeb062a4834adfc99a4dd64af3cf9"
+
+PYPI_PACKAGE = "pyproject_api"
+
+BBCLASSEXTEND = "native nativesdk"
+inherit pypi python_hatchling
+
+DEPENDS += "\
+    ${PYTHON_PN}-hatch-vcs-native \
+"
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-packaging \
+    ${PYTHON_PN}-tomli \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.19.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.7.9.bb
similarity index 61%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.19.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.7.9.bb
index 8c192d2..263acd0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.5.19.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyroute2_0.7.9.bb
@@ -1,9 +1,10 @@
 SUMMARY = "A pure Python netlink and Linux network configuration library"
-LICENSE = "GPL-2.0-only & Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.GPL.v2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://LICENSE.Apache.v2;md5=34281e312165f843a2b7d1f114fe65ce"
+LICENSE = "GPL-2.0-or-later | Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dccbff78d7d79ae7e53953d43445c6e6 \
+                    file://LICENSE.GPL-2.0-or-later;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://LICENSE.Apache-2.0;md5=34281e312165f843a2b7d1f114fe65ce"
 
-SRC_URI[sha256sum] = "45460d12ed2a5caf272a357a3360b36d1e346f17afe1425b66fc21d70f462b29"
+SRC_URI[sha256sum] = "b69d82f140b0774317d7ba40f6c5fa1d755098ba3f3eb619982d16e750dc631a"
 
 inherit setuptools3 pypi ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.5.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.4.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.5.bb
index 8af13b6..dda81e2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyscaffold_4.5.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=14a49c74a1d91829908ac756c07e6b91"
 DEPENDS += "python3-setuptools-scm-native"
 
-SRC_URI[sha256sum] = "4dbdb76c45ad860dfe64e00103c18a6279ce382ddd5a7f18651c129c5539a0ab"
+SRC_URI[sha256sum] = "d849f9a2e15bdcf165e19f96835f0b17e1a2d59d4c561c445b827a081de6d262"
 
 inherit pypi python_setuptools_build_meta
 PYPI_PACKAGE = "PyScaffold"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.16.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.16.0.bb
deleted file mode 100644
index 1dfeab6..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.16.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "pytest-asyncio is an Apache2 licensed library, written in Python, for testing asyncio code with pytest"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
-
-SRC_URI[sha256sum] = "7496c5977ce88c34379df64a66459fe395cd05543f0a2f837016e7144391fcfb"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
-    ${PYTHON_PN}-pytest \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.21.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.21.1.bb
new file mode 100644
index 0000000..c96c0e0
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.21.1.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "pytest-asyncio is an Apache2 licensed library, written in Python, for testing asyncio code with pytest"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=136e4f49dbf29942c572a3a8f6e88a77"
+
+SRC_URI[sha256sum] = "40a7eae6dded22c7b604986855ea48400ab15b069ae38116e8c01238e9eeb64d"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS:${PN} += " \
+    python3-pytest \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb
new file mode 100644
index 0000000..1ff3e75
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Pytest plugin for measuring coverage."
+HOMEPAGE = "https://github.com/pytest-dev/pytest-cov"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = " \
+    file://LICENSE;md5=cbc4e25353c748c817db2daffe605e43 \
+"
+
+SRC_URI[sha256sum] = "3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"
+
+inherit pypi setuptools3
+
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.7.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.9.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.7.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.9.bb
index f132d91..81bffac 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.7.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzstd_0.15.9.bb
@@ -8,7 +8,7 @@
 
 PYPI_PACKAGE = "pyzstd"
 
-SRC_URI[sha256sum] = "55e503f28f5a9d225ce9d0639e3f5b1801bacace5aea926ec2998e73c5150fe7"
+SRC_URI[sha256sum] = "cbfdde6c5768ffa5d2f14127bbc1d7c3c2d03c0ceaeb0736946197e06275ccc7"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.5.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.6.0.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.5.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.6.0.bb
index eb407a2..47eb7c2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.5.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-redis_4.6.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=1db1f331d351900707368237cc4880cf"
 
-SRC_URI[sha256sum] = "dc87a0bdef6c8bfe1ef1e1c40be7034390c2ae02d92dcd0c7ca1729443899880"
+SRC_URI[sha256sum] = "585dc516b9eb042a619ef0a39c3d7d55fe81bdb4df09a52c9cdde0d07bf1aa7d"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-futures_1.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-futures_1.0.1.bb
similarity index 72%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-requests-futures_1.0.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-requests-futures_1.0.1.bb
index 4b57e13..28f034f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-futures_1.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-futures_1.0.1.bb
@@ -3,8 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=e1e50798d0afe0e1f87594c6619a2fa5"
 
-SRC_URI[md5sum] = "601b5e90413bb00e06148752d31f0cc7"
-SRC_URI[sha256sum] = "35547502bf1958044716a03a2f47092a89efe8f9789ab0c4c528d9c9c30bc148"
+SRC_URI[sha256sum] = "f55a4ef80070e2858e7d1e73123d2bfaeaf25b93fd34384d8ddf148e2b676373"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-toolbelt/090856f4159c40a2927fb88546419f2e1697ad5f.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-toolbelt/090856f4159c40a2927fb88546419f2e1697ad5f.patch
new file mode 100644
index 0000000..948dd2a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-toolbelt/090856f4159c40a2927fb88546419f2e1697ad5f.patch
@@ -0,0 +1,1492 @@
+From 090856f4159c40a2927fb88546419f2e1697ad5f Mon Sep 17 00:00:00 2001
+From: Quentin Pradet <quentin.pradet@gmail.com>
+Date: Fri, 28 Apr 2023 22:03:46 +0400
+Subject: [PATCH] Indent cassettes files to help track changes in git
+
+Upstream-Status: Submitted [https://github.com/requests/toolbelt/pull/356]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/cassettes/file_for_download.json        |  56 ++++-
+ tests/cassettes/http2bin_cookies.json         | 133 +++++++++-
+ tests/cassettes/http2bin_fingerprint.json     |  65 ++++-
+ tests/cassettes/httpbin_guess_auth_basic.json | 115 ++++++++-
+ .../cassettes/httpbin_guess_auth_digest.json  | 124 +++++++++-
+ tests/cassettes/httpbin_guess_auth_none.json  |  59 ++++-
+ tests/cassettes/klevas_vu_lt_ssl3.json        |  36 ++-
+ .../redirect_request_for_dump_all.json        | 233 +++++++++++++++++-
+ tests/cassettes/simple_get_request.json       |  65 ++++-
+ tests/cassettes/stream_response_to_file.json  | 181 +++++++++++++-
+ ...sponse_without_content_length_to_file.json | 175 ++++++++++++-
+ tests/cassettes/test_x509_adapter_der.json    |  69 +++++-
+ tests/cassettes/test_x509_adapter_pem.json    |  69 +++++-
+ 13 files changed, 1367 insertions(+), 13 deletions(-)
+
+diff --git a/tests/cassettes/file_for_download.json b/tests/cassettes/file_for_download.json
+index 9e4bb8f..d171443 100644
+--- a/tests/cassettes/file_for_download.json
++++ b/tests/cassettes/file_for_download.json
+@@ -1 +1,55 @@
+-{"http_interactions": [{"request": {"uri": "https://stxnext.com/static/img/logo.830ebe551641.svg", "body": {"encoding": "utf-8", "string": ""}, "method": "GET", "headers": {"User-Agent": ["python-requests/2.2.1 CPython/3.5.2 Darwin/17.3.0"], "Accept-Encoding": ["gzip, deflate, compress"], "Accept": ["*/*"]}}, "recorded_at": "2018-01-04T23:00:12", "response": {"url": "https://stxnext.com/static/img/logo.830ebe551641.svg", "status": {"message": "OK", "code": 200}, "body": {"encoding": null, "string": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"-16169 -10492.84 144.98 39.947\"><defs><style>.a{fill:url(#a);}</style><linearGradient id=\"a\" x2=\"1\" y2=\"1\" gradientUnits=\"objectBoundingBox\"><stop offset=\"0\" stop-color=\"#15c9c2\"/><stop offset=\"1\" stop-color=\"#39769b\"/></linearGradient></defs><path class=\"a\" d=\"M88.841,54.948V48.514a3.665,3.665,0,0,1,1.541-.336,2.169,2.169,0,0,1,2.266,2.435A2.182,2.182,0,0,1,90.435,53.1a2.9,2.9,0,0,1-.85-.125v1.974Zm.744-6.019v3.46a2.558,2.558,0,0,0,.8.125c1,0,1.523-.807,1.523-1.9s-.525-1.84-1.506-1.84h-.041A1.986,1.986,0,0,0,89.585,48.929ZM62.838,54.948l.717-1.9-1.788-4.769h.805l1.187,3.472a5.008,5.008,0,0,1,.167.682h.019a5.01,5.01,0,0,1,.167-.682l1.177-3.472h.815l-2.5,6.672Zm-5.749,0V48.514a3.669,3.669,0,0,1,1.541-.336A2.169,2.169,0,0,1,60.9,50.613,2.185,2.185,0,0,1,58.683,53.1a2.9,2.9,0,0,1-.85-.125v1.974Zm.74-6.019v3.46a2.558,2.558,0,0,0,.8.125c1,0,1.523-.807,1.523-1.9s-.529-1.84-1.513-1.84H58.6A1.986,1.986,0,0,0,57.829,48.929Zm79.213,4.213a2.19,2.19,0,0,1-2.282-2.487c0-1.462.788-2.478,2.08-2.478a1.825,1.825,0,0,1,1.9,2.044c0,.1,0,.205-.008.318l-3.257.469a1.5,1.5,0,0,0,1.6,1.532,2.886,2.886,0,0,0,1.3-.292l.23.557a3.431,3.431,0,0,1-1.484.336ZM135.432,50.5l2.6-.366c-.011-.944-.488-1.386-1.2-1.386C135.989,48.744,135.45,49.416,135.432,50.5ZM130.4,52.8l.265-.567a2.665,2.665,0,0,0,1.143.3c.611,0,1.018-.3,1.018-.77,0-.5-.407-.7-.965-.9-.673-.248-1.336-.549-1.336-1.408,0-.744.575-1.279,1.585-1.279a2.6,2.6,0,0,1,1.327.336l-.257.523a2.054,2.054,0,0,0-1-.283c-.576,0-.9.309-.9.707,0,.5.388.682.913.875.708.265,1.4.549,1.4,1.434.006.823-.649,1.372-1.772,1.372A3.261,3.261,0,0,1,130.4,52.8Zm-3.008.34c-1.187,0-1.841-.523-1.841-1.672V48.276h.744v3.2c0,.707.366,1.043,1.1,1.043a2.914,2.914,0,0,0,1.008-.158V48.276h.73V52.8a4.263,4.263,0,0,1-1.664.34Zm-7.256-2.487c0-1.417.708-2.478,2.028-2.478s2.026,1.061,2.026,2.478-.709,2.487-2.026,2.487S120.14,52.071,120.14,50.655Zm.735-.007c0,1.1.424,1.884,1.292,1.884s1.291-.788,1.291-1.884-.425-1.866-1.291-1.866v0C121.3,48.779,120.875,49.549,120.875,50.648Zm-12.187,2.494a2.19,2.19,0,0,1-2.282-2.487c0-1.462.788-2.478,2.08-2.478a1.825,1.825,0,0,1,1.9,2.044c0,.1,0,.205-.009.318l-3.256.469a1.494,1.494,0,0,0,1.6,1.532,2.886,2.886,0,0,0,1.3-.292l.23.557a3.431,3.431,0,0,1-1.484.336ZM107.079,50.5l2.6-.366c-.01-.944-.488-1.386-1.2-1.386C107.636,48.744,107.1,49.416,107.079,50.5Zm-13.249.159c0-1.417.708-2.478,2.028-2.478s2.026,1.061,2.026,2.478-.707,2.487-2.026,2.487S93.83,52.071,93.83,50.655Zm.735-.007c0,1.1.424,1.884,1.292,1.884s1.291-.788,1.291-1.884-.424-1.866-1.291-1.866v0C94.989,48.779,94.565,49.549,94.565,50.648Zm-18.973.007c0-1.417.708-2.478,2.028-2.478s2.032,1.061,2.032,2.478-.715,2.487-2.032,2.487S75.592,52.071,75.592,50.655Zm.735-.007c0,1.1.424,1.884,1.292,1.884s1.292-.788,1.292-1.884-.426-1.866-1.292-1.866v0C76.752,48.779,76.328,49.549,76.328,50.648ZM68.85,53.1a1.149,1.149,0,0,1-1.257-1.292V48.833H66.9v-.557h.688V47.123l.716-.239v1.389h1.027v.557H68.306v2.939a.634.634,0,0,0,.716.673,1.006,1.006,0,0,0,.309-.044v.619a1.308,1.308,0,0,1-.453.081Zm15.078-.053V49.823c0-.638-.39-1.044-1.158-1.044a2.968,2.968,0,0,0-1.018.169v4.1h-.745V48.513a4.5,4.5,0,0,1,1.753-.336c1.257,0,1.9.584,1.9,1.585v3.289Zm34.114-3.212c0-.7-.461-1.037-1.187-1.037a2.036,2.036,0,0,0-.989.265v3.983h-.744V46.1h.744v2.376A2.616,2.616,0,0,1,117,48.191c1.1,0,1.778.557,1.778,1.585v3.265l-.734,0Zm-6.285,3.212V48.513a4.493,4.493,0,0,1,1.743-.336,3.273,3.273,0,0,1,.47.034l-.143.621a2.031,2.031,0,0,0-.424-.034,2.461,2.461,0,0,0-.9.15v4.1Zm-8.485,0-.974-3.327a5.884,5.884,0,0,1-.14-.654h-.019s-.062.354-.15.654l-.974,3.327h-.753l-1.45-4.769h.744l.93,3.371a7.42,7.42,0,0,1,.15.732h.019s.07-.407.158-.732l.974-3.371h.709l.966,3.371c.088.318.167.732.167.732h.019a6.418,6.418,0,0,1,.143-.732l.947-3.371h.731l-1.442,4.769ZM73.5,49.833c0-.7-.461-1.037-1.187-1.037a2.044,2.044,0,0,0-.991.265v3.983h-.744V46.1h.744v2.376a2.612,2.612,0,0,1,1.133-.283c1.1,0,1.778.557,1.778,1.585v3.265l-.734,0Zm-27.141-6,8.837-14.534L46.91,15.475h7.926l7.925,13.819L54.32,43.828Zm-15.478,0V21.688H23.911V15.474H44.819v6.213H37.846V43.828ZM0,40.086l4.455-4.463c1.473,1.473,4.064,1.99,6.331,1.99,2.741,0,4.062-.913,4.062-2.548a2.4,2.4,0,0,0-.548-1.671,3.133,3.133,0,0,0-1.872-.757L9,32.158A9.631,9.631,0,0,1,3.31,29.651a7.847,7.847,0,0,1-1.953-5.7C1.358,18.778,5.26,15,11.712,15c4.06,0,7.127.956,9.558,3.385l-4.387,4.385C15.092,20.98,12.742,21.1,11.506,21.1c-2.429,0-3.424,1.394-3.424,2.63a1.868,1.868,0,0,0,.557,1.315,3.179,3.179,0,0,0,1.952.836l3.426.48a9.569,9.569,0,0,1,5.576,2.348c1.513,1.473,2.111,3.584,2.111,6.213,0,5.761-4.982,8.907-10.95,8.907C6.412,43.828,2.866,43.031,0,40.086Zm111.6,3.73,6.958-11.665-6.518-11.076h2.81l5.048,8.975,5.046-8.975h2.812L121.2,32.15l7.027,11.658-2.812.006L119.9,34.265l-5.558,9.55Zm24.376,0V23.245h-6.579V21.074h15.588v2.171H138.4V43.814ZM95.878,21.074H109.99v2.173h-11.7v8.018h9.966v2.165H98.3v8.21H110v2.173l-14.123,0ZM90.192,43.814,78.12,25.571V43.808H75.692V21.074h2.3L90.069,39.247V21.074H92.5V43.814ZM63.528,43.8l-2.683-5.029,3.7-6.344,6.611,11.379Zm-2.7-24.291,2.094-4.046h7.919L64.668,26.125Z\" transform=\"translate(-16169 -10507.84)\"/></svg>"}, "headers": {"date": ["Thu, 04 Jan 2018 23:00:15 GMT"], "strict-transport-security": ["max-age=0; includeSubdomains; preload"], "last-modified": ["Wed, 22 Nov 2017 09:22:00 GMT"], "content-type": ["image/svg+xml"], "content-length": ["5177"]}}}], "recorded_with": "betamax/0.8.0"}
+\ No newline at end of file
++{
++  "http_interactions": [
++    {
++      "recorded_at": "2018-01-04T23:00:12",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate, compress"
++          ],
++          "User-Agent": [
++            "python-requests/2.2.1 CPython/3.5.2 Darwin/17.3.0"
++          ]
++        },
++        "method": "GET",
++        "uri": "https://stxnext.com/static/img/logo.830ebe551641.svg"
++      },
++      "response": {
++        "body": {
++          "encoding": null,
++          "string": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"-16169 -10492.84 144.98 39.947\"><defs><style>.a{fill:url(#a);}</style><linearGradient id=\"a\" x2=\"1\" y2=\"1\" gradientUnits=\"objectBoundingBox\"><stop offset=\"0\" stop-color=\"#15c9c2\"/><stop offset=\"1\" stop-color=\"#39769b\"/></linearGradient></defs><path class=\"a\" d=\"M88.841,54.948V48.514a3.665,3.665,0,0,1,1.541-.336,2.169,2.169,0,0,1,2.266,2.435A2.182,2.182,0,0,1,90.435,53.1a2.9,2.9,0,0,1-.85-.125v1.974Zm.744-6.019v3.46a2.558,2.558,0,0,0,.8.125c1,0,1.523-.807,1.523-1.9s-.525-1.84-1.506-1.84h-.041A1.986,1.986,0,0,0,89.585,48.929ZM62.838,54.948l.717-1.9-1.788-4.769h.805l1.187,3.472a5.008,5.008,0,0,1,.167.682h.019a5.01,5.01,0,0,1,.167-.682l1.177-3.472h.815l-2.5,6.672Zm-5.749,0V48.514a3.669,3.669,0,0,1,1.541-.336A2.169,2.169,0,0,1,60.9,50.613,2.185,2.185,0,0,1,58.683,53.1a2.9,2.9,0,0,1-.85-.125v1.974Zm.74-6.019v3.46a2.558,2.558,0,0,0,.8.125c1,0,1.523-.807,1.523-1.9s-.529-1.84-1.513-1.84H58.6A1.986,1.986,0,0,0,57.829,48.929Zm79.213,4.213a2.19,2.19,0,0,1-2.282-2.487c0-1.462.788-2.478,2.08-2.478a1.825,1.825,0,0,1,1.9,2.044c0,.1,0,.205-.008.318l-3.257.469a1.5,1.5,0,0,0,1.6,1.532,2.886,2.886,0,0,0,1.3-.292l.23.557a3.431,3.431,0,0,1-1.484.336ZM135.432,50.5l2.6-.366c-.011-.944-.488-1.386-1.2-1.386C135.989,48.744,135.45,49.416,135.432,50.5ZM130.4,52.8l.265-.567a2.665,2.665,0,0,0,1.143.3c.611,0,1.018-.3,1.018-.77,0-.5-.407-.7-.965-.9-.673-.248-1.336-.549-1.336-1.408,0-.744.575-1.279,1.585-1.279a2.6,2.6,0,0,1,1.327.336l-.257.523a2.054,2.054,0,0,0-1-.283c-.576,0-.9.309-.9.707,0,.5.388.682.913.875.708.265,1.4.549,1.4,1.434.006.823-.649,1.372-1.772,1.372A3.261,3.261,0,0,1,130.4,52.8Zm-3.008.34c-1.187,0-1.841-.523-1.841-1.672V48.276h.744v3.2c0,.707.366,1.043,1.1,1.043a2.914,2.914,0,0,0,1.008-.158V48.276h.73V52.8a4.263,4.263,0,0,1-1.664.34Zm-7.256-2.487c0-1.417.708-2.478,2.028-2.478s2.026,1.061,2.026,2.478-.709,2.487-2.026,2.487S120.14,52.071,120.14,50.655Zm.735-.007c0,1.1.424,1.884,1.292,1.884s1.291-.788,1.291-1.884-.425-1.866-1.291-1.866v0C121.3,48.779,120.875,49.549,120.875,50.648Zm-12.187,2.494a2.19,2.19,0,0,1-2.282-2.487c0-1.462.788-2.478,2.08-2.478a1.825,1.825,0,0,1,1.9,2.044c0,.1,0,.205-.009.318l-3.256.469a1.494,1.494,0,0,0,1.6,1.532,2.886,2.886,0,0,0,1.3-.292l.23.557a3.431,3.431,0,0,1-1.484.336ZM107.079,50.5l2.6-.366c-.01-.944-.488-1.386-1.2-1.386C107.636,48.744,107.1,49.416,107.079,50.5Zm-13.249.159c0-1.417.708-2.478,2.028-2.478s2.026,1.061,2.026,2.478-.707,2.487-2.026,2.487S93.83,52.071,93.83,50.655Zm.735-.007c0,1.1.424,1.884,1.292,1.884s1.291-.788,1.291-1.884-.424-1.866-1.291-1.866v0C94.989,48.779,94.565,49.549,94.565,50.648Zm-18.973.007c0-1.417.708-2.478,2.028-2.478s2.032,1.061,2.032,2.478-.715,2.487-2.032,2.487S75.592,52.071,75.592,50.655Zm.735-.007c0,1.1.424,1.884,1.292,1.884s1.292-.788,1.292-1.884-.426-1.866-1.292-1.866v0C76.752,48.779,76.328,49.549,76.328,50.648ZM68.85,53.1a1.149,1.149,0,0,1-1.257-1.292V48.833H66.9v-.557h.688V47.123l.716-.239v1.389h1.027v.557H68.306v2.939a.634.634,0,0,0,.716.673,1.006,1.006,0,0,0,.309-.044v.619a1.308,1.308,0,0,1-.453.081Zm15.078-.053V49.823c0-.638-.39-1.044-1.158-1.044a2.968,2.968,0,0,0-1.018.169v4.1h-.745V48.513a4.5,4.5,0,0,1,1.753-.336c1.257,0,1.9.584,1.9,1.585v3.289Zm34.114-3.212c0-.7-.461-1.037-1.187-1.037a2.036,2.036,0,0,0-.989.265v3.983h-.744V46.1h.744v2.376A2.616,2.616,0,0,1,117,48.191c1.1,0,1.778.557,1.778,1.585v3.265l-.734,0Zm-6.285,3.212V48.513a4.493,4.493,0,0,1,1.743-.336,3.273,3.273,0,0,1,.47.034l-.143.621a2.031,2.031,0,0,0-.424-.034,2.461,2.461,0,0,0-.9.15v4.1Zm-8.485,0-.974-3.327a5.884,5.884,0,0,1-.14-.654h-.019s-.062.354-.15.654l-.974,3.327h-.753l-1.45-4.769h.744l.93,3.371a7.42,7.42,0,0,1,.15.732h.019s.07-.407.158-.732l.974-3.371h.709l.966,3.371c.088.318.167.732.167.732h.019a6.418,6.418,0,0,1,.143-.732l.947-3.371h.731l-1.442,4.769ZM73.5,49.833c0-.7-.461-1.037-1.187-1.037a2.044,2.044,0,0,0-.991.265v3.983h-.744V46.1h.744v2.376a2.612,2.612,0,0,1,1.133-.283c1.1,0,1.778.557,1.778,1.585v3.265l-.734,0Zm-27.141-6,8.837-14.534L46.91,15.475h7.926l7.925,13.819L54.32,43.828Zm-15.478,0V21.688H23.911V15.474H44.819v6.213H37.846V43.828ZM0,40.086l4.455-4.463c1.473,1.473,4.064,1.99,6.331,1.99,2.741,0,4.062-.913,4.062-2.548a2.4,2.4,0,0,0-.548-1.671,3.133,3.133,0,0,0-1.872-.757L9,32.158A9.631,9.631,0,0,1,3.31,29.651a7.847,7.847,0,0,1-1.953-5.7C1.358,18.778,5.26,15,11.712,15c4.06,0,7.127.956,9.558,3.385l-4.387,4.385C15.092,20.98,12.742,21.1,11.506,21.1c-2.429,0-3.424,1.394-3.424,2.63a1.868,1.868,0,0,0,.557,1.315,3.179,3.179,0,0,0,1.952.836l3.426.48a9.569,9.569,0,0,1,5.576,2.348c1.513,1.473,2.111,3.584,2.111,6.213,0,5.761-4.982,8.907-10.95,8.907C6.412,43.828,2.866,43.031,0,40.086Zm111.6,3.73,6.958-11.665-6.518-11.076h2.81l5.048,8.975,5.046-8.975h2.812L121.2,32.15l7.027,11.658-2.812.006L119.9,34.265l-5.558,9.55Zm24.376,0V23.245h-6.579V21.074h15.588v2.171H138.4V43.814ZM95.878,21.074H109.99v2.173h-11.7v8.018h9.966v2.165H98.3v8.21H110v2.173l-14.123,0ZM90.192,43.814,78.12,25.571V43.808H75.692V21.074h2.3L90.069,39.247V21.074H92.5V43.814ZM63.528,43.8l-2.683-5.029,3.7-6.344,6.611,11.379Zm-2.7-24.291,2.094-4.046h7.919L64.668,26.125Z\" transform=\"translate(-16169 -10507.84)\"/></svg>"
++        },
++        "headers": {
++          "content-length": [
++            "5177"
++          ],
++          "content-type": [
++            "image/svg+xml"
++          ],
++          "date": [
++            "Thu, 04 Jan 2018 23:00:15 GMT"
++          ],
++          "last-modified": [
++            "Wed, 22 Nov 2017 09:22:00 GMT"
++          ],
++          "strict-transport-security": [
++            "max-age=0; includeSubdomains; preload"
++          ]
++        },
++        "status": {
++          "code": 200,
++          "message": "OK"
++        },
++        "url": "https://stxnext.com/static/img/logo.830ebe551641.svg"
++      }
++    }
++  ],
++  "recorded_with": "betamax/0.8.0"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/http2bin_cookies.json b/tests/cassettes/http2bin_cookies.json
+index a8368ed..3d907da 100644
+--- a/tests/cassettes/http2bin_cookies.json
++++ b/tests/cassettes/http2bin_cookies.json
+@@ -1 +1,132 @@
+-{"recorded_with": "betamax/0.5.1", "http_interactions": [{"response": {"status": {"code": 302, "message": "FOUND"}, "body": {"string": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title>Redirecting...</title>\n<h1>Redirecting...</h1>\n<p>You should be redirected automatically to target URL: <a href=\"/cookies\">/cookies</a>.  If not click the link.", "encoding": "utf-8"}, "url": "https://httpbin.org/cookies/set?cookie0=value0", "headers": {"Location": ["/cookies"], "Content-Length": ["223"], "Date": ["Fri, 13 Nov 2015 00:23:20 GMT"], "Access-Control-Allow-Credentials": ["true"], "Access-Control-Allow-Origin": ["*"], "Connection": ["keep-alive"], "Server": ["nginx"], "Set-Cookie": ["cookie0=value0; Path=/"], "Content-Type": ["text/html; charset=utf-8"]}}, "recorded_at": "2015-11-13T00:23:19", "request": {"uri": "https://httpbin.org/cookies/set?cookie0=value0", "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Connection": ["keep-alive"], "User-Agent": ["python-requests/2.8.1"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"]}}}, {"response": {"status": {"code": 200, "message": "OK"}, "body": {"string": "{\n  \"cookies\": {\n    \"cookie0\": \"value0\"\n  }\n}\n", "encoding": null}, "url": "https://httpbin.org/cookies", "headers": {"Access-Control-Allow-Credentials": ["true"], "Content-Length": ["47"], "Date": ["Fri, 13 Nov 2015 00:23:20 GMT"], "Content-Type": ["application/json"], "Connection": ["keep-alive"], "Server": ["nginx"], "Access-Control-Allow-Origin": ["*"]}}, "recorded_at": "2015-11-13T00:23:19", "request": {"uri": "https://httpbin.org/cookies", "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Connection": ["keep-alive"], "User-Agent": ["python-requests/2.8.1"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"], "Cookie": ["cookie0=value0"]}}}]}
+\ No newline at end of file
++{
++  "http_interactions": [
++    {
++      "recorded_at": "2015-11-13T00:23:19",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "User-Agent": [
++            "python-requests/2.8.1"
++          ]
++        },
++        "method": "GET",
++        "uri": "https://httpbin.org/cookies/set?cookie0=value0"
++      },
++      "response": {
++        "body": {
++          "encoding": "utf-8",
++          "string": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title>Redirecting...</title>\n<h1>Redirecting...</h1>\n<p>You should be redirected automatically to target URL: <a href=\"/cookies\">/cookies</a>.  If not click the link."
++        },
++        "headers": {
++          "Access-Control-Allow-Credentials": [
++            "true"
++          ],
++          "Access-Control-Allow-Origin": [
++            "*"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "Content-Length": [
++            "223"
++          ],
++          "Content-Type": [
++            "text/html; charset=utf-8"
++          ],
++          "Date": [
++            "Fri, 13 Nov 2015 00:23:20 GMT"
++          ],
++          "Location": [
++            "/cookies"
++          ],
++          "Server": [
++            "nginx"
++          ],
++          "Set-Cookie": [
++            "cookie0=value0; Path=/"
++          ]
++        },
++        "status": {
++          "code": 302,
++          "message": "FOUND"
++        },
++        "url": "https://httpbin.org/cookies/set?cookie0=value0"
++      }
++    },
++    {
++      "recorded_at": "2015-11-13T00:23:19",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "Cookie": [
++            "cookie0=value0"
++          ],
++          "User-Agent": [
++            "python-requests/2.8.1"
++          ]
++        },
++        "method": "GET",
++        "uri": "https://httpbin.org/cookies"
++      },
++      "response": {
++        "body": {
++          "encoding": null,
++          "string": "{\n  \"cookies\": {\n    \"cookie0\": \"value0\"\n  }\n}\n"
++        },
++        "headers": {
++          "Access-Control-Allow-Credentials": [
++            "true"
++          ],
++          "Access-Control-Allow-Origin": [
++            "*"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "Content-Length": [
++            "47"
++          ],
++          "Content-Type": [
++            "application/json"
++          ],
++          "Date": [
++            "Fri, 13 Nov 2015 00:23:20 GMT"
++          ],
++          "Server": [
++            "nginx"
++          ]
++        },
++        "status": {
++          "code": 200,
++          "message": "OK"
++        },
++        "url": "https://httpbin.org/cookies"
++      }
++    }
++  ],
++  "recorded_with": "betamax/0.5.1"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/http2bin_fingerprint.json b/tests/cassettes/http2bin_fingerprint.json
+index fd2fd35..75eb143 100644
+--- a/tests/cassettes/http2bin_fingerprint.json
++++ b/tests/cassettes/http2bin_fingerprint.json
+@@ -1 +1,64 @@
+-{"recorded_with": "betamax/0.4.1", "http_interactions": [{"response": {"status": {"message": "OK", "code": 200}, "body": {"string": "{\n  \"args\": {}, \n  \"headers\": {\n    \"Accept\": \"*/*\", \n    \"Accept-Encoding\": \"gzip, deflate\", \n    \"Connection\": \"keep-alive\", \n    \"Host\": \"http2bin.org\", \n    \"User-Agent\": \"python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0\"\n  }, \n  \"origin\": \"77.99.146.203\", \n  \"url\": \"https://http2bin.org/get\"\n}\n", "encoding": null}, "headers": {"access-control-allow-origin": ["*"], "date": ["Tue, 03 Mar 2015 21:29:55 GMT"], "server": ["h2o/1.0.2-alpha1"], "content-length": ["301"], "access-control-allow-credentials": ["true"], "connection": ["keep-alive"], "content-type": ["application/json"]}, "url": "https://http2bin.org/get"}, "recorded_at": "2015-03-03T21:29:55", "request": {"method": "GET", "uri": "https://http2bin.org/get", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Accept-Encoding": ["gzip, deflate"], "Connection": ["keep-alive"], "User-Agent": ["python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"]}}}]}
+\ No newline at end of file
++{
++  "http_interactions": [
++    {
++      "recorded_at": "2015-03-03T21:29:55",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "User-Agent": [
++            "python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"
++          ]
++        },
++        "method": "GET",
++        "uri": "https://http2bin.org/get"
++      },
++      "response": {
++        "body": {
++          "encoding": null,
++          "string": "{\n  \"args\": {}, \n  \"headers\": {\n    \"Accept\": \"*/*\", \n    \"Accept-Encoding\": \"gzip, deflate\", \n    \"Connection\": \"keep-alive\", \n    \"Host\": \"http2bin.org\", \n    \"User-Agent\": \"python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0\"\n  }, \n  \"origin\": \"77.99.146.203\", \n  \"url\": \"https://http2bin.org/get\"\n}\n"
++        },
++        "headers": {
++          "access-control-allow-credentials": [
++            "true"
++          ],
++          "access-control-allow-origin": [
++            "*"
++          ],
++          "connection": [
++            "keep-alive"
++          ],
++          "content-length": [
++            "301"
++          ],
++          "content-type": [
++            "application/json"
++          ],
++          "date": [
++            "Tue, 03 Mar 2015 21:29:55 GMT"
++          ],
++          "server": [
++            "h2o/1.0.2-alpha1"
++          ]
++        },
++        "status": {
++          "code": 200,
++          "message": "OK"
++        },
++        "url": "https://http2bin.org/get"
++      }
++    }
++  ],
++  "recorded_with": "betamax/0.4.1"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/httpbin_guess_auth_basic.json b/tests/cassettes/httpbin_guess_auth_basic.json
+index db72722..2daca54 100644
+--- a/tests/cassettes/httpbin_guess_auth_basic.json
++++ b/tests/cassettes/httpbin_guess_auth_basic.json
+@@ -1 +1,114 @@
+-{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept-Encoding": ["gzip, deflate, compress"], "Accept": ["*/*"], "User-Agent": ["python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"]}, "method": "GET", "uri": "http://httpbin.org/basic-auth/user/passwd"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"content-length": ["0"], "server": ["gunicorn/0.17.4"], "connection": ["keep-alive"], "date": ["Sat, 03 May 2014 17:23:06 GMT"], "access-control-allow-origin": ["*"], "www-authenticate": ["Basic realm=\"Fake Realm\""]}, "status": {"message": "UNAUTHORIZED", "code": 401}, "url": "http://httpbin.org/basic-auth/user/passwd"}, "recorded_at": "2014-05-03T17:23:06"}, {"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Accept-Encoding": ["gzip, deflate, compress"], "Authorization": ["Basic dXNlcjpwYXNzd2Q="], "User-Agent": ["python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"]}, "method": "GET", "uri": "http://httpbin.org/basic-auth/user/passwd"}, "response": {"body": {"string": "{\n  \"user\": \"user\",\n  \"authenticated\": true\n}", "encoding": null}, "headers": {"content-length": ["45"], "server": ["gunicorn/0.17.4"], "connection": ["keep-alive"], "date": ["Sat, 03 May 2014 17:23:06 GMT"], "access-control-allow-origin": ["*"], "content-type": ["application/json"]}, "status": {"message": "OK", "code": 200}, "url": "http://httpbin.org/basic-auth/user/passwd"}, "recorded_at": "2014-05-03T17:23:06"}], "recorded_with": "betamax/{version}"}
+\ No newline at end of file
++{
++  "http_interactions": [
++    {
++      "recorded_at": "2014-05-03T17:23:06",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate, compress"
++          ],
++          "User-Agent": [
++            "python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"
++          ]
++        },
++        "method": "GET",
++        "uri": "http://httpbin.org/basic-auth/user/passwd"
++      },
++      "response": {
++        "body": {
++          "encoding": null,
++          "string": ""
++        },
++        "headers": {
++          "access-control-allow-origin": [
++            "*"
++          ],
++          "connection": [
++            "keep-alive"
++          ],
++          "content-length": [
++            "0"
++          ],
++          "date": [
++            "Sat, 03 May 2014 17:23:06 GMT"
++          ],
++          "server": [
++            "gunicorn/0.17.4"
++          ],
++          "www-authenticate": [
++            "Basic realm=\"Fake Realm\""
++          ]
++        },
++        "status": {
++          "code": 401,
++          "message": "UNAUTHORIZED"
++        },
++        "url": "http://httpbin.org/basic-auth/user/passwd"
++      }
++    },
++    {
++      "recorded_at": "2014-05-03T17:23:06",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate, compress"
++          ],
++          "Authorization": [
++            "Basic dXNlcjpwYXNzd2Q="
++          ],
++          "User-Agent": [
++            "python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"
++          ]
++        },
++        "method": "GET",
++        "uri": "http://httpbin.org/basic-auth/user/passwd"
++      },
++      "response": {
++        "body": {
++          "encoding": null,
++          "string": "{\n  \"user\": \"user\",\n  \"authenticated\": true\n}"
++        },
++        "headers": {
++          "access-control-allow-origin": [
++            "*"
++          ],
++          "connection": [
++            "keep-alive"
++          ],
++          "content-length": [
++            "45"
++          ],
++          "content-type": [
++            "application/json"
++          ],
++          "date": [
++            "Sat, 03 May 2014 17:23:06 GMT"
++          ],
++          "server": [
++            "gunicorn/0.17.4"
++          ]
++        },
++        "status": {
++          "code": 200,
++          "message": "OK"
++        },
++        "url": "http://httpbin.org/basic-auth/user/passwd"
++      }
++    }
++  ],
++  "recorded_with": "betamax/{version}"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/httpbin_guess_auth_digest.json b/tests/cassettes/httpbin_guess_auth_digest.json
+index 94cf3a3..3b46fac 100644
+--- a/tests/cassettes/httpbin_guess_auth_digest.json
++++ b/tests/cassettes/httpbin_guess_auth_digest.json
+@@ -1 +1,123 @@
+-{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept-Encoding": ["gzip, deflate, compress"], "Accept": ["*/*"], "User-Agent": ["python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"]}, "method": "GET", "uri": "http://httpbin.org/digest-auth/auth/user/passwd"}, "response": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"content-length": ["0"], "set-cookie": ["fake=fake_value"], "server": ["gunicorn/0.17.4"], "connection": ["keep-alive"], "date": ["Sat, 03 May 2014 17:23:07 GMT"], "access-control-allow-origin": ["*"], "content-type": ["text/html; charset=utf-8"], "www-authenticate": ["Digest qop=auth, nonce=\"713b4eb6d0ad0ac25d75b50c4d044d5e\", realm=\"me@kennethreitz.com\", opaque=\"d0033bc1960ca78a2fc4497c1e8a8cbd\""]}, "status": {"message": "UNAUTHORIZED", "code": 401}, "url": "http://httpbin.org/digest-auth/auth/user/passwd"}, "recorded_at": "2014-05-03T17:23:07"}, {"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Cookie": ["fake=fake_value"], "Accept-Encoding": ["gzip, deflate, compress"], "Authorization": ["Digest username=\"user\", realm=\"me@kennethreitz.com\", nonce=\"713b4eb6d0ad0ac25d75b50c4d044d5e\", uri=\"/digest-auth/auth/user/passwd\", response=\"30276b25ef0031e65e3bccc719031388\", opaque=\"d0033bc1960ca78a2fc4497c1e8a8cbd\", qop=\"auth\", nc=00000001, cnonce=\"e94e00be64d66bcb\""], "User-Agent": ["python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"]}, "method": "GET", "uri": "http://httpbin.org/digest-auth/auth/user/passwd"}, "response": {"body": {"string": "{\n  \"user\": \"user\",\n  \"authenticated\": true\n}", "encoding": null}, "headers": {"content-length": ["45"], "server": ["gunicorn/0.17.4"], "connection": ["keep-alive"], "date": ["Sat, 03 May 2014 17:23:07 GMT"], "access-control-allow-origin": ["*"], "content-type": ["application/json"]}, "status": {"message": "OK", "code": 200}, "url": "http://httpbin.org/digest-auth/auth/user/passwd"}, "recorded_at": "2014-05-03T17:23:07"}], "recorded_with": "betamax/{version}"}
+\ No newline at end of file
++{
++  "http_interactions": [
++    {
++      "recorded_at": "2014-05-03T17:23:07",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate, compress"
++          ],
++          "User-Agent": [
++            "python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"
++          ]
++        },
++        "method": "GET",
++        "uri": "http://httpbin.org/digest-auth/auth/user/passwd"
++      },
++      "response": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "access-control-allow-origin": [
++            "*"
++          ],
++          "connection": [
++            "keep-alive"
++          ],
++          "content-length": [
++            "0"
++          ],
++          "content-type": [
++            "text/html; charset=utf-8"
++          ],
++          "date": [
++            "Sat, 03 May 2014 17:23:07 GMT"
++          ],
++          "server": [
++            "gunicorn/0.17.4"
++          ],
++          "set-cookie": [
++            "fake=fake_value"
++          ],
++          "www-authenticate": [
++            "Digest qop=auth, nonce=\"713b4eb6d0ad0ac25d75b50c4d044d5e\", realm=\"me@kennethreitz.com\", opaque=\"d0033bc1960ca78a2fc4497c1e8a8cbd\""
++          ]
++        },
++        "status": {
++          "code": 401,
++          "message": "UNAUTHORIZED"
++        },
++        "url": "http://httpbin.org/digest-auth/auth/user/passwd"
++      }
++    },
++    {
++      "recorded_at": "2014-05-03T17:23:07",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate, compress"
++          ],
++          "Authorization": [
++            "Digest username=\"user\", realm=\"me@kennethreitz.com\", nonce=\"713b4eb6d0ad0ac25d75b50c4d044d5e\", uri=\"/digest-auth/auth/user/passwd\", response=\"30276b25ef0031e65e3bccc719031388\", opaque=\"d0033bc1960ca78a2fc4497c1e8a8cbd\", qop=\"auth\", nc=00000001, cnonce=\"e94e00be64d66bcb\""
++          ],
++          "Cookie": [
++            "fake=fake_value"
++          ],
++          "User-Agent": [
++            "python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"
++          ]
++        },
++        "method": "GET",
++        "uri": "http://httpbin.org/digest-auth/auth/user/passwd"
++      },
++      "response": {
++        "body": {
++          "encoding": null,
++          "string": "{\n  \"user\": \"user\",\n  \"authenticated\": true\n}"
++        },
++        "headers": {
++          "access-control-allow-origin": [
++            "*"
++          ],
++          "connection": [
++            "keep-alive"
++          ],
++          "content-length": [
++            "45"
++          ],
++          "content-type": [
++            "application/json"
++          ],
++          "date": [
++            "Sat, 03 May 2014 17:23:07 GMT"
++          ],
++          "server": [
++            "gunicorn/0.17.4"
++          ]
++        },
++        "status": {
++          "code": 200,
++          "message": "OK"
++        },
++        "url": "http://httpbin.org/digest-auth/auth/user/passwd"
++      }
++    }
++  ],
++  "recorded_with": "betamax/{version}"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/httpbin_guess_auth_none.json b/tests/cassettes/httpbin_guess_auth_none.json
+index 2ebbb0f..4ddfbc5 100644
+--- a/tests/cassettes/httpbin_guess_auth_none.json
++++ b/tests/cassettes/httpbin_guess_auth_none.json
+@@ -1 +1,58 @@
+-{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept-Encoding": ["gzip, deflate, compress"], "Accept": ["*/*"], "User-Agent": ["python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"]}, "method": "GET", "uri": "http://httpbin.org/get?a=1"}, "response": {"body": {"string": "{\n  \"args\": {\n    \"a\": \"1\"\n  },\n  \"url\": \"http://httpbin.org/get?a=1\",\n  \"headers\": {\n    \"Connection\": \"close\",\n    \"Host\": \"httpbin.org\",\n    \"Accept-Encoding\": \"gzip, deflate, compress\",\n    \"X-Request-Id\": \"f9f71f12-5705-4a0f-85d4-3d63f9140b1f\",\n    \"User-Agent\": \"python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH\",\n    \"Accept\": \"*/*\"\n  },\n  \"origin\": \"62.47.252.115\"\n}", "encoding": null}, "headers": {"content-length": ["381"], "server": ["gunicorn/0.17.4"], "connection": ["keep-alive"], "date": ["Sat, 03 May 2014 17:23:07 GMT"], "access-control-allow-origin": ["*"], "content-type": ["application/json"]}, "status": {"message": "OK", "code": 200}, "url": "http://httpbin.org/get?a=1"}, "recorded_at": "2014-05-03T17:23:07"}], "recorded_with": "betamax/{version}"}
+\ No newline at end of file
++{
++  "http_interactions": [
++    {
++      "recorded_at": "2014-05-03T17:23:07",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate, compress"
++          ],
++          "User-Agent": [
++            "python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"
++          ]
++        },
++        "method": "GET",
++        "uri": "http://httpbin.org/get?a=1"
++      },
++      "response": {
++        "body": {
++          "encoding": null,
++          "string": "{\n  \"args\": {\n    \"a\": \"1\"\n  },\n  \"url\": \"http://httpbin.org/get?a=1\",\n  \"headers\": {\n    \"Connection\": \"close\",\n    \"Host\": \"httpbin.org\",\n    \"Accept-Encoding\": \"gzip, deflate, compress\",\n    \"X-Request-Id\": \"f9f71f12-5705-4a0f-85d4-3d63f9140b1f\",\n    \"User-Agent\": \"python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH\",\n    \"Accept\": \"*/*\"\n  },\n  \"origin\": \"62.47.252.115\"\n}"
++        },
++        "headers": {
++          "access-control-allow-origin": [
++            "*"
++          ],
++          "connection": [
++            "keep-alive"
++          ],
++          "content-length": [
++            "381"
++          ],
++          "content-type": [
++            "application/json"
++          ],
++          "date": [
++            "Sat, 03 May 2014 17:23:07 GMT"
++          ],
++          "server": [
++            "gunicorn/0.17.4"
++          ]
++        },
++        "status": {
++          "code": 200,
++          "message": "OK"
++        },
++        "url": "http://httpbin.org/get?a=1"
++      }
++    }
++  ],
++  "recorded_with": "betamax/{version}"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/klevas_vu_lt_ssl3.json b/tests/cassettes/klevas_vu_lt_ssl3.json
+index 3c667ba..1608e48 100644
+--- a/tests/cassettes/klevas_vu_lt_ssl3.json
++++ b/tests/cassettes/klevas_vu_lt_ssl3.json
+@@ -1 +1,35 @@
+-{"http_interactions": [{"request": {"body": "", "headers": {"Accept-Encoding": "gzip, deflate, compress", "Accept": "*/*", "User-Agent": "python-requests/2.1.0 CPython/2.7.3 Linux/3.2.29"}, "method": "GET", "uri": "https://klevas.vu.lt/"}, "response": {"body": {"string": "<html>\n<title>\nKlevas\n</title>\n<head>\n<script language=\"javascript\" type=\"text/javascript\">\n     <!--\n     window.location=\"https://klevas.vu.lt/pls/klevas/logon\";\n     // -->\n </script>\n</head>\n</html>\n\n", "encoding": "ISO-8859-1"}, "headers": {"content-length": "204", "accept-ranges": "bytes", "server": "Oracle-Application-Server-10g/10.1.3.1.0 Oracle-HTTP-Server", "last-modified": "Wed, 13 Apr 2011 05:00:23 GMT", "etag": "\"7f9b-cc-4da52de7\"", "date": "Sun, 05 Jan 2014 01:35:40 GMT", "content-type": "text/html"}, "url": "https://klevas.vu.lt/", "status_code": 200}, "recorded_at": "2014-01-05T01:34:40"}], "recorded_with": "betamax"}
+\ No newline at end of file
++{
++  "http_interactions": [
++    {
++      "recorded_at": "2014-01-05T01:34:40",
++      "request": {
++        "body": "",
++        "headers": {
++          "Accept": "*/*",
++          "Accept-Encoding": "gzip, deflate, compress",
++          "User-Agent": "python-requests/2.1.0 CPython/2.7.3 Linux/3.2.29"
++        },
++        "method": "GET",
++        "uri": "https://klevas.vu.lt/"
++      },
++      "response": {
++        "body": {
++          "encoding": "ISO-8859-1",
++          "string": "<html>\n<title>\nKlevas\n</title>\n<head>\n<script language=\"javascript\" type=\"text/javascript\">\n     <!--\n     window.location=\"https://klevas.vu.lt/pls/klevas/logon\";\n     // -->\n </script>\n</head>\n</html>\n\n"
++        },
++        "headers": {
++          "accept-ranges": "bytes",
++          "content-length": "204",
++          "content-type": "text/html",
++          "date": "Sun, 05 Jan 2014 01:35:40 GMT",
++          "etag": "\"7f9b-cc-4da52de7\"",
++          "last-modified": "Wed, 13 Apr 2011 05:00:23 GMT",
++          "server": "Oracle-Application-Server-10g/10.1.3.1.0 Oracle-HTTP-Server"
++        },
++        "status_code": 200,
++        "url": "https://klevas.vu.lt/"
++      }
++    }
++  ],
++  "recorded_with": "betamax"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/redirect_request_for_dump_all.json b/tests/cassettes/redirect_request_for_dump_all.json
+index 38b037d..f713ff3 100644
+--- a/tests/cassettes/redirect_request_for_dump_all.json
++++ b/tests/cassettes/redirect_request_for_dump_all.json
+@@ -1 +1,232 @@
+-{"recorded_with": "betamax/0.5.1", "http_interactions": [{"recorded_at": "2015-11-14T22:53:20", "request": {"uri": "https://httpbin.org/redirect/5", "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Connection": "keep-alive", "Accept": "*/*", "User-Agent": "python-requests/2.8.1", "Accept-Encoding": "gzip, deflate"}}, "response": {"url": "https://httpbin.org/redirect/5", "status": {"code": 302, "message": "FOUND"}, "body": {"string": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title>Redirecting...</title>\n<h1>Redirecting...</h1>\n<p>You should be redirected automatically to target URL: <a href=\"/relative-redirect/4\">/relative-redirect/4</a>.  If not click the link.", "encoding": "utf-8"}, "headers": {"Location": "/relative-redirect/4", "Access-Control-Allow-Credentials": "true", "Server": "nginx", "Date": "Sat, 14 Nov 2015 22:53:18 GMT", "Content-Length": "247", "Connection": "keep-alive", "Access-Control-Allow-Origin": "*", "Content-Type": "text/html; charset=utf-8"}}}, {"recorded_at": "2015-11-14T22:53:20", "request": {"uri": "https://httpbin.org/relative-redirect/4", "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Connection": "keep-alive", "Accept": "*/*", "User-Agent": "python-requests/2.8.1", "Accept-Encoding": "gzip, deflate"}}, "response": {"url": "https://httpbin.org/relative-redirect/4", "status": {"code": 302, "message": "FOUND"}, "body": {"string": "", "encoding": "utf-8"}, "headers": {"Location": "/relative-redirect/3", "Access-Control-Allow-Credentials": "true", "Server": "nginx", "Date": "Sat, 14 Nov 2015 22:53:18 GMT", "Content-Length": "0", "Connection": "keep-alive", "Access-Control-Allow-Origin": "*", "Content-Type": "text/html; charset=utf-8"}}}, {"recorded_at": "2015-11-14T22:53:20", "request": {"uri": "https://httpbin.org/relative-redirect/3", "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Connection": "keep-alive", "Accept": "*/*", "User-Agent": "python-requests/2.8.1", "Accept-Encoding": "gzip, deflate"}}, "response": {"url": "https://httpbin.org/relative-redirect/3", "status": {"code": 302, "message": "FOUND"}, "body": {"string": "", "encoding": "utf-8"}, "headers": {"Location": "/relative-redirect/2", "Access-Control-Allow-Credentials": "true", "Server": "nginx", "Date": "Sat, 14 Nov 2015 22:53:18 GMT", "Content-Length": "0", "Connection": "keep-alive", "Access-Control-Allow-Origin": "*", "Content-Type": "text/html; charset=utf-8"}}}, {"recorded_at": "2015-11-14T22:53:20", "request": {"uri": "https://httpbin.org/relative-redirect/2", "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Connection": "keep-alive", "Accept": "*/*", "User-Agent": "python-requests/2.8.1", "Accept-Encoding": "gzip, deflate"}}, "response": {"url": "https://httpbin.org/relative-redirect/2", "status": {"code": 302, "message": "FOUND"}, "body": {"string": "", "encoding": "utf-8"}, "headers": {"Location": "/relative-redirect/1", "Access-Control-Allow-Credentials": "true", "Server": "nginx", "Date": "Sat, 14 Nov 2015 22:53:18 GMT", "Content-Length": "0", "Connection": "keep-alive", "Access-Control-Allow-Origin": "*", "Content-Type": "text/html; charset=utf-8"}}}, {"recorded_at": "2015-11-14T22:53:20", "request": {"uri": "https://httpbin.org/relative-redirect/1", "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Connection": "keep-alive", "Accept": "*/*", "User-Agent": "python-requests/2.8.1", "Accept-Encoding": "gzip, deflate"}}, "response": {"url": "https://httpbin.org/relative-redirect/1", "status": {"code": 302, "message": "FOUND"}, "body": {"string": "", "encoding": "utf-8"}, "headers": {"Location": "/get", "Access-Control-Allow-Credentials": "true", "Server": "nginx", "Date": "Sat, 14 Nov 2015 22:53:18 GMT", "Content-Length": "0", "Connection": "keep-alive", "Access-Control-Allow-Origin": "*", "Content-Type": "text/html; charset=utf-8"}}}, {"recorded_at": "2015-11-14T22:53:20", "request": {"uri": "https://httpbin.org/get", "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Connection": "keep-alive", "Accept": "*/*", "User-Agent": "python-requests/2.8.1", "Accept-Encoding": "gzip, deflate"}}, "response": {"url": "https://httpbin.org/get", "status": {"code": 200, "message": "OK"}, "body": {"string": "{\n  \"args\": {}, \n  \"headers\": {\n    \"Accept\": \"*/*\", \n    \"Accept-Encoding\": \"gzip, deflate\", \n    \"Host\": \"httpbin.org\", \n    \"User-Agent\": \"python-requests/2.8.1\"\n  }, \n  \"origin\": \"<IPADDR>\", \n  \"url\": \"https://httpbin.org/get\"\n}\n", "encoding": null}, "headers": {"Access-Control-Allow-Credentials": "true", "Server": "nginx", "Date": "Sat, 14 Nov 2015 22:53:18 GMT", "Content-Length": "239", "Connection": "keep-alive", "Access-Control-Allow-Origin": "*", "Content-Type": "application/json"}}}]}
+\ No newline at end of file
++{
++  "http_interactions": [
++    {
++      "recorded_at": "2015-11-14T22:53:20",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": "*/*",
++          "Accept-Encoding": "gzip, deflate",
++          "Connection": "keep-alive",
++          "User-Agent": "python-requests/2.8.1"
++        },
++        "method": "GET",
++        "uri": "https://httpbin.org/redirect/5"
++      },
++      "response": {
++        "body": {
++          "encoding": "utf-8",
++          "string": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title>Redirecting...</title>\n<h1>Redirecting...</h1>\n<p>You should be redirected automatically to target URL: <a href=\"/relative-redirect/4\">/relative-redirect/4</a>.  If not click the link."
++        },
++        "headers": {
++          "Access-Control-Allow-Credentials": "true",
++          "Access-Control-Allow-Origin": "*",
++          "Connection": "keep-alive",
++          "Content-Length": "247",
++          "Content-Type": "text/html; charset=utf-8",
++          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
++          "Location": "/relative-redirect/4",
++          "Server": "nginx"
++        },
++        "status": {
++          "code": 302,
++          "message": "FOUND"
++        },
++        "url": "https://httpbin.org/redirect/5"
++      }
++    },
++    {
++      "recorded_at": "2015-11-14T22:53:20",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": "*/*",
++          "Accept-Encoding": "gzip, deflate",
++          "Connection": "keep-alive",
++          "User-Agent": "python-requests/2.8.1"
++        },
++        "method": "GET",
++        "uri": "https://httpbin.org/relative-redirect/4"
++      },
++      "response": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Access-Control-Allow-Credentials": "true",
++          "Access-Control-Allow-Origin": "*",
++          "Connection": "keep-alive",
++          "Content-Length": "0",
++          "Content-Type": "text/html; charset=utf-8",
++          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
++          "Location": "/relative-redirect/3",
++          "Server": "nginx"
++        },
++        "status": {
++          "code": 302,
++          "message": "FOUND"
++        },
++        "url": "https://httpbin.org/relative-redirect/4"
++      }
++    },
++    {
++      "recorded_at": "2015-11-14T22:53:20",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": "*/*",
++          "Accept-Encoding": "gzip, deflate",
++          "Connection": "keep-alive",
++          "User-Agent": "python-requests/2.8.1"
++        },
++        "method": "GET",
++        "uri": "https://httpbin.org/relative-redirect/3"
++      },
++      "response": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Access-Control-Allow-Credentials": "true",
++          "Access-Control-Allow-Origin": "*",
++          "Connection": "keep-alive",
++          "Content-Length": "0",
++          "Content-Type": "text/html; charset=utf-8",
++          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
++          "Location": "/relative-redirect/2",
++          "Server": "nginx"
++        },
++        "status": {
++          "code": 302,
++          "message": "FOUND"
++        },
++        "url": "https://httpbin.org/relative-redirect/3"
++      }
++    },
++    {
++      "recorded_at": "2015-11-14T22:53:20",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": "*/*",
++          "Accept-Encoding": "gzip, deflate",
++          "Connection": "keep-alive",
++          "User-Agent": "python-requests/2.8.1"
++        },
++        "method": "GET",
++        "uri": "https://httpbin.org/relative-redirect/2"
++      },
++      "response": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Access-Control-Allow-Credentials": "true",
++          "Access-Control-Allow-Origin": "*",
++          "Connection": "keep-alive",
++          "Content-Length": "0",
++          "Content-Type": "text/html; charset=utf-8",
++          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
++          "Location": "/relative-redirect/1",
++          "Server": "nginx"
++        },
++        "status": {
++          "code": 302,
++          "message": "FOUND"
++        },
++        "url": "https://httpbin.org/relative-redirect/2"
++      }
++    },
++    {
++      "recorded_at": "2015-11-14T22:53:20",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": "*/*",
++          "Accept-Encoding": "gzip, deflate",
++          "Connection": "keep-alive",
++          "User-Agent": "python-requests/2.8.1"
++        },
++        "method": "GET",
++        "uri": "https://httpbin.org/relative-redirect/1"
++      },
++      "response": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Access-Control-Allow-Credentials": "true",
++          "Access-Control-Allow-Origin": "*",
++          "Connection": "keep-alive",
++          "Content-Length": "0",
++          "Content-Type": "text/html; charset=utf-8",
++          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
++          "Location": "/get",
++          "Server": "nginx"
++        },
++        "status": {
++          "code": 302,
++          "message": "FOUND"
++        },
++        "url": "https://httpbin.org/relative-redirect/1"
++      }
++    },
++    {
++      "recorded_at": "2015-11-14T22:53:20",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": "*/*",
++          "Accept-Encoding": "gzip, deflate",
++          "Connection": "keep-alive",
++          "User-Agent": "python-requests/2.8.1"
++        },
++        "method": "GET",
++        "uri": "https://httpbin.org/get"
++      },
++      "response": {
++        "body": {
++          "encoding": null,
++          "string": "{\n  \"args\": {}, \n  \"headers\": {\n    \"Accept\": \"*/*\", \n    \"Accept-Encoding\": \"gzip, deflate\", \n    \"Host\": \"httpbin.org\", \n    \"User-Agent\": \"python-requests/2.8.1\"\n  }, \n  \"origin\": \"<IPADDR>\", \n  \"url\": \"https://httpbin.org/get\"\n}\n"
++        },
++        "headers": {
++          "Access-Control-Allow-Credentials": "true",
++          "Access-Control-Allow-Origin": "*",
++          "Connection": "keep-alive",
++          "Content-Length": "239",
++          "Content-Type": "application/json",
++          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
++          "Server": "nginx"
++        },
++        "status": {
++          "code": 200,
++          "message": "OK"
++        },
++        "url": "https://httpbin.org/get"
++      }
++    }
++  ],
++  "recorded_with": "betamax/0.5.1"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/simple_get_request.json b/tests/cassettes/simple_get_request.json
+index a61fb5f..68378cd 100644
+--- a/tests/cassettes/simple_get_request.json
++++ b/tests/cassettes/simple_get_request.json
+@@ -1 +1,64 @@
+-{"recorded_with": "betamax/0.5.1", "http_interactions": [{"request": {"body": {"encoding": "utf-8", "string": ""}, "uri": "https://httpbin.org/get", "headers": {"Connection": ["keep-alive"], "User-Agent": ["python-requests/2.8.1"], "Accept": ["*/*"], "Accept-Encoding": ["gzip, deflate"]}, "method": "GET"}, "recorded_at": "2015-11-14T22:33:32", "response": {"status": {"code": 200, "message": "OK"}, "url": "https://httpbin.org/get", "body": {"encoding": null, "string": "{\n  \"args\": {}, \n  \"headers\": {\n    \"Accept\": \"*/*\", \n    \"Accept-Encoding\": \"gzip, deflate\", \n    \"Host\": \"httpbin.org\", \n    \"User-Agent\": \"python-requests/2.8.1\"\n  }, \n  \"origin\": \"<IPADDR>\", \n  \"url\": \"https://httpbin.org/get\"\n}\n"}, "headers": {"Content-Type": ["application/json"], "Date": ["Sat, 14 Nov 2015 22:33:30 GMT"], "Connection": ["keep-alive"], "Server": ["nginx"], "Access-Control-Allow-Credentials": ["true"], "Content-Length": ["239"], "Access-Control-Allow-Origin": ["*"]}}}]}
++{
++  "http_interactions": [
++    {
++      "recorded_at": "2015-11-14T22:33:32",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "User-Agent": [
++            "python-requests/2.8.1"
++          ]
++        },
++        "method": "GET",
++        "uri": "https://httpbin.org/get"
++      },
++      "response": {
++        "body": {
++          "encoding": null,
++          "string": "{\n  \"args\": {}, \n  \"headers\": {\n    \"Accept\": \"*/*\", \n    \"Accept-Encoding\": \"gzip, deflate\", \n    \"Host\": \"httpbin.org\", \n    \"User-Agent\": \"python-requests/2.8.1\"\n  }, \n  \"origin\": \"<IPADDR>\", \n  \"url\": \"https://httpbin.org/get\"\n}\n"
++        },
++        "headers": {
++          "Access-Control-Allow-Credentials": [
++            "true"
++          ],
++          "Access-Control-Allow-Origin": [
++            "*"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "Content-Length": [
++            "239"
++          ],
++          "Content-Type": [
++            "application/json"
++          ],
++          "Date": [
++            "Sat, 14 Nov 2015 22:33:30 GMT"
++          ],
++          "Server": [
++            "nginx"
++          ]
++        },
++        "status": {
++          "code": 200,
++          "message": "OK"
++        },
++        "url": "https://httpbin.org/get"
++      }
++    }
++  ],
++  "recorded_with": "betamax/0.5.1"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/stream_response_to_file.json b/tests/cassettes/stream_response_to_file.json
+index 9807e41..ff407da 100644
+--- a/tests/cassettes/stream_response_to_file.json
++++ b/tests/cassettes/stream_response_to_file.json
+@@ -1 +1,180 @@
+-{"recorded_with": "betamax/0.4.1", "http_interactions": [{"request": {"uri": "https://api.github.com/repos/sigmavirus24/github3.py/releases/assets/37944", "method": "GET", "headers": {"Accept": ["application/octet-stream"], "Accept-Encoding": ["gzip, deflate"], "Connection": ["keep-alive"], "User-Agent": ["python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"]}, "body": {"base64_string": "", "encoding": "utf-8"}}, "response": {"status": {"code": 302, "message": "Found"}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/releases/assets/37944", "headers": {"access-control-allow-credentials": ["true"], "x-xss-protection": ["1; mode=block"], "vary": ["Accept-Encoding"], "location": ["https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D"], "x-content-type-options": ["nosniff"], "content-security-policy": ["default-src 'none'"], "x-ratelimit-limit": ["60"], "content-length": ["0"], "status": ["302 Found"], "x-frame-options": ["deny"], "x-served-by": ["8dd185e423974a7e13abbbe6e060031e"], "server": ["GitHub.com"], "access-control-allow-origin": ["*"], "strict-transport-security": ["max-age=31536000; includeSubdomains; preload"], "x-github-request-id": ["48A0C951:54E7:48B5311:55019319"], "date": ["Thu, 12 Mar 2015 13:22:33 GMT"], "access-control-expose-headers": ["ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"], "x-ratelimit-remaining": ["58"], "content-type": ["text/html;charset=utf-8"], "x-ratelimit-reset": ["1426170017"]}, "body": {"base64_string": "", "encoding": "utf-8"}}, "recorded_at": "2015-03-12T13:22:33"}, {"request": {"uri": "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D", "method": "GET", "headers": {"Accept": ["application/octet-stream"], "Accept-Encoding": ["gzip, deflate"], "Connection": ["keep-alive"], "User-Agent": ["python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"]}, "body": {"base64_string": "", "encoding": "utf-8"}}, "response": {"status": {"code": 200, "message": "OK"}, "url": "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D", "headers": {"accept-ranges": ["bytes"], "content-disposition": ["attachment; filename=github3.py-0.7.1-py2.py3-none-any.whl"], "x-amz-id-2": ["9+TuHhbd7y2BUJaEV+mFpaDgjl1g9uSAPiZxwc6b2cYydhlhZSyKSuB7PQyiPBPD"], "content-length": ["117140"], "x-amz-meta-surrogate-key": ["repository-3710711 user-240830"], "x-amz-request-id": ["4B4BFE6BF5135B8D"], "last-modified": ["Fri, 15 Nov 2013 22:35:23 GMT"], "x-amz-meta-surrogate-control": ["max-age=31557600"], "etag": ["\"6550854f02f7bf10b944070b84f38313\""], "date": ["Thu, 12 Mar 2015 13:22:35 GMT"], "cache-control": ["max-age=31557600"], "content-type": ["application/octet-stream"], "server": ["AmazonS3"]}, "body": {"base64_string": "UEsDBBQAAAAIADSXPkONiblWuBEAAIKCAAAUAAAAdGVzdHMvdGVzdF9naXRodWIucHntHf1v27j19/wVQu8H2Zkr22kPK4JLcbdDbyu23R1yLXBYEBiyRctqZEkTpaRpkP99fCQlkRQlUbLsbtgZyIct8n2/x0fykQ72SZxmFn7EZ8EW/jj3KMVBHK2CaBtb31mTVzNrMb08s8grYI3zKMgyhLMLy8XlmzMUYqRtdsbf+0G2y9evzrZpvLf28eauaJi42WY3s/5JPmIPoRd28iwIcdFm8hcXox/Jz8wKY9ebnp2dbUIXY+sDafvXIPtbvi6bcGo9tKWQCCdBNsEo3PIH8PKtq4Igh3e3t3Fszyx77ab2tGxIcCCCP0VJOvGnDoo8/ED6Tewb0vz2LWnZBjOL71B0RSEbgHxaXH5+fms72zjdu9kk8MjjKUdQcrOJowx9zlZ7N3J9lKqMASSViikoyt9VjSi1O2e1Qp+DbLUidIPwJ1OpASczwEGEMzfaoIlPtCSDFrmv4Dms62rjhiHyJioHbp7t4jT44mbEzlT64a2TIpzEEUYTW2oryJA281E2sXdZluDL+dxNAocR52zi/VzqiOfLhdqZ0XjtBhjhiczVuzSN0xnH4UiQZtZyUdMkp/nfOeHOYUwTsVk/ucQlzmSsYewHkSBol8heh2eiQSNowq0UAd2w84PYWeEUfG3FYIAsGvWBeuliZl0slgKmTZwgTLi5sem/S3Al+t+FfasIoeIVTX6OI+LT7DeDoVAfxaohNciNUJgTHgFvQrh9iFPPrsMcLst2ZX9Ic1XXRSMiQUT8lXlYb3PQieiq4EoJDTsEmu7hXlSLiz5ulSRhsOFOtXXv0Crw5jTK4bkthQ/6st3NBmG8oi1UDySRbEv4fZK6Ed2l7h7bl9aTvQkDFJH47ZF3jP3iI4w2Kcr4x88zGQIIgDwiAZ3RBxZB/+W9plX75zOten1HJ0rANa0c28BKOTBQf8lLM1k9SGmVa5e/E2xuhlZ+gGvDomIe0KRwdGmYK0gTINkewps0SHhwsLdBiHCdKXE4qRwPIGASfXHW399UvgKM865QRtvUONO6ZFBjlyEQvZJaRo1TIBOeDBsumvCWQY7kDzRf0cj4MMw0haBJmROvP6FNpgyPHDcOsjh9tGlyAe/l9AI+IaiyPI1W926YIyE5or2d6xLGpBY4IMebMA6nxUAsZyfG4vkQZCES07S6IQaVIVIg2HkPfw43xTv02GGIpIXeDI3TkwqVbI3fiNK6q0kLSGtszvm9O8yOtO6kp8T+2d2DP9p/J/Jo1dVdpSvQNHZIj8MVBcbSoSluT3LSo+MwrXFIodvXgs+0MJjOGv3kAD49FCITg2QmcbF43RUWm4MEzxbKWAEmToME+UeOEeSDphBR6nbCQgEFoo8E8mgpMEpS6FIaHWglIzcBqph6b31s4zCMH4x1ITVI8ub8DOQ2Z8CDyJ/jwN+790Ga44vXTemX7bmZW6RSQ6MQQwkpv4yxI92VpMxl0pBmadsq6GrqNsqH+iRCfXJlmtSwmWeLv3OGKBHEuNpzIkN+ssCP4hStMrRPQhKBOrgrmvWZX5dI5kVvPP/1keSokchu8awKiRri7Ho/LqaiiUNklWZ8leTcSR5vNrF32zfvraPGhoLBB0rG0ALq5BFzCPsbQIBXZQgYFmLa+FNCDPXpmqcbBw6RVhI+9NDa44bErkH06ExcWsCXBPZVCFhwSmaHx1EHh87esLT5AIVwaEQdUjLdpJVmuRVMC4nm2KopUCikDhsJAF6+hmns+niqYggStoQyksJKok111izPiv9jaq3CotLbU2F95vp9Bm+ae0v507xQQvKoXepiU8f5UhPsS8bVhQOWTErZp3liPfIkXJxzN8619ZPs5WHTayNVm82l+3oj6aOmaP28j867R94TkIwG+H65rNvJEAesJx18StM6qTbzxAylK4KeTna78ipuNrTTFYTpvo4JFhvU0zKY0jh54kFWydaRr56eBdVCX2LLEfqcFQJQ6J62Ts1JE5PZeZvAvrI0yISJcEJme8sFvJ6nPWRDu16xjqPIifWkzZ3As95yoswF2U1zQt4lrk/JnprIp+jARPR8bHOo+w91wA7/4eF3kMVQ+GM6DiO4h0GwEPOR/B5H04yA02m6L/2KjqWN6Z5broM0LmM0UD1bER6ajtaZHHVwJJC1hiCLtdUcoe2YG+iUALR3g7BLn6zRIa475yBOoUWGakztUYg69XHp1dVGH9wwwdm31tWVZfupu92SBDkO92RKHt9/78NDkJA9RG/3KMo69QaNhqqNYeivMdpPKyxGcquN0zaVkbMuzjv4M8S62QrICUYmecpVoj2JvZfYBDDm0zHKOi+1gv/Vciv4rH27A4YUPg1jwORpWK6zhUoxylp4VzFX3j6gCZ0a/L22r9I1hpdt1KgAr/t25jrZue9mp8/KpmxyIwtD51qdS7XHcS2C9oSuRbANHE3+N9yQrhCP7obH8iug9tR+JdtbP0ehG2JmG3VjOQlF2d9BfJ3QGfmN5tG7PspolUE1CW3uzChrpWVnQEvnXmjv1V0gLoqzYFuUHHZoX2w71AokfCeJjRJGFZRUWNiq2myXItfT6VcWYaueGZBK2VJX5wN92tMEtZNvwhGZd4NqhIl3B+FUkWMgJ/9kwSYgwwmEo75kSL2vehAl23Wc+mz7osuoi/2LQdZMsOBi4yJ5nDOEfVd/Bth0xR0Zkkv8ndtRgc58BUmJoNrM+KAtB3gxMdDymG0QEiqImdikaeBHiFbuEkQZLB3ZmzDG7KPQXaMQKpftde7bclEye9k4TjPaiRaG0V5ekJJ0BgIWxbBp6MiXbe2LxfLi5eLblxeLDxevLpeLy4s//8t+7tQn+1Px/8lc0DPr/Jx3bxP5p1F2eSgdx3eLk/kBQ2S4CytIs6YbLpPp9A/Lbrdsc1lWZj2e6UIOeQL7pRn1yYxYYGoESxZF9Ic5j2DOokCPYdOw+3ECmx5acWEbrdadompCZxCGLyadetlFTdmiMuS5ZJVoOSw9OmZ+RAVdDyW/ZXHynpDJdlFksbayItQaaW0Q6jSMjlIMD6eA4iTzPUA0QhylIpmOVboBE4UOAZMmhy2tUCbplKS9IFaXmOKy9FLgGD53fkl9N+q1cWduE5zWQ1VF6R+B8HpcPmalTVmbeIocg+IZwSuKMp4x6nSM0amLeqMVCWmXL7LHhGYYsIai5iVwCNMWVdFEMetc9r1iPQetZND84xTGqGQHxqZ5oMQE/moj7kFibCX6BaSgLy6tFzwFffE8jrR6Z5Z6zoG6q5K2aWvuM2aJFIWxAuwHGpupzNsj0rAgahxYvpaUjU4rHD64cDSDhpcBY0PB1THlCK8hm5X1rcqDNyqHRIm6RnrKtjYUdsyJuqXdJXHFcsXjFUe3XxHZwLnDEDuWePzDmhutWbNoAC+7SW+D5P8VLZ7Zjs7IfW5X9Stx9AUYvrMiaTpc/OWwCssrS9tXj4Vfc/WTe4d+gULKD8q1JLxoU8W0Q64Hmqda/aHhpidOZUGVTXFZCipG1zfWx+ghhVvHIiqfmRXFmYWijKRn4aOF8xRZu/jBymJ2/1i2C7As0L2b3nnxQ+etVOlmF9zXzssSTTabZwG64Ri2FxDHkiwAjmVfPdWMyYbbvyBx/YldV7aPPZrb+ts9vOXXg8Enkitstr7sDdVSZON5pVIaUscCMUfYjGUqHttdF0Jb0ePmPRNkI8nOU/dBJ90bdsL9lkiZ0q7acMkm54yA0Y0G3RNFFR47OgdGq+Cs3xZUWSDK3A7rgyZ9Djop7eFt5YwUX9voAw1m1Dx7JpLxJos3blea3uBKrXvaDHBjJCsQH25/FS/CUo3BKtngDXqhJ3lQaUnCb+ua1xVH+oy34JSQIS9fE1DrfG1yp1jtzoo2ByZ/BU7WsfcI98iR5uQ5DW+zcsheI90yO2uaxUmwgbYFGgHFNo7nazfltdjzJMe7ZkDgmmt3cyfCColJhTvCxRxYsae32ij+NPgCDVHAcKlT8dPvAK+kJgFIr1vL2kDyOzILqaDP7j4JEa29hzu/4rgnLq8Y+m4mdzevL29n1v3U2sapdUf+s4KIWsOtEbvn51792PdqZt09uMT4C18SK01X8KDGNxstADfrqT5n9nnFnxaDi/FY4d3Y/MI3OiDx/yXrd9wkQZE3YdbIW8zKtvUyjCZx9BHD6aQgBBV6To9S0hFUoGmfsKrZTNTtIAobjIABz5dvBCxJWlwNNGAydLLT2Ylw4ZQk0bbtwZm1fNO6FpgI91BR0Ti/kt/XDLQalLoUXcnCZEZescdP/XHmBCgt1+7RPuph6ZYINMSUxH3WbmJbt2lbVDDq+VKMIP8x28YPke9uHlnbPk7H+s2fFs/zpyX5uSA/r8jP62et8z19+1zedVzs5dMoB5SqUwtttYUETrJuodqDuwOurcqLCzRPwr2jz8JKOyOrUqssxnYPK2nooLzkoKK0de+e4r5Z3Fa2wQTv/IP+0d9dSG+bLrtKqbH9HetovdcpvM/ehShFm2IoTthefH2hkrR0mM+YbG1xl9HdYdLmMYqrlO6g8RaGobh0Q/EUufCjUT/VLQCibvjVuqEb+Xn1iXI1QF1dfF+oRzBrMVqIa3qbLTrqTfZaFrgwBkAfuGomSYN74J1OxMsH/FNjUzcVAd8Yg5UE+R758RDEqYfSARiarUHQvJ2wu9hY4VxlI0v1qggzWitwyx7XOrTYLS/LA9pwjUhqyN1xYQRLL9TM6DiGlkX4ZrFufLugEMtqx68obM4akNEQo01uzeAxmm0uHDlGF0vnDcnMkFSEslgTF2NcvXaz6KM5bwjtm+OwfLpPjMNFR30c/qgRaovNmfMyOKD2QTGa6xgmQCY0GSYrBmTwmPkpDqAkui8dTPy887FEJUWavhRK0cGEHjV40MslzIIHu4fiVNGDYZu1XnkxlSNEzeIZc60QOsKFUagwlLf4RQiKwPkmIZkKer8Lr2rh63flVVOD8kUL5wCxc7uTWeGN8GUT9JYR6EuiXc/e1coeh7C81YiAllWRsBDVVr1yl25SuXeIRlTrB59eHaLjUwCSu51c8q3WGxvAvqRgGZW5W9vTVaBrV1l6w68EQKLioB2ErluviztQu1dqpBX7Ua6/Btx8/bv8Bqk+6/ZUKMb3bfL2ZutKZo5Z7K4cRzPSlae6paCvorOC54MUVwquj/bKTiOqMI9M7pTXa5Ddb29647O+qqYpBR1ne6zgrthk6qWkUjRG2ilbt3LUrY6hgc5EGUWsM1CFgTsdoJVDAx8XUw/n4T1G9ZyDwp+Rvroi4Im1NkboE8XWT39HCX90VkHzFq0Sa7ywzdCJ/d6NrB/JFIJMH6gg+Jb292V6TD57eHhw1gRC8Z78SdzoUbMwY4cxLJXAHjQINZBC1TiVlM1QqjpKAEEFwoEk3mWN1AEVmfovYKHAEk+FVbsSS2MLgtLOQSN1wLwDJZZt3jU2ISQ0tIBHrBXfAFzR1QuOUjGkJgtSbuI66DSG0RdCUEqUQeiwW1SNKO1/3k2k9wAKKxVk2zdGeija9VeGG6JPbuSlsR/v0RdRHXk1g2YKaG6apY+1Hf10klfEoM8blGTWxyjYxB56F9HfEIvlbhTdlk7Tr5GfsimVtXFzf5c51m8IWb9eW998e+FY8DVZ2NrnOLPWyCL8v3zTUONs2Rai+Mqq3VK8X9DA+tY2sX5Bui9w4YIEjIdV49W+7fddlKE0Sclgp/veXzKF/ZjUmMwTok8dCBbXpg7rpnJd+1pfAbdaayYURF2+WbxZzGvSd719EMEsuPMus07LbsJJVDO/fzVHJZlzim7u0hqagVmDQHdReSFDMr+pqjGCiLKhR+umgypPqRuqq0vCUjYfxOSFbMazVem2prlxayA7lDduTaRmyt1Fx9eqmKx9q8zIJYJlu/+qmjjK6P91ZWAtwv9GwkCOB0d31r1nZOc4lXbEJUEhhWFj2kgc/OxhAYgeDSgCD0P9VgVFcA8cJkrS/2TZMFh/wrpzNZogTDAOi7tMMOOQW0jZlGqOexjhxPLg5AXGrt+1BGBKPoB8yUEaMyHRMYwV3nssLRTgjFko8ZuS/x9QSwMEFAAAAAgA2pkyQ09Xx/3OAgAAzwsAABsAAAB0ZXN0cy90ZXN0X25vdGlmaWNhdGlvbnMucHm1Vctu2zAQvOsrWF8ooQ4V2YmRGE0PLdBjLvWpQSDQEh0z0avk6hAE+feSkiyRtOzGqCskgCXuzO7MkkueV6UA9MRhW6/nHm9fUwoMeM68jShzBEyCJDXwTKIu4BuV7Lv6n6KspKnneUlGpUQrFbnaCkZTfxcRLD2knpRtUBzzgkMc+5JlmynKGWzL9J7m7A6LutBY3EXrR9YVE/7AOEUaFpCeZcAHA0iFEGji0d1OFSlK4BueUOBlIUlXoC7cx+YSDhwiWnHF4k+2AJVchqF6Jy0nSco8tGjDNqsMF9Hidr6IJoHXC9cGxux3TTMOr416Qyf8W6HKdqYaYgm/QzDQE66tiI4BPmmAXa1qJ8R6MabgVvwsy0JRGgwEylh/9QNlTPXqB1bsAzbZ8KPC4tllNL+IZhfzaDWbL69v1d8v/HFPNO2eB1zyQgItEuYDMVNO+w1Ndj/c7ghWCVdnR9svdWIDbTD+0laCHt4u3x+/YrIpRa6s6sHObiSyXj+zBMgTAx8Dh4zpLtpFpCxjwGIVKhPBK63YramhFExWygzmYzxFs8srZ9u2NH6/hT8jHJqcuMs7vhvIWBVOhrxMXuIWqrviu0K4jOuiadS4pWa6IbYx1lxqvzvcORUvH3Hl2qm5opBse1OcxaQsNmrPvb0fdaZJfaIVksEpDXX6ZCuo4WhTRxVhteMpXqofXfSapep1JWo1vDF/KkrRfPhBM8ne9/Ubh8razq6slrBhCaYHDu9PA3CqjeexUJ++U87FIfXW2TiPXOMKNYHnvEhN3o9fp6bYg3PZKtkagu31Zft8jnv2+mZxFd3chBMr2+6ZmAn37uIj097o+DD4TTLVbglifHSfYVofmM1mBTvI6UO5O+7HprKVyIAMw9mOaJf3Ux09sPVaTSE0ytcj1zrpXokdcgw64PZH8Jmm7n+asSNaVMnmRFXbEt2XBftbx/8AUEsDBBQAAAAIANqZMkP5xhXWngIAAG4IAAAUAAAAdGVzdHMvdGVzdF9tb2RlbHMucHmtVFFvmzAQfudXWLyYaBSxtttDtfShVbVN2lop6p6iCDnhoO4wzmyjtYvy32tjIOBAN1WLFAnsu+++77vjKNtyoVBO1UO1PvOofRXwqwKppJcJzpAyj1GlaCFRE3BFJFzrf4ju9aV9WjRJV8864etdiKhMts9nnudtCiJlHfmZqi/V+m79CBsVtKmzCw/pXwpZXSoxRZNHyctAQpE1t+bH0bxlGjGeQiGjPmB0SNztZ12Wrg2aMpW0lIqUGwh4+BrMbITxNRcQtKJ7fCWoH1uXpqy2IIJhcojqoMgmHMiZ0yif0lWXNVqGBgnYCreowbBgrvA6Op+h+RzhT02Zk41GRkSh+GkXXzztL3GUccGICmiqY92CY80QumA7J9EC5JaXEnrKRPQAJAUhl/gbkerkO09pRiHFK52IM87xWOjNPcltxJqIfoQgv/WpM2MB3u1xBOVGmxbMEM2amUPaQkDmss9Hd19VMjHBGuo0jr3u0gjsDIysXhGamKM5MncjklxNg+hWVStr6O6a8wLIGwweCvrw/vR/+DUcTStjQagEGbQzaofzRgguws6zRkWIrG8hOo/PjwaXKCgoo2aEGaElLfOjj8fAiVYt7jKw+82ACuxDTSqpRIHeoTo+aRPcZjRUR1iY1nyMhxUY3/xMbCbVZIKxvVB7MLbIkkTjqiSpOYaIgXrg6S1hMMeiKk0CfmVj9KydRR3UAcTx4m+TYoOccTmPD3oZSElyc4p3fvPiXyCf+SHywZCR+nXpg7/aYxd2fNIalMlha+4dknWtqW1ozbZV/2Ul9vffAb1ZhD1ItGSrS/ejlGoKr73pw2kzEXMhGolTMB1E1Nk/H5zK3AEkjPx5yyKebvxU9w7Z8Ho3xNF+hL4cvLzlbatX2HsBUEsDBBQAAAAIAG2jI0OJaPDq+QAAAPoBAAARAAAAdGVzdHMvZml4dHVyZXMucHldUMFqwzAMvfsrdIsNwS30NugOu+3UDyiluI3MPBIryO6glP77nERJl/mkJz+9Jz3P1EEgCF1PnOHjnjF9HpRASnOV7kkp1aCH3uUvHV2HNXTU4L7iyrwpKI8x3zgC9Rh1VXRy2nwnipvH9llZT9y5PA6aadKI4JVixpj1IHwe/yc56cN+snx9W0bXaGNT5tBrM5JDRnaXFgu7OhbD0+IoMkLzwyX2BzkFiucQPcE76F0NW3FdO0tlMV7LxuL1z28u1yQJQwJdtqiXzjwmMbhbOxg+nuqPdEHlCvChoFCSTbYNKTeBV/nO+YvKcaCf6mWvCb+O0QM26hdQSwMEFAAAAAgA2pkyQ6jYMBFCBAAAMxIAABMAAAB0ZXN0cy90ZXN0X3B1bGxzLnB5tVhRb9s2EH73r+DyQhkzpKbNgC1YHrZg3fawYgi6p6IQaOlks5VFjqTSBYX/e4+kZEmUbclpZyCIJd19/O7j3fEsvpNCGbLhZluvXy0KJXZkJ7KPhPsHkpls628b0EbHteGlbp/+yjTc49+KlILli8UiK5nW5C1a/l2X5QP8W+PXqDVb3i4IfnIoSJryips0jTSUxYrswGxF/obt4I6qurIAtLG2H11LUFEAuyLWdxkfoDqQZeeJJrFEJ3LXBukuddwnaNlH1N6ny8CXSY6u0dXWGKlvkwSvYw8UZ2KXKJBCJ5pvduyRq1q/vEkOyzwlVwes/ufKEUiuf7xaLg6CaDD/SKfG3Li9x6WhHqxiI9IPWlTR0gPGmx4bu9cperCSm6eQlXyGlpgWgAnT43hHZIcY8xxBaSEEDUjkLekegQYMtVe9eNY2w2JtmDL6E9KL6M828WgY1sFtCjEAs0GSJsoRaFYKDaPtcwnkoB8Y16CjVrbfufmjXv+mlFCrTpTYoTTQB4BSbDjuUnfX8vGFGYv1B8hMdHI3VoTWMmcGVcAYSS1vBxlZy1iBqVWVPrKyBtyCt6qGgUm4cZ5jL+0aHG+XZqwsIU9FlUHqdBtVQC8BuSmhH/5a5E/I2K2QjyTOeVEcVViBlqJCUpSpbMsf7ZYPDDbQ5D0Wb/AoE1WBYX8e0KRbYDkoTW+DB+7hL1kG0uAzyqQsecYMF1XyWOVtX7BE6cBvv+i+nSwJ5xctyXdYCHTI0nbk1NvjWjoKpeE63YHaQD6hD12Rly9uzqhDvic0cVB0eYZpt95yFtHjVG76VM6tQbgmr1mp4UJVDKgUm/QOKqMnlFHwyOFTa43knPedLYcpudoV+oplmFMV/Ndvt0M249bINa+w32DhRNkq6K8Pjt29d54veb+rZUE385CkwRwVm2PLta7hpIIXnKrXP43O1U56bzBXeqdlyauP+h09KP/+mPSd6kEcc7V3bjpu/OI/7eU33QOHeH4LcHE+mbyWIb88afkwZ8danMpg7kTshML/8b27P0+XYYgFL2EqQru+M7woSIfcD7E4UZaewtm8KMKatJn+Gv2elwrFmeGCWNhROrhmOCGT79y2yb8YzYUnmvzAqj0NKY4MDE+4N6KCfdDCL5ln3CLhGVCJdkwIT4920gkEC/AuPXNsUO98RO9dcD6FUVCtGWqAB/lf7qCh+6mVW8ML09zNajNHl2ObN2N+6Y8s0xOKI0T354YRz/lZ04gCIaH66mHYw5yahtub324YDlf+X2dcu8CoxD27Ga3weIkfsuxcnjSV/Zk6ZjZH7MFBLS17sbYX2JmMe+RY7r+mA/iQpjZxlH2NEqcmv0ELmURpIqSd7BelM57NoKTi4993c0afnrudgYLGYA2U9/FTynjKUjNnrBZn/AbDhWbPy0gqP9SktSpRjfadRu99xqk3GXaF5PrVDyjeF1BLAwQUAAAACAA0lz5DaMYr1+QDAADdCwAADgAAAHRlc3RzL3V0aWxzLnB5nVZLb9s4EL7rV/BGKVDltLkURr1A23jbAgu0SN1TEAiMRNmMZVJLUjbSIP+9Q5HUO113dbApcr5vnpwRO1RCaqQeVcDs8kEJHrDCbCVHKhUTPGW8EOgdCq9idBktAwSPk64505oq/QYR1b4EtFR0VswrkfTfGl5bpVumd/X9VVBIcUAHke09sCI629ltJvzmh0fg+vLVbntqf7iB9UeiqD31ihKlZZ3pWlLlBY3QF64oV0yzI71mmQ4CptLq8Qqtpu7/5dwPgiCnBSoFyUNODtTF4wQeGGt3dtOEo7An5nkARhPYpIEVUXMgKdjD0YNjbMExRCCnKyyx43aCoqI8xMZXtTBki6fLZ5wUQh6Itlot0piYlUQp9AFcNG6GPkiJj45jtnFPa1mCgXindaWWiwWpWGJPkkwcFjhoZI2NiuofVahoWUSdc+Y12QKBy2LyienP9X0YDSWI3CoQGm9nghew/YRJWYpTKmnOJM20wku0kTV9Hko3tbGyZZGI+weQDLscU2XypZLvdhEj7M7wSKnbNnn2rFAhRGqwrnVWUyKvxYnP+usgouojSrFl8+LbxJ7hWlGJwbAK8nMSMsc9uOFMYZ9KbdwYE9mTgQNJBlGjOWKqCVYr6oLaBhh+qsde5E0uYrQ/uZxMKFNzEMxqtpAVGkpAw8A50QQjxju1ne1OhinGIc48o2ErdGuBdzHK4QpGQ4x5oMLRPkZHQ10ypafQhGl6UGE0A24y4G9fXh8qFT7tl+j4HN2+Xr56fTcL8P4ajTZIXtNAvGtzc+CxkSZoI7IBNqflFNSJNFH4TXSd2n1n89xxp2DfN2jfUzQoBuiXVKemMF+4t+avq2AQr6BybXbjpqWltqVB1nWt0sx0tjeXlzGiPFvhWhev3uJ4moQUMipXfxOIcIwuLnaU5NCMe/mVoLu9+DdebWejTHoaTYl3bz0ZMELkjJvmBctBObe2D8Pc9flWYNzs/QOh0ZSbJmPiCX0/MlOItR2jp6xx93cM+Baa/V3b7d1BNEHIRJITyN+40LhR6QHWYYhTNCrk5m6a0Tc14v9Szt2N/+DqKKbwl6DRIGuuUMZQtw3wmakf+up68Q6Y8ZseSVmbSpJducOVpdoXOwzRcdf3Iw9fr/9Zb9bYCs3Pv+eOdkv1GZyf1htP2CKbuXgG9tv7zcfPU7RQ5yj+9vX7jOb6LOiPKZILndox9mcDr2kOHY0Vtp8eaymFvCFMOc4YFTXPoJHYuXdxYdtev53YTyxrbcPUwFU4/KZpiC1bOCbrPrvGJer+nTrbJ4m3LNvVfJ8q9pOeY19dURmO+OPG7Mj2mI4uCn4BUEsDBBQAAAAIANqZMkPatWq6QAIAAFMHAAATAAAAdGVzdHMvdGVzdF9hdXRocy5weaVVy47aMBTd5yvc2dgZocC0XaGyoFVfm6qq2hVClkku4NaJXT/6FP8+dkJehqFUEwmR2OeenHvOjcxLJbVFO273bvMs2WpZIgvGmsxZLgzizT55yQy88r8JEpIVaZIkuWDGoM8eu3R2LzX/wyyXVYdM5wnyVwFbRCmvuKWUGBDbCSrB44sPrIQF1q4KFPiIDpdxCjQ5IZ6gUJ1mHVlPk/a1HpIxX4YWbU/1o8nGIkMTBLPhGk5jGsU9y83eWmXm06l/zBrKLJfldFRrpnezm6Tr14D9oupmr2+rqfn/TjpcZiX9avxK2lBmu7RXFCKl8N0xwe3vWBl7nFl+DMCPyEDwArF+N+OF5797GP4kwMdKNSh9orKp67bqYu+bZdqan14+wS+WY40RawECLJzkErg0GOVjBILxBD2dPY9yGFSGsTgS9zHV0j4xbsCQ1sm33L5zm9daSz3puz1SRfyVtDRnQkBBYm4hd7wiD7vdaosYS5l/ow02zCeJvXCqYP/0Yhx5MGYWvUZJYwe2tHueOwzV324hXNjkUoHBc7TCzgvD6277MGbNZbUN5TjweHz4OzzC86bZgbP1R+o2NFhBBv2fNfho1e1tkJGOsJesvj7B4wtSxA16w4SBq4ajkz9sS5AgctVavR5HssKsKGi75x1eYf85yUEQl1mH1TGzLsfEUcJdrqsm1HWdr4ZS/gB6MhiHc4IuUYWbc4oHqmLB3laoa3EzNWj58T0+g6FOiwYXTgJ/EMAvVioB4RTA53TeA1BLAwQUAAAACACHtdZCGY8HIS0EAABCFQAAEQAAAHRlc3RzL3Rlc3RfYXBpLnB5vZjdb9s2EMDf/VcI2IOUwVPsOXVTA30o2m7rw4YAzZ6KwKCls8RGFlWSapYM+993JK1vkZY9YAYSKb6v3/HIIxl6KBiXXkJlWu5Wsz1nB6/MqZQgpEeN8B7f3xMBRnpg0WMlKYiM0rn3B8vfkywjuwx+R+lsNosyIoQ2fHf3KagcXG1mHn5i2HsC5J9FICDbH79UH/VnqP2/Na4D/wgWkoKGSerPPVJKJgqI3laSX6n8rdxddZ0kKbqo3YVCEi6Dq1kdXgLhH9hTbiVAE1Z0LYTcYvCUcfoCfTvCE4ERAz9jCc0R0y9wAJ4Yj/H9iy8iVsDSf8DvcybBPz63Jc/CiB3U3/68dlZ9fL/Jqh6HmuBHFXOQdqMQIgBwuY2wMhBvn9BBZdNNSiOflRDWG5rIyrMpV8h2XyGSQbtopjxobxxdeUR4+nXTyTfBYJWZAerlp6F0Rh4VNMeK5hEEyby2Ms/BdGjZ4ZBPsf2YS+AFpwK6XjTW5FGF2suFA4zfpFIWm+vrJIWQ5t9JRuNr/7xxb3L5vytw2Sh+2awe+iOZUCFto7f8eTUfLhJtYVkfSja5iOiQJjnjsJVwKDIi7Qv/7hnXHdZxjGbgxMrW1/wPpKKPaucRQcNyrLAdSYQGBieBd89L6IFQLPsWFbYcCmZl6GkNh6KrMDYMPy2rRmQBKNHkNIDRcgBohbMB4Ds2AHf0o4oltJGeHXfPsow9nUq80aqawjhErTfGUXeuCUA0TyYAKa0pQKh3OZBqAO7RMRoWAi0ci256tjO0mstbKkQ5XJx1H8FDCXC1HeiJTyXjz/WG4Pw9OD60NRqs0YzbYJbe1Nc71ZmcMRq00XFi6ObkfnkiJe3DlYtSmNxetYXqBONtbQA3rNEJ3JZv9wpoFM+uQCuGdejVSZlD7FwflY4b9Kh1+UIV5S7itJCU5e71ioqi0TxB1da9iC3igLug81Tix1AHQU9/+3uagfA3eBMwbw//DKdB269l3rZUps9cteKmdRt8Lkemp3ZgW0lKOJnlQPhjPHLrqnEk/CXNZUj//EIyMbJgajcWqEo+mYtFkkVkUM4qXiW2HpKOCu6DEfYbktMXoiaFNVJbxzqR21qOKdzPsij1ceobNmD7zJ0wITp+LCVo60wuQ7PjTcQbsrVcWMgajclcAgiP0rM2bvXEBmiu+o/wrO91Q9yuZwtxR+lcaPd2VZGN3Fo69m6ySbtRH2z0dN7fR61YxtqNZT24u7DgQGhmxdJSB5axdmNpnclYKglbt9Aya5dQ0jO6A8fJmtEDVcsQCfORE/sP3n2Kva3g5m7iEY9DwkEI7EMezT2Zgvfu7lNL/zOAd7uMbheL9avbeHez2t+ub5Zvdm+ixev1zT5argmJV/F6sVi8Hq7UIREWofe/xmCkB4xk0s/2Baw9WImsnR6F/S7/L1BLAwQUAAAACADamTJDtCBoQp0CAACaCgAAFQAAAHRlc3RzL3Rlc3Rfc3RydWN0cy5wec2WTU/cMBCG7/kVFpckUjAL3BDbQ3toObSHFk5VFXnDJDFN4sjjlFaI/95xnOxi71JKKbSR9sP2zOuZZyZOZNsrbRj+wEiW9od/A41SdbnsSsVOWXKcsUV6EjG6pDMeOmkMoDliAteDCBqEnWbRNK6kqYfVcVRq1c4DjkYPhcHZ560074bVmQEtjNLO1GogH4xs1mavBcIb+jiDVhVf55VemKKOoqhoBCI7J1dfMpldp5QugbIGc9EnCE05TdoLhx50si2QsdGQO6d0Y0+zXPQyH3TDliyujenx5OCAprhLlheqPRiQ8Ma+Vze05HG48GclzQWxz9aZt1u2hjmK8wv6ztZa912jQpVGawoWc16DuCSNEMZ9sUjKaejMFI/kYzTzSoPT/+qX0YAR1TLeK5VaCb1S1YB78QYrVRGorJJPkfEKTBKflfsfVAf7722145QtCbivEOSloddhUpP0eolLJ3TqZ8o+3yxuM+Yq9+VVzEulW2ESL6e5MiHPDr6bLZqjsQbsVYeQxFY4zlguacPluR4gaCqb8d16B8uF6koqz03cCy1ajE+YRZNRBzpiNHFze+v7XL1MbwWk3dbcMklS3qhKdhb4OJ4K4Gb9YO3tnTsJOpcwCRkXtgly20aPJp090H1/kf9WR6Ps0IiugOQugF3Ad4OU3Ma+q/X/gJ4N+QF4BO5osXheNk5qDPajkAiYfDKqdz1K0Wdjr8wnTBo9LlPojNSQX9eygbxRavvI/xf35ZP64mXAjWc8HaGiqAHzxX+BzfPZ8Xg6/I1zzH8GPvXefNYSaCiJcB2iv6Z43CsPV6srKEwSvqzE+ViIPKenJL2tyY3vhh6f1VNvUfLZd0qLzoqmgcvkTvDOjpzB5DaHQCLQ97vhgT1+AlBLAwQUAAAACACHtdZCAAAAAAIAAAAAAAAAEQAAAHRlc3RzL19faW5pdF9fLnB5AwBQSwMEFAAAAAgA2pkyQ0yVvcy8AQAA3gQAACwAAAB0ZXN0cy90ZXN0X2lzc3VlX2F1dGhvcml6ZV9vcHRpb25hbF9zY29wZS5wed1STW/UMBC9+1eMtock0sbZdiUQlXqAHuAEB3pDKHKT2cQi8aSeSVfLr8f5ol2Cqh44YSmRZb95894b27YjL1BZqfv7vTp4akGQhXUvtmGw0/0Hw3gbPqU2m42qRbrrLJuLupP2aEqpsaSCNfkqQ5ft9Fu9myG6lra5mOF6Pvto5VN/r9icGLigDhmMR/D40FuPJQhBEXgFwTgwvdTk7U8jlpxWi4ISH7EJpX4hLajNHvcZDfjsYqpPTerwmJ5RQGwExLYIdFBHb8W6ClK42l3u0927dPcmgdKyqTwij5aVKhrDDHchmy/dQGGar4PqeIkmuVYQVomHMcB86Yf5MWjLR4sxY3OYgcMKzHBL3akzLMHymP7QYcoGxsYLdigNQXNHjjGOzuxE20F68oSd8ryBb9G4vQyAaXcVff+DstK/lcafyeEWpv/EkZyDHUlemKbBMk6eeEzotOKKekY/9A3m+Ei+jNac4QbD67JsHYtxBcZmu7zFkYr1++c+V5VzKA99CE1PwgIb3PkeV8lNoJAgSt5S8eO5gxHSUGVdnLxsax3RzeLqpflTL39/Aq8Z62sG9i8H9Z8MKFG/AFBLAwQUAAAACADamTJD4pIpIFocAACbuAAAEwAAAHRlc3RzL3Rlc3RfcmVwb3MucHntXemX2zaS/+6/gnE+UJ3I1H10v3R2xh7n2E0y+xJnPkyvnwKSkMRYIjUk1R2nX//vi8JBgiBIghTtZI9O3K0DKFT9qlAoHAUGx1MUp1aUPAvYq+Q9ebmFP849jpMgCjdBuI2sL6zBbGiNr26eWeSHFz6HQZriJJ1aKMnePMOHBGuLiTZ2Qbo/u7Nn2zg6ijeibIxPhBn6jY9SnAZHLL4S79m3QDBxzmlwSESBwUuU4Ffk39A6RMi/YgWPkfdOlDih1NsP6Ueb6ITDZ8+eeQeUJNYbQu1HaDpIo/h9RoiL6+OttSE4BOlmM0jwYUtI4HQf+T+gI76143MI9W1eGn6S8wnHgyLVoQVVr5yMUk7jKq9IijgAgnXLsHAktkCqgQ0f21dXzzLWEpz+fKJ8GXLAKhg2mn3ppNHm1yQKB1eMjrNTKKBTQAjY+zQ9JTejEXnrMO06XnQcUcKjJNgd0X0Qn5PpfMR175zej+xcHNDsBvn+xosOB+RGMSJ8lMRjXCWnKEzwwLaH1nQ8V/g5ndNBxtjnli3TK3JiKzW9KNwSUR5tYnPIvrF+iEL89EyRNklwnP6IggQnAyHJ10H6zdl9HcdRPMxhdVRphpa9jYgSFZKHaBeEkl5YEzV0BsDYlRUk1leI9LoWFe068Wn/YDSIA0gGV6pyYm8f3GNVJ3uMfOIzKHAEwRSH6Qs/SKglEToER3sbHHAInQbEf6rSJqdPlToeWp99xikrbO5wUb8pil10OIyOKElxrNOpcz6BFxk82kkaY3QkLL2Jz/hJUkQZOi6sArVagXQa4l32TpCAjAOmXxPNcPKCe7ukfi3lrBD59hwegvCd+kWdJiXM/3UmGiV/03Mcbu7R4YydGD0QF4HfDcYlF6EpveGqhr/J+Yh9on8ziODNhjgVeNcNK9KPikTaNakDUSnxR8ClNe7fgxM17hiFfnSM8bYsrAYoXosARWqQkUpTuWRAf4TIMPJko7LkAR+IX2Wj9sB+HD858LXtbKP4iNLBZgOuZLMh41E0tDzSoVN8C/1Z8kkZEUpY8iz2g/s5MToSuGz9YnFJGL3NbX0JpIgPBBuPfIn9TRR6eAMtlhvL6mwBgWggf+A8xEGKK2m5gtiGjkiqQ3YPkdswQkIR2TvsEYzVMw+768UST7eTOb5eLq+32F/O1nO8WHvXaLK4HqPpbDLf2vXGSYa/ETSQjGzyltCWAILPSVM5ooxZKKPYb5AEYZIiIvQAygxFbAhRhPOSfFKqQejFtCyJaYh+0oQB/8VLRViTQc0lnYOYWQOKtJBKWoWDlcJJPhLlaBShYG3apRFLg8iQh2asjvOS/jF39wXErqxbovwv8ijPYuSsO8bJ2y/VeIxEcMcgbUCHFSpb2Wrpe97Sc+fu9Xo5Hs/mLl5P3BUxMuR70/USTSYLhK5XDVbGyOtsrAxXjrHgnFQQELKPaJD7ir5saSqsPv1D3JoRKKKwBA7/ZBOAN5jM1uP1bNoMAKmRjIgrzLxgTuaqFSIZ+xKBYckR5j85dKRwhh153R68E4oxBzFpRo+UDsi0Q0LOJVMzsCu0nkzwBE1X4+1ygbHnLherxQJ7aLb21+u15+Kt546RZFcQSPZrkSAL6MNxnMdJrhWXTkOhuRZaKeAiUTBSC4fJeZW9bK0YOko3a4QVk8czHtUDsmRueT6RGV0jcowK7cyivjFSnNGsnglArA6Bh71oHShLU825PNUsBV9l9iC0helDJc0M06G1IWFAzKKYAr5JYeAot1GDHK0+tPzAS1WxTG1iQ2LGP9IuCnWy2Tmxc3RMyCTu0YaY9obNqp+eOpoRD5JpFPzBLCqHlsarxqEbzIUn8uBBGwVk//H1P373X70M3K+vg/8Kc3xx6EV+EO6gDDiT5VzCnod/4+3UW84XM+ItZ9PtauzPVsiduvMVdq8xWkyJR0R45SlKI+JXxH9NCynZwgB5zV+R6FhwSj4UL58uWW6RoB3mzQjSrVddZE1BNx5abC0AYijbrFqZCahNtNDJZjoFHooBuZH/nmhmYH9HKFphsNunFh96LDIMWSG+x7GFrF0U+VbgY+RY30L/QB6JF8kUDll2qYvYLomqrF9+Jvz/YkXur9gDYqFv/fL3eIfC4HcEYuVfEflJS8g6RKmOWrSlHEWhhdI0DtwzwQC4gKkl4SDdRyQMKJWwgjCNtORCbP0CK7t/9bzoHKa/WGztl5Q+oneY0CN6IUwFx9MBx45VjmP9+WSxXI6vx5PJHK0WU+zO0Hrlu952Ol/NsDsn/WU73s6auosIZEnYMBIxXRY5QKDa2ItAe+QF/CH9h8zeMXk36aPTcH6GnHYxzm7VX4SVyl1GDISmdTMmhhYIeTuuJKF38RXUPk6gmzduOnNS+iiom+r9iJME7UDH9vfveTe1xIdlWWx0Jp0jBkvRymnDaAfEvkWh9SqKfZR4kYYOLYuPKDjwsfUv+DcEvQPQqSoPC6xQfDoer1+MVy/G128my5vJ7GY2/nwyvRmPNRWfNDIwKWFaTMTQFYBoGTrOjXWn52TlT9zZBK/mGM9mS3+y8Fx/OlnNJ663XqPFbIX98XKGxmVf8VbTXBpjKtcaOrm39BfL9fXKHc/X3mpFPMF8vF5t14v5dr6cLpaT2VQnZn23hj9PDa4DRlruPkpLdR17e5DCEjs0fklPD+SO3tDdm/oqocUZKq4BdZusM7rEu75r6IR0Yw264NRoO6heUdBeLyoCQoaKqcOVyp+tgOQrPy3nQQDFHcPhLYUkkkZ26B5cKBLoP7VmT6rcmVNV7/soatI7FFFdr16pULIyxi1092yoLjsS4Xy/IcToa63zC7fBrtqBwxzlBsL6uOy8np7p3/UQHID8hR7e0WFQpTAyj7IsT+YRAiXBsGwbXBSq0nbLdWmlMBJL8XI/2Bdn4hLNzz4r9ZG6ProXNg6VHTCHbiYeJMm5tBmr2Dgtoxp5GqQHOjknU9gkjc9eam3A0rNg2iKRdXSOreghbIppaQMG8z/aJnlF//YRsNKGh4xeV3tkCHYes1h1xkE+YjFEnG/hj7mX5fMy+yuYktAwP/vq05J1if1sKHcLv1oNCRLbLNy/mHnyabALMSF3DIDoAbn4kNDlH/m4wdCaDK072z3vbDr73wN/dJL61kDYR1s0Q8wob9GGJpM0olMh2nxOy6r8sRmLpAp78XQZgsMKCC5CVu3v7/D7ht5OSpgNaKSgQZ8FcsRDJ8n+RZwgizhs4jTdaHdOKiYBEr6ivzODBkp9dHpCB4JWjbvt5gAA0rrAtTwctLASIK7jNbeJM6GROP+BO8Y41MYaTIKWMTMK3iUazUIEMjCAD+nxKjrntLfjMfm/Fz1TVnrVNMPqg+maka/XNvcAtKjzHfzupvbM4TWoPneMRurPircYzUsL710VnjXeq9JzpD6AynPifOtAVXRWwPlevOqm8NP50NTNoYiZmqFkGw1T/83eDdmGAnzKTy40DgOwj0nthAhyjjE/bdGLyYAgvVoLhbl5MeMio6Ft1LsJqiDnP8nvH9mpqu5Gs4GT0EbzhN7th008biDi+7MZjYRK7/YjIz4eZmOk6WSzpSXJrWmNqgbpns2teaMYtmqNLAzWOklhAyPju79QeARGk528IpAne0RtiLgveNmH8ZB2FJV2tBQAC+iMgMgFi6ZAp6ved/Qk1BbHmJDupnPCVnpuOjfCCplpnpXFyUhordECoAb1LcnZ83CS9KJnxsYwN55hTr+ryjlWtQOLboGJ19OzUmMqYo2J1Xd+on/0BymTK+tLeUe7jQmkaNegf1LCvNuTwrJcYiOsuMQKFInGx84M0JD2yGiokm2PWTbbb5a9wFCh9P5EK2bbcEB7h/U7aBW7Z/nO1w9RaiHr5zevaMqSbnk321PbxWi7RSmZOh2DcBfd/2UH39DttcpV3AJ6uj0k8uHp/eDqqQDfHaCwoYLCwj37iL1VygE+eRGOnVSIzG/k2kOlYA9bHgR8OfQq/27qfPmxcYexNVA3E2C+mvlOWzkwXtV3wcgr2GoIZfIffZeHH0Jd1/GhUbE9p2FS6usUNtmtv0E7bR3a20lp5dQ0Kd4if6Q1xnDW3ouLSGul5a4CTtrJ7o79awb6AGdZHjD8Vs7RwY8XVx/Yp/EDuJ4R5yAffvROL8ZN8TTdNTZ3e6S0zu+Jzee7R5qfIjKpJtTvRT71OpPxeLVY1AKU+TnGVV1JHjWtFu5svppNr/Fs661XyFut19cLD01cvFj7xHeR96spmthPui1ziPc3Yt9cTffS735f7jtijC/dz6Z6bbenRKs07WVdFOfTFrTb4m/INy0DN+LEcdpku9qkSqkmWO7dzYvJ24ro7BJtsmZaK5Bz1wkNg3V1E0TEsvpoWhW1Xo4LW/+edoSHCvpiqsm4azRQLSn1uEQj3NFDSFOZ68EWxZqybUQ5hngNx6JZLnoPXTMjOc3OK4iPnL/xFy3BwX7jYTGWAK4MJzRHzqRX6tfvL5ouAc9kJPqqS0ozlbcijbmFOVIyXTJg5fky+YsTLw5O9DDLW3ZwOq454ktbrd31N9J5kFyc614+Ry/nusP+Um3fUDm4XCEqRZvz0AqYXWCYeZYXbPIW0gG6kRLeaeWQWOhzGVgim0eZPZx2Mz3u1IASPehU9KetvQI7LNR+kKIi9OejKbncP3c9a0PsWWzt99E/Ba1kRPFo6pxZ0710zIyaLRpvCYXpeaMGENj+WMOwzVrrzx4YvWk/JzLMjmI0wJBFi937Wsd4UAoEe0CWxYKXn2owP87QACw7yDCicU6dieVnAvqCglFkEVafO/+QHJh136YVdzri6jMK631S5XJ7lnCnXIhzJt+G+LdU7mZFTq/qcDurNgMZRF2QEYn3Zln8LaARhFsj41Ygk3FaC8wlSf9FZESakcHUQsoYM8Yny2Jqi49XgU/Gby0+3rC3bJ1Cq5soNIs7L8FLikBHHww/SZI8zvzYkBql+bONl7YINgP2+GQIV9DK2jrcH1HHpLpNzW82go9GMDk3FUAmMLLVRMI6xgIiItv1obfsDabjyWxoLelZ3TH7P6d2DtPgoC091ZSuFhoaZclik9mL8fLFePJmPL6h/xss9duUjUL9aV6/BWqUj1v6e8hku6W/O+CnFaWEm5bh/zN4qR4iZOkGUdx3RCOTbukpqkKaArcfKqqpNQIU0kwrenFdrrJGXilc5s030rNTQtCiN3yZ+pmi3rN1W9N14BaKz2i3HlD9Cr3n3NYq3e9rHZg2iu8NYjZaqA04jGprZHAFMpzJWlhw3hdYcef1fceAgiZWmmVyGiMikjWb+p7sIOIKOBh/tWjEPaVhcsbe3tlJFKdswTrED3AXbW0/ZiwW1q0FqU49ma4WmiVZGqukNtWy0kZbL5zk/Dctnuwr9M2Er9X3xYl+tCG2eGCY52eMcylvj0HL9ikbwGcvJPiDCow467UgBZcmnzFu7qR0B9Yh4FVtd+DcsZIthkjRIDt7SBuj91OaNPbZZ6x2p/5GaZgNDlLR9lYx6nmkKPBtOl5wY6C1mEl0HjpgodUoc84YJ54/d6H/ASpN7uddBaZUplos312+IktbYquphmlmxghmyWZZsUOFpLz9WlkPfa+1HlC4O6Nd2e9+esN8+uiGamp0A+9GWXFYR/71nMBBULh3jTSA6P3rEUdGs30jg8ioNK9v89bM4BOSNCGYnk+HthshtIk8c6xFRpqxpRTy0rKixwpxJV5q5T1+gHQtykCI0wcSZ32AGB6kPCCPx7lwpN7mjcHryVUhxm90ygqfHyuMD6M02AYeYkXq0ZHLtrGYQht198Gzgez28eliV15ossmnh1UqKWBTq5Ew10ihlvNmH+Nuk06aCGSWJmasicpksToNnCrgYQzWwnK6OI2O6qeycXbSqMOkTZU3T1yhoaN0/UBN43+Hor20LjLsIDC4Eel1JjxAxdtCtV74ERmCbViBOrd2Oy6KFg/nvo2S1oztXUpda1wwoK03rRdckK3VyOQoObvJiQwoUgetZdbOK3w4tosqgkSFHfod975EnBOWdVW1+iux8XF2tAFpLw7cDyB4TtlIcomRjyQ6TwI0zStso3I1uzCrQLNaykP/T2l0+paQp4Orki1UYSeMd3qoROFHf61UUm1yjJTZ/m1Twp85/pAIY5TTZww8z+rLCqUVItOWa6VMhZSkKF1FLaQ6NXnDQhqUkgSVL8laxXwocWoohTosUVIHGiYDWRNq8OShNrABzctXGSgZM1PUBauVyqISN2lLMBjFOxKbkiotLfKIyBSlzZyBnsJcKK2oTwRrnCCoaeY0WuI7b93VURamu1pKh9k0SLXuGbXU+Obx5MVk/WZyfbOY3Yzn/9SBlx+rPyCiQkBvg/g2hZZGS5PA8a7pGKr+Xl1mC6V7b4CegRWot1jk91TQS85G/LaKy1IqKDPqJQMX2oj2pCJDURKmKIThTcmXnobJTYXfWi6yt9+y6wkLFx6rym6WYlii0db9dLpqST0CU72i1XAGOm9ecwF2jTXUKj6jqTkLffkaGLudWYULnh9ZSHLOninJk9YLJe/4Hc/UCuADtVCse2Dlr4VHn2imJQ6jqtuEVWSAq1X4I83MFkSadU7nrA3qLrTbn8YLZKc93jQEnv3Y1DVYISOMeFFDsXjr0tOdLnswh/kNNk1yZBNsk0QjaNb0CLohLtvK3KKuc/EYH6N7fHG2miZltpiwVkqKaT2AajgVd0cY4GoWaunQME7QaUe2W6YOneEo+pEnP1mb5QfC3VU8qbf8aLgkOsdeqfe39fSMSt+enlFt9vQJTsUKB03+bFpzkIqWMnHP2nUWbVnNPUZimUVMNEjoEuxCeOQK+YDa1EVxpSrokDdCKXfvGsUri0poatvQrl3oNzN+koi17AI9abVi9UyUvUAh1aJ1x1+W+WMDbnYTlMHISS9iMRk5xbU8vY2c9BKaipHTeKEpB8TwlhgTSOB+GDNMqq8w6QoKUKxEpf0VJGzrp3uyX/HGAynd7+W5ZF7Vdx+4wW7D7yHP7y9G8N9l83dZur6m8UY3LnGs4LKlQ3Gd+uDIT2UmcJRuoCpZUUFHpTssixFOg0R9M199zGdAb+QQtLhS9BdhVUkqWQU3BlU3jdd4/OuMDkFayg5WG4a4qxTXMAHoIeYrlbB4Xgo8zrxh7Us8UIc9cE+7BqbEKtnTF7OnNTZ2JPnavSiy6EWWNUtG8CM9A9D+5/H6/tuv/33vBS8Dd+pPvIfb22YCfLOX1PfxPT5Ep+Yq+SOx5Pv76PMHpAdc2ZoHTZWYl55LVU+rjzsot/QpAk0X4GkTlAtOJI+kcaq7Zo4aVP6UzqGkTssFceC1ZXbpP0fKVDfs50K9GBGpnSzgVDwjtbaQWKKEmw/rruuorMxs/21fyxXcc3VzCOoKRmeHUNBOzcOPJHdBh5NyifbOQeROIjye+q5SoJ/nH0kgm95JeUGXlFVa6JJsBO7YHTk8/xv7AL+MrJ8+oF2cumRc5HFT0UovGhskeYeWbCGXmGOVNcrgaqzR2K4uvtvoAeN3h/eb7Lm258ZH4GpqEI5fkzncrf1ceozNc1WffJW8EHQ6sM2H4+TO/g4l6YvvI59MmLHPtqgAi4YVgxQRAzohIpwXnJC6cPBQwFwn6pXOXmBlZfBAG7OjhxDz0JxoW7fYWa5DLEKtYaQUDdjqoxM7SvQaIufBw9B6fGppH1KK8gZ5aXCvib9Vd1As3fYUUTJSCSgarU6izjmsPTrx0O257Wq6Lj1FFCTE9JpvYtBV6gJMIfW6sFLVkFssM2t+1okNHpwEnHoqHb82BM0nvo72/9BrNh+5cBeQCvWNYCqw1wTPIUhMbOcZexL2G4KCGIEH8KTsV+Qflx5Q2myCkFjuhjI1tI6YTKn8H0jAfWvH5xBqyzdpJ+cTjgcyTTaEXTkZnZxCeTylNbJV/1KEkE2S2Vah6kpOgfA+WU14tGGucTKQ/XwqqbeSZVa8PZdFFrI9EPP7wotWZLrMcAF+8gpFTuY2I1lqw+FPRxdLg/WUPpEoFWWBKxHPcWktUEfFOQThOzIQ7wJ6NkDVNKek0N+nx0PbBqCOrgVBq8t+myDC99y4Qqy7x/HT2y+zx8DbP77+69++f+3E0Km04W7vke4Hn9qxCLiIJDzbvd8JW0aaiXfx7MwreRKOm3LdbNkBez0EvTxDoteZ/Z93Dv/RbIPB2v/8XWlgUDFl/yCTJWkUF5eO9DmKC5rmo7h/yMaf0nUofPzJL/nWjuCD5/s0PSU3oxHkPTJQ4MDhiOXeVpxRGD3XDq/P85vCZ7P1+nr2/Mo4HlCF18YDtfLyElIMUDGmGw0i/oEPH4K+dfcudk7hrnw+o7e7/jtucxOZxW3+1R2sfklCHqIzcobHmvOTAOgeo6bpD4q9fXDfcEyNsCACAInziCif8gCZfNptu4FNxniHJvqJYX6zgQXrzYZYQzS0mB9n84fi/hclQglLLNoP7udst2zr35RMXgGNi7/1ZZarn4WitpLV2cINSdFA/sB5iMnkpJKWK4ht6JjS8niwdikmRg+kC+J3A1VH2tJiYIS/yfmIQQK2ean2X4FSyfRIl4b7+JwgyRYZoXhYcHqk0DmEyLHiewNa+b7qnwAFOz2eykOVwr5SKMegRe1qqSX/NJf9k964ZULSaAg37vQ5En5DbzY3HQXh0p9sXMhuAOLjH7uM/SOMffxG9+vp/HraYtyTRdWOeRXSZd81j3dVc9i9MWiyMTB+bq19TscJwNQn1cU/geIdBmGozIdh4M66g9l0usd+5CV/vnGYotjnSCwRbDsW8z2FFofzTM8Rj/o4mSdJtunngF4FbpuKo3pGIBo8KobfuqaZDhZOT+Vf6p+0CDPEYEf3tU7nhB68AN9EXBP+DR1PB0yfWKjs0Ys7SG6sO1ZLeUSYjXx/I5WB9SPyvlQsPpqUosvpWByaleaJBbGNHpeYlcyzkviRbM5H/nTEnLfiAxJ1JPKil1gle9aO2fPNaoy0ZI/8UTbF5wwam+FmiwJoobEPz0t9uMoSC/pSp/uN3YuKU3UOv/HEpibf51Prq3MYvrcgShtaYfRvrRxVKdlwBG1UJht2XN1g4205f+cSP0WxaLX2IBIBIf2rx6BLIttmH4FWkJbBS5eaS6ftspvcP0ZAJm5oH01m6/F61iYo00BRsT/RLL1c8JL9iYrg7o8OeoRk+ucJtljjK+4SyETbDtuGmwTsxv3KywleCVM1Xy8uOKHSjLHikQbl0EGTER357yEmeLMP6MV3yBKWR7/petRFwCzWavl6u7kDKxK4MDVLIVYlbCdXGXwQTxm0dJRB0VMUcrq5lxTPWPtI/hEekbFa+p639Ny5e71ejsezuYvXE3eFF2vke9P1Ek0mC4SuV89N55VeBylVQwCobi0vpylvglbtgNJqsP/Z1SEEDf4g0GwVBtumbFajJU99aCY6Az8Zdfto/9Xz8Ilu/KDT6cDziUb3oS/sARiyn2r6GFEIZbogaqclRCkXXYSYfxYUKEdNMDC2L8OhcLLjeEJxAON7r2c7BNVWzuYkd0JOwJE4zDoi/+BjuRy4GmCE1pMJnqDparxdLjD23OVitVhgD83W/nq99ly89dwxWjmOU0Gps9My9QUnxRPk0FklH1B9SOQiNSgWe2KHRI6nAn1uywkJPk7yMnWp8ie88v9w93X6f+cFIPTguv4bUEsDBBQAAAAIANqZMkMZQq1OWgYAADgsAAASAAAAdGVzdHMvdGVzdF9vcmdzLnB51VpLj9s2EL77V6i5UEZd2ZvmkqB7aZC2l6ZAsDktFgItcW0mkqiK1KabYP97Z0i9JetleZEIWNtrDoffNxySM0PzMBaJsg5cHdP9r6v7RIRWKLzPFjcNMVXecWP9DV+ZRsWkkk6qeCBzmd+pZG/hb2MFgvqr1coLqJTWDUjeMBraefv6zcqCx2f3luvyiCvXtSUL7jdWyNRR+O9pyK5JkkbYk2TS+Mg0Zomd69tY2GntFDrK3uuyC4g4CqSt65ycI5KDdDQixGkTbCbrRh8ac+jy4qhULN9st/CvY/o7ngi32EVur17vdrvXL1YFHcnUx1hzGURtRMcCLVodJdxPUkT22ihyDutyeJwTN2Fx0oQA08BggoomrQowKJoo+QVGs8lvN9oKDWXs35QGXD02FaoJ5swGrxC8tlSpyeE+KCP3QpDTXX7CLnVo1PfdkIV71mKruyVMxiKSzCZkY73cvWpYOk6VXczzzxbZGlVyizgasp6I7gHiN+JTRckb672I2NOq4S4a8QfKJZN2bpk/ufor3b9LEpFsSjJOiXxjeK8byiKhXI8GAfObDhKIA4/s07at6LZJBxVc0q7pxME6dnO+sTt4iVjEpKhI6tfnsCiOA/bMhlvUoNoipIvIkD19FjDF5liz0hMN2mQ0xTpG1YI2ybBNtAXzuRqwhN460Bq7pm/h8VMxRq83fSMRnAHwgbwVQUD3oJHAFhxyKQEYfk/9kEfk6RyXQzYb7bhNww6aTxtC97S4tP6ggWQ9UzOgp8LRsJo4K0cqZ6/4A+tb8aeBF2POWlNcjt73Xw1Dzvf9FMbrBV0OS4zsickbhK9YkmmSAwz0OBtLd7m+SdJmXHOKTAcPLnkEx33kMTti/6lKQFHDs4awInd8HF06H+F16gShRu0KA/z07E/hp5VOZ2ewALeiX/vJWWtZ5wO+ciWSx4ncExaKB3ZGYNLY93t9dPKmVUPXvXudcSzUuWerZJb55m5IXcbr3pPmms5EGZcx3KQtsZJc/ZMcaMS/UmxbMsmq6h2fbEE60EwOagBNkgDfT0y5UNM2Uxs/jk+6ulh0Jl9DwHOhhVIw0NTIwKqjWa1UDDC76jFuBZMIBXC30YHV4scKSVgcWviWoBpyVzSIXtrYpeW7wkEdmMmRqjCZlqONXH/Iqpoz4eobF3qhYU3pwhH7T8xT9kmeED/ps0Jn9nC4U2lxVeLFhytYqSpNIveBBimwt7CHfXu3rolVl3cduknJYKQ97Ywf8MlKAFhosdetFgcjW0yXUUO7tRyqiRRP11FkUM9MQr14jJJsh3QFHNWucftKAjwuDZ3oNeWO/YP5jDkOnsFjcKBL+0ubTA+WSb7iJYyqUSFDFm6+3F01s0shTwSaNbE8z6whL5LOVmxZZKFm3Ha7z6SX8FhlSSn+2yV2FCGL6UGr6mqPE/4AFoBm7RtdGiDfguQ3ZRKEcGZPyHzhn3m/hC++RHiA9yiiKZxAGCT0AMLpdrkPElcdrbDe+CESCYOFFcaB4dak/rQqP83eHyq+s1BQV8lEukYpnDCbbSuzxPXVcyQnHi4lGiycncTpPuCeu0SSoq1VA7lkrN3WPi9JyeZT5YX5EfWs4R0nO0OW2XHMuO129B8XhXD93t51bSZFnQxFSJzKI7nYulP6PuTS607PUz4VFX7Xht2ohVfccSxf88RMaHbJc6xj7HkQ8OjgspDyACdWn8RtOUi0Yho99kgMaQiER/MT7YRI7qXt5kWcC20+pSab97Hnl2MLFXmEc/Ltu691IpXFSp3SrR0Oi9SYB46bDi51DBVKtSB3fGmTPbBIDdU2tdCk4qZRO7a6qblV0FQrt+Yr5x2+zandfh/V6YLh8sXpug8tzbOufTLdBrhxZevvuFhfkyru6mKaYMADp1X1Gm6UgS5fzp8IxezsF8ZTmO82t92dNqQu5uGdZhCQp1noseezXI6UxZJxcfN4X8uj59lBQwltyVC0w+aGfnUrmxtbmn2Cfz3ntqn1m43u07Xlg+h5Z4RoTejTL9K7tJx15TQ/zLrUjR1SvNiFXUv5maHe0MXddM4/ZN22dpN34dJtZaxLVm97KbUGaiGbVMsdW1I5dRyYGXfTJMBVmP1I85z1ZyoUu6k7k+bxy5U2EfruhHyyq5Ch1V0tcGSc+jlnAz/e6428wP0fUEsDBBQAAAAIAG2jI0PL4EsAfAEAAEEFAAATAAAAdGVzdHMvdGVzdF91dGlscy5weaVTy27CMBC8+yvcE4maINsBKkXi0ooeq6qKeugFmcYBS86jtkPVv+8amjRAQEGskkN2Z2dnx3Gmyxyvpd3Uq2hcW6kMlnlVaoutzIWxPK+WFdc8F1ZolDm0hbQ5xD5yI57g3QNSboXrbqrNN0LoU3FjcAIMSUP/2rB7DYsfI4QhUpHthi0bAuMZoTIo479oNeJ5O8VjhJIAzwJM4WHwTgMcEb9tchxjkCG0XXzVXHkj1xGSWUhoQllMp3FERkGfAV6b8/0jjVuuZLpTaqyWxfpEKuQBY0Cp1yZddKaPgnOVjq6LkAlAxpRFjN4TFpPh8HAwnFE6/egA/43NSt05EVm0O8cHrCf+tz3Xei6Lm1xnIYXVJj1Ls/3S27vjWibN5pojuIx9IGewt3j6xqWBm/LOVS0WWpe619VO8tjVoizEcsOLVPUY2hmU6Fp4fQf2AgQB5kqV3zuyuUP6WBrsKr0XcajoPfXB6i46s57BG3HuR7E/1aDVhsqhPvoFUEsDBBQAAAAIANqZMkMW9uuPlQcAAJAnAAAUAAAAdGVzdHMvdGVzdF9pc3N1ZXMucHnFWl9z2zYMf/enYN0HyjdXjpNu3XzLHtrrtt5tfdh1L/P5XEWiEzaSqIpU0qyX7z6QFCVSf2xLyVLX7VkSAAI/gAABlSYZywW6pOKquDib7HKWmAufcl4Q7ocsSUgqENWk7+TdN/peJz25aVK/vemjjYMLEhvaP+RFJ1lCY8IFS4kh/dPc6CJ31p6UF1EgiKBJySCAm/uFoHFF/Trg5A38naOYBZEmS1h4bZ5ngQivJpNJGAecow8gQOnrGb7ZaoLgE5Ed2m5pSsV263ES7+YoIeKKRe+DhJzjvEglKy6p5YcXGcm9SuAcSa6ZXwmp2Wc1D5D4MTrXmHlSYw8rMPGsQRVkFOi86ZUQGV8tFnDta7ykZxc5yRhfcHqZBDc0L/jpy4VBM7tbTCtZ9meqVuKL18XldDapzOZE/J0pmw9bp2l7DdKXvmDbT5yl3kyz+ZfWatKFW/K5CGIq7pqrHoQGfEjAqWbZcxTXvP720TEziN2yVOzol2mfIs+kIq6JsFjeNK9kqh758UzagH9WNqP115P7zS/Y37E8CYQBM1UR5Arnok+2eVKKtmQ0REQkJoK03C7pc8IzlnLiYTxHpycvG+62OGWUlrrVgasU+SugnHDP4PsbFb8XF2/znOVzo5SW02RPmdiGQRyTqBVm7JKmXo8LjFZNpIpMZpADZuowk7aeNNZU2cMy1XkYsnQH8fYVwxIBXsEPiTP8wCm5VT/nCIcsZrm8F+zkH3x/PxYvbcocvYf8qf9tYrcfoRIKix1Rjn4NYk72uGC/MNvS0sAGSDIXbzUvBbQHSXx+tEgrvVc15jFTfCX0+DSfQGjUuuh8VhXEcen+mqQpLJcTKv6FW58LWQ77kn21Fl8sfxyQ71umduZ81zp963DePyopJmVSrMSj9c3SP/FPIDcOz4OlNC2hyf+tk2DyqEkwqZPgMVuwRqEgW/BaAwXpSXSOmq6FcMzurBXk3TXWIvAGGPDpyfL0BXzPlh9Oz1bf/wTff3BF7waO5G4ZQzlNuQjSkHhgkpI8rw6CvvnRtIIKkm91vT4y3SuW8w950dy6l0RUnkXfIbzQYrHlJlpDYy+8zxY6rw68EJ1FCCdZHRHvQEAgWL6P2UvJF+HRGWwtdVgY6OKjymCdnUaXQicVVXWxlaCwoCJWlXLHGJ63n4PVQj0PY8ZJ1EUSER7mNJP2SsIVz4L8GgxYdRLr+Fyp6Dzrj075uZ/Uv0buartUDynSiV2kx5fnSoyGt0bxAEwuZp1IDSrFqpN7zDKsBB5fguUm1Tro8qv6zCfptHRHu1gOqLuObZ01tzZHX47vsw4CY0cTlQWU1rw+jYB92UP7TNKOqPq0rPpKLbTuwRs9X7ZPAUEUDUv8kNz2ZH9wd1/6d+iax3+8npL0SmZrOWOZbvDI9EH92qC5zpDjzwdajClWtmgPW9rilutLRnDnerOnLmmy9clmXF2CR/SydfQYiJaS0YOUwaO6ewuS9FDIZxefSCi8cuNhElHAAWxEJFo525pEEESiyNPtTRBDdJ4jGTYOibMJSpX6svh+N/ZKw/aewC5DWnu4quJ+WiQXJEd013qEwGdEVSdHShUsa3l8jmdox3IUI5oaAZpg0wRHq1uaAnU2JFsJs9fKjSZvyepf+e+CRXcAv2Nd9VAdBOYobRcrrYtzuxldquw9LLiUiOHb72nDTdvpRkRh7XkVP4Ro7ax4MA90OGD8f4RUFU0qO+iI0tPjp4iqoh1I1siwM2b0iPxAJVEF09A2C4PdPqxXL5YbWURKWr54+eoH+NqJKqyRNqvjiqrhcSv1hnNnqN8iVbU1nEnLc8EVdKa8vulW/FC2DnMCII6CSBbd5cFCa0A6VGq/Yule1R+UbznU9djZGuDuWAa7s7eQNEDu5K8Tv7MfDp/eLe92C3btnfVFwFHelAnoGB8+xmC06vdScov0xXhnScWHuUeZOr6fKgVYyg+EmnJdi6K+aZVepSZrmlfm+GgbCADWiarjRagUKCc0LCMpPiygxqtj0mK26sAscPzMxcoFB+ciRndHsdnsYftDSVNvRY8zUpEOMlELtw2U7mlZVOrQbs8sHMjcemfbXQpIZylQDEPjOScJuyG6kXiE6anVZC3U7H/kOJX6tmKQxTuFjRuuurI9I3oMbLD2vn51qLG1uAc0PxAhcRCW1nF9Ls1j91yax81z6do9tHXiZVmrWvwGDwjtO+itNx3vDywtHzrmzYqxfT50mtM5ml4E+UPafNeaOarsHRCqvY1+A6q1GQWCznjzeN1+0z+ytDw0qqWMQ/X94d3J8AZJsT9tZ1cC6rZ237JNh4ZKHx90K3W4B4fqQvIsp+1GvDWAtGjlLLJ5hJIUy7NXTTHTaT2D1fGEOEvUKyJIYQptjj5mRRx/lC7JoAIitpNfcUXQxyuRxNsih4cSRf1/j4w484rV71ysc4gqNWxPmBXwb+Uw1gWb+mZ5d75RzaKtOXTfBFpapgbNvUuqZMA4FSwHD3pTW5JMY7WwqYS9NcFXR4SuMf4xE23FvHesTW4MkHohJyL06eTYuTY5QpKhtTeaVOEc1Y4nqhGnEHVy1I13wTXpPi8D4zPJ+B9QSwMEFAAAAAgA2pkyQ8FaZVzsBAAAARkAABMAAAB0ZXN0cy90ZXN0X2dpc3RzLnB5tVndb9s2EH/XX8F0D5Q6Q07ipOuCesBWrO1e+tB2T0FgKBJlcZVFTaTWBUX+9/FI6sOUZEuyJyAJRd4d7373QepCdzkrBOJP3KEx/PH/IQWnLNvQLGboDXJXC3Tp3TlIPlQTlxkVgnBxjQJevzgk5aSXzDHvWyqS8nHlxAXbVS+oXuOC6xVg4X4paMqrVfe3gJO38meBUhZEnuM4YRpwjr5I2veStSYwikYkRhtpARWbjctJGi/QjoiERR+DHVnjosyAExtqeHiZk8Kt5C0QMHl+LaPh9hoWSeKD4mit9feVKqChi2ECexZxkFNJixMhcn63XMpXX+Pgh2y3VDKWq9dXq9evrrFTG8KJ+DNXVhzVV5MeVbGe9gXb/MVZ5noLQ+s1+4IjNlwU9tYSeAIhY1aUIA+t1/szPo1sWQXJh4TVS400/AZ0RfffL58ffsF+zIpd0FLdFh4WJBBkI4HckUx04AK2gvCcZZxo71SkeIGuL68szHJWwQQ++xHhpaHm2KIMWRZLdL/jKBABvpODRxY9yQF+DAr8/OxYIaDs/RRQTrhrkkA6RXwoH38vClYsGp/5+yZZ+6ZsS6XfnI5bBtjdjywjHqIcwWA0F8ZdHkWcMYlgkKYkasWbkUY5zbgIspC4w4IBHhl2OizNrArPt7327lj4daPly+rEXdv/EUmJIEf8rnx9Y0lucYK3B/x7iiP1Dp4zAsE93w46yag8ESIS0TGJoUC6tBMiEGFyDKN6Fp46IfZm9QrhYUFz0BISBV7xoksW05RwlVIwulIjuZWApJVsMWPI5FibrXk7xWWAle2wo25RAKt8eRfI0/CAu4/IePmyxvVe4/gw0deyXH4d6+vjxQ+kDVa+U2AGwSfnRW+5UQDU9eW9OjEmIUj5Ji8fUxoOnX/NSVdT6mOwXtCzXblS2aKQ5s0oVltiuQZkYRvCKS5o9DljgWoZORV2QYrqkODTjnHFu/5SlJ1Lmg3a0cM8D4pgB7UHDr5WgIdyNSP/tq9Q+wp73dxuhWd4vvOu3paOgymRv1jxNBkmOgOl5ABKVIM0jFFSYWQ0Vhh90OM5GKlTxEZIQQIrA5pqpq6eLb52omv6+8uHA3bVrJV9MFbGvZODzk7qRlzzyKu9TCfBv8lcds3NGNhwv8lQrnuDYq8wfBYs/0PSB4DeQuGwVxgaUV73Kh/L+Erm3ibakXboMKy2UWdqPT0tCAC4OZU2L/srbW8qnHIGgtwzll5l78REKbO5KFmX5/8VKK3lGaEyZo8D6wf0K0csl5cjEiHBkPqeodkWBRmS28v0+YZ0V0LmDBKyeu1jbMqZDXKiv84bpQxdu5hMSatE1aPevGoXWdU0GFFn+1lhpw1wz7lhtcSqIgcC++qb0aVT4sjfZZBS0UFyO6YPY8cA1PFtI8KnkZRyNUx+AeR2+8mc4OfuQhmx45tR5lZR49Bzy2jBUt+c+ttULw62qW5W11ern2/qm9Ty1e3tT9e3Lya1rSwDe7tXY2xqE7ZaWp0vyqOP9vPYgAtPALodWLWJaxQ2wg+FYsVxARwzmmxVSwkEYGybO65NsNc/m9Uu6GmZwd+5PbPKCVM/3dt8TZds1hf8nihtzfGaaBUTU/bOXUyM2PHFJGm3jXvOiHaAVx8XnXviUOokMyT3AZ6YEp40kqt/YECnPWYMD/NdAN9/UEsDBBQAAAAIANqZMkNhqRrc5AIAABILAAARAAAAdGVzdHMvdGVzdF9naXQucHmtVk1v2kAQvfMrfFtbsuwEiCCouTRqm1MrReQUVdZij2ET22vtrFNVVf57Z/2FWUggEZYQNvPmzZvZmcEiL6XSzlroTbWajFIlc0cDagwqLTJ0RGN3v3KEW/r4TiZ54o1GozjjiM6SsLcyz4XuId5i5NCVQOpEkSiEjiIXIUt9Jwe9kclPnsMNU1VhfFmLNhdWJSh3y+g7xs0Lepatv7d1IkgQ13jnpssjoO+glWX0uqxBMI+Ud+JMmpGCUtXqBjooL6Cce1NL7wWoudL4h2K47Mtty2gR8oo0qohj9EAsNnVFGgeUgYX2bA0CRUFRixjcyu+zq8iGgfGwoze0Gk4WsO/wGQ2DZriHFBQY8Bn7oSc9vSUUhdvth62ypiUIYfphx4uXgrxcttG6xEUY0nPQcJhKhdQSEkMU65y/CFXheBp2Ecq/Ieu5hhcjBDmmGG6AJxjmHKncw75B0A+lfVDvJN/gP5BvBwi0jJ5QFq7XUAXrT40DMVmz0Idie92z4xbI1RPE9iT9oNH9VRv2pimBDDTs1aahw1IWCC5jvjO+mFr1GHiaU22Jtwddq7vnAgHdrmok5K5afVNKKr+vastkExSSpo1nGST2SWRyLYr9MbL4bK9cxs9RAxWUlmtXoioTfrQSpqVNMS4s8pLreDOoxY4xloVpnX873csoGmcL69faghtjYCl/BnPr7yNSqagVFs5SVbBrfh1t7z59IE0p/EYCO9/BtCXeZlYncNo5HTgM8p8O2/LEcLRvne88Qzgad7B1lwrOunAN3+m7VhPaWj61oGbPGut5F63ZqG8sWxMMw9nVajKdTcbXMEnj+YzHs/n8+irmlyu4mic8Tel5NuaXH9jCw4ocXMBvFaE3nrJ940rhsSGv63loytegj804K7niOZrBZk008WImlV2y18FE6u4todbdyXrvzUD7e5kf/iuwl/+y7o6TZ+xA5Frk48XvXQV3HDdvKOgcLCXGg5T8B1BLAwQUAAAACADamTJDK4aMZdUGAAAQIwAAEwAAAHRlc3RzL3Rlc3RfdXNlcnMucHnlWl9v2zYQf/enYAMEsltHdhK3a4N6KDZ0bVGkGNr0YQgCgZZom40saiSVNBv63XdHSZZMSbHkOH2ZgcSReHe8u9/x/kjhq1hITdSd6vE5frk3TCouIo9Hc0Fek/7pkIwHZz0CH54SJxHXmil9QqhaX/RYqFgtWS+7XnC9TGanvbkUK7IS/nVOGFPtL9PbSK/cRPNQ5av936hiv8PPkISCBoOUMKCaab5iOVV+3ev1/JAqRS5A0kd2t+bOTAjYnHhgG9ee11csnA/JiumlCD7RFZs6MomQ0cmo8aOSmMl+Jm5IkGfgrkUUzIOCA0jca3ZHprnNbqLAqy7qgzb0HVh1BhYHjTlwHCy1jtXZaASXbsru+mI1QgkjYFOj4/FBb22LYvprbAzZpnJK2VLLfNHVwvumRNQfpGLcxaDYG8Hy2N8JDbm+s3W4bim3UAhQYxiKa72m5LoQ5/KAPJuS40byJ0i+qZvS0lYr58pWkHOAO60Vgx+bWLK4RO0qTaVWt2Bb33n9FSjIR0TT2jtgIdOsggxKkUzFIlKs7zhDcjKeWJiUODEmMsFFmBilPlOumOrnHn7H9ftk9lZKIYeFLakkW0AktOfTMGSBHQ2hWPCo34hIrpnFhUfZS0khb6i+7YkkxsO5xRN4INAZY0u4yQ0lX2ws+iKaQ5j9u76LHwd2o86Zddes4CZnxJnTa2b2q1JorkOGNJ/YLUkvNql+9Iq/dsYl9ciQfBJR9tvGKEeiEYrMqSUJhCvyB4Uk3ALtBmlPn67depm68Wo71qV8+2dIo30mXJTXPuPGQF1JOkYlK0Ai4DVxIJkNr6Ni6uPiZDy2VnwRhnQmJNVCKqA4tgliyW/Aix6kC4EEJyWCH/ahaJGa0J4iN+GVi5o3Z6c1g/MazSaXaODVr04t7EYeVx7SWDBiTtsnjCivPYyIWwVGo1JaOvHGDrVTjRRfrOgNl4k6mbSvoGXla0tos77r5boqmsuArmtJFdW6TI84DyGTMV8ErOzUjV0NGZlaN9yUCxyl50cvK3VJMkBcLW2DDw4OLpaQQRQ2UyKlVQTyBuERFLzIZwpvZ9xkLiRZCBFAEFCVSOYC/z1F7rRS5BZMN2V1YwkEo/ZWIuBzzgKw0b7O+z3Ib7d9rMlyjpf9zSN5SIfkMCCHM3L4Fzl8f3Z4fnb4hbw7vyjORN3mTNMF7JF9OS8mk9nz2fj4+XP2YjKe0Fe+P5kFr4KXs2PKfjkdO0WaZt9j5msWeEtGAwiEanX6MD86z8w4+sIjk2w2jCsljV6Nbjl+FzKxT46EXgxgyypRlvW9tFF59/bCGa7PSrXyNX0yO6a2Ye0lgBbiFsIu4BIkqGmqeAvIsap1cyxyHJ1jxwBORfT+h64szp1JlHU91YbxHZu5FnULxadlqJxxK1WoqFsFQ9pOX5b5zj5AJftdyIAqX2Ax29SHBoHHVpSH+BcYpGr7zJa9mXFMRSIk4rkQzu5tNIZNOuS6YvYNkOtXiwVsUtmYKWeAI3bclP+rxmealsljK4gF5Jw0ki8N9ZUNcY0eW5p3Q61MrB0Picc1k9OaQwVtUZb0U/u9RIbkGTGBOspkdOnwncsDMODNjEqs8gdXTnPqfFAAMAiBy6vu+NecujrfGhhyK9p03BtopTPZns9AndCfdQzq9t56Emq9sI/DUK/NQ8f6R4r/vYR/vcW7nYD8ZnnwuGeTBx4FmGZglS8ixgDY7RhNmrvSTYDMRDeiM38Ee43yPTYnCqdhWDfmWpo5IMoxoT53mub2FsbOBfYDPFrsEo7lBhxtHK2lja5ZFMF0JhnX/2wzq9DBsdi6WQMlw2M3LNJbaw0SpW3NPaWmYl0qu8YarvIBpx+x77o0hJV1GsDklp+b9Jb7Fr/amblNrVGczELul5x2jyopbWr0Ll5OEYOEu8XRRfvYxc9r6d1dXShW9nZRG3Y3dvsReYixIH1XY1Gx/Rkr5OInnKERbKNGVitganu11HzRIv4A4ilqbT3GqPNKyQLzTLNVxWnn8JLotC8Y3Dd37X7WNyGBOY3xG2g0HhMXa5PuwWhr+Vi+aW1Cu4Roq/3QzIgvdmC43gISNgPdMcpkd8cmV6odJqZTcT/jb66FvNvJDclM+ZLHKcmjOKO8ww4u2VDw5zkG3762fY3VxR0ot7sXjDbV4vGRdbWt1fu5xodJ6Qs6554n751mmpq3dvnrmvKDoLp3d2aYQEJOoze+gCGDusp3a2lnMKEgKaoNWrPvdBWHzKhslmpYllwyOjNvBxHUPb8WNLimSOxxzHrIe72N9ea5qcuexaizGYFN/0OQdHkPZCuCDxSTQtS9/z9g6J8g/X9QSwMEFAAAAAgA2pkyQ0ZxxoFHAwAACQ0AABQAAAB0ZXN0cy90ZXN0X2V2ZW50cy5weaVWS2+cMBC+76+gJ0BaWap6i5pL06jtpY2i5IQiRJZZ4sZggs2utlX/e8cvHuaxWxUpLJ7HN9+MZ+zQsuaNDAoqX9rnD5t9w8tAgpCCtJIyEVCj/5QJuMG/bcB4lhuztqJSmTqbB/xWNpvNZscyIbTg9gCVjJx7fLUJ8MlhH6QpRf80jQSw/TYoQb7w/HtWwnXYtJVyDa21ekRbQxN1gNtAecWkA+nd494HTQgcgmuXHS7QVxDDSSUShVoUxp4XRyej500RxpuOtQD5WGvK58kZ24v5WDWRPP0peBXFg7CqzCm8tRmj8uSHh3/MELcGcLs6OtcB9FiE5gj3fsn4nTIe08IK+YwUf0SZZER2vD4NKqKkiS7xkzPnPZXFSim3STpU0ErIrNpBhCERc9s540KQH02RVfRXJqlyHqfQQN34OVjYToUUcEtl1khxRNwo/HhrCuthMYoveapB+Ii2OV6yKmfQCMwumktv2znMPJ5DWmcntcupA52URUOSAalYbbjAeYU8cl7kFU5i2nBUpHX7zOhuoTZuf3s7A27FRjY6De4M3a82buSOjMG5oCPveFlSqd5uMgbRrRjr9zu03+GVHVfcLp46Yfxnxsev4DiU/V3rLmuSdLGf+k5T4QWxCnKPqxsHOE4w58dKM/Zyy5lOy6m7vDrBICdt66fTAedsLYmcJT3mJAGnIZ/th09/zxnjR5/8XnPHESmg35EWQw9Z+4Qt1H6N7T5xqAOqCliQR3xP2TWvcJhnp3Uw6pd1dhrqHDuLOimk6gBBJW9OPscCJ9JnWGiGStPx04sVfhqmWGNXJAZkwE2tBfmC7+nEixZU+05mTlPT6o6bWcXbYDKFWjM3hj79Pt5udeQSG2yQhBYI8k39nPGdGVTr7SZVoyyMqjaFw9xBtFyUMykbuP/MeUyzhPIZJrdYqSka3cUjaaHKNXpl4lAvGsm6ZayBt+lU1pqgUuMt/NbCoPeVcI1mj1mvMa2TMfyAr5ILcofve6NcoD03EfXC/XOgcLyk9YfQ5/jPNLChfq/DLTSuhAyhzY07IG4uTqXsWOuFGmR9HI7PRpTqfrm0eXTU1QsUr04d8Mn7D+0BhWf8NKXVU3bVXXNf6Ne/UEsDBBQAAAAIAG2jI0OcuQUE+wMAAC8NAAAQAAAAZ2l0aHViMy9hdXRocy5webVWTW/cNhC961eMnYO0wEbrJj4JVVCjRdtDkEPqnAxD4UqzXsaSKJOUF6jh/94hqQ9yV2l8cHTZ5XDmzczT8FHn5+fRHdf7fvs+Zb3eqyj3nyi63nMFjaj6GqEUrWa8VaD3CFfkLST/l2kuWhDbb1jqNIrOCTDaSdHACFthKSTTQirgTSekBokPPZeoii1TvCxM3jCE8mE9uf/F9d/99nchMYqismZKhcmT2WGVRRHQQ1VcU42Z9c6+hrX+Giw/fJ2LN6HXBwEs8KeONWtLVFCyFrbEwx7Le6yg5vcISmRDUvOwXyDPgb3zDWfWYC1XbQXEp+n/kdXYatBH4SmvHAL9OTKfjWZr/wcRWE3ZYa91l202FT5iLTqUqaMxLUWzeXy/EaabzRv78zboTL1lHZ8Ic38q3EFR8JbrokgU1ru1ZWMNCpWimPyTaA3NY2mqp4xJwKjxrXerdIIJAFZT6JsM/kAaKHrTbCt6bceKdV3NS0d80rIG19DLeg4y0Ck5QW7rSu9QJzGt4zU8PQfYn1H3cnFYtbjHNkS0pgDTWgg1jgPUK0ptygrDjYWix+IcgjGeAnz5/NFrtxX6GIosBbUcFDMa4xUISYg+4Cfa8wn0Wz2FPoFdgvzIlQaxA1XSPBkGaWbtizELEYIOPj6sM1HrN7dh6y1/6BFolAn7B7WaY+BB8orgLo7GoKDxHVkvtj2vK8MRjUMw5BSotEwG1FVQUcU0ak7vzkkAKVNHukTnkrd3cNjTSJyUCQdGQiCRIqs0rGewFkxTVeacTNt85/Uyu8XeQVpGcb1R/Z0pM1kG+Ykt9V31kpZmt8WWApTvtuSDrHw1Mi0MauShS3u+IQ7lHG6eLp5vP8TpTsiG6WQ6ngEiPkzqJogOeQo7DWHuPCbddQAtvhTgbBHA9eorrK+plqFj9bSsjRpqfX9bukjHFHSDosZj0kjn3cZwqH3qzB2w1ESxFaJG1jouCw/YnsDVGt5dXK7h8uLyJXW5zofGnVLkN7fEQVUV3lI2/soIVR7H62C06Bl1kfbCJr/YLAtNpvNlm3VMsoZucRI7lyuDRHTGi9XUFY1dzUpUCwdmEL0DHxobH/JUuJhgbi9MMkqsMB8W5ITVYvhEx/9ES2zE42k8nTTLUxjZ4sFah5tjWYmPEAzT30Hxb7Vjymc4N1XUg5moyH9f3vdESZSb++RP+rqZufymRLsgQQMpwUswN8fTeAllg8tz4DKguRk2i2GcO6H0PNlrI6Ysr+yEe5ePkb75dS7knncp/7x45RrmmVgowQ3DXMXk/MpF2LcvvPlYqMV+ZmTWhT6Hpm+ZbAp6jZr8okzQwjU0qa7ZX4X709hdyx6jEx1029F/UEsDBBQAAAAIAH2YPkNM4vwfzAUAAAsVAAARAAAAZ2l0aHViMy9ldmVudHMucHm1V1Fv2zYQfvevuKYPloFU7lZsD0JTLGjWLsC2BkGKPQSBTVt0zEUSFZGy4xX97zseKZqSZbsNNj/Y1t3x43fHu+Pp5ORkcC/0sp69ifmKF1oNzlqfweBmKRTkMq0zDnNZaCYKBXqJDxlTKuJqBBXPmOYpaAm/WpDBCQIPFpXMoYFHCJ4pEHkpKw0fhf6tnn2a/c3nejAYEJZdHIWqUTIYAH4Q7ga3TMgumZIhvKWfd1OQZBvDpQalq3qu64orYEUKS/zKuOWbMs0IrOJoUCDf2QZWgpHSQip4u9S6TMbjFKORyZJXseUfz2U+Xr0Z2yC9m04ISeG2QhYgFwRimcP51WVsad+sJdgVMGcFzEwE85JVuHcmHjgomTgHzYf/AGdnwH8MBS9IQJJz9EcvmQY8D/5YixXLTBR0ByMWqYXBPx3xi0bcxNT+SfkCJhNRCD2ZRIpni1NLGoPfrFc1hiKiGJ2CMRnFfoW19aatQ68Vr/yZf8aHfjNZ3XurT9U9K8Q/zATWW79M/NkbFHjb2iA2Mp8HeL4lnj+SEsU9nQuba1nFW2eQf0wyOCNS1oX4nutoSPLhaARiAbtiwBTm8KcseEgNM4trkfNeAuslL4gFocGaYS5U3NRLh5GTTvCEz6xkgtlcGuCQ4NYMWYYsPhfiseaA5+zSkRa19zC5Ebol0mEL43ehNLAsg1IqJWZY8npTYv0goqvsFhyeG+K1wtEOGxoMgzTqLAyPOuquavGyBW+4wJECxYMSK6E3rlLHxH/cpk04rTgYSRAJ2zZMekxKtskkSydOpMjeo5xiuM05602L7oWgvsCqDayRHZ2GA4rhyv7ZtipT0FiDwrUkgzvZ5sZLgIkRJcc8Dx1u++u2RnecF2GwnbIT8GvqkTCd6rrMeCTXBa9OTWJLJbASNpOC5Xw0nbY3Mvp2YI0kCCxmx9YQ3S6kpvTpSRGHZff3ktuh2Xh4F6syE4g/7vC+LFIxx/pQpu4w7BXF3qYP7lfWs0zMASsfd+7Un9O16FsZOhA0SlPdrlEGqW0vFRjaSwluv7z+evduGC9klbMgYW6TVz/dteD4o++60hDexfSVe2YtfAe3AAX/VoAXXYBflMbim+cYKZl6yAybAKWcigIsvC5sd1gxkTHTGpq0IlNzm3S3xXbO02i3hB74BqGDKAg1sZHuRhVRv+9E/co4xlZbFdiBkwRohlkL7Gt4BaemO89pYBEFvI5/3i5KLHOVwEzKDF69gpvKtFTX09x+Yn4KH5i5CCiaa6F4SLg3+pYmTjp0ZlixudDm2ww8Lj7O7dbFSAUXO8PmhrxG4XsrGriiapqLvSGsLmy8Tn/rdXeY5wFOtGtwSoU5CiamBqXxIsWuYJ6PO9BYNh5cuOde+o1xL3+vNA5cdAiE6uP0FzLL5PoQ+f7ppctXswp/e9k61V0zZ+wovoVl9cBXR0Mc5obt0L1cCY33cnWqJjEsSLSjPs74HrvEIb5GH7wHqP4kNla9PElhWH4M9mnEx9kJpWpukvwQRTLyHC/N0z6jbnGS8aHqpGW9nlmNcY1Aoq4idO65NR/Se1bRExfqhs8J4P8TjH6mOc9n25p7fn1bnF6STrVb343iOMuyzrKKPx4ucWPkiV7hwzW+API9lWOMcUghg17WLQPDPUCM9lh9syPHSqvlyjVfCb7+b+6yAOlZia05O0g8fEe9Qdvva8TPuVdwk/5bxSiM0zcB5UZ8qEnYYbwHkRT7Or9VHsI1/vTikmK3Oqz46JE0r1bRk8N2Vk+o3xkqcZMvZDR8T8OVSwWaE4dJZ+Q6dZb0Kt2YNNs55QXP+H6lmzM8fDN4OP0Hmi281o4aXlc9BBpzvQea87LMNnt2NTeeX2kuvEaO8HW+Z1HY8f1ifwuGRqqtpibv9H9QP/N6296c7opG20aXsXyWMnhKYDj0Br69eATf9nZtWqXcXRBwvqrVco/PpjDO0+3pmNJwqr+Ynvcs+zr4F1BLAwQUAAAACADamTJDDVfjmTAiAABruwAAEQAAAGdpdGh1YjMvZ2l0aHViLnB57T39c9s2sr/7r+CkP1C+yrSba++90dWdy7S5Nnft5U2Szs27JCNTEiyhoUgeSVlRM/7f334AIECCFCU718yrNa0jkcACWOwXFovFo0ePTpayWm1mf4z435NL53Ny8moly2CdLTaJCOZZWsUyLYNqJYI1fAu+l9UPm1lQirKUWRpks1/EvIpOTh4B4JPrIlsHv5TwXK7zrKiCxWadl/y4EP/eiLIq9SsFgV/qLsWbamVKPIEfWSF/jatWOXEj0hrUU/zlFlhKq6nv4Yf7WpYldEa/f4a/xgE9nOZxEa9Lt3gilvF8p4v/SL9UJf7xQuSZ/v5zKQq3OiBTJFZvEIPfZoVwS2XF0pR5Xizj1DvyAloyxbDZUlZZsXMLbaALphD2Zxz8XTTKLMQ8K2KoawriDMlClFOchXH9cxaXck4PXQhpVslrOadOGiCvVoWIFycnJ/MkLks12FE95tPJSQAfIJeX0DbMQZwkRF2aomR6nRVrAgpkhWVfrUQhghj+r7ZZsI13QI5ZkGRLKAtfsLKiyif/84yrTCb8L37sPuteQmWZmhLL4JKfjDaEqxx6vs2KxamnRJW9E+kl/fW9ZgBOISqVFcM6xgNxACsU9nVNFensmwOi3TniePivhE4A08/i+bttXCyA+9c5TMRMJrLawdt0LmAgEsYJk7ZDxMOcbOMySGlaADKBm+spVbPCMiLYwkgDpCJgVkU1ATGbqIBaI00W9O9CXAfTqUxlNZ2OSpFcjxm/l2FY44B+8GjCUNEVfspNLgpFcuMAa59GBtiH2xo18pqr11WpOlSIeDbpbwNjuphIoDoVCOJ0YTq1D1Y9gdZAgakLNVBrHACf6k8Va5B0dOEXotoUaRB+rVD9+sPF64u3t2+/CSPmolEbQj2EZu24Ci7ef7iYvL+t68sFd8vpL8yg8HRYwcOnTun31jT+IQYxZ9VBfHDhvzjyp64vsa3rLEmyrYKxXck5CKh0s54hQYsqXloQN0UCJM/jnm1kspjCk1GIxB+qui0UcGlsaaShQqWxkp3YwCW10uypJRp1f2Nba6kOy8UUwFp9BDr/XlS2rAviWbap3NrB1ZVcXF1FtciYEMOg3FMwJ8FIdWZxCn1OJShZeBVk18SBDrgaCo+6nAQTktKTK0fVBl87P7+5srttvpOavwz+kaXCpljo2kgNN/gmuHDJtWNqnF6WMEllVWggpw4A1ShDwB+KvpeiGgEoQMHji4vW7DrDGWE1JRawwwQS1LPgobTmUdjyp+ZfgDDPclFeYi2gxawSJI/wC44Kfzhd5888kcA8U8nCS/0qxRx66goxQPXzGdpeIF0aVEGCiLWHq/sCoCbrkYEFr9o0BDjmMdkk5CtkJFtPuQQsLIUQKJbl2M8YpwO0NuiHXbYBBQFEW6Gm4f6D5o7zHNVI5iJKRiIaByFacIAi5ltfvxDTbmP4RPFRD/G7EHCuXChIpBqR2EOlq3wAzGy6EB5fBPMVFJqDPAmeI/WpksE7sUPYznhJIiE6gAhiHAAjqKc9phe3zS872+TSTpM4vGazONxGwx9LTODEGC62VRNYF8GorVMdjd1WgsOkiitIFnEVQ6UPIdJAOCFSAGLTFKGe4FcfFwdBaKYeiprvY/OckV6/49+3LqFfa5ZpNYHdex3y2/Atjo6+tqrvMQ+sCWiJTFg5kMwcU2OX+IdI9wsXUSgZ20ChSYJJDY9Ofe8jNcttw2dID8uo2T9cSY6ol81u3kXKz1di/m7q09nxfA7Dm7LV58pl4i5LNJRg8qYBCCqWb2DQrrIFsRZCV/LuJk7kAuxoAwntYRRVK1lVMl0CwYEpkAQFMmMi1xLWrzMxjxEsaPPrWCZioQ3OqhLrvFJGM36eXdcMjKY8tQaGB5rdYI0rFL0qcMmaoeG+lQDXfW2A/TUGRNkawwiCWZYlXjbPW/ys1tG6gKaGPEJdbbEPzKb7TLHOqcv11myQbBguBqx5UqYF1gUzGVoOCWDpVdUtmsaaNlG4lAzmYI0EZY+MqZuXvJ5mhFx+aDXlyBI2J1pixJGf+Llttm7ZsThLIk5H2CWyiFA9fNliGJpmixVID0xR7yoWWIhyXkjSMePgGuivhFFsZoDOS6Qklyu+1dorFdsAgVgEBNSZZop2cb2YF9mNXAiLQGdQM83S3TrblH5bxeqMa/RaL5BRsOlm/YWE9ScNwK2Kj4IUVqClWp2WZTaXMIwFVUHdWsiG2EXdiW4xmB5YGUTLCKz0D2GZx+uoeo9T9SFUr+F7+FepvGjor3LgRFEU3t5eXTX7ipOnsOxq+HX8jrU0jlCVQNbAqejR2ej8Cr52/GIRPuvQ1zB7RAKkHC3UwmAccgi5A/CYv3SoSUI6FKJ/a/XXwavUO0tTD9Rdus8digFHO0QfdCxAFV+Qd5AZwy8ssm0Ki0X/u8I46joKVLJKRMe7WbbY8TLD/x6mWS5TIfrKrBH/FbzvK5TEM0DJ5eu3fs5O2UMa4BIEyBCYmPw6YT24kJCwCGa7ICR01IY78ReNEoQu/hNabI4jHJtxjOvejlWfyPuHbiXND34ZQW26LM5CRy2H6b2vYj0Et3b9nMSEryoNxq31ioYJbTK+wBAA8cZktPCBwOG7vP4Kdbl4X+mOS3Y2r+Pi3QIG0RRIazQIvKA1Tl3wP2qk5KIoM16LUUEHsGlYO/YasM0sucD/SQsL8/II4LSa5Ilv9BtfQLfpHQvuqEf0kYu+ln3s9I/oaYf0w/n2ODWIbsjssAgCf/LkNzQxgSBBVZcesXSw6p+e2C3gc69rD19EjghiUbGfZ6wGPgteiGVcLKAEqPAyQwsVTc4trg+3RZaCFvungJ/AZZs0niXCXRhagKgPTQk7VIbC8leZFmoQ8KDHilCrZbOYV45jEDDoFPCLAA87Ihh63CwPL9ySsHregAmOFbTO5oUA2Npgv5GFAH2DdgB7zmxBL1HFnSUSlDQ7vHsI8+/QwNfOZk0EjzpoUgkOTZY21bA8RULEoQyxhpUXNITyzSUx4MHUaCjYD0pkT/S8YX34BX9v9znoAKxnWalUcHtlWY8WMGJr7SbNaXk6gOyQh3o0N8oR/xvL4unw5wXBCrgpj5eis0BeyBvoxSWZ2x0w4pKZuyTDurvQVr6Te4qgfkiyeNEHCpCU0YZIX6eAPkG0ZIWY4mIzicnB2cGtllg8lGER+y4X4hOt+GrA+9cERlH4iupp2ldOzZard2D9cnWF6Ly6Ghs3nYM0Vc3qb0QeWaDCeJNUE6hPqO6w92sC6GlYkGR22Yj3sRnnsOzvaZ6hdLaOlLW3bUcX4Adr3UfrhmgPG76pdtc+GIZoeK/hcYCPZZzIX8UAimwzTcNFbdE2lA10KdsKwg/wy58DhrRQXk/uIAhG5Z4xrbfUSx0WUGsZ6nZUvwFlYyBEEazKixR0GqIJu3h1FZSrbJMs0HKlpXu6FIhhWAR8cWG5mktbHOxb3mnlQ32xtE/tjIWm0fWKAjnoWX22XSiavaGg/oprVOZKXKTyN19Nw3pY1/wY8xskcPUcv3bUN3SoiprfAMXMHLwz3z1w2pQDFdoP6zX0HRy7SoXW1HCH5fFCJMIx7eDbVC5cRfEdFSItQNZVnskU1QIujXZAc1yna6uT33ZtdQJQWnF+z+FMbbbodFpiTxQCsfuq47aB1TKrFObgecQDH/ndamgqj/4BNnR2IwogxtbOsYNDZ3ebVqwu+n7Srp+2UlV1udbAXb4x1wTkc+VDcKbcnOw7tDDFjRxignLbIHRCPeZuf6r2aCoK39S7vV/6fZtYu3ZtWj7Njq34svasbUpcGlFIUi7m8lqiBF6oaIM77MW7jsm7+ul6PWgdO+jH7Z4PdZ8xopvyShN1nC43yAcO4l8wEnjrQmtCVOW6uHcTAsZ2GEpUn5DodCuII9OnOyIIC/IORpltijm1E572IaVsRs40cJEoP0d8E8uEDS9d04sRXd7gkFwj94CkjkCZTtTgOvj1215ZJ8up4fxuifct7ZzJ6y6pJ8vAQDlQ9jkeQS0I51Z7jhjyt03FbR/AAMmpiOvjS06Hil3Jac9Wh+TE2vsmsKziApDpRsagVXfYJCowDOCcPF1DJ5E9ctn1HnOc3GrexaWv3h3n0DgID5pMhYTQxeN/ekI3M7SuZ3efUwwjNcBUnO7veHIZFbneff7oU8zzaXaqgpbbWYdNurP6V1HNV8of/9mES0w4xGxVVXk5OT9nyySaZ+vzCe+znE+sbZOh+zFmbvevpbs2ZYb5h9Au0wOxa/Mg+U2TOu5h62CA398irX63P0+kmq/mnLuGFwXJxklCvs5STT7XvDz7YszB2ypWkcJZ+WsOtch5iT9dkngGENGUwAVMIODPzvbySd4DzIoFuQVgIUWbB8op67eSzWzY/hB65vCsFBTfz8OMHOR8p505OCTF0LwtSNSw9rVKI3cbhSmunMEsYNpEGoxi1KtlYz5QQFe8JMAweUILQPJ6DxG1bltPX8VLZqQ4yAtxI7NNqc/CBOr0QmlvLeJHpAtaIfvGo6dsKB7JNsxF0RgVdcAjHZciFXQsBGEd6FDysUWHgLR72WVlUjg2xhMrDlAx2XWTfVE7OtompPkPJ0wH6BNS+EOnkPp62weoGfztcBvt3bS57WgOYxXa4i3a4wMFm9PiiKN7j+ExPhdUM5fDUB4x1Mtcnwi9mzFpQj+UuDHGv7kbh88OI2iqdyAl0+mCITTspdnDjiUwyTohsT1020OoLoy+7R4+V4ThXU2sxGjFoP7DwHAM7WCfS6xD27OicVDoGGJvdHS/SnGIvl56u3D+o1zQT7j90dhvgoMcAJ3R0kMI2Wm6jzDbJCnWgOcjSZHqBvFiAaBL0UuLR9BPE/rRBNQA9AlQEAY3HrVzw7N1IHVga22iqCmAzvIeRwEqCpJBHDXJfJDYrxI7NaI1tzdOYOdvLxToLHStzhRm6OnBMoErHzjb1FTPdLPzqjab+FynOkW1f/b1cly6UcS2gnIRY9pjOyauMcmAcDX5Zysm3qioPijuWZYhYQ7azWEvQzodkYfTcd0/Dyk7BNUQU6biJ0TD3RZZFwH73ag2uSIUPopyGjXosIe+9bnT0JQGKejQ/B46bzi5PyKdsx08E7ZXWvWatkcJ3H5Cz0WGZ8CtmgbaIVE9H5ncVS8PFNuqFhqdzY3P3xPNI00Op3neZhhG87T7qOgdG0fZegjJp5mpRo5kvf86Dr5/+io4J/D2+SV4aiCcE87OJxoAl/4tiJNzjxxtUnC/Px3K7N6Y7qFMPQuDveUoWHUldfrXtjzaxxAHHiEZYrLgaA5btTipT/SBwSRR4ZS4cAcRKTF5RrrUD2sO6FnyD7J6NY2GmHmj7khbEnNsW9I44OxqEaA9ZzReGM6AXGhZmuxckH5wRBipPnasuQzVmw17KLetsm2wjtOd21jNdL89/zh1NC9xdpyam5zeR/y2w+/EziDP4QScX6cxU/JDCO8w7CxJbi1OgjrufHbVdkqh78n+fVtTWwcrOoM7kCUZFfrQ5GHMmRVLFcSnF5UkU65lAm8p70JZxSpdgzryRA+zouoM4qYGoL25jgV3dlQOXLWyd3cZpzrFU1jqSN7OjVUDDPqbpUsidVkdE1Kd2bmlPLUZTxN17gGav4mTTfOQ+ihUJ09w4zpU2z74dY3dztTzeie4cdYgzuWZicytQfm6Q3PV7g30IMtFSq0nWbmnBSrqNQXUKaN5tl7HZ6XAN9hK0j5pxKc9XfIIZ5vleCPHf1nJ5crffaAqb+8tnG3yhf6K/Wgsuluj6TlJZkjU22RczkMVV9sHH9+3gLd30Z6T4Geyja8roQKwcSiu05epVrG9WCi/MB6Zx1O/wRXWqORaXGH0EDx99vL5f//p4gvPwTb8EHw+gaNmBGNbH59dfHX2+OLV4z9OvriYPP6vf9UDqHa50P3XTWFLjVM8g807NeT96+xxh4HHAH57DXWHze4OiY8p7EItb0MVVV1T2mdOij0++L2K0wUfLFAJxkxKsLbms2uPWEwpWa4FOUvxcc0HSk4fpnxUaj9b9wxQO47KuZOyuYuioSOS9a6dR5OAshlhMIutB8LyVJGlX6M86IQHnfCgEw7QCU73uraI/v8qgt+Z6Eexeo/yn2n6rkqAFuadKkDNbfBPyQ4Akm4GhqsbNKE+aIYHzdCC/6AZHjSDBnJAJMH/Qw1h1AEGN7rqwBOGPSgjD35Yf7Dod1P9BEZ87oOhNA/XIt3DX2slo17VaqYb2ED9oygfs3Lh6M/tk9kkDfxZVQo7uwg7sHqT/bQT/BweXT48otzKeaMytf0BqBl45dl3CMC8/s/rpjrTD3QJe9Ta0vLVMhQ0GVb+QQO24T9owN+9BuzZCfVJuWMzRrm1rIMilv/JygOltJ+VI0pz+5B8l8EetWkSsA+CxXqy0XlSsa/fDlhhYb6iO4UIIoB7DhAlkAdu8++yDWVA+JQouysb1YHRgh2ppYbYVNBcT1QJepWPC6Ly0IG9smWCUHFW1ybOygqSqhnZA4pSVKu8P22wLTqr8XdI1BTtkm9XWUltqFTqslzpEw+Hk63b1aOjmh0wvz01O3U0ZdvX6NQkjniM7FeHxljtCWNRhzx5N+SIEBbNSKr+QZxkD+uwXXP74CCaAPsXC/0BLX1LA8VAzlG1QbI5igJgQMwvPYe14RLM1klwEf3Jbv+FWAOTLjiPArG2WTSq3L0FDiMVZRnhCRzLg0f9sWHJtKzoNiMPeSOOGtmi9rjAkoRmlfKi1gl0rTRF5BBDnDasTSePFcHptpwP6JDfos435Yq/XW+SZEopmfq6o6HsMa8PQZRtdo+bo4eHIA9Fqs4MWb1sLDWovkeUf6wTqY6ctOv+9sLx2IOc+OFklnfK89V21ny4tUUsrTiAUQ/kEV/cUsSUPCIJhn+c49bIItzQAbTf1wxJR/zjNGPIXg3Kpuc+aLWANd8OFP/W2dheD5Ungcdd5f2w0EWHp3T+D0oBRp24ojXtYNPJrw6+srv3ZAEWHU882mv11BitUFpsiPldcxWhxSAD6eQt5rO3Ybn/Th1P0j/LlsOh2/fiZHgCfZhUFxJFWi14gxGJQ5IPABUT7Dvzo8pRbh5D7FYly/mGufnpcDwzAnTLe8q9Q6zrjpGIxsaI4jvCY/jlg1C+2+n6I84AGNZ3F/VeKR1iITw7T2VDUxjTMervtSRnyVSQ/TVNQQ6MGNLpUH2hU+EcnQ+gX+bZuVjuvp50JZmT8sYjzwyYOxyg8YkRe0xGnDjE4BctD4z28RnNobfTveHS/pxBx/NCpz+lXuu4yZ4Grfo6nX0Dd4X6ln51vkXDPl5lH6NOVyu/Pt5pJLzsvMHhriu5h0Xbw6Lt0xFb+Dly0WZ7r+6+eHtYpx1rs3T46eocy71ZbL3xXpjruJavs50CcYd8tgDRQ8FHXXFxj3fJOrsQ936TbONOir5UuHzrs/csrLnAmn/y9dIefZktS+ukHN51ru56RYWZF1kFtAeTibIW79zuiN02RzH33XxQ3/PaW46vzPYV6jgDuu9+bPcK0MtgVJ8DbV8aScfXum7tNpBWIl4gySmG9dy556SswZvaOPVQGHzO0G8tq0lfu6S94+I9rIbW2YKjOummmPcUzRkU8ZaPezZz+6YL2gQO4mImqyIGUa6BBotsvsGN2Y77bAC0y4hV424oXZ+1HTbkg4PddXVXqHvAi/Xl9dprDqjh+Q590pX16L6wVDu2w8BczV6pO+YbHoeKTnyj24VcLtyWMQh5OJ6oAzqUCsh2e8XF8YYegxO6jycOXjx98t1PT6P1Ai8JdvoFPcVnummPREMknJ0FP7z66cc6xCJwCtuEry4zcGSZN7OootGWQsVhDZF0ZvpQWcdb/wW3TjetVl/rSwrPUPnSFbMhlj3Pk1haAUaDN61Mb/z37FqnRdUwiahafMkX3+I76hN1v1mTSIw0to0CJLnTLoBYhQDilxZATeIdldVrqt8kE/yo2aV7GB3zAmo314udVyzhnzGBumQFoybqUv3buj4JYEXZu3afTVzIvyM1xU0lFoYdtxOQrAMzpCc7OYmwIt5RgjWTGgsm49tn371Q7KHsjJ1Ko1+7PupUWquYr+iW6TxbYzmQ+DdyLoJVlr1TwZ8gnUGDUkZ4MLD3LAS/8vJiF63CGA9ObV6jKJtXGdhWShuU8c6juy18ibjEvUexXGqJ7fMdl7wcjBsXAaIC5GPzgLFdtgkXLNKecx/IuxP77DAwZqWEuSI1oUofgiM1SAdNNfGa+21znaIQrz6Bnty20GoRYk22bDCFoYVUa+O6Oy28Qauz0a2WO0Zt1ImdDssJ3zgl3WPdDg4sOAjlfHqykdH9OEPV7sUdLnfJN7NyM4PBzTYzNSsoQdFmzeV8TGbnLJ6/G6tb5jtuCDtnOwwXyRZAYna/1aOsFedqvlZ4pnG6Np0Im7R+1WHC5nS7rn0VMIguV5j6El+jZcppr885Odr5hP71Gk4KN23r7ecXz1gEwuJRyBuhrHzCkdfxwMh1JUO5inHvjF/xHYcIUnkQMMbUGc3LH558Efzw05NvNYHn8Q6vKNIXHfruk+rMlE4ej0IoCxBM2Wq+Mi/XqGbxySjUKHz9Zvtm8ebsTfRm8vbz8zfbz+lJND2DXwqP8DBUZFVPGQYwbkpfTnayAegGTqxB3zS+6UdjLpUZ8hq6BFNJ1gBTMiCSnxEc0wO/m5NL6nbCmvxP3za1s5oxr0URxXkOluqIwakrvjUHNZapHaICKjYMrc84SlhSSpjgby+f/4PbCp5hJD6odbXNOKMLVtb0sgHAuin9/P3Zdrs9w5Jn0KAANY3bqLAUA+18LVNQ1KIQZDinAl5AwQaw9SapJCYMOScgrebM1Hov+Om0jXhxxanwvXPU+Piy5XPTJ5aQo7zp5LQ7Jm2+Xb+ZPd+TKv8hU/5hwc7ajoiceVLTQSaFz/1iwe6Y0i7LwnK3NuyK2n8GymCGtikZH3XsoS/We9h0D5/VHqvkDvtbHR64/cHrffndQx/W78ELd9i9dUgNpYiL+arzTJYJlQc1iu4m+l1UnLj9osHzErChzjTMdlxRX8GLdQfeTN414fvKqENEe0yjzgNFFiTVXxcWrTNoyxgR5sh1+04Fg53mamVJSRlh+hBqCTqgRF4ReGnkee7ctdW+vUqT8Y9iGc93DbmS0MPIetcdtWsHMJiewvoE/cn1g9Nb7WO2nqGfmQnIcsp00Dh3yTrMiJu3hDeX8PcpKpf2Blv+ZvGloiwavKJI9NK6nsx0E49cNHjqtYXZUaJZiuLjA0pDilXftjjK3kY2zKMvVtObyTUv9WwhW1vOdPOBZ1H9komyuVWHbNjLfB5K964LVbebl4XwU7oukY6V2jlR75sp+naGMecdsiaa3KzRCdaf923NUqwZ3xsG5pu9leZtmLDfWGtgk3wfhcQrefH31RUQRRpWdXpap9nBx+n2yQEU9h1iAF8dfEyl5lqto2qmbbGgJUk0HYAc0V9VyJKRL/UPx6Fb72b2zIRvv/E1x1+h3xG/OIqZJ6O1bUmaCFcARD5emFSVgNK3exI3hExH2jhXvPTJHJzGUWGLHBoZ1W9LHPvKFa+6Hh8oSlTi5LvLkE9aCNgJrMNfMqlybnTcw/PpigM3T7IjDvrTJd+3UeAw9iDs/vYsvlckmhg0LRFx/1xLxfuyTJjhbFGhY0+6ZQTO7Whjy4gNooYqtmUEXVOhZAR99zK/YXwq4md7ejVw+TWQQI9TVs4NHKEe1rFe4k0L/QDyQ9t570M+7uz711jVdJ5IkVZTuTBxKsav5czAE7pojbevxY1IspwzbgMMfCiLwEBi3x7/Us5Oe1XCpZ/jdr7twPLPJl4i/vjizNxeH6zEe5BVc7mOE6tFLcLUreI/2LeKt52yX+4BqDptAXV4ttGATRRuTIMlwExXUX4taJ1nNYWWCH25dSeH4j5BnqWVFZbCDzpnR6dCrycGQxboKVVUWQEoG+0Cg46ud8FWVit7frrPStQdmAQvGRDd5m5DoxPTzsza2PtRziiawsQaPtKcl+/OP6htwttHOvOB/fYi+uqRF+3ymsSr1TmnyUaC6f7AkxB55+wJQoFpqUHe9kd6ofLZdxPrSzzs4VywevD9qtovOMQZ0fYmtn2Cx90a/9Huzb2vK+S7JklvMu2dKV3w9zxdQ2/C/ciTtknV9Rade8w/xe9E943VWd68eHzYNHrshuPQf583hffgeiESAQLs7ugeIsp+plK/Z+64kzC7v7kaKtF+rov+nmftHmTafc0d2Rtk4lmXHugLn3GtoL7PoJM9bth5ts7jdKcKJxnbXOrnCtrF3B/6RpOZzPz3+LiSk4I7ZUkSdKx6qqK/OGAMd9FaRqP90tjO6mrc+uxuFDxJEvssr50/Trss+m5JYLsw/Fu2SoOXa+gE5i/HdKh1DJGnrloWqsq/QOWoxMp/Ee/jdZ4IjBbxRtMi+k09DI+YnJ9vt9vIqnf+C4E6x6IdEbk0RxP9pbOXevomGKBbCHPbKj1vJ0SjoFo9xxNtUtMpGpdr7PFI4FAdlZ7ENxnGpOiwzEN0HqnXS+soXYsH6Kyksqs5OpxmgUl6rJFRE21Nr70bMDACK7bPYqD6bGjXTjEt9Tv3iK2YMllvEWtSjgK+78ouZV/1Vum7c/Xwubmatt1mjz5W2uPPOPBi5ONz5RybI8c6dHPcRjI5NuotZLOM691L/lWkfQGywb83mYpZpZn5l6CkiurS7uB/BSYioANudHDjKUeHPl0uTzxTAVN2iLsIuuYEbFpaRyPCp1nc+Ez4zREyUwz6CS4vEXV1wOYJUYcaz1OoV+SFLMWIHyik4D65uak8qEuxz01RtyJhIvIYvqhDAOqEKCKnYgVPLgDMxROncwEoBDG23pTGpaJi6n5EQeUUBV2jrriRqaxknMhfY1llqQoXSx0AhSjNkQpmyoWo8Lbb4Bdsi6JuVS4ILFLfjkZD/Jr//eZKjUpx3yuSuxSUxYFS0EW7UZGa41Q4pSNWDOdxLs9v/nhO4YJxVWeHRGsrxmMqcxTjUHGGV8ZHJzZ5IIlOpzjg6VT7edAly+IMD6mY40dhqA8fOWGb5SYHtmhOsHL/RQa2snY0NAXKCt5juiPxMWWChb9RgR6jfBSeh6fB50GoxmpFAk9xU7lQnbe6paPXv25T1euLCEC//SaM2Gbgqr0GU7xYyxSTIZgLC1kkulytY+rioJSon4NtvNPbOFhXliBy4fUs21RMe+UO+NlzrI62UnJ1rLY/eEOdo1Tbk440DCk+no5AxkuOOFBRw0aihhgmVdpRCS4Ekx+SyvB1ef5EqrUYwhuc/R5KxF/rBAuPM6IdkdGpczjU7Ll2DaRPVWP3u4fpDm0fHM/ABykeYahOrdsIijti1/jXODpQN1G1hrh9SXJZsea3YGvV4vZJUCZCvMOtK1Fcx3Ohjx8rbnlJdBkwBPLIcsAoH7XA41ziRpkXqgNYmeJI1WHiQCekRalj3Lo2RbRET4dQ4U60BIq9/+ARHiaamLVTVMdlHyE8uAvf2DULMNxyvfL9QwzUaNX3UwOXOkLhEhWccqCwvSbEl0QOvAw0m4612Mqlx/ig21HhFcF1F73W0RY1wFAXDC27l3HaA1pjfWgLmjtUFbstzDA0XYOlBZzf1yKWO1PlDmq3VTF0DjjR896x6jIHtepUghb/D1BLAwQUAAAACACOtdZCD75/OqIFAABVFQAAGAAAAGdpdGh1YjMvbm90aWZpY2F0aW9ucy5weeVXS2/bRhC+81dsnAMlQKbcxL2okYHAQdscGhS1gB6Kgl6RI2ttkstwl1YMw/+9sy9yl6LkuG3QQ3WxNZr95v3t7MnJSXTD5LZdv00qLtmGZVQyXoloOfaJotWWCVLyvC2AZLySlFWCyC1+KagQIEgDBSJUN0RyEiAmUXQFQGgh+IJspawX83kO91DwGprEOJFkvJzfv53TTLJ7Jh/mAcI8OkF3o03DS3IreEVYWfNGkrwta2HELhb0EArhFH5i8ud2fckbiKJIO0pW2wZoPul/mS4igh+0sMJoFlprcW3UyDvz9+Ka8PUtZJLsGlqLID5MglIRCVEp0lhdfli14U1p1Oiat1JnrIGaCyZ580BuoILGpg1/8XFnSqLhRKttzwitcgtAMQuYV/XrasetC2hOSFplWIyMVmSNtdlCdgc5KdgdEEz/whxRH/kdWS6JfOMLXmmBlrxHU1hw+Nyye1pAhZ4PjicsNwj4z0D8yom1vCu+/vb3GuD1PYPdKT0VmKkCTk28rm76bw4bkqasYjJNJwKKzcxkc0awOQWCLD/xyhXbZBWtT0x9lVKxmSYdQHh02h9CtSSlNSNLA5/cgJzEbVPEvdLrBbnkZamS1oCo0X+2xqnBVtgrcgic2VMBthXGM/L4FNhYuaJ3PRai2aYIwIzMYnXqwQTp7nQD9FvXqr7lXmoYwLq9o8gQNAcy9MRr+KV3eOI51qsY52xFfKu/b6HS9mxgyhwOqyRtnVMJeWjTClOq0mnKJmRTS1aCb7dXi6eBtY854RvPXIjOBnlleVj/DyxTBaEYMaJge4iu/GNwWmHYUSKEVH4q7x0TYcawuzDvjjx0LrSG+tYKaIjO0yGjSj9VYpMjz7j/i+cE2+wf7OfpEO4g93sqg5527EYeeItdgd8yQEYYIchhj+lTQRxGFqbxypCpK+6ngHEhuUlmZLdl2RbZT7Qwr9uimOdss1FsKNUdyCofztx66hbg5gJQepTkXf1DLy2Vh25aYTygmbban18ji+3sGs5TjWA5z6O3BmTbVCS2Nxj54/Hs6c+LODFkMfG9sdTAZAFqCDxo+NyRKcdsNfv43TQsjUbH+gaggq8FeDUGgHc5SEjRT5E1rFYpHcaJ/P9BaxFfy06brpkKP+nJbmEMiwVZc174ON3/OHxd465bVuQpSnSdOgPIUmsqQP2w7C6F6WhwqbID1HiepCamCR5Ekntzdj4j52fnXtaZSE2VRyJdQYFEgZOhZtGjQozTdguGje2S+NH4vhit3lhJm7sRO7+g2Mengrw8i0dyUFOZbSd93lQivh8mQoDcr/zMlXkNeGuzmwo3uDx0/gpkx4CxONoWXjw1bWipg/EsLMikUSuQsjFDpyQ0Jatwv8L0BwsKEVveFnlAhmtHXriA6Rs26Mcxwzacl1pFS4FhC3PMaFc9s+/+cH3lZ+md/+3i+hvNCKoiwmPcpzteBNWNbSAotv89dYdvDdkbWPXFdVYr1WjN1HVJl/qBMEHMqW6xs70B9QOdKBi7d6hUaxP4mFCXRAVeXx5no0u1c5unEW7jshXuqhnrR8mfZSn3IvkPKnQoyeq+cPz1z3JqH2XBkeeeZscSET7THHtVZjC9NTQogrdBJ2NPlpe+VTA9+FQxxk99S889WFD3meeKH+3eo8U/Pv5kQY0DDxa7PumtkQlvDActOm/2XwTh/tXZGNu+uiW2217N9oQjsnPrfVAbteRniLS331vh+I7pXOiVBtv9+18/6vng4TWKt68k8IUJKcbeUqkdKQffS+Nj6F7fHbbQKw2thL8Mt0RH9t4BR5sz8iM2MQwOeKX1zngk3B37+h0zGMkDm6aFnw63uwOgR1ancG8YW6BsBo5BW5XgWO/lsZO9VrCr/KvrScAa/9Mlxb/Lvtmu0PXSsxuD0XRc299ryDuOcv8CUEsDBBQAAAAIAG2jI0Oi6PERzwEAAAUEAAAQAAAAZ2l0aHViMy91dGlscy5weYVSTY/TMBC9+1eMAivZLGna7oIgUpUD4rAXOFBxoJTKJNPWkNjBdlmttvx3xk6bdJetyMHxfL15bzxraxqopEevGgTVtMb63mbrELX4a4fOu1Fpmlb6Y9J36chrld6wg8ciY8/gVvkt+K3UPx14A1vvW5dnWWkqHG2M2dQYgLI2+0Gw9i6tTSnr0C1TzlGjrEIvVV2oanbNbj59XL15PZ7AjNAjAVUjT77xtOBFvpikb5eLMR0vRBH/99d/RMondJ8u9+MYJ/uK7AnZCYMnvyQm7umcdnCCz/mUblfkDKWdM+f0f3VinMXrs/jXUbxcioJ/2S8u0yXRfgK5Az6LF5MKUTxPBGOswjWEgTkvm3bVSisb9Gh573sJsq7N7UobjbO53aHIWYRWJ4WgHHyghLxvStGhLn/AxaLfWR3ze7+VyiF8lvUO31trLE/mPfbv4IVSam1oUzAWBu6HNsopTYm6xFPSx7UTQ+9D3z5ppJxZG9tIz/+HNuyneCAxMDqu1YiAyu1QJR6pfqyQJzeapKlqYJTDhQujDLASuiDBpwH+3Hv27wqdFo9VFJ8IuBiQxdkpdMr/nf+7bt6yLLH14O9aDOSox1CahA4UONEs2F9QSwMEFAAAAAgA2pkyQ73wA4W/DAAAWDYAABAAAABnaXRodWIzL3B1bGxzLnB57Vtfc9s2En/Xp0CcB0oTWU7SPmmi9tqkuXim/yZx5h7sjEyRkIWEIlgStJtJ891vdwGQAAjJlpPe9OH0YIuLxW8XwGKxu4SOjo5GV0Jt2tU3s6otima0cD+j0dlGNGwr87bgLJOlSkXZsLQomNoAoUibhjes5kWqRHnFlGSIAoQ/Wt6oZjYaHYGE0bqWWyAysa1krdg2VdlGE983srTkvN1WjSZbneC/bX0ut1uh/GZQjBeN5fi3UK/a1W+r9zxTU/P0XNZ8yn5MG479eRkAtA2vu/5v4cFvznkm61TJngdHJmreLNNWbXxm0TQw6Fmm5dgOp0j1ZLe1UHxbwZR1E/L29emZIY1GI5pW9jtM5AuYRFHC3Mpy3I9nMh+NGHxgas9gFebEP78MOrBnAeG7SyZpbma6+xvOYSUbOWcbpar5yUnOr3khK17P9JBwKCfX35yQYZw8vOLqOD1uYJ0Lfoy0Y7PMnTb6S87XbLkUpVDL5bjhxXoKpAZWJIeJy1ATGAAzn6YFeeNA0ynDbpNZh/KrLPmk6/Nwzl5YKCbXZIpbXl9xdgN6wxI1FTSiMSq03rwH7sUC/qzThy163VwpL7Utr3nNy4yzRtVo5EainksfEXgRCwTOYLbGCTwnnt5FuuKFRdipmOZygYjiQ9llR6tlzzyDniENlrvmFUwGGB7tTdT5pgQT92RhBxCFM9w1iLUjGhkSZ8XCnihrHLJP2WDJ3rz6wQ48o63MUkVPG57mvk7NJvVGD8/O2IllCWOTyzLdcuBMklgjDdZv9QaGTNGBedjIf6553+l+2OCos0Oq2+88IaoFKOSVKMMBISd0G4dQ01CnibvLcIXNLnNGUnPV1iVLnn16/Jmdf3ry+d13yWwta/C7Y9/yp47BTTzX81IUfOx6VIMfcTrIqr0NfvtSN1OIRnnupTleA2zTOZl+9J6PqZAr6llQq4FL0ex7DTRmlNQtZpUA8CtajEFANr8/UoxNOSCW6iO9UalqGxdryqDDbMqSNM95Hth7o9l97YgWKNhuV2CcAAsoAtcfZJTaSw4V7nk84I68CxuOZH4bds/jYXfkXdjZJi2vIOLYpjnvHPwQ3rJ54IboQ799/TPiXAt+Q3O9KuSKwVbZhYzty7YufGhL3Y9dpzdwzqzXel2j8MAyRDdEH/x3jKHYFQcXAVFDzlYfNaYbf/nYFfXwkImUHOJRcD+x1xqe0cY/BycT+hdr1b5LMd38SMbs6tCnWBHPnIfQs5zd+OEmg9hUpXBSNyxLS7aCfbzh2QeYnEJ8gONbzk3ghJ/qCVvAXDx1CQ+IQJQfypzBbGK0d50WGM+poPtM5BoBvgTkB5Z8Hwd4q58DLvRmTQMbZUHHbMzpmTkb+j23e3ioppVAAwEWc5iD1YHP8S0Pg2kv7Ap2CDYvBuFrD4oMGCEkP9IXD1rmHy20t7Jb0DcdSEJuV10kRPTdBZo27NXZLz8PQZcbtS0GyEQ9DB4iegE+kP+pIkKQPBSC1KGQfZ579473PHgn5h4OfLcIz5F3Ilw/3vFnhWxgL7p8mrRMlasKO41M5gZmc8V5aVBcxXPwf0psbUTuR703G172aDeAEgDo88LqAdrpnQCxfoWgY900wdDRDAAyTu7Hy/4RpXO9JpBgqP7wDdFfiOeWFQ+CcSnBkphNGCdxVHtmDJCH54avqIjpKSJqilBL7cSRn/Ts8Zi41WgMZ1RrEVP60CWuOZ6JgVBNjC6yo0LHlUz2HuZ0kMNxJTNB5y+lnlaLMM9crwdjtUR/oHgMliABcyKWrhWvB1vBxybGfd4WGcjbvqIvoTAcVsR5BULA8Q0GYIlDzLYUAMLgILwVWfj+QOzX0JluKrYEWEgaqNlRXVf0EJFhF6c1J+BClB/AYGt5LXIbS+ESU46U1h+1TXNdrcrSonA9EEuW1D+ZsVOVNFgmaDMIlzgGEBtZ12ItMjhyJdrPNv3A9fYopPwAO7uQyoHKCp5S0ncK85WBAyUsNK+NyZa1qjeyLUBPPnf6smN2eYkzcXmJkt+3je6BhzqM32QQbgdGEUkDIQnwuMEIJpvNyRxz+ZM5PpjYZF6S9wiFWm8TF0zhdOf/pJ5JWpYvU0nX26xOJwO/a5QjNq1ZqNTfokgoH/dJMDHdfkqVqsWqVTzsVHN0NMs7TKzdX19xeSNTiRW3bjPAbtQWH1StyDIX7JNXGkmwLZn3AebUb+7OwDlLTpLZeynK8XnHjGWRIs04pCqoIQZGerbBpXk48U+P/i7g1zCuXncWRZ7P9rRLGbAE6+fKYY9goF1D1+3zyJ3tAw88CsN7l6QfPTe4bZF0UKQVgNIANC16huomCpSM/Gig9J8NB5HOsUYVWr4FfuqWriCnBAes44uIdGLwhmapsGQvIdHyqzpWnlCd0wSvS37WFI1hE5VS7ZC0xDrKDnm6bRisO4UkLSFWTqKWpW5ZmtqSL8JpDGSYymvAny9XHw8uEd9spF2uLmiLLvnqo631Yn+TVuJikzK3xMR2sbWrtGcAuSGhZP3Rl6i9kDdATdofvtBLJQ+ISIOIoKN6yUksPvd38TDYeU3tti8pY1/jzNhPf1ZpmTc6MLy81CO4vAyrvqEEnOX+bdDY6qUTEKvkLdNde3p1Z+7uMCxwV3smYX8WgAdSKHx/BhOgDxYr0u4u2xaY6W0ixqP6rDu/uLnIL44vZhfzd49OxhdvHk3s3+/n2qP/hfiT708u8kdJ7Bjxw8lgybEQBqMyJf0pS3ozTiZ6E2krR8eMhTAIg8vZsNivu6D+s6tatlUzHli39j3O/hmWfX3XpB3SAEcJVXQ4UQPQHC4UUQ7Iwig2TTFAQY7+BZlOyKj0GpwlbZXfISHruYKE7A7ObZeelORJL1K7NVMZ+Fz9oqtjgu3Z8d3ysqwjGC963/Lr+cNI6VX7GQ+T/9EVDyWehUPgLhdbaI6udqkBSn5XgAdRAL2GbgHTLVnSyoflSbIGW6Qk3n/5r94tOBVlwvk6Ojp6jvRG70dv1tAfy1bRqQcGMeudyVwPppmzlZSFCxYdrh7VuN8/0764B25BV4vc4jqm/BFNtUvpigq+uKbqNgda3Y4o2vtgxg+bYPEp+SHLeKUwsk6rqhAZ1QZOrsvcJgMoL/k8CYeHYmd424PuMRjDXuKkQNQ0xtYpe/r48ZR9+/jbiXMYdSMVzVKHDbGFwZp8g7lwwzmiDyLQPqI9bHH02WGUbUWRo/c2wRE4aqw7I2XRTeJg4P5A+2nHUwCH/K0esjNQxevucDL2rXfg4vgJpGQqvQpL9KDxqaKXNkxem0DYP6mD2pk7CVVap1smYFm0lDkby4ryMlSwHBQhcZr12GbsBV+nbaF853T8xLTrWz3pdSoKirAtwiwUDj6axuWL/uksvWJ0vSVlFR7asm26BaUXdXCcpVvuCedlXkG+pyKLbF5sSRqNdfU63jL1UfbMe/zu8oI1h5hFF9AcYBm43GNQeGy87FQXVjxFzKrjn5ihiMPtpPENRXxlOxFfaibin2Ul+qJYHxLA/5mm3ctGxFcxEa3AHtugOw739yDUPVKP/go2oqHvbSHU/Z9kH7ErKwfaBY3pK1hFfztlp13oNOTLjxidk/z/oLmTibiXNtkz9+lQU/EthEqk525V8iBzcRUZmsyOAJnCH2M3pqJk3qYvksQ3ml+oWnUHu8Cl8bH8RTJEXI8VxwpRbmvV3rJEq2N3CPQg7k4jdxYDjTxRpgtdMR5/SnxWiJB9ghMSf0FQSW+LbF98MBFl1VJEOSWlFviHgsvHQWkkUiFEkHO6ePYuNBzdpMNmaO2Wn6pd+7MOYvlfph362tFXzjt2mH/NZcXL6AQcYwsVg+m9vpsl/m1ZIYpM9m9YB2GqSzfk38HWAMJ8pUJPxO2/pb533cIE7u9cr1TklZycfqiI32214xJMrDfp7ncf63lxs+YDpt/s7U+mZjVnZt71faA5M1Ovi2NzLf9zuEs9Z2Kv3G7h+FyW0DKmXTpyvQ1SfB+zc793W1DvIbPvyRURrt3+Ljz2j91NtrUUbPcvIRsrPKudF+OGRq9Furt4Xroydn4bEb+Otz/rslfy2JmufGpvr+RIizeVNy/wCH8igpx4l6/75cQB1/gyusaXPXUJD4hAlNuu8WX2Gl/mXePL7DW+7N7X+OyAb73Pl9nzfO+VviDFDC71hRjuVYe7vwaiO7V9NSJa/4yducB7wE8FIj28OqhR+rdaXAnwDowq5fgjDTALYTQcXpyVhn3ZsS983QYMiS/v9xTzJbkDvsLWABFpwZ1cKxuTL3NlJPbub5eOvWr4UvKxCz389YSzUmji4W9ITNxAF2w8IV3DQfd+zasu6wVil35xLWf024bJ6L9QSwMEFAAAAAgAbaMjQ5oOioPbDAAAzjgAABAAAABnaXRodWIzL3VzZXJzLnB55Vtfk9u2EX/Xp4CdB0odHc9O0heN5YkbO4mTjuOxz9PpuB4JIiEJPopQCPKUq8ffvbsLkARI8E46O2nS3nh8JIBdLBa//YMl7v79+6ONLLfV6qu40qLQo7n7MxpdbKVmO5VWmWCJyksuc83ElSiuy63MN6wQGS/xoVTsDTKIR6P7wHS0LtSOvdcqZ3K3V0XJ0mq316a5KmQpdnugFHXvm1fPL2yTGVNLBXPlpa6HPcM3fwAIJ7JmwPey/KFa/bx6L5Jyat++VYWYsr9xLZ4kiaq6DFKRqIKXqmiYFOKXShZCL3hVbkejUZJxrdlP4nrcMpzMRgx+YK0XW8FmNGS2hDHsEfz3eMkUyRCzl5mAmZkWwooTaUbjnqqk2sFyQH8qJ2aPtmW5n52fp7DoTO1FERsZ40Ttzq++OqcdOr8U1/r88XLB1qqArSlAhzk87ogPqB85XRwUg3HQo0ueJ0KzhOdsBXu4FcmlSFkmL0EmNZuZ8fhz+ZDN5+zyS7fhHjVQy5M8ZYAFVM0Vz0Bu2HKfPJap4QAPneZ7bjPiA3+nYs0WC5nLcrEYa5GtpyjzFFSlNSxl/kLltZrxR1egkfFPZkS2nsQNrUs1acfDoHjB95LNkW+8EeU4qoosmrIoaod9MWO4g6X4tWRqzUp45klZ8QyJfGaoUYcXPPT5VLn8pYItSWtmSMRrYPr8UF8tO5kGpJIlGB6ywb1nG34l0NIsX5+bGeswpAbg6Si7EPvCKtvRbCHKqshZ9AgtGHHO3n548PHd4yg2uBq3/D1uuhxmVivMHS9+aTZawRKKASoDIxqBkHEY5OJYBveCDKp9Cg7GAZsLL4JLB1LY1ACLhn7jO4eaNfggUYquLgDpT6kDdkySB6mx3xV5sVIKHEVuVL1w2BGEJ1P25YOvp+zrB1/fLIdZoV0g7Vh3nSDBGxpkZEK0tEY82/OC7xhsrCGesbGdJ51Yfg6uQ2TQ3CFyDAttYS0z0RIaHegZw/W7MjbPFEPmDJ1B0ybXVhYOTglnbHpID7zkQPHBGsCs1gMZ7AzHf/TG2xmMsvHF6n3Py2Tb7sGUGM8pjo3xcUK78mDiioXkvjSGvkYe9k+8fouCi6ISXWR8xzMtmvjzMgN4uPEtHIJwGHuE/ztByIRxfgmBQOalKMDDYdA+QHihjYHAa0KQE0oYX6mqZNy4HghiEswpHM6eAAQhIsgE1phSHnBCPPsCnNUZ0J9xl8sZdkKUM8h2Q2Ub9/ReJHItE0g6XNQE4gqurxdKUEe9WEIjXTf8otqtYP2A4ERlGejE5Aq+3/C6AEvIxThhr8d38C/4rrGmZgMaljn2upywIRoQbV9AUAaTBv+uOqLZrgV1eQy9Hp/z6z1PwLqyTB1E6vPT1OXyoZaT4gxhNBRjcI0TkICNXyjQN+SZfHNizEEWLYHUi3UhQo75W8yENLkSNA74xxkONQsbneKiutNj+IqQVxRYirVmNJKxk5NObCrVsWaKyBSXu9a8Bd+XgT2jCwSlVJCzFGTejQFbgyZ8GUYayNGCjjNMsD4nnSQvcEo+WVE+WX3pNtyjhqPyyarOJysvn6zqfNI0N4Y/ZPko9i0p5Rs7xPMDHp3n4nNV2oTrei8Cvh6bwT4iZBuNXKt6/rQ2d+Qe4XkDMMFgQ74vOJgiL3xT29jWBSWKSGMMzmkPJLMQSNjZGXnJrcSTD4URbELJ62Z/JmzhK0of22nqxsiymDiL+YLS07x1QNUqk8liI3WpB1wUjWD+COOhHFpPALcDhHjgCsBeWpfXBbyd+Ad1YLsq2bJU6ks8umqIIClbXTf694XAYYtK4364IrTNXQEG3S9Th7yeCQDen4r6F12/3M4Z6DeT3zi3Ud9tc5eq5FnDu6/yQH9v7gsc4+79cPDx2fWXGujv6/kfWwn7iG65XRW6DtWJmDRibvIkB0TwCjw/fJw4XE1VYQGnQU+ctrlvV89MIeLNq7+zulIRs2e/7sH/apNILZe0kOR6ufQFa9mWMJ1T6hi3PRN0LY5YAm2Wkl5XiO8UheTCyDFGg+asrqV0jr7remxvmV6PXWlDuw6PhnQxrJfv6u6bVUOnsQVy7WrH499V0LpWzXpAKQTR3gqb1r683xPmb5QVqcG3dgVtmHaFbDpI0lai8B7+XGx4Lv9NHuuYfVTu+N5Ke73d/YQZX4lEyCvwCw6Gb56zsBSLAUMJ9AfnBXuGvFeK4+aE0YGZbGuXPyQiBZwwewROe3/zX5vOW6AKPhRQSpnVcokCdJHgzNHFgtNFaHDFDOPhdbXSSSH3x+JBu+P7y+/2uno7MoXO1Ebmg2UTnGuwblI1udSRhROeAoh2XGYLeIJebWexb37O/iRNKXxr8BaQrBBdPbKui3mnSJtoNTy4SbbDFQ/LyC9f9OaAx8DZIAOjx1joDRfaFT6o6t7yhR6/tY/vTtSc6OhO6Pnbd2EFdsTEU8Jy2bwC9kPKbHNwk70OKpOU0XADfSqCI8+6+hSkUThGwLv4VLXaMs7bd26y3krhJerGamzlrZIZ2ec4ooWBvdB07pHY4d8vE4GPGwO5rQ81M1J16OGku+1IeUQp8XijaCqMXYOgrxzOaeMzgN/IdtezcWhlx+N9gPo2yA+pJ4T6WmOtvwg4k8+J+0Ls1FUQ+YMKPRW6t1eZW+ya2maL4MnUs4DeT6cmbQsuHNz+JhdiYU1kyiigTM0BQUJCcH1jKYbye1tfsLxS1JfUuhKY9ht+5y27YLmmLqHgmpenqLI+hvSkBvXWa4P+m1XjRNKj9gKDN+YMvUJ/XcWqs2RXpberEX43lAB2olouwy6AOl0HMATL25TpZ/SxoPRq3J4A5p9LLSUwNBloXeelisGcyhVTe0Sdnz0E8yv5plv9AemfYy0cvAOW5+zpi+1FgRWFzjG6rzIU1E7om7rKs2vjC2zNwzLG0ovrXPCn72C608i8tAvxZ2nP35Y9WIhRZMyeijWvsnLGzh56s9ltxMIu41fgKKjmY+jjECRQbf60zy74xvhJDgd/cSVVpemDudBlnTVoLMG684o83StYyA0RvrZWOqKwR/7n/5haHy//xcKhf88hcYfQbw/wkZcC2C3yBEKCmO/3IFhdZnJcZtgv/AWJpmzFtcD3eftxLgxkROcYFj02OwW6I0dLS7GAxP+6eG4O5xbSJ4IY9d+wMOXGQQTfDq2WUwBdnkbPHobR9d9B1Ubkgj65uNBya+lDSBoICY0eok8HgCk337L/raO/w/5T+R6iJ/p8K/ltzux2KBimd3Yy5nbR/xAYQLm/PRjwrs/dcWDDDzIZ8gRxzGA0HtPpCDabsQfxX++ADprjzuBA6j8QNtpbXCciA9fxGUBBd5wGMaGKjZ/0QMNdcx2uUWPXDEMhLzC1ds6LbmmxYZRyvV0pXqQx+6eq2K4Cva+6VRfYiCspDoS4cK4JvP2jZu58DA9O/DunQ3/ibMiAM4rcJAj1fUwFxCZQcNIBCvxN4Pqtc55OOfkzJvPllpft/bktx90xc8XsefstFs9JN5/7p+wa4H6QABW8+1J/88IasZfl25tpB6lbbg0lnQyI3CU54WiRwnm92Mlc2GNeqNzpbTNMBpkAiBSSGLze+6o5pvxella7nj9ghvhph48Oiv/UpxD72cJaolZFSQYHCAR/TZdI7PuJZtkUU/CbkJ1kKDVtc5Nky/NNk504GnyCSQuJR7huhGMEJTQW7aAIw93e5kaGJYDcZdfcaHvy8vldcuR6QeZDd2sX3q47NjIdCEH+l3THLnClnbqiRHfDoqQQ6AEiNj6APzDmANKwA9fe7HbcBI0/Mh92PKK22oWkDOwC/YPeUlSfhGRqlB4WjOskoslSAU8Dp0fT+QfyBK9aNTTugFQTtz2Pw1VF748LDBLs3xW0pCPHe8BKNV1Xxc2NZrTHEH8btUJT89xeXDXWberHixyMbmw4Bf2H+72yKcfhV05rxCilsdyTnMgrpzJqZjdOoOdM3G+SdzvO+H7D8FuZTPNTD7aedHc32v8j8AYQ5uaQnkI/w3HIhVk3YB1zDR6PFhbo9HXEPq8ytbGPidqBTVybt25dP1MJdwJefSuuzktXUoXAu+5kZnTSsiidWvlot90b13gBoeHS7dwX6kpiuLNXOtsQFz5i4bJnTMSbGLzJj2qbs9c74A8bgtcLqARPY4LART01xO+BONZI/I34le/2mcCLokF3jUpt6Owt08PhEDt05++J1TkODfKwuzEL9dWb0euklLnemxmCAO2V7Nlcow8JK9XMxny2zviVwti948VlCs5x6ONHyGroCIEunO5oz0it9bc4eKXf8E4rnpGO+l+PIrtsGGCfgKJeLjTWjwHK5qLmrNEAziYVTibVTUGDLnPcZtBUD2hH3fz3Et2viTTD7/OXEv8BUEsDBBQAAAAIAIWYPkOZqSJPLAEAABoCAAATAAAAZ2l0aHViMy9fX2luaXRfXy5weV2RTW6DMBCF9z7FiC6AKnX+Fq2QsmmK2khtNxwAGTBhVPC49lApty8JpCL1wpbf55n3Rg6CQByRm77Yit24hMi0hobZJsvlxOxJOq4rSe64hJocVFT2nTasGMlIIZKS7MnhseEEojKGzWq9eRi2LRQnOCgDe3KV8iWJpMVSG68T+KAKa9QVPGcvC/CD6fthn35m6cWhI6eh0qyw9UIEQ06R54zc6jyHHYRTsnBQVc8NuVGee53Z5DbCueMZ/oUe8f56ncX/3+9HOz+MPBas5KNcz1U0NV0Q97bVERqOML6Mg4AGZuXS2xY5CmUYx0LUjjqYJpLKDo87S47h/paM5xW+Ir/1xWI6U8PaWYdeX5Vs+J3e33boqNKtv+2QOkdOiDuoW/WlnxIw9K3EL1BLAwQUAAAACABtoyNDG1tndmIDAACICQAAFQAAAGdpdGh1YjMvZGVjb3JhdG9ycy5wed1WTW/bMAy961cQ6cFOkXqfh6FAgH11XQ9Lga49B4pNx1psyZXkptmw/z5KthK7XrcdtsuMALEk6pF8fJQ8mUzYWtiiWb1IMkyV5lZpw+ajh7HrQhioVNaUCLVWdyJDA4c9YBXYAkGjsaBy/16KleZ6x9iE3LBcqwryRqZWqdKAqGqlLWw1r027pvG2od0mIS94sLhCUytpkHVjZRizencKcATxQkGq7lDzNU4ZgJurd7ZQ8rkfedzPVgu5vrgMgPvxCADvU6wtXHi7M62V/o2XFwcvQgX8tzuLhuC52btijKUlN4aSaXMMC3F4mZ56qAxz4oFnscEyn4GcnzybwTHXa0N/x5ute+tM2zgOyRngElSZnRi7oxp5fzMwFDqXkYXGIJimRr3frNE2Wu4Rkr7fKUXcxnLbCKrpkje2iF31Ou9U0veh+K72UlmEbSHSAtTqC6YWKiSGMhMgwCEoLb5yK5RMnCQczmsvgBZ5z4AzXboFCreL6HEOnDHM4QMvSSNhUuRQcMOtDfujpUFjyHPU29rb7s2SYJT4WaUHluEZWhbEGmqTrNHG0Zt+jtGUWOwF5DCHvrsKuOQfSXNvTg2Bw81edaF5hy1zLuzHZuUFPNhyBJ9UugEOL58+c53a9tUgIqJijZKkbnGZ8w0u0aEsg3E8YiT6NqmICmqNySlMrjq9+GRRWpF6KibfowRlSkHG0wHCcKS5IJX2oo91a9AR1dfFQ4GuuBHpz2T6ucZU5CKF2JtMH4R2OMOStlr+oKMfNUz2Z8omSy15hU9qarmt0hkLwtprgXozg61yjUgGG9hS3Qh8gxIoKnI07A4Wgv9LPfKrdvChjdX//yk1fkSqo/KNxTs+B6b/SM+/TKkyazrRLbeNWTrnc2JnBj4QOsLnUWPzk1fhgHMEhbuzi1Invc203Bt16wGLFsNrt6L51gM+uL8opIBNONISbe7fNBWJeg7XusEHyzTr0dr7ZsAHkXAEN0RZ5Yrf+7jYUjkCNS66TKXkQFpfH3/J8bJsPy6EVGDEWlJmxBvhcerQTJi65DsKiSA19XC5Y9QTyh/bKO/i6PxscXb15vpicb58f/nu5tPZ4ppGl4toBgslcQrzOUSdhqOO4P7d6LIaH0U0W/JqlXG4P4V7J2upbvn4m+IHUEsDBBQAAAAIANqZMkOjFt/WMAQAAMALAAASAAAAZ2l0aHViMy9zdHJ1Y3RzLnB5jVZNb+M2EL37VwySg6TCEZz2ZlR7WWy7AbbbokjRw2KhpS3KYiOTLknFDYL8986QEk1KSdEgiB1x5s2brye2Wh1hr/qe761Q0oA4npS2cGe5ZlbpVUsGB2G7YfdDeVQN74PNz8J+HHbvleZrGHR/Ytrw1Wq175kx4+EEk8e208NiuwL8ubq6uu84bJ3f9lvq+A083EmduTbA+h5UCxbtBVrU38GR2041pkQUh9bwFupaSGHrOje8b9eY3iCto4jfe7MGw43BZNeAlNnRVJ+VRFrcsoP7OvKinwvtcgb6/BJwimB+vYVftTgIyXqQw3HHNbFFpkcDmv89cGN5E6wJqFSTfeV5xlifZxA9by0IGdJ3DUrQHMRrUH/8/sm5+WoOhjdgFRzZAyFlBlqhDXb0w32KhzVDNPybPq7ZSeDzySQO9N4F2HEhDyHMniE2tc6nYdWMNI5URZ2JcX6j1nBLTR8bjuXTT2CsRugUwLcRMfyXGVfNj+qR1xI7m0fmUdfgTw6NAqksulgMJrAgNPcU9jQRwTNpS7I9MzlaRalcY4dPmpOR8/twzw7Qcdagp+Z20BKLsXsaRwqDYfUtwZ47hrDXcNd6TPwlJn4oEUli2eCsZGaxrI5g4IbhTri0HJhsIiIWETOPQuBw9pTLuL73E8WPnuIj6wf+CtG0mLQjWGfiFoN5DAMHLmkq0b9V2jHEiZomP0XqRpcKN2nOq6d5CbkZzmXqS+d1OF/S+UT+xjI7GNyEhtLac/E4Xz0HM5pVsFmFU9E6MbjIwGuss7v2hgLf/MLsvsu2zuVlFYkQzcOoF5GknJjt/E45wcynJSpKOglmvhOQ/ZjqIXx53qDyPN++fH2XlVhlHKL8svprB1/ELJxOLlg4MfSL4EQx2uZ1vFTrsKLB9VKDuCSX6p070XPIYz2q4OYWlI416h1sChpbYpIWOmqsX+ADt3nEt5qYjZGr8bNYtms+KNPXNyzDLEx2pX9S0xAlPjghnkVK3fd3FCMaDi8LfS35P6SAGpk+QcfMRVmiwo3AXoamZaMSBTpjpiVVJKPtzYolgXhR/8szDfyXUTJUnP7JJ981fL/ZFAuazgG1itJckthhqg+pzzXutTwM7MDNON34PgeDao7j0oh9oq3cvyvKeVSB9tgUuec5EVg7x1eKMKZDH6VDymcZkEAJepmSydL/SfC+ocXIhV+Bwkc3w869QnN3kbhcDwrAixH3DsXrLfFzf1PBLUGlq+C9NwvH1BD3aLOk+ka5w9hFU9AL+TDOAB1ldI1J2foX/uTrTfEZWmZZIit0vJSVcXxxwvHdpserUoYiVNfzUfWTRidh7CatKuYqSMHyi0NERPMWs+vCTU82gu6xrK9+YljSKGZyP0quXjH7COFt+f8y0/6vEyJt3ez28f8SpONLUiHdiH5kWIbqF6t/AVBLAwQUAAAACABtoyNDA4G9gHgHAADVGgAADgAAAGdpdGh1YjMvZ2l0LnB5pRnfb9M4+D1/hTUe0kgl3Y6Jh2pFN+BgSOgOjfGEUHEbtw0kcc52hnbT/vf7Pttx7DRd25GHLrG/37/tnZycROtcbZrFixT+RrPuiaKbTS5JybOmYGTJK0XzShJaFERtYKGgUjJJBCuoyqs1UZy8zxV5SxVNo+gzYwAq+ZRslKqnk0nGblnBayZSwy9d8nJy+2ICX5PoBMSIVoKX5IfkFcnLmgtFsqaspVleUMlenrcbi5fnGVvyjJnNVgEQlRWyBQJhrprFP4sfbKnG9usNF2xMXgOxN7wsQd8Av5FMOPQv8BFuI0tBFe9gBPu3yQWTc9qoTRRF2ibkdcEXI597Mo0iAg9oeQOWm2qw6XeEIxf4++o74RoyNYBHGW8BBOTEcTAvGVuR+TyvcjWfjyQrVmOCcCAJsY9sgNwIuY8JAiSpg9eQHSBspnNa52SmaaRrpkZxI4p4TOI4iRzgsym5pr90pLBKEb7ScaJRQmIthE/PrsVJyir07Cgk/BcuYpRZqqJj1CPOWkifervYE/etDqLsAJEzCzkLNHAw+arPfEZiE7NxZ/IBai6SRz7dUMrP+X/MF43kFVncKSZDESWC+UrjQpwElK4uz3xKPQIbGuJvaGsvE06C1cKGkxdIgqlGVCTWkUy+3p9O07PTh2+v4nTFRUnVqCWeuAyB5MAyMeqSckeKWEByYV+6RCG6OOWyiqFOQA4uVXFnRQHDKq6poZ6Y1GTkEigh8CYcOm4jOKkFrFdYc+oiX0JFgzIElpK8ZJoUJFyJlUmxEmogvEIoAnnhap4VTKb7MzEDcEw6KYHL7G9esa28tPpupWaA2vdt61ojyZBzEd137lCOdzBejlvHmao56groDr+ZTXJh/va9hnHEJFgbLKkNC6AlzRgGNo1MTNVc5lBq755SEQ3JQ2qigdzjizcOKHBFDzfM2SxfqrZnYj2gihSMSqX9U9ESuhAraV4QWmVocWZ6qrHFL9ql9jMIPcEAIAudhR2HC3CXwTEOM4vgs/uHhMDu/YNH58OKvL+yKSJJlRcT1Bb5VmD9nwy0FWBkQzdH16AS/RDR23PUoK2FZskIgOsDbaFvDZmXeUGBS2VKBCYb5CCawPKnSol80SjW7xyorGJ9xd36Dt0XBa1+avoY3ViufVNwvRr1VDU0A1Udm0e1bZPgRkDQXuAvJIDn3gUEbrWWoHGvyShEmBF0i99ZfEURJE4GWorFRW6jbYSx1SmM1YOquk1lqOsP0/uzrbruR8SYeKW+ZWD3qZzjRNVnA8l5CQYta4UBYJkOxQGh0tYGfFoTI0lyEcxvKa69+p6CGcm6oYJCR4UxlUJs6xpDF7zRaeiI3dIiz3J1Z8onRD63M2OesnRMNvRWZzAp+BoKFAhlE3IOSR2MbW216dnQ6W1TZbczXHwdba4uMZ5sMVejhw3nKDkD7jLcodZwMm8bxLaba7ZiAmYqtn9ScKDkwr0+2ndEC2Xau3EpgUJEf7P7AOFDWg+A7ek7To+t1uPjDjdxgOj3cK9CoeGc/qSmagPtKF2nWio52TCayYlcTlZgFGgKlyELgPE5wEtI3RvezPlHj2/m1VZCjznP0R92YHM8jN+AjcMcOYZmz1T6YypZFyJYzPqFDMj7xJoau7LnLN892tA9Z2xn9J/h8bAlDWdUpthAZr/VGyaTnIG8ZJrahjUlC86LR5PMiINgjFa2UHt8dZRAU/jj9HxMzk/PHxfYmMJaAor7mIDdlmz2DlKChSp8qe0ss0uFGupKSaQSSGhKRpZjlmjK7nQX5KaHiBoZ7oDLaxwcaJFYgcy4bySAKl1xdZTp9GQwI/d6NJ4aRWNNGL70326i0LcUdiiY44c1K6TSctOZ2Iz6M32PoUf3RBv9tEsXaO+IPtDQXQTifhLsWyffiIb1Ha994p+zbPLY88TuY9ZQptri+VgVA5Chs0t769KrWwA91uPNVjVSd7U+47YdJDCF3pzhnp1p4Puokyme0ayCQ6kfnE1v6HqPtQACxjq6/q1bG0XXh3QJANuyL7DesqzCtS3LfoZRoLszAZieXSneksCvNStdh4Xcjn4lVDW6ZpgDw3RaAI+WXQrp9Y8B7VlIH4LMcciKCmpC1G9Ju9aDvy8wrBzVfHbqMNBwHJ+nNhwMlKF4Q6d28YYT+56A8w8SvxFyQOCgmAO4PaPJjQUJY9DHC5xS5FJfrrUKXVG5IRf46xTqXWbZ48xXhBmpxPgN7wdwwzvZjMnXb8m3Y3yChHcXgZaOYMtGyKEufW12QBZ7YtUSDXXpIfcNdp5d3QTV9HqJboFydh8b4fJbbEzxWfyQjIP2ED5Bu3GdA2IOGfUHl7YfEQZtxBxE2zjVnjjgVnvAt08P1mdmLn9On+P3/tDFC4WtYEVZtoJVQ/ox+gmmYDxUrfKid+mA8zG4BzFM5OFCWHXeARL+p6SHiSsBJi70RnHb+DZaSDOEb1/N2g7YEbIt0CPU3hIjod7Vn7kY7pAHL4bb0juAr68OPfTg6hCwv1x/7B0BdaYCMRMv5PLTh5AknEoCknhKOaay6iDbmcX/A1BLAwQUAAAACACOtdZCOLuwWkoGAADiGQAAEQAAAGdpdGh1YjMvbGVnYWN5LnB5pVhLb9s4EL7rVxDpwQmQKl30ZjQBdgu0WyDoFk2CPRSFQku0zYYWtSQVr7fof98ZPixSkl+tL7aHw29mOMOZTzo7O8sW3Czb2etcsAUtN9l18smy+yXXZCWrVjBSytpQXmvidImcfWOl0WQuFWk1I2uAImbJyB2jqlwWRMMylzWRcxRnv3/6kGdZnpPCKUzJ0phmenVVsWcmZMNU7rzJS7m6en59pa3aVZadgaPZXMkVycEXJjThq0YqQ95z82c7eysVy7KsFFRrcmud+6B1y8675YtpRuADQPfg4NSqTh8jXfIm+nPz6IPLiT0A94fgr1psLBK4rDYYdkV4jUfzrXXBbk9hOm/rcvrogig44mq79U04cx+t8zJPFG8ec/JQw8matqaGic2lj5Usqa4nxgK1TQVrlbXmdhO0iW5Qwc2GGGkTg+shWVTj3w1h/3JtSC3XkBLEumOMUKHlsUl54b5fRnFhlvC7YnNSFLzmpijONRPzS2K1LsFJrcG564+yDhnBj27BzHl0/qgp5hf5FiXdf7Hd+WJKeOXriywUfaaGKkLLUra16fABLA+rBWy4dg7lC2bOJ9HC5JJMJgn6J6k5nmeK1XhpChSkgPIqAXEFVrerGVMpkJOlME42APnoVCHWZ2kYViIEDRXpdpJPSs7oTEBi53O8dpC8DWSiUazEGknNOoTEqhUNjGJ9Gb4K5UMUAmpWG14v7JmXitHojjvE1JhVYVVBDVi0kkIb1SDseeRApza5OM0HuMuGWI2tB2QNde6vR+qNFzpvOvORI51Gz5EuA3AVVuCAT8J41EElOeUgHRz0H7La7DnDGS4nSCgZlus9N9Cod+MYu54AWdEQ6eHz7R6cpVmJolUihQrSETQNFQ2DQy547ypBf+rVP0qGCALbFTgk6Az7P20awbH1yegWpMheM8F2MkD/8jVBvzOQ8iRe6Fk5yy8JdEAobkVKIXW/lrTdlRiwIu991AyxZn0zjPqeYqZVNZn40eP7xJfvr35Mv//24+vNJIcBsKLmfHtSl3HbuOjNvM+skUeOPFQNEw9/9wfeWtFG482j3kkfeqvDpUunG8Qn9YHBZnVuHn9t3FgQbqTih4cO6h41cz57xWTkJLtPa0iVL6a0OcKxIubxzRG1k954amM83Y/gROdWYpDpUvFmAGUTskkBY91r0oUSyYeXvOuwcymEXDOlU9StOMHcStO26o4TrtBTT1s9geI7KD+207p60gdDdFp96LHeLgWjNXlJ1ksGeVE2OR0qUjpSyXUtJK00Npta9sgLaBSdRmwyWRkN6yjzjsbttO2X+4ad+OetUmDLT3ynVbvYt4nCUYvRxFqzGVhh9slkbwqXcsUaumCpFS8c1uctrRctqgfevxdcBO0YPAhHip+u2MGaq1EpxkPBvotk51dE0rdIuDCW10g+qOS/1rVD3eujtFoJJkqGXv49XhkA3Sj+bJvXSGWEtdiAl43WxYn8EUEtfWxavbQMo2feifd0a6fxy0T2OEeiyeEECa0p8ck42aVRlJydlWCq8zTZd/y/LSUaDgyNqwkMCAYFc79pLIaLuMdFcS1GQAEWCUpOpI8dCArG70TUHxolbQZgNjmO0gO1xDbCHKO03RVrmGwEPnKYculSaStYDkO2Kv3pFYTu8E4mjZbKIWe8GuGM9uJddq0jwue68LembwEo1dslK2G28cFNjy5nYF6RU/H97JFTTOGR5BRVAznF331yuqR1JaBr8dqFGh7PA1Mls02PnmJRHKKnVufm8RdfhzhL4KBFOXIvW1EuXrp/h0hteAo4SGofto8LEalNdh/fnGCEuwdd/2bFtiXPEffyyK49ouWfJrMn24+6YlDrjBGNQ5TqjmQW6fuiU5loF9sOJnoSoHMmuD/UBrB3rRCkjvkCutDDAx3PFiL/vHDYzt6Hl2e86mjTEDV9i9YB732J9lDzf+DBNrypGwXu4Y3BBPa1k2V123ezrFtZps9CQ1dEUEkQvXCIGCaOPzY2igiDqwcHkiHWMYk9IanRjGpngpeukROcCrZL7rDglO0D+7YYO3OD1T21PrA3djpOKTZhJQPYPWym27qLzQQmMjTveUgHEXiIfREVgWwzPd12kJSRHGQqg9T12MrJw9+OShz+/cFvHbjI/gdQSwMEFAAAAAgAbaMjQwN5KSnCDwAAQDYAABEAAABnaXRodWIzL21vZGVscy5wec0bXXPbNvJdvwJ1xkOplWn30rvpaOpO3dRNfJOviZ25ufN4ZIiEJNQUyZKgHNfj/367C4AEQMpOci+nB0cCFruLxX4D2dvbG62kWjeL5/GmSEVWj469z2h0sZY1g7kmE6ysiq1MRc3UWrAFr2XC9CrW1CJlMmcWWXk3Gu0B8tGyKjbsj7rImdyURaVY2mzKWg9X4s9G1Kq2U7Woa1nk/mScFJuSKwvTVFnJq1poIEsuFUlRcVVULS5cLitRz3mj1ho45UoouREtJ+a3h8pOzudbUSE387mez4rVSuYrO78S6jWMiGo0ms+BqXnCk7WYz9kxu3+AIUS8LKoNVzQW7f/7YH9zsJ9e7L+a7b+Z7Z//JwIoQFrTfItuPJ+XPLnhK8A1GY1GScbrmr2U6lWzeLf4QyRqXNA/k9mIwQeEfAGHMSO42bULyH5yf/18zfTCmJ2Ys9O4VcEWgnDVzYKG4CgXd4bmi6ISjOcpK+DMK72EFACO5LZoMjNxK2vRridkhhgqAf5MxRJkKnMJ8hjXIltOSSvMLjT1ErbvsjxlCDiJ23WTFlgujVLVLC8Ue1vkosNE2GBlLBRfgXARMi6LchydXvBVNCXwSR8ceFdzUGi5lCACd91rmDl4Y2Z6CGjxHKHnoFPcrBy1+1YFTdK2nQ2DaD4I1VQ5mRNtpxIl6KzIFWqaQssLxIifSi8KqHbk5rWqStQ/I2f8imM+6RdFDhoOxsdzdnb+jv34j6PvmdZYBbsHeNL2HNSDd6YzwA4chaXgH4Hh066NW7Ys+JT5djIJt4hi1vv6hRRrI9S6SNuNol1qySZZ3dOnTrywQ5nXiucJbGDJrq8B/PqaNgs7Jeu+vsbV19dDggboMeEOzBFNw9PXx0yS7Oin7rtjjuRhNeLWwdbFRtuktlQ4k0ouGiXIXAdMkQN2OM47dMTLJkOoNd+K2DL0mA2imdXHpNLD1oj89mxRS8RRgjWvkU1ADGcRzY0zjya+UjxjMhaxdfVovzxRDc+yO1AzTc4IJrDPGswK/sYWcTstMiCO84BryA+YhbhmHNqsZYMg2rm14Ck4f3TlAe/vcuQzSUSp2D/P370FFanLIncX4yc6IZBoxiJelplMuAIqh9s8jXWYibfPYzim7DuUYjR9hMrHi98PfmQiTyDOpowMfYDSwYs1BkWi2KjlwY89nCfZLb8DvRJ5inaNzPuIwB8ocDwHF3elADR7LuPI5V6I8VwoVjQVK27BRJpagRV9rEV1cLICNMZ/+CS6aeSzSxUO748eolh7gbETeCcdyYfR8MnF5qzipkQ/MzY/Jx34M1gA9sFqngu0AN5kKsClOcEojpF6rVRZzw4PeSntaUEKEjn+dY5u2piQo97GXUQ/mZ0dJBQ7FTv6dH80+/Twc7tHmeq1EwdpJTbFVsxz0GBjm3jYDnrQcgx1ODrkZ9shoMHGN1O2nWBClslajXFNLJXY1ONJYI+AdTtsOZqzjBZf3ly5vLbRbNoaAPgHxVVTz1FRfaGAUMmR2yGb9sQyXxbj6ATizabUEa/AREhbFk6isNA8yUVz9sHQYlGPUaNhtyB5wwhDRth+ysSnErwJot9PA7NwZahRx84u/C2556DVZlEUmeD5eFAEU/bD0Q8Typxa3Ik2sd7pgYBaGBKtn5t07qiFMkPhSY6t/scgxjBrmTBQDG+esqEJMTkoFlnbsAl7hGwslRDjJn0tgcnLgNjVALdEdJBQL7+K+ic8GSZLe9hJzSZ8UTTZpX6kbLe8Zvu1NiTNAJpahDLF8zH2AaEGlS/q5Snwj2MdVi9CA1FVI4xuLDlgCk2FiBkN353XdirmbtoZDpXCW3HccTF4jribC4B4DMk3xw7/pOHu7M/HoPlHA8g5lgg6wp9WVVG1dtMT5++I3REoeCGhrFcELz1l3357c8urVe1Irz3WVCya1Tj67fT16cUpnCojp7BfR2atWTmcTtuwYkj6xByWULm+jJ+XpxdfywwS28kJ1MbJ+gt5eX9y8eLV13KjCe7mp6g90WD4oORSJ5vHqF2DTJqSztccU09R04Ai0QThaNQxEW2YXnJEWWFkfEGEkVATDLPRd5BtVJByUw3m5kDGVXrgGsVli/bKph33YfqEXD0M+Bx7AO/OXW2YOmeAu/jck0BRO4sGj6P5UkV9//GrFRWJ7VSMRSOzFJMsw8+3CDDIEdQrvyIw1AYsF7fs5P0ZMqHTgDqpUAG9Qq3kWMges0uNSrt+qJwEktOBL8z0rvzFsfgEx5eO/U22eCGbHZcTSq1K1CWa6FDciDuAUk2ZiTFN7Yw2tC/MRXi3IxIyoPBSDFRtRAvEvP6Sr78B9jeSmjeoygTOFpYcDpEsguUO5ksgh4E0OoziPwqZhzsxJ95fYyp0qF2hZFR33YlDBr0jR967P4prwLARD5Bpw49cqKxIHuAbuJf1w57NlPWxNZU0mvQLIo0ho1fGND1CqKvSLWLtatiWbRyOO2S0FtLiyixOiiZXRt+powAL+KY23gubSWGVDEr4UuSighId8WAHkpSEWjcgECrwu1pkRgixqaJpzdir4pZteH7HKDvHBFhLKB5aA4zN2O+yqqEs/PAagSHwVopMNYTX/QTYxQz/dIixGaLra1Ysw0V6v5Tnzdi4KDH55tmEvcdxiIeQhOrdCdueDTGAoZCg3OVThlmY1nVcim020M8sc8XYlS9uXxfQNUnXINbZw5mRdKhU/uy4d5r6kPUe9XFOdqkuYIAAspEKyzIuczChge7d22azEBW2lNpO9gKbWTbNIbaxAcE7hK42aL7hhOBwR4PCoKbgsdPqMwZh0w+vdv0OTBfpzIlQBHL/29FR2PFo92P7m+QrcRk4ofuHifltoWDwaIfTb2E6Y6rEEpK6dWtOeSq1DhxTShc25w4AXyXFVgdfr+CzNmRUVZdRJC2EdRgignT3oCuVvrVhOu7yMmNnS6azEECVs1sBBpRlsCteJWsizUGP4Rj9qkgHfdZvBsMCU0qxQvdyHa6x4UItOg8XlBupgEgmF/raBBddv+h4hFJXK9T1HDAkJBNQMwRLi6QeUCEUebf1C7JQDueLJ93ZLB3flmcNVRg4tiyyrLhFKPGJbyCAzdhsNvKYrQRoMUbBKrYHrENhRTc+2Fio5gQ0jm5EDq58XQmp/oomVx2if4GeFo3q8TF1rxIWWE4wXlX8Tjdq0d1eX0c1ifKuaFp04dUDNjvRyaXFY/wT1/Jprt3Vw7umhe721hJ0B2QKUqdeJjpaJQ9K7KajO28h45iZBley5vlKpLMZO4r/7gHMh1TBj/zYpYLQmYL1ZOi8nFbV4fb54TNH4Q+sdxp0MU6z88FNQFyL6VWDvduSfr1n8F5GZ8vWWA7OJZgolet9FB4G09Q1dziPY0clOXiDSWGHGVeNBvZov8E5ej2ppx0t5BhTu/zYthkDF/t5t1JeC33qp9CDvra9d/gVUtoXxWYDhYbTmh++dnBg2U/Oj533gKjbL2WtdIvsrK4bXdy/b7JWCZlBUj92r5domKntuvduFRxuetcKvcVdI3fGPuYS2GBnv1lnaKC7bImEKfHyzk5RPJNp5CH6tUjvQhxsfAJVTyXBYHO8/3TmRBWE0QWuD2jg2JNUnBs2iAFlBhH0QEHtAdTPIRaWJUzAig2vbtLiNu/alc/AJlQSD/Axx/VDzNDEF3K0VpssHqCB44M0cMKnEdwV+neatxhxXerYeUvAaQL9gK4ZnXPVGmZ7g+jx0QFGk/+RE13Oh5yY0ac56QCjySS8sQAHEkoQKzK/Oandosxv6hB2TqO+qC90VadPFC8RzVa4TZV9vHhW9pYj2olHsBIt3gSNKTo1qSA7kG4EIXwINzdwfbxtnEC+B9ygw00Hp/caKNVjBMOlLkjk1nlz8WfroShv6FelrfM41hDw3UWQi89F8M0gAq0dgZfsVasDjtCLD7pi8Z+3WBJOo9TPtX+jCU9JBgsRzJUHswQv83cb3LHbnSUlp6D4g77/eJRbAfmFEQa6Ep/jU5jcyW9Xa+JCqDUNgRRoY8No0XdzU/bG+FRPrVrn9yXCAM0muh6mXRlE15/VOUQvlfE/1C7V7c57HVJmROxhEiYbhpN+zxQ/pvNhNM6/qw/O1Gv3+x34IO2Qn591SCfpkCp87FCLaotlcfuQDOsQXc/jwJZXsmhg8q4EqGJJZwgYNY6a2XsaG6VP3p89+dBBo3g6J5HDKYkcykhCvy53unXwseevTjw/LcOspV7zAA+M+DiMZDfACF8Jf7kZDFCYUR/Na3DlyAuYEeZyWDftZssC+XjNKGzz8spP0XRjaivBDK354dHlT0UkF7sdDqRo2qJWWkFZ0hofdgirpczTcXQ4FEW0oFvYS8m+Y9/Prr4iVhAm6+vhx1dEC0TxjYfCMbqThJpYn2V1BlabnfkR2p00DzWpUG4bKVDMbO8YFFzKNgss3nfViufyL92Tsc8a4gJb7O4UkLFXyHYlPvXoVgDRqo5xrOWoftJieZI8Ya9mlz2D9Vd6iY7IshobCZD+QZKEDgYNgRvZKS0kX0cJKHjCIGmN0VYECJ85uStDyEH/0QF1eh/alYlofAsxosIkb1Xp7z5GPWbMqsPbDfedk4N9kRUrHx+OeJhwoI/jLd8IJ+iWPL8LEno96KEyYwMbfjR5p0YYV7pxaE/PKSUeqSR2n6NbRwyc5mP1yDASf0OnBxsuM8bTFPZRW0mhaRyCRfkcCwJ1BUUjnoieUdqetz3oUhRl5jb0SJsRg3dKLbwGdF+REOl22CPfjuqG8JNctLQNmXqYhxZaCwIdVMv/EFu6bx2y1fapH+0VGDUZaBV0+GTqN7wxWBb6EdzjB5ZZKBebHezbChiQzFnuWMwutAjn44SRnrk8YyJexWyJd0NzQkutNfzmkv0gePYZVAnCJYoD+hrVqe9c0PZ7rF8qjs0rxEc1pVlkMtEt2B3aQRCmfwuZe5fxDfPtYvT4dyf6Ckyis6/+nDaqtnES+A5fadmI6LJvKbMgJ3PSm46ZILlxUdsSxenJLGQBXr5cB74Uhn2XLIv/s2r3qUeS9zXFxwd2Cd9IyA8z+IZK9HDVPZWsjwnBzjIaRbCzhraJgF9Ae4+49VOk00/4irbLMwbSEXyttON9NOHoZSG0wLc+87iL3knRtYeqJP6nD3NnLxCPv5X2QZh+6xUG1PYR2OADMB1KECldf3T3GqoKilcCsqgGniCibpr6AkRXJBJjnH4i0me8Jb2p0VvT5K5qxCC3FYlh1jyDd/4bSlj1Okj1mjBk9/c/sKRdIej8Z/RQesP/Aj9+/vzxXZGkzINOcoyXbwtbmF19yWNhR4XAFI483bfk7PsV/RDVwQ0JyG7UgIzdf//gozMPWw3mnRfgZic7UNvlo/8CUEsDBBQAAAAIAG2jI0OYqP+DjgsAAP4zAAAOAAAAZ2l0aHViMy9hcGkucHntW1tzG7cVfuevwLgPpDzURlbStLMTdarGcqIZ2/LITmeaTIYCd8El6uVivdgVzXTy33sObgvshSLVtE460UO8xO3cPpwLgDx58mSS8XrdLD+PaMknF+3fZBInotxVPFvXMZklJ+T87Nk5We7IW55t6N951cjzLyZxzhNWSBaTVyLlK85S8re3z+dEMkZeXn999frtFVmJimxExUjKaspzOZk8AbqTVSU2JNLkCd+UoqrJN7z+tlnOzb9XRc2qsuKSTSbZmlyY5tnJZDJJ2YrQpl6Liv/EZrnIeDEnJZVyK6oU6APzTM5JIWp2MZ3qj0VT5epHknNW1Aue4q8JCf5Mn2RJxWroP4nVAGD5ZgnsF4QWjjCtuShILd6zQklZr5nhkVy+uY4mamZc0opuiKwrotgEbVbsQ8Mrlp50B1gBxsbkXNZGNn/InNCKUUl2oiFbWtTACJeGr1oQWpb5Dj5aUXnEojmZZrAcqGPaSFZNu7ygxoCIKFFImp9oHRK6FE2tJA20MDQb9R2uAA1OUcgVTwYnO/uEs8/PSLKGQQnAgtxcAnkzkrxnO7Xuds2TtZMSRAcjUmRaK2OEjrZ1SOuLUVp6NJJzhBRZjxyK5xGE4U1VgMXiJAcDx3eXAX6+Cn7+5W5iAaf+1ZNJto4OhHuLdQ/oXZSP4N3uLEVghrAo6IZdvBYFa8mZn0pA840bC7/azfK1KEDDTVLDfkmtEGbrAD00PPgKs1kkkxJENxvmHYJ3y/PcTev5AzuDcPACClUwpazEPU9Z2t93VpBYC0bwe3zr2S+HVDWpO16JHxtoDKKrh/7vbl8SsXLiEE8eDtqiRcJGAGMmfGWdtf430s1dxGTgKdEYuhU05AypbGHFOyHCSuHAkTkn2/I2AzlOcBmjZkCXWp6wXLLWJbslohA8PkwVtZNJgGuDOHRFM54uimbTguiW1RVn93pD4QgC9gXwqDgDoejuTs+4uwttzgsciT2hl2wK/qEBZadoBrvmqMqBnKdwWcsI28b3py+Ck6rmWQGxb1GzTZkD5mc5LbKGZiyQEldQTsOMUtCzI61sjkUA1zgP4wRHeZKzQWZUsEG83kPUpsu8ZU/2WLJjnQBoenk4l9IFdQ64W9A8X1SsFHIGylyy6uL02ZxA9pB1vMw1DEZq4h68NACl2hE1jdcCPrmWA6DH1EbekS2DNEQ76bQPGU2rE/NUG4rmFuYMY6sRJ3LAf85WtMkhjCCvRjEEBDFY23TdA4oT0rp6RzOi0iIKzozdc9FIgvBloFygiMJI67rwjxVpKYDzjjEyVqBahGLb4vm21YtDtRIpanvGsT1oFW2SnuFw5z/CcDhtwGQSkAK7vSnVntDu5ljTKY48mwW2ctr89dnsO1SJs5aSIsK2A+zkG2HATqDyoj7KSGWzhHSN6InHGkDPGrHAoAFap6PnfmJLXCETrSmMFlTrA8YIND1giZXIc7FFY7URc79ZXqKvRWncVOT07s7O70bDMAPy46HOhkwsLGEhVc1oZx4QcDoTq+MM37LobD/ft/t++5tv3J7G+CqVsgmZyqF++LEPCF5kxwOiZKKEHeNDwVhAPgoSOOQxnnbJgH1re5WpWWJ+bTbkjP/PYDBkxQNhoDLObgl2vL9Wy2Cmrz9sSWNrJcfCXnx4ugau7dw5KKx2abRdGyoEBxv8w8qGUZdxh/UfjoyOQ5imdVgs/xXB6PhyYgAFHQj5cMG8bMGlBGZnYlvgmDYTnpMNz0EKQIsBElSbtfkePhkApjHxsuM3aDP4ssU/hGbArF1MVPW+tVLwLQlOt+M5VLrHI1pLRyBGKQE/a+Xrg1eNiENvptrsj3Zyd2rbE6sqZv8MBKxTbky0UNOn0znuuevnONl1dykpI8SEJgkrcTfc07xRB3tTUbICD+aSXEiWTtvqmpb8NLWA18O6q1rLxcgGcrHXpeMMZ9z44bHa8DFJxGZDTyXDHuTdFoCqX1d/YNEoi1pMTJdNNm/4/K9rnq17bCOIBnVhyjV1Tlmm9hPpY2I1phszq0vFQXGQFJUJrp0y+HdkXewLFkUsh37kpsh3Fqx0VTPjFZF1dazlFl4ys92hGNWnXgktsJWSOxxdc4jgaEFovX578+cvz56hk93Q2kqmdheuC7JBrDEaV0f1p2d/PD0/e3f+efzsLD7/0/ea6XpXMsuzJYEU9PzjPLERcX8pHCT1esYn9sTXyETrijVPkWrtOmMIdtpp6DNM5xe6YcZ660OdsPG/44ey3p/dzp4Ptu5Xe96DVnG4N963G0k8YVCS2Q8/BtFFVNkj6hOYRQtzrC1REJFw5Sy2oPv/vGA5PjtFMY5PHT4pbN1YC98bT6ktilGyyO96IK8YNOiBmSn2mXMgcxGBXqWXC/TCfouaQcSOIckkssHxm01jZckSfRp8d6d4cVCKIgI5A94R0BRy1TgmZ9GXrkvdbcXa58LCOU1gUecR7FaWx1/goSZCUHTDjJMdwk2eY7hRngI/NgwV5EWeyzfXpI32OHw4ah5IbziSlo1c669Vk+cLtPooC3aFPWH1UNn9UDvvSgqNZAt1AuAQK0mPMy+dUHOJABxUW7wjPsoVHHGaG4Qwf95v40TXLi2W/wQbyV6E05geC2nDm91EHj+sHBVPIPxVsH0ODilBHRCYzqykb4MODCg+IEyCrw6ft2uBV4uwon+VLvAxw+/gOv66YMzIA9WrbJYyqbiS7fBEYw8q9HpLAAYo4hfEhs+nw4h/qPU7Vh6Hlb0ACBGjg5A6GplhDDDT5mSF+bX3BMG8/cB3B6LYbVBk71SsDwNvsTDtlGt8nOR19++P9SopT2rNRrgANumiWOe+bS7clnFcOVLq8ptEFDVk/Lqmc8P+NZUl3UT1x3oaww8zCL6nL5CG+S0hyYmmP//csd7jD6Me0DkhfyCz1wLIw1b07ppV5jxUCmm7tra6tBaC0jljwL+aSWK7TwoS60Of+IBTH1/z3nWw6t132jMyr/taJNjT3hTNsu4ZUfwRtae3QR5QotH1hlbvUxg1q9lHQM1GpPrlm4LEx1p9V3R78YJCSu9f+BepqnAJrZa8rihIbJciqUgaLDv7qsYlQ/H1+4WPtd0bdq52akikd+4ELIZuamopq4Orabba9FJNI044T6gjF/WGEGO2lzoiDb1Qmzmq4xh8IBec6iGf4Hhgb6oOQ8eVGlqEziHJUogclRpyo4eCm251kPP3eKxze3X5/NVVtEnxkRYBrlqmCmFJdrCDQp+ekm/fvXrZnv4oTY8BZgAJDgYKAxYyIqlFQuuZpLtOaL11D7YYlXiExTITP1AX3ceNUtcidBfqAR/+4I3+dk1rDJbTVOvhRpNV4ZLuOuJC7s85YFHhyIwcE9Tj34nk1cA6YzVCebP6QyZ+W7RYgN0WC3LRHW17DK2yUQ8iVBA91slV9mkTLuIi8W/K3wWc73V7b2DkrRnonB9Ol5HXNe4BD1S0MUvb0x/bA8PewRNP+QEo+u2GtmS0StYDZ4D2yA+fqqrXdw4VL3iR2rNUyFTVMHXgaEYeYPYhI+/rNxcPwQPiAy8hvFUMf+E6aq+rPBgV4V7JelDCsqBelJAldL1Fhq9m1aUirCgh6ZV4zcDIs7Ozz0qVVYTwsncOFmYvWUaTXSfG5qox8vrGcXa49UJz6/rY9M3J06faK7Y2fqu10c3b0d6jVh5Qb/8yRj/tCxVpW1GZkJ6h91727qz+21bAzH/ECNj1oA3GVBoqXr9y6m0pT93mQcLj9fy/UFb4xiBQ1v6nBoNqCFXENpTnM/XfnoKcclR3XzWqua+Ynn//ZaTwOTUyIIMjUdzrmqhnBIGD9ltsWIANnPMNrwFbQKPAtxmtRr4xTxlcX1Ciq8ij6m580NJ7/Yp18ohsA1QNPz+xov/ulpIPDf5fFi7V+p6pYtO8eyT/YPigXp15qjPTK52dXWXZMa+EFenJvwFQSwMEFAAAAAgAbaMjQyrxn6DDDAAAtEMAAA8AAABnaXRodWIzL29yZ3MucHntW19z2zYSf/enQNIHSjMKbad50kWZc5PcnWeubSbnPOUyEiTCEhqKYAjQrpPJd79dAAQBEfprNXVuqgebAheLxWJ3sfhh9fjx45M5V4t6+mMqqrk8GXmfk5OrBZdkKbI6Z2QmCkV5IQnNcyKuiVpAW06lZJJULKeKZUQJAlxowT9TxUUh05OTxzDCyXUlluQ3KQrCl6WoFMnqZSlNczM8u2GFkg3Ba/wWEoAcLHcEP1HJLmYzURdqQP7J1b/q6UtRsbBLxUrherzFL1yJ6i4kqiWrHNE7+BK+zthMVBS6OZqKfap5xeSY1mphiOuKK7YsUQuO09vLK9t0cnKiNUWuGF32WmH7w5MTAh/Q0RVoc6iJhhOkIs/x74sJEdPf2EylhvDqVhCFb2EdFC1moPoZLcgUVmLBZh9hBXL+kREphpYzftQ5GY2Ieuo3PNINuuWiyAisMs7phuagdVjFsHvKM8MBHlaaHzXNuv0/jIF1wOhkoVQ5PD3NYFFzUbIqNdpMZ2J5evPjKZraKU5EnjoNmIeMXZPxmBdcjcc9yfLrgZ7wgICZSTCp0S+iQL01YsgauPeuLEl+3U9d76Bfv+0BVOmYlpyMNOt0zlQvqas8GZAkael+GBJt/kiTSFLQJUtDJtgUMMGGkMO7gn+qGbl81XiMJg7ZoHY9JjwLWbxh1ZLrOZAc1NkwmleiLkNGZUvpM2ybQ8a/1Mspq5DfkuET2HcBrO2UV4S0JGPtcAH74I03QsM0RovaDmT52RK/e/tv0nhNSl7/XtIik+QWjIdMJqb3ZBKXDHiiYJ7b9eyrPuHtHCGEMIJGFFeFiRjitgBfmt6tVYcmiyjDaw8n6IIPB58FUUmvEIpQ0kSNfoS/JceZdQfxXsJInu/A28r6jucnFVN1VZBEhxXy/svZ1w8vkvRaVEuqes6aA0bsk3NBARZXdbk58x0ZChcIDIOC7crgUZRBXWagGT8M+I6v3XjV17HNebym/XsYrRvmNMvGxiQs+1zMeeHxh4h0kWVgdfrFZIJ7m2cNjm5opiKHZCpE7nd3z2b9jHDTmucZLppzhsSOPSBT2NLw1ciFqH5UYWMcidHCrNu4rFUPevUH5OnZswF5dvZs+9TRhOzE8TE2b2zfMO2SVmBIUlWawZD07GAZyIFmNSQJbqyn+DY5gra00SdG3G+mKkg4GMSRFV8CaV/pF4caxAYJvRHNtHYVlWVc2RVFTx6QNuyPYFsLpH8NtNtWFZn4qxqjaYcASlFiykdRubDn1LneT8taLvA/zZbc3352UBLEbC2Da9AzpYqCdXwxW+3QTtXf4oaeVF+Dvjr/bCwLvzRGQdVs0Wp8oAcZ6Qy1h499vQZn/YAZSIcsQunwY/g0oQtp+h0au/5XVc1WbeIfkD+xNgYuqNzsqy8x75MojltP7EToDJJDid7bePL37ru49UV9F/XE5dZorjWFimpDOiiM2sTApFUbPUL3CpWlm7QRNmkZ6u0B7Q2blaZYZdUmm9ChE6HRk/MBYYrOV7NtkPwSOuEpR9yA0nDGTWK1WYEcEiXDPAwVhcu8zDEMDJZ7I6SB77xi17TO1ZA8OW+opBEEz6RweqmZjK0cTiUc9vUVnRN9cqOkrNgNF7XU5zomldny4BQFyxoMz4qsFDCRyPrOWcH0IRFn0pzj8CxJngfHzBTbXkz+S+Rh1rCzGaB6eiBrzygYpgy9Bvp4a5cW/6wag3bUw03BT0zXxaNDTMMk5f9PptFiEa2B6Fmm7ZsXk2AIAwTsZTdN3L2v1bQydW1nTTpSsSVof2tQfqvJvJCsFX9oILYx2EZ0WCsjxQOKxza92ycHtZrcmAU4NdqkfRctfkdb/zqtWVTtVw9y7Hm44Bp4zScnz/1vMbjNxzP3gt2Eht3EU7/hkW7YCXYTDewmAthNNLCbOBR22w64AdkWvM1XWgd387u3y4vpvFBmedVduZLXu2awocTnnrQa+WFoUOFd8BMDJlvkBAQywEnbug4JKytYDRXuZCvQjyUxe6XPPXgBJn/Wb2VvwTBH/qCwsE2ClvU057PxWnnf6Pf3Ebs7wsFI3iE426qZuMbkEAypg1TFkKTJBIngGZSDe1bFEGy0UIsfcrzYfVHc6SQZiKjC2AH0EIJACnPzAhFJBH65rCFjaSgcG6Q0eRmkZaXN3MydBIGA7A2YpuiybBi6qrkTYmohdAADp4HoUubsd67uyK+9op8akm4WpgF/iKEBuztRV2GQRZWIIr9DuaU7VJHbBSschK7PXAGfJZ7imWwp9E4H2waMPQURUnJ5jYORWwqxdiZ0JIegyxFAgPYwHC1EnWe4JYEd3bCWKco2w7lMJu3qwzKKwqwKEoWABZjNTOV39zxS+msdY4Tjhny6WtphE4cMgCi8BjDALB4J9KL1+qENINyA/PFWKO2iNPix27lKPS8xCeAGyGN3xHK9l7W4ZeNkD9GkUcoHadJWfQca9F5J5X7m+y3sVBuZTq/3N9JZxZrd39hpZyj8aMAy+iZjclZxfQ4dJUmcZiGWrKRztpbA5iAjLe4aHlSOuZRwnB0hALme6JZ/5FtIMnFb5IJmm1jhAox5NjqLvwYdCp05bpIZ0lg+L0TFxs0+3sG0X2r1w9ZWtUdrbSarO6rBShkODO6n+ExXLgS4nYcL7gaOD4KA3UoQ6+utsw88xEib5d5Eh7G8WfYQyLhEqBPXZTIZWOvUkIYmDdTcCpySizeXaM4GTJlM9KJ4+Zo/amtJGwZmBZ3mjBg6XJFgZL06G4Y3XNaOjia6fWxcE6Q89ujO+reL4EiD8Z197i0DYmbWscLB4XDoVRqYGH7LIbpPsWQAtgcvf9Du5+4JVgSJzto5azgoNhNs5jTnn9mKE6Qx0+569Ar45/lTQ/E3LWMY4GHz1WwydGsrHh4etN16I7vcZ08Ezs8cbmlV8GKOq4LiwS5pN1XQbSEgcyvmJjsvyPnZGZktYLYz2JuOjtmtuQXzIgs0et+6QTVpQgsQNo94j2aCA16imadYT+f12Nd9GZg36Ge2HR/X9HfuYEndd7wqbGwM3rnnCJ+uBUGHbmN7B2iTAXAZ8oKcde8VU3Np1/uSWDLgZ5++trpfe4sopL5qMdeHGqc672QRrWnpm0ELnTSXiavn8XWJhihmjObbL7wMXXvwTGRzdl7w0hX7rDltHg75haf5PwMytakYLl5wJY6+NcZHOXr/wb8hl5104gKMegnOviZVwAoh2dVfa6bNfltkzdwoKdjtHhfuNgaag9+c3+BRQbjIvsoh51J58/ODaQBmwY6UzsOrk/eJiX+nmVDXPAe//hCTz9NWGKrNo/SwS/w8AbvDKgCIkk+ekJ7d0foOvUEAFaEZrBAAHRJdIQCTYFXH1YNrJbNhcdxU/fqsyNhyYcb2R9Sj4aKgaGRaKy3DscfW/OKDD8zIKMJ9R92wufkVpFHXXbODtAYEbe2XSPT1rCEouZBft4UHfVDbssHdK8jqIts2vLYFYXvG2baiJpz+FNIpiAxjtqQ81/j4CgGCB7S4i71a2ycXMx1BYu9wDSLXr20Vz7oQ3jpvIHMQHH4yb4xkiE9UmA/27P4fPZbY+W07vXTHskhxMFQcFjPK2DaCDZkRmu2blzWxAD92XhGoC+w7+A5+YjUAb+xTxEOavk2fZlLQ1DxCq+d/recYs7UXfwVIaOqQ2pUFQ8aWMIe5d32Tz75b3LStsGn3oqZ9inVa+BcvEAw4Gi3geVAlmdtqlYIU6ThaMCyPqYwj53HbS5HM9dxh5Sf21yM+4nNIpYllo0sHcCapX1gSnjw7WLDtS2/A3/HQHz33/kn1JvritD3oGlFT3bp3NZLpfISyEj38hmqke5WmrZalbd4jt1tGwy9iGmH+d27wlibrx2TvIVrE91ecFsajw6wiiJJ/GccfbhydPeQbFjBiOQlelOxrI6awI3p3EE+udTlLCIjCka1ErMAUHoZG0EtoUxyPysEno5/EQ+DgEST4iCpLpKgrOAImwPjizWWIWzW7k+b5l+HuWVd5JDxWTxtrZr6EaCPWM0GmdviCh4tghnmfIN/kA/4kDB728h6/kNNwMy6xGU7z7lcPKw3Wl+T6KoJWDAdWR4u8lvf2fM3aTWi6pvtDMmAfudkz1u4CrOxiJObHtDvW+RqT5p+3l/r+TD+yfbBoy/ohHmX2/RnZfsXQmw97rrTX9Tw6gP/gip1jxT7RkudIxc/xi1P20fAfUaji6+jAWhXvZsTecK0q1wRLHY1MSbSxRl6YnwzroqapqM0tNJElm/Frrn8z7fiYxQDesfUIL7C9JanNL+Z5ZjOw1euO/bHuGNIH+sbA10y+eyG4JcaCXbjOIQy2DoXz4Y+ze2HW/wNQSwMEFAAAAAgAbaMjQ7HF7AvHAQAAqgMAABgAAABnaXRodWIzL2dpc3RzL2NvbW1lbnQucHltU7Fu2zAQ3fkVF3ewDKRU22xCHKDt0KlZmkxF4dDUSWJDkS6Psoei/96jLCmMEU7k8e69u/fI1WolWhO7YX8jW0ORpPZ9jy6K928tIb77erAI2ruojDOuhdghWN8aDY0PoOAbw3ydQMSK8UUTfA8zS+9rtASmP/gQ4YsinJNfpQ2EYcl65IMQQltFlOMXWfmmEgJ4MeNDZwj8/jfqCAEPAYnviVubZgPv+JDGleeah5Nf7oyjqJxGAq0c7HnUDvUz1mDNMwL5auJJS3+E7Rb0pzxwNQbGyGdXA3eCfwZzVDaBx4tyaeozAm8uwldzeIz/QARlmR26GA9VWdZ4ROsPGORZseRbebwpRxPLaRgqF03Omxob2O3Yt7jbFYS2uZ7nvgZCIuPd9t47ZDHnbmhgkiITPWXaZiMXnEuEzcuE7yqoRteqp+Qh3L6yV6bY3ROcOg+9qnF8SvP7yyAenWVkMDGp6XwEBvTaqMiunBgQ2CiltR+ystTjyAJbSBMtF6aZKWSLsVinnHU272Vx6rF4o2KSgRuE4j49nyMG1eImFzo9vknojCFgHIKD9W0SFSZV4effD/9+3a0lf6JexWJpQaa/xZr+B1BLAwQUAAAACABtoyNDOYYWb8MCAACLBwAAGAAAAGdpdGh1YjMvZ2lzdHMvaGlzdG9yeS5weZVVPW/bMBDd9Ssu7iAJcAW33dw4QNChWdqhTaeiUGjpbDGRSIekbBRB/nuPpPVBRR6qQRDJu/d47z60WCyiPTdVu/2U7bk2OqvoLdXf6P3cE0XfZNnWCIUUhnHBxR5MhVDLPS9gJ5VbfSWIOw8DcvuIhcmiaEFM0U7JBjq+RpZYa+DNQSpDTuau3X6RCkOrVqPqjX7RIoqiomZaj2mSwTtdRxHQQ3z3FIvnB4UHhRqF0SAFwpEwuRSQ0I0VHrldpCB3wMCqkHmI+5OEsxzAhTZMFKihYAK2pECFxROWUPMnBC3XZ1r7VB9gs4Hq43jjym24nVtRAteAzy0/spruBGbinnX3czDdas7gKjDoAvcfJe4gzylJJs8TjfVu2UWzBI3aemy+kxqkWIes2wOqZCSstax3adbjTBHSwZcMs5wdOGw6nmyPJolbVcdLiON0CPHdGn7e3VrBbb0Usmm4AcqpLDgzJOqJkk9HpNI0dsfSyxMSnbdnyGwRwamS0LASLae2CWRijzpEdoYbV2dJGATtxFQiCl5eR8GPSUpOhTZpDE8CVDum1Z/JD4HVVC2UnBoNQeglsLLk/nOMZqRhdXg5D5Z7sGnwwSFJ8PIa3k60zZZiszXe8Tk1QorhbDPD6Zl6G2JZXSLp45shGc4uk/Q2b0mcMiOqcyJniLzlZRJ3/pagpBo0vMFhajB7Fct1qlCMa/bE5nj9IRVyzkxHT8TqYFHDuhqbxmk67lzLfu7cUYsqNK0SEF/bLoVuzP5+Wb3+uYkzGsENM8m4SwJMfO5ngaQw1FvgsME23iycMB5K4H9BXV2EIh1yO3WnkdIg+4FGcTy6lnWTGUjQ8VzIhsStPatew9r9H9YPTqHr8Pfmxrs9uHmIxkz9d/DzGXyG35Q2ve2jdkPI59cuvPC5zWw/DtMlfFyt0qk4FiixPucRG/0DUEsDBBQAAAAIAG2jI0Ni40CMiQEAAAoEAAAVAAAAZ2l0aHViMy9naXN0cy9maWxlLnB5lZNLS8QwEMfv+RRDPbSFNQjeFvXoAxRB1pNISdu0G2mTJZmwqPjdnaaPLVsUNqckM/nNfx6JoojVCrc+v+S1cuh4pRrJzheLsSdT+kZCYTQKpZWuAbcSGlOrAipjw+mOELcEAJN/yAI5i4jPKmtaGKO0ppSNA9XujEV6gPc+fw7ejLGiEc5NlGRuTdeMAS0ibrbKgZU7K53U6ELk6hCVTOitliXkn6A0SisK7PTuSQL0WfasBwSHhjABYcUevG3AVBNxdWBr0dKxEbr2oqadU18ShC4DqCsKSeGTxH5TygqyjIqFWZY42VQrEIhW5R6lo4RgWM7vpE3GtIlNrimfXs7esOnN2Ro2g+jXl8epA0GrGAvLDyEIyck56zK8nsngtcQkHixxeszv0p5X5IjYXQWXJXI0ncw8mTc2BWh4TKEEUutDr/8IMPkvg4ymZZDQ779FB/OS110vWcO4/IMbPZbEwRKn8xHrPsMwYrOx6v8BxFfdZEH4l2/fFz/vNzGncWkFJlO9U/YLUEsDBBQAAAAIAG2jI0NOb4oviAgAAPkeAAAVAAAAZ2l0aHViMy9naXN0cy9naXN0LnB51Vndb9s2EH/3X8GmD7YBR0nWYg9eXbRLP4GiGNYUwxAENm3RFhtZdEUqQVDkf9/dkZRIWXbcrsAwP7QSdfzd8b6POTo66q2kyar5k2QltdH0b2+y9ev1LjKp2VqlVS7YQhWGy0Izkwn2FnawRc61ZjxXhWBLVTIt15tcLqS5S3q9I+CyLNWafdGqYPBFlYal1Xqj7bKXANBFrj3BW2neVfNzVYqYKhULVXKjypqyFF8rWQo95ZXJYmJ7qIVar0VhGmRtzu1SF/VSwhED0jfw3kUHCgEp7kLSd3Yppq60aGT9DC+9Xs/qC7cMmnMOx70egx/oi7St5l/EwrBM5SnqNid1ywL0u+ZGgipLYaqyECmb36G6gBvjc1UZxhmKmFi4v+ALk4bdqYoteMG8NgAALAVo1wSMO9gAxKrWslgRNQfdIwLqFXbIBTciHY6YSAEO9oK5hBG7dqtbMLYZJoz9bTlbrFwrdqQNL48Q4qgq7HMAsgLfYhFUxm9ESwp3uItbZbdJxCkWQtMZ5+CkmVhcg25yeS2YVmOnXPytzthkwla/hAuPaIFWXhYpA/WjV93wHFVlWtsTmVoEeGgtP/LLtP5JCDrxmGXGbMYnJ6m4EbnaiDKx7oG+eXLz5IRc6qS2v31IxZJNp7KQZjodaJEvRyzlho+YFlqDA0w+QryB13gJdAXAA/QqJMmXw6TeHe0b1jsej9nHaj0XJVNL7xgaPcOgA1IyqMEBMKlJJiRJshJm0PeL/RE7HfZC7M+F/FqBz6aUFGrMJAZFZbL+t9P7fmJ9e9BgyxRQ+/1hjPtK6EUpNxQEILj3nRg2DYhCcYN1ix1AM5GsErKVBmPxjQzNZG10FnOZAlEEX5X5Fixo4s8PVlKnAsaNC9kR8RzVTElBAdcWv8ys8ynwiHj6xX5k2d+VygUEgz3wHINJNspCF99Uc8jSGIebEnzdiJiX+xxyskvh4awWMI3EXkEroInLq0ioC2Bf1C5nt4WKafmGx4UwHAScYuWCIknBRsGJKE86MK9bUGeXZvElZgcLU4TY0nD4ocO8kQQ6w/9b/F8czF1nO7jbDx3cgVAYuRa+YpRiA+UQcyWY/BaSZmP0Ww4JshSYQluadqtTcMyJM6o25QZxg3hsqNoxuVcI5A8lDzIpUjRRgOJUm7RDHLf6gDgNVSQOlB7wr1CDtBKHx5iK8HiGJZk9i6p1gmvPZzuPYvHVMkgctYpb5/CiIOKAXlxuxli0H6HpEQxT+VZQQeeBzn/p2xA6+WWf1vtXl8urISXWJVQ/Fn266s7wFlAWu8PNcQzCDVdiS7suJwrbEdRZsCcsebUG/RB7Frw8n7USmqNxx3RUg8yrCQ+Y+QO6dGdpbHK5CmR7zD6KWwZBoiOBz33VwhAdFAobJCOgQwXfGbaiwJFuhWD4oSMEkYU8mIPcwUDuxH9DefBhdMqOW9j1aohsuwvxte4tFLhwGbQTtr1savTEUtTNjQUoxKEAj7oBIKwdws6tITkG4076Pnkau4Rm4up53U44lPDcNnGEXVXYR5Hnt1snSkG+gSLaF/Hk4cFtjpw6j3Es5iq9C1hAj3dOZGDKoCEP4rImHW94ydcM1EQgYzZwbLEVxxXfAjmcZqNVih5HMemCocl40YyUBCQQqaG89TONcRObsfwaJDMSrl7An3VDq7l5JfMUXTDqF+dcC1yc1L3UMEJwrOxXfHFZaaNgcoJ91nSTb31k3h+TDPegll9Oz4Zt3whONkCoIA8Tm1Ya3mFcO/O03Q/U88oPQx0WrA0xh5aMHR9jUcZIILMRIjapWAx1tYAZRi+rvFv3YVxM57bBczoJJLOaRDU8HbGnp0/3+yuOcz4Qmt540gf7UPaffLuPj/oa578HXDVAAo9V9MDzYcSis3d3GKmEwkvs4+22QpkM+oI1h8mu2jSS/IZokf9ci7uBHjKdqSpPcSpEdjTgFxwaCfjEYdjDRZj0KgBuKHlBySqCawQh+fARKtctDtjBJ2AKQvfxlgR8rY8sIhQq0si/j35QOqEgVYFDSO1CmfZ6BZHETtIICiqAaXYVUPwQN9yWHOiFNNMf4oEYcBCS3+4fygehB0RC204lHMOusFo17yGKdYGO/a7TgZ30FHEGgvFheYSbRdaEjEsndDdFeX9IQXQ6DNFxe4xu9/uSgt/jLOaC9qKsRDuQ33DIOnujE2t3R7p5Y+9t9iWbMOvbFgxaWjhAY+ERm83QbLOZrcy3Uotuq+9I5X7I25fHH8rhe9L1IXkadST11A6mHYo6x3sgHMi0EHb+9cNHNABDtO/N2Gg83G53jKzhaMFNzg+ma7tzr63hHHgbBqX9ew/ituFNIEZzdFfGcKY56HAyxPJn/DHPQJAHHGNPLcOu1btGVMJIS5DyfHelXeGyVwqT4zMYuQ1ftW/GQOAPdE/ddcW1XcAkpF6LGBefYvuuDOyB8mAnp25QzSz4vRJLXuVmzI7PoErkeURKV7qxQN2lEMspHiqW5fUFXzG6aObgg+JGqkrTVbjAMVsRmoZiEAkkinSjZGePuBKFoHv1cK4lkp/aPP67njByGVTmAA4zsGYBnVBHGAjhnAH/6fIfue0+sc+8x+JKtvL9tdztOxeZ0A0RmRvaCGcRiEKyFeK8/OM9FfO4K0FbMd7UsVtscSRN6zPSvZ+UZ7OAaZIwEA9nEp6mIh2P2Wny6w/6s/w57oww4DBqISn5UHeE+oqg4ruH7/TC+lqh8w8ySXzZ8L1eKH+aEzoZ2p5H7UpHfn9v/Mm9w9leF0FAj3JHxupUnVPXzF8ctVVFnaH/uEtJ7px0wu3LoOY82APsPU/3Pe9hR4jbl4MFpUtivJcbfFTglaBRvhL7xyCsWB3H+ATLB051voyGDdZ/V0M31Y4auuP89i9xHRr4XBzr/6sS3FDc1sM/UEsDBBQAAAAIAI611kJ6g6BWqgAAACUBAAAZAAAAZ2l0aHViMy9naXN0cy9fX2luaXRfXy5weW2PsQrDMAxEd32F8N54yBbI3KlTx1KMkyixwY6DraT072u7Swu54YaDJ90JIWCxbPahbRabOEH/K4BbmHZH+DJ2NDiGlbVdE2rnkA1hQTCS00wT+uzRatcA3Pfh4iuZOsCsvx/VT+LZOjqJx+A9rWeAyR7iO/8jyp1S6NAwb52UEx3kwkax+RLliDxaWTkJIs+GOQaP9RJav4XIeC29QKk8Tyns8VGCJ3wAUEsDBBQAAAAIANqZMkNNQLAYEwsAAMUoAAAXAAAAZ2l0aHViMy9pc3N1ZXMvaXNzdWUucHntWt1v2zgSf89fwbYPlq+u8rFZ7EFoctdtsrsB2t6iTZ+SwKYlOmYrS6pIJQ16/d9vZkhJpEw7yd7eAQdcHhKbGg6H8/mbURZ1uWK1YHJVlbVmK67T5c4CFz+psmiXs2ZVKbN8LfWymf8QZyIta67LWrVEtfjSyFqoKW/00ieWSjVCxWm5WolCtxvOcPW1WQvSi5sh9enNJtqcz0Xe0r7BL0GylcyF0mXR3fhtu+CTr8pM5N3VfpX6t2b+uqwHVI0S/f0/whfzuKmlFqsq57o75uP7s3O7tLOzk+ZcKXOjqOc9TnZ2GPw8ffr0fClYQlTJjMjYS/pzPGPl/JNIdczONFO6blLdgM4ZLzK2hF9wGaZhc8Y1J2a1AIJCZOxGcnpi+Cn2cql1lezuZqDlvKxEHZtboZV2b37YNQo7nk2ZgvNkWRC7ckFMjNDs1e9nsZH5/LZktIPJQmlepHBCygs2FyxdivQzCJDLz4KpMrG3xB+5z46OmDxwF57QAq28gktJxdCvbniOvqAH22OZGQ7wYbD8pF1udWo+ZGLBplNZSD2dRkrki4mRewLXVAquefQOnAFM0XJTDegmOmtp8sU47vb7O8f9HiCLp7yS7Mhwj6+FjkZNnY8mbDTqCZ8lnZnRfdhLz7NiXAOT16ICG8P9ZXFN6sen9IGY99wYu+XgCyDNNZpcl7Evkn0ifLHaVUcuufA39OoI8UIxoyDDiVXFmobg4j+X2R2LMqHSWlboYOPWuwwrX/Q5Unti48q6On87f/uGLcoaMpkGFdC2e9hOl3qVr/Om5fUDfs+5LJgWX/Vjj6E968fgsj3GseTZAmK6DSkFoS7znEGYFhM4BBYWUuQZu8VViDH0WVdICH+h5UrYbOF70O1SFL2k5DJpXiqRDYQ2i1OOQnsHgHc4l+jIRuOAm7hMrC/oukLZojAPVwsJe9es5uDroFpbPBQrC6OBkJ47Ik/N7apvyNctLYQli4pSM0iQNkePw2ynSBpkjU989o82QS1gx5oNzOq9+uvIUIGOFFQwH3JFqrWBC/br/vU+vn8D+QWqirh1LsLbWjm4BobSOu92dcC5kF+A1dkJxtfGiMLE7/KSmc/lPdU9UwxzqTS6UJtqCR6wl/TneHbJtvsUIQv0qAvaEOXDpEZyAvYoXHnMrtH4qmNmVta10K/7N3hjzkVFt9AhZqdfKyz1t1Am2GxW8JWYzULiIjt0GQd3RP2TMYawIw/8Xc8hrbY6hMRedh+hKPX6uqfo9JBraxrpyIJpxGXSSRGFt28rOgZMFSarRLA3Zs/2fxzEgn3sWcms+RY6kQSMeH2HVlKdv1YNZGWEwyARiySVhTsmvoIbDk5CymlL6Z3nPnFOXQEVgXSMHl0pAHAXl7eX2eWLy/gyuXq+G11+eD5uf/8tMSjun8htvHuZPR9NPN0GQjQYRdGovC3g+lCmII+VSgLwvxuNh06wACNkEEwDD+i3oPTxdV02lYq8gz5oBMtuBZ0wtM7E1jxTIHy2ivZ4WqMl30jnUudiW23WROCxoaVHpHNKMhxMSBR+Xm+qLJDX7ep9eb0nG+T1B6DG22VJysOY3HB1wpHr+A2X2zByyrEt0vMBDuuWH41rUUKze6OE7pkkZrdgxcMs0hP1icwB++JLB/VLOKd28ovpjvqKcmQourbBMCjEQxk8CTNAZ7Es1veOTGvHLr7VF3tX33fhz/7Vd/bsW/H96ngUG5AZ1UeDUAoF8gN+iiMnxY0dIY2reT2R2wWRi671PV6aJeK/+2OAlj3PsqkpOPaAv/D6WjkHQIP2KstsUUJk4dbjjiqpeM1X2Pgy3J+wyB6XgbtiNVRtpFtGd2UDxVItkSPI0DMyygcOQXCAoMAVrftsqre5+LyReYYps6v2EzbnSuDSUdcC9kFBE5V2M36JzEewqI5gz4S69iNSzIQd7O2Nh67iIxAHeCC3KwwFOoOi4OJqu0GoXltj5OW1LAbGoOfKtJqzGVHMZgPDsHPzGWClWuKYI22oK+oYzWaGUGRSz2ZhQxLrhA5CC7YGhK4b74J2I1HcWqPLgCHnZZkHbQZqQehrzvGixqr1Fw4K6x501d8HHi0qaFvjHpGso6ceMsIFo9wxlAPRroJJBDUV9XVp0veP1kwTp/hNrLBbcoE5a3twUv4cZifQ4Gtc3xCI96vdGRB4A4OYrrE2YjBqHI3+B+zQigxoyJSeIKryrjHxDUFaN61jm3CzKVD6+v9VYMOmAGEAQGmHp1DlJHR0MnOsgePCFFEhg9pD8wK9BGQhaXz27h/nxAW6gA75QlSVc81lEbOzRceGkiUygMd5WX7Gdg5D0W29TQACZgYt9tVBXq/4jawbdXC4e15mZay/6hfVnV6WNK8QgAxrSLOW0UhZ0Q73f9z76a8/recFiXNf0oif4rsJcoYGAZN/5XQtPi9vRMA5vRmqbfjtKNV+O54Fndfm6rV+BexlLcWO2V6Ck5q38noJdlKgOoD9NO206seLUrmWjnD4Q2B6ghiybP27L+we5YZ6Q9RQbhxG4IwG7CNI7yYeD0EJGBv2UmOPfFPBQtiHnUK4SLnajXDX2C9MPTzblI5omDH14wMjb5CdiAxcu3WKQRMfqjXIJexR+OS/4EAkwEMs3FtwK6bYZqYBrvhmJqYJyfB9fJ9nHOzt329aB4Q/wsBdboXcgMmVRu7GxPZjm2HtVyp25rMvdZf8LaFJssMRPtjlFI681ztImFDHuNmVVrz+nEEUDmfBm+faQSzbjtlNiWctDvLn/IixmjzDeW87bfG04aKinjfpLmE8TUWF4t3wHJJEgi09NIejvoaNQ0m4U3BCcrz7+Pbn0/dmlEja6u7Wl2FHDPxx0RvUFehtpsODCIIb0/V4vO8EeFXldy2DTQikW49jPKMfEtmSh206qKKGKgapeR8Kbgz4tS9NvfxQBYehYTISVqx9U86USEvzcupgwoRO4wfnAAxFWPtmZwwJs/DCDU741r1CSXq0sRawdtyRMAsGnSFY0l8I1m17klilfh+0dbVYQfmcFjhSQ/m890C4kDws39BcqktSNu3Qu2PDdlgwbNYIjPu6bpTqRwizn9dOKHk4vkszUk2Na4egLZZpxaQTmGjN9j3II9uLwZsOAJmRO6E66mMs2H885C5a1G1FbFto49hHL/b9q50BKQ3Tbmzy2PTmJBTvhidkh5JSF8ciX6y/g4GolM4xAXWZx2XtttaPLqL/Xm104fwU5YkQvtnJx4RRZXSFGA/UbV59PELZZgMGbJlKnNuZOb3TuJZFfvdHFG85g9rNpWJ2Iha8yXXCXuwHXAqEACzaynPDJQR+7szWejtdi2KDoejVkTUTfT5+7FTEnP9nWYlk2N7I2kRGWa61G5RS32TviUiZXNi9RGH0nxv3IQSkXR86eTMnY6RVuB/ZmETumyvhMdv1+IydlKliimN/6EKFrqLCBaAKqu5fQiasqnmqZSpwF9xbO8xAD58ahf3nwd7h7uHeIWxTVVkoqJpnI9CUKDj2NVCZ0yUvrs0YHHY1hZY5O3NYLQUHuMShLSIdf2gq/JeYOOwBqCHB25KSiVxo0TUbhxMGkjzIB8D/3YFjyAUoRizM2GL9zngc8O2q0ndGoZj2GwBVSi2asE2fsde4ReJAGG4HeOHk9M3p+SnWh4ur3k8cOYI6ge4u56lor3NxdZ8CPHI74TPTh4EWiNBVg1ch2reM5llofOcDN/J+GsL+mZ7/hyaqjdv4GARiNfCfn6zWAoF10Ote4BPsWM1Lj/8P1cJDNdOYPHyk9i9QSwMEFAAAAAgAbaMjQxc71v22AQAAigMAABkAAABnaXRodWIzL2lzc3Vlcy9jb21tZW50LnB5XVI9b9wwDN39K5jrYBsI5KbZjFyApFOXLr1MReHoZPqsRJZcSb6gKPrfS8kfUU6LpefHRz6SnTUDnKTvp+MtG0yLyoEcRmM9PHKHX80woPZZl9Imh3ZjPdEjyzKhuHPwzblpjSmS+LLOgM5utzv0CHUk188pG+7S1/0zmOMLCs/g0EsHzttJ+MmiA67bqNXTRdHbk6CYoxwYDTLIUMSIQnZScKX+sCxGHN7MygSpnedaEFFwDUeS6FG8YgtKviI4U9dzTDjiBvZ7EF9S4CoCEXnQLSUF/D3JM1dB3F+EM9nOCnS5gK9WOOI/EIEryg6992NdVS2eUZkRLZt7z6j+6nxbzSar1Xe1djd+W+ygaaSWvmkKh6q7Xm1fg0PnpNH770bjMpRw3EQ5inQCgaq6km1ClxLlu8OwD7Bfk7AT+iIPWF5ulE/1NvWwMHD3YZdYwGjmb72BgbeYDvW9RqqHLakCvwj3pUyQ3VwFrS9CMJelqaMxmKyCQhsPHDwOo+Iey4/qsa1N4F242X7ki+25xxZHu/Q4aaZF2lQN+bzRsC74z7+f//26z1ln7MB9sdlhypwktfM/UEsDBBQAAAAIAI611kITpTA5fAIAAKUGAAAXAAAAZ2l0aHViMy9pc3N1ZXMvbGFiZWwucHmVVEtvm0AQvvMrps4BkBB2E6sHVEeVUrU9RLkkOUWWs4bB3gh2yT7SRlH+e/cBNlvbVQsHxMw333w7j60Fb+FJcga07bhQUOm2k1FtzRuqtnp9kVdYckEUF3IACXzWVKBcEa22IbjlFTY74Heqfuj1FRcYRVHZECnhmqyxSfaOtIjAPJPJ5G6LUDhQ8ehQ8Nl9Lh+Br5+wVDnc6rKkTDWvRkJnBCBTEgg0Dq22RDku/EWlsVNmXAbHJTXiX/PIOW8RgTSSF7BVqium0wpfsOEdityfIS95O325mFIpNcqp45bTQaT7VljDakUZVatVIrGpMy8hA4lSUs4WN5wNJ7OP1IY/uR4wTZ3mu/gwMt3HGFi+Ih2FhWfPN6iSWIsmziCO98CzAq54wwXw2tQABymYb/IMPp3bNyQtHTpgdaaQ84a0eJQyXutNHDIyiw0IrcXwjcqFz2GxRuURqLRg4xMPXPZvTMLw30k+nCKxs9PTHMbHfujg4W32vryM85qLligPHpNIdZpjV5NRgO4qovCUeK/6YCSscTcYDvwl3L2B3iwdKvxTjpnXr85hmkhlX41o5y68XFnAmvNmHHW8qBaFhCX+b5TSVTjN4Hw2z2A+m/9dq69EXwhbpQzc+IXC7x3qhPCOCNKCaYGLLyDpM1VGBMOfzhrM7rFQlzSM9ZtRmjss3B/DysGcvaJsA/FZ/D8ldLfrAuyNsD8Brb1Gwqpex87Vu531Yba0u2Ayhn77DFvsgR+LZYDos/ru2J++UR1R5XbftAxMlcnC3frJ20EOv8ZF36X+lih8yvfUdXyWBqeyqUKtPtcw/tafBv5+xO6EHtWnN34zNzVGvwFQSwMEFAAAAAgAbaMjQ+Ezu8pjAQAAIgMAABoAAABnaXRodWIzL2lzc3Vlcy9fX2luaXRfXy5weW2SwW6DMAyG73kKiwudVMGht0p9gJ23W1WhAKZECgmKQy/T3n1OXOimkQv+Lefzb4eiKNTdxHFpT5UhWpDU5c9R6nM0BJPvF4vQeRe1cQRxZGE1ERIEtDpiD9GDICqlPhBBW/JnGGOcz3Xd4wOtnzFU0q7q/FQ/TrXcqFXBRtQQ/ASrnSUaS2Cm2YcI0UxIUU9zM+ugJ4wYpFpcr2XvSSjVNNrapoELXHPmppTqcRB7QqDDYCxTjsDYiEewukVLLJlzhN4E7KLxjhPGdfh2VsBHrjL36ztrM4BgwDg4lLwPc3fYl0cou4BpKymc0CWUCFpa6oJpWT2hL/C1FFp54xYSqrVPtilteI0ut7Ce9jG5OFNytEFkyP/1ks8XJHy1TWvNXX8NtMz9GvIzpvFo1wXfFRMcbMRttevOusTpkb87jK06gzYltPw0nN75Ow7ybNsYSe04TGmxmCKhBoxLcM8a9QNQSwMEFAAAAAgAjrXWQkpHv8ZXBAAA1AwAABsAAABnaXRodWIzL2lzc3Vlcy9taWxlc3RvbmUucHmVV0tv4zYQvvtXDNKDZMCRnd2gKIQ4KNCgTYBm95DsoS8otDWOuZBElaRiLBb73zt8SCJtuWh1sUjNfPP+SO+kqOGzEg3wuhVSQ9nVrZrtzPYr1/tu8z4rcSsk00KqXkji3x2XqArW6X0szJXqUGUV22DVi/9qFrFYLUqsBrxfuL7vNj8JibFUp3A0+okWs9lsWzGl4JFXqLRoMB115/kM6Lm4uHjeI+RWMH8ZJOFmeL19AbH5jFudwfOekwUFDFTNqgocvBYWas+askLgzU7ImmlOaWIb0WmoeyQFtCexFYpTgjitSQV8EmYW5AkRWKVEDnut23y5LPENK9GizFyc2VbUy7f3S6e1HLGXfTz2t8QdFAVvuC6KVGG1W1g3FqBQKXJt/YF0fA7MozoykQ4xG7lqN88GiEh5PqqRVFawlsPa4mevqNOkk1WygCQZ5b7L4aHERvPdF968QtPVG5RAyRNbzjSWcKDgxkRlsQEvHppwW7GFJ01QIHagqaL1GAqpZAugHDYgJNVMKCyPLCirGhqwOzH+M9fVefxV9u4IVFv5ENTuxKB3qLaSt7ZdLDS117k8lIFsCBvsx+B9W5tpgJtoUDKzN7S26UoaUVMhKo+JbyvRTPGIBieRH3nnNcgzA52O7vkPyXzh++WkjcjVD67GZMN19klzxJmBw55v98AkgtK8qiI/qdJHvpmtwgOHmQv2j2pNgTaDS65n/ptnx1mxqlO2oy+x9ZLANa9xsjqHPTVyVAg4MOUKdtLYfrdgmmz77GvZGvDjClmpZD7tyJQHUT1oUXYnDdthYXvVsM3wie/C3rUiSUBFp9pn/e6V57OA9IyrnvQCVIm6kw0kI6/DH19X3/66TTLH104hBCKDZ3HGAQ80utbkK+TbkGFtEMd8Go2Dlf0xPi97cDoBUeOxN0T3d/bDSRMOIrnzWOWwEaIKNSdjKowUsiZ1q8Cs5Xma4Xer6wVcr66DXHGNsrCnuPLBu9lZX17Fzj6QoCXpNxos08NOCagEQAed/OJmbHLEBpzJKFsmWU2Hr/amc0iFZURWzRfBKHuDWvioM2LgHesqncPlVdSDPm9gDnr2xjhpVr3D2UR6X7FBe/MxZnrmtbcZuLE/ty9/gposAB2YQ5tvOl6VBe2kibNFR+mGKTRb67EO08UzhUgpCakLmCInrYW7U/17f7ne9dWzjU3tac7AdUIOBCeMW9vBo9e4vJ8syPletIAR2sJegfykGzbvi3ZSWppG5xdV1odQmsriwW2fHE9TANaBuDXcIWDuK46QAyYOFAOXQ/VJURtMbOTh6SP88P3qCiyZOsKJGe83ei4fHy/v7p7v7/PHx/zp6ff/M8OUeEY99NXfMfK+hv4ik/vcRzbNE10e8rg0Pb/mPqZvg7b9E+BpPeR1V6DIiBd1/WkWnkxaprf7kVgWNoK1/UeRmte5pZrVPIQ36hMHxUC85vt8YojhWXZ4PDE/0z0bZ/8AUEsDBBQAAAAIAI611kJpDdH5vQIAAOYGAAAXAAAAZ2l0aHViMy9pc3N1ZXMvZXZlbnQucHmVVUtP3DAQvu+vGOCQXWnrhXKL2JVQiwoXVKnc2irkMdm4JHawHVYI8d87trMbZ9NWqi9JZr755u2USjaw5abqskvWyAJrDbxppTLwhZvbLvskFc5ms7xOtYY7rTu8eUFh5oN2Ec+Azunp6UOFEDtk/DhA4Wp43zyCzH5hbhg8VFyDbjHnJc/Tun6FAtNaO64dBQRoDTRJda54hgVwAaZCB/D0+sfmxoOuKmPaeLUqyKiWLSrmc2K5bFYvlyvu4CtPuXlMQFMMXAqQpeMj3j5fuP56x2ZO+LCTPgjyrE0qctSQpwIyhLzC/IlCqvkTgpZx7C3swQtYrwE/hoITJ3CSa0GJaMDnjr+ktSU3R+Y25oabhBeeaPj+M+jkCLTvhnsWWEKScEGqZK6xLpc+pSW4kqzvpdg30B7dUe3mQ7+WYG0W7EDRGzuzg9UZ2M6b1xapnp4/DpQA8yivpcYiWkKkkPoj/Lvusr659qtBtd1jSlRIBaevEZEFCds4j6NJ41v7HsQST4OhnNmWLcEHMSRLqTHf4LUHsi2aeeRex5Tfbq8tmx0TX2g2ZglaFjIdxAGbwydpy8fQTtU2IwKGfkfbBFf7RXW9Y05IG7WrqFgUG42VdWjz2aUamrTAozCdHfl1z4OKl2EgThcFM2FPGV4Tfpn218TdiGviyqnnU/5+skbZ3ndNhsoWus9DT6vs1n1SZCul8p2P+YrUoOEN9ncOKGwVajtAYmur5u6TfsVtxXKFZFEc99ZLk9SOie+eNqq1xGFeAyxajMP4zN1dk6pXm1rNxZOGUirnvO3qmuJ6poKasVurSXrNOOFQQ0m/vffu/K7j82HTJXlQQScVmk6JycSuPfD4CvF0Av+T7uSfdLYFPeGUKfJ/CvC/je9nb+fv8AHeLt5/biJGFWtSM//LpDHhZmcZLPUBuZj9BlBLAwQUAAAACACOtdZCADdUsAkDAAB4CAAAGAAAAGdpdGh1YjMvcmVwb3MvY29tbWVudC5weZVVTW/bMAy9+1dw2cEOEHhtdxhgLMU+gG2HYociPRWFq9h0rNa2PEleURT976Pkj8iKB2y+xKbI98gnklmtVsGB67Lbv48ltkLFmahrbHSwXXqCYFdyBbXIuwohE41mvFGgS4Rriv7ax0JWMaWCYEXghRQ1jAw5ZkIyLaQCXrdCapD4q+MSVco6Xc6diQSryfELUzjAz906hUe4G/oIgsDyuxlFTvg6CYAeSm5HaSfWN7l30//ofFzeg9g/YKZjsKUryh5txRaFN4WQNdNcNMD2otPAYFAQjAkKTkJx82bl5RT+HAc2dvckJl9SUbMmI+SMNbAnbUvMHjGHij8iKJEkfYx5snPYbiG7cA1vrMFaPjc5UKJG2N+sMuDaC4953iPQi2d+M5pHjexvjgWkKW+4TtNIYVVsxsQ3oFApqn77UzQ4SGse1bUoI0dI41kV63jC8RHWU+zbBEwQJ1lyo+JTybPSNtko1xOjJmQ5xkc+Are9S9imvNE1PqCOwukgnLHcXF+BKGbIRPed6x/d3oMudV2lnax85NE+BzadVfEGoenqPUqqACXOeOiGKpExjblHZMM8EmM7JWiZJlWEhbVtdsryF51spMdhbAscpmVNc1MLG+CcF8V/8IzRPtdgn/PlpIbmNQ4DZwaGRo2CeHMwnM0JZdfmCwoO1pRpn/d44jDzwg87dvEyprWkSsvWpBt5DrOarsSBlBt6zKwqKkRAhYV2i/ELMH5bMBPlZjkvhXzC9VKmfbDZhNFCxDCGgTPXRudhrh1AibqTDYR2GfZ7C8YFefty9vru5fz17jKM+/0XnSYyzdxt8uFuc0wurnpNJIThFOUm1EvpLZp/Wi1j5Bgzl3Vp89iLHPePdf80/0sas+qhh5z2In92EqI1eWOP6U5prqdLnRySlklW03+HtKEJRANJfkwx6QVXCbmIysWe3h+UHSW/LyzkTP/BsS/PfPQ9mtJF6uGVtXxjJo5tX0IDECYW55Ua5OLsbB24BAZhodMmuc35enY+NM9Odug31DdWKQz+AFBLAwQUAAAACABtoyNDZfcLCQszAACWFAEAFQAAAGdpdGh1YjMvcmVwb3MvcmVwby5wee09a5PbNpLf/St4yQdp7jTyI9nc3qwnt17bu3ZdnKQyzl7t+lwjSqQkrilSS1Izmbj8369fAAEQpEhpxnbdRa7ySCTQaACNRnej0f3FF1/cWyXVejf/alrE27yk/++dNz737r1eJ2WwyaNdGgeLPKvCJCuDah0HP2G9pMqLmyCf/yNeVMH1OlmsAyi+K+MoqPIgXCzikktfhUWS78p727CoyiBfBn9Jqhe7+ag04Tz58eX03r0vALl7yyLfBP8o8yxINtu8qIJot9mW/HgelvE3X6sX82++jrNFHsX8cpGnKSCT5ICmlHgapmk4T6WA6ncUL/IihHZ1uSL+5y4p4vIy3FVru3B8FWeVLvgcf9kF4K96+6c0n0+Cp/lmk1QT6N4yLgDBeBK8DlfwXxE7iCRluYs1bPp1CcMUbspJ8BJ/+YozRqoSFfNgJWWh93Gqyn6HP7zFNkkal1WexaroK/XALg7UEKcaYZ7Ip3nhlMryKlkmi9CaiovdvFwUyRYfwlisiziM7GrbXVrD/hF+/ASzAljYpZho50WYIcXJuNMvX7kFzIUxWkhxT/lRW+mkUThpKwtTlRh0+lQ/8ZfPKpOSnsrvCSyQNInCKr7E5qG1Ki58AKL8OkvzMFIAnslvX9l1nr9T5V7Ad1+ZsgqrXT099KutnIV1kcx3sHiwhrdCFa7MIQTat0sBj6hX3s/wYxL8V3zjlKmSmhaqZANkEG62vDhiPUC7IqnizTaFwdPwfnr5Wh7du3dvkYalyWfGNcmenN27F8AHeM5r4FJnVPRsZvCkx/X3b2fC6abBS+QWW+AVNJnr/FqWAQGDhxGgnS3zYkPkH4TzfEc1GFICi43bfX2d149voA70EHhFGSzCLJgDx13Hi3fATNPkXRyU+Zmgi5/iYXB+HhSPzAf/Qg/oyZMsQlaMLA1IC6m/cqpPk4ghwBfn8b+ox/T8Io6DMIXWg3VVbc/u34+A+aT5Ni6mPFO4DO5ffXWfenJfjyh/ieJlcHmZZEl1eTku43Q5oR5PYJjKEgbn/HtgMDAPCoNyB4DH9ahjwXR5MtUwrNonut6XZzDt3+m9Z5EiI7tKwuDF69c/Xkxr+ABtSm8vd0UanBM201VcjUf66WgSjEYW6NkMFyfS4ExRQU0BSbaCzS/O3H3xOoSJBBZXxZHbPj+9DCtAgJ5cllWxRfhjAx9danRiYfMs1lwU91JstqYip6nIKGt21ngu3a1bCHAxZLvNPC4QPhDyu9Js3/M62IRRzMgA2bViw2VNPOgJYPDAROAMtjQXUhBSS//ZBNiAN7Jh/Rm2kSADnhHAhKT5Ksnu4y8HEBS6pEIWNPW0OUZPicKQhnYlUsAKt/t4upriN1glxtook9UmvEqKXfno6/t6p7sxcfwxBckKaxJE6EQAHCDM8uxmA3ITk7MzllC4QcLyrEnA/72OgUxgvooAdubG2K5hZNTeAlwjQ3kpspuDIpd1EbNR683gZqGfJIAEVRECsyuarYqE5DbJjwe3h6vlOnmXtPeS3rqt4UObAGiukSWWMNvmFJts0T/byKlk4a5zILltuIpp0vHJtshpl3EQg3JUzEJMHjap00JuGCkayAkqQajkPBepapM2aFA9bBLhz1kCwlwAO8w+roV7kwEyiZhDGLC+C7PVDscDcIQdo3IhpOq9CUc9bKL2KikKGP8WYBt62+hp/bg5AcY+gPyjZg2eEf8e2c6+IWnwJj9b+l7zZeiJLC2LeXsLBHnW3TqW9S1E47nLxC0V8TqLC9D2LL4LyCiJCyXA4LElHE7x2bf+3RZQNdoxVzg15OKOzwBrBGhsr4zTJHj/4WSiNmElVezZirYFSFVV7OxF8tQaH3k2UJrAqYCBYak3YI2kDK5Bkwy2u3JtMC3oPUg7nVPHNfbIGrqQI2pcJL/uJ80SC5m9xgcNcri4eEGbm1oIfxzOlrRgZ6NDch6Ad9Eq140lK8+aDODlMoDNN/4lKVEdw2qdjf31e7exq6zZGD87QJy0CcBBAORKc/5328gjYsrTPdNelzLnnYuHW3sX9LI5WxS8DitQWYoWfsM6H5VRfWwlKQXJwkA9bIqLP4YF6jhK/kQhcBIkxpQKp/mDodvNnAnMd8XCIWN6ZEwdQDTK1kpLE4ihbhovRJk5CPWzdtS3DMLiO/TIgzq/8KCugbio8wsf6qDbhbu0CsQQowSYelJdVYSKX0pxWxsxXzXI7AzUixI0/mAsBU/6tsn1fE1abzwtvo7DTUmMYIyiZBgoK4OzTios11j6+qkHMhpj+kBGA04Tsn7qgfyc7ZT7QbNBswG7fuwbkHDVazygWHM45KEHrBLk+sBW8luzAeuNp5WLKixW4a/IUfY3U1LhAks3eboG1NKSYR3r09bCKN60SDgvfR1jk+q8Z8/q0s2e2e/a22JjQu/GqHhba/qlp7lXcdGPLDZUsCme68ce4M+0KrsfvlJuGy1ordfbCOyOyjAJwstFzYrJyHRpM2w2/BsL0JZOSEOWYwiUhBTkafD8l22YRaDSVmuQK3gvnjkbhAscmzaMpGOF0QltPAq9OC3jAM1zdZ9gH0pWWewoAfppE/EnukIX1igZuDhbQF2E9UvCuMbKgzIzeAdj9bCJ8J9U8S58ubqLsQnURVi9I3w1Sj5003zu4IpPPIhSwS4sy3XYQFHBauCHLxg5guvBDG1LyMcbBifN3C38/gICDBUfiKIJ0cVSvSNENT4tuBbxsokrPvTjSsUPwFVB9OGK7zSu1IAH16pw1xM9aWL5uij20KUHRQ3LxY9eEHKMgAczPh1ykFMPm/hdqOIDUTQhuliqd4SoxseDq1KS7e2TnjUxfSqFByJqwHPxlFeEpkKlJ5ZIG62YImUuDsPWgXsExrTruAPr36iequLDNykTqA9ZfKexpTb6osvbn7xq21zVKfGhu6sB/gjs5XzYFQLbBluKd+G8DavGTmWCbCLL7wRZacE/1KgauoSBz7x0oU7KOzfWsESTCD6ZzdZxGHmIRDXgGWV8pQaZcPOJMMVinVzZaMszj/gihbtwVpX5vFdjD+y+IdLUzTQEGn7F4ow06kHeY4HlRy1UfbCw6BcT6Q0LiQzdgyJ7cFi2CHzSRBC9OwJx7zgETw3WRZNe7MGSnF0cY754u3hQ1Z4wh+BpA3aRpbeELKPkwZVcaWzTv+lc00T3e8v3pnPbSLIFLLgJknGawhfbSonuWskiARaSZCu3Xw0k3K5RAeoa98DTNXJNsueBHzU79R0X7Rz/EA2qrslAgXPR4zeEn6DhIMiuC/E/LccFw1WhiKtdkdUHVtIL5TfB1dGsKwCaVUeGe0nw5v2DD2+/HU2Zj4wNcxtDKqt2QPYRtlGLDbwtHWA7r+tY0TwIIUjsjXCJi0ugAeSwAa2INzmwuAxGcUwF9Hty5zvn8VXPYOyxkG2OZC2bwc13SUp6t7ARULJxj8An59pMfWJVl3b4Lf5gM+YlDHQ1hnqM+DkhNwkePXh44o6m4Xc2RgDuqCDa1IpDMH+0XQjV0IVRdIl+ieGcPQ5l+MgTwRi/L7744kmEOwe9wH2kDMLArEhOlZbNXFc+I68okJALhnsWjAWZ6ESaUsc4qGzX9bjL5Vkwz/M0OD0FLQOPaEHY3pH7JhDVJPhziB3N8Wj9OiljE2Vj7MotDDsVNeeX0ekzwWZXcaKp5v75loYFHPQiDvWU72jGaZq/ngRfP/i6MddYu6Zy2XplhnglTgIUoc5HI1w/y3MxHI/smftLXNHgVmExB06KDgi/Jlv6qrZzNlXLQSIeqQM0YwYv4rinh5USyu5/CQzzVMCfpkn2zksP3AubINA1d1vFEfodApnDy5FgPppYgzuSXhi8WEDjoEC9nCx4IY4xPkFHqIJPrJawnwXlOt+lEfqyleGVcW6JnwrYjTpCSEpdhw66t0V+lUSAYMIH0ygLoomTuT2M6jy2YF0X6DOZqeKLXUGnGRH0d2EfLxFZVuRhV4XvYnQrgkZPycVOjuJCPGtN07rH1c02lg7DiE6ohm+oYUbNITlylXUtM4uLqs57Vh9PPg6LMcPGrPZZmGoZQO8Grkbc0InjQlv5NewNPB/lOXZ/gkMWhxv6YdhNtyDeo1tBHPk6RPCRCuz1jo9xlT/gVW53axm5IybAaEqth/IiKZUv5hj6EFZVMcayMHI41ni2TW6LE+1cftIE0+gL9tNbivBD+I23uMH4IVMdBK0Rm4/smfDX5YVEEle5ncqyeqOUzNMoKWl3QbfAt82RgXpcZbpMsmg8Uuv1fHQS/FsA361Hjfo10gzlTXL2VqFuzxjwysV6l71DyiVMEzysEyzH9OoSvQzOf/fwkWfsl9GUJopLOsBZIDXmxlt/keZlPHaq1ivNmkzZS+RtvZ2gLVX2knId+ncMLAO9jFCSBjKZ3yhrjn93h1c2K4cHamdHUB6eo86P0WJcO9nA3yk++Xbm8qHmPo8fa/2YHKllNwf4yGnInDwiNLuZR5vYJjyE9vAHje0be0AyWqtQRvNABneZCSTOlqngU2KlSHjdWX1zgsXtSRFIlrsT7yJcFmp1TRTXfsx/v515h71FnCb4faQtdQgxmoiD2qFy9Z4J4qGvxejOiWJDZNeSCQP0tgXJgvSVE6kxJS/1s+UuW5zNasPnTPsHoB31GUj8GhybgIevMQbcMXn1jRG+PMDf72qVieX27hZY3YVhc6jsoTKXyjqaRB1TKldvpGxzbpKsMgDZU1Q7lSpDLl0FAHZqXM3onjGs9Nj4cZdzhvL7iCSgsTE0dzmBOBf9Z5CMrEJcMoWI2oS2f3sKn4qttbrO1UGCf1khAIdNwhO9ROvLVL7K2K5dWdl4iUWHK7yZWBHEjqk2zNCP6+/Nia4HZdi8IkJiogB5aDSdTkfwF3G31arm5/Ynvu7f/g1SqZQy1SxSorbr3M4xNkt9NCDLjtS9bQ5rlG/gkCDDhw8GObwUx3JUFWsdD+ZvUe1AlMZbHlpnmwQ3+Y61PXgSow5d82+Ql0jLKm5g6BbvNBagq5j3nPDzvjH0WkidbqJRfY4yhpEMvsRLBEBW+nAFLyiIMtAEJPr59sYGYxX84F0Noj8bBE2DAiOHyLG/uAVGBDcyApi+se3654SGBF6gu2UmTuahLNL7LADcr0KnnWeskiufu87VJEP0WH1Df+2C5sa3oo7kmtzESJHnESsGQeAN2/P3IxgymDr4/4O7jGw1kFkn9sxRN/Rqk8k3eKwuF6c+YGlStgDDZsbjfxh+/qhq6hYE/Amxzn+gikQL3GUAew2TYtI1tBQZZJguvFMNZOOweqoAJERKi1jdpU6bwiKvXd5ND/2KS11XYWFXBtmVroCjerGrlqe/H/ksLUL20sLFiycyLIYRyqQ6FPHOg9HInH7VPJtPGo2SGUJ1r4/I7ahE+wRutFADmPeK9IFO9fyMFG7wUH390Etc72EGl+5jpaZqzAOF78QfZB2OGqQHD/tQni0jzvPoRuRYsrgi/cJXMUfIzzTJ4vOHLWSpRD+8c6s0A78oAk05ogg8UcSyAaYVrrwWvoZqoK6LR77STRtpEadhhTsZMXtz66xyhb415H5pSA2KDRzHBk0J8S/KDholy6UB2QMNZWqs54FU+/V7kARQ9i4XqW3j4S2I2r6zwh7KL00iGQeBSPHvmDqC36Cf9OMk+DZ44HBdvdCw/uhMCHGExeEX/oFfOGHwi/Yeryw30oazMz0/9pLcd0KGn356nqFD7JEr8XP3J2YDlYz9XEEbAWQtTshLjfZtDpiAFfPi/P0HtQRBVIFfHYwhqfiWWw+DjjTqXekdzAFRtOvgtiPrB1+qAwZEwpoBgU3icwmrzIWOooLqe6OF0rZN4ElKWMltMa5icxSxainLCYjk8WZb3UwMGOqMRRs85eJskeeVB/FpQFcPyJmQhOcEbxSCNI/Xp9T9EWq0Pg8KMwtQWBShcUoj/SZJkqfaZlDQUk6THk1EwSeU7aVU8kEU1sd7VWxgxePPEV3Mj/BhmPKhknFqZAHBC1PT4M9yhvaepbGzYPRUER3d3sRtPd6ESTqyOQsV/2P8S7jZpjGe4mFBPJFHEH+Dz+mrV6fPnr1+8eLs1auzi4t/gy8PHow+eMdB07lnKDxjofpvDzONZaBjaJTT4EJPCWkLqCbIqZFMOtexwOj60w5mr6xgpsW5zRrWXz1oYf2yLHkucakR069Fbs04PFJ3t7hWs97eApsgA5Os2Rc59cIDZmNyP6ukDYUR8+8pPPZQjL9odPAE+qymiFsT/WrbQU+LXzcrR6HBsino8dCSLKuhLN15x6Bm7ywBCudvWiY0tydRJeni9QNjmtQn7tyv0/CUjoAH6PWmFJW4l61vaQ+a31QYO8ancNE6JhsLU6mg0HaQzZNi8xk500ARkAfa2C5AGfDZEEp1Odm5Kdi4UDyQ32W5FV8HZnmVXHEAlga3a3B+s6ba5tBWPA3+lu+CzQ522nIbL5LljQVrnsMshhJHBHgLsftDNiwmS9UyzEDKbg6oTnv2VtxiDJRpv94Cf0Vuf+Mg7CJpgXMR1vzato8Z2mbTzuMPZzWVAt/OziYuLOzCqN+e8MEv69duyDTueHRr8PWajyDxu+aUMAFm9Vf0cXmOoRrGaN4bf49KzFVcwApqHlGr7vO4zsnYQcuKRTfQ+hsg9m1NtP4RdXOPGmI3GGT6YsrhPpzX4fHUQJ1Q5Dv43TCd4KdzB/OZIeT67Jms7JZdzNyzPJHOxvr9yb5t0FebX54M17Va98mdtU1i6EGu3WIo0SOjTHE0w4r41cOmKQWfateL0VtAxbIiGq9cg6ILgRpiAHrjrp+7tWWTx0K9NvG8eCebeF6swiz5NdQGmbYdGMMy9T0+N4H6/BbRymmWqbcgW1Jn8/+7YJdFnWbr1vBut3EIpOJZdS1R3AvMPjsmYMOBypHY3o/MerAczJ8fTHuz6/rjhdplL1cOVY8M/mYo+xIg4GgBEW+zG34ZJBcuk9VE7rqev6HIJEjCIL3AHs/OYn6io4CHfVX8ps9GZkThQVAtMgmiZ1d8F9+ckh8lcOcEI1xQINSQHQnLuELneVsF166gvnZI1+fu2yKEXP9V+JHPZJGsVqBwRwiyIQ6iryEPmw3oWqJkmZDUAZy9pBT4jtWE0QyCx/j/0BXU4cGitkgYa1eRUwTiOYppWZIUMWGI+iY6PhPkiBvkXY9aljAJaHm/6lLdaORRdaMvt62i4Ygfv/7ohgwvQL8hsUqqtEUxIztph+Km72V3ldG3Y7oK8f2M1g3HCCLXd/lTtxwVCR8pBkDQOk4OTL3IODloraaGwjGzu3755OFPRRu6jATJa5gG0YCvB9HROSLHhl+H+DXg0ExVHGdCvClUW8GYgjXNZpvZjJiEXvV1bGATjBbrJaSwLqXjeOFNo81UXZRCmNdorERFBpUaCxpaEqcNv3OmBWcc+f4ODt52m96w1umYWJ2pIWc8BYtYbr6UM8Oyg9vxXVG3n/T0GKMWDzjyHqJCtBPRugucIwlFRshV5KtnydR32VB+V9/xRIP6i2ca9KVmSU1pmTDyX94xmTUV68WFdZC4WzqNYASFN7rMkSbkeO4IO7sIJzId8KBF+IjibZrfYIHhDAcq+arA44agEVTxL13eh/8FRZw4evDolnZmRhj3Y0TNv3e69Asl4Rf8/6EPkUC5j3PFCwblePKgVeRIryloon4K4TDs1i2gAwRUYG1o61KGNQLqq06Y2PVZRtVnRWlubTd5Y8ch2OyIBBP55TLEfyN08Bmp72PGgY1UwsvxlAcNDR1USnc5G1yU2pvSuwbB2pasI8VKHJl+kl+as5kd/k5xc9iOR1+OTnqRsvDaj0HMNGTHk7PeKWyeh1E3RDoLjKjRXfIaAd7Fl91Ggloa6b0o9oltm4ZYYvpuYEdswYEeNSrX9+Os7tV35fDaCB0N4R2RCJ2ztPcDv/M1b4ydjUTUDOfd2Q8eWRvGy4sfgt9/8+ChHN2hmRmKIeV0ucNq+axTcjt4JbasjPpC/H47CU8Q2Xwzz8A7cQwrDr9qIdS6M1Hp0RnXahKyFSH9zJwkPMKlKcDH9KVLkDrwEvTxXEFP4fGcwbj0LaNXO4NPajWwZZ1j7aDg+9QSLF15KlAGBxXpQ7gzeS1nKw1KuXar6CA9OYNXeWt4oMvmhpISbbg6HCRGYCc3Ng+Ypi+6gJGrwd21mxrkJizeYSg5c/HW5Naxfo2L6vUKpnvyU+MVLWF7ofSWBFtXj62X4MDiL6SK5krC8YK3+OeDS6VM1Sad8YLpSZWXSEGmFYM1ko7bCl6qJDpkJezL2Yy++AgNdW3WeOy7J1SRldrPjOw+AcmgVphVokCit12LrEUFgCxkwiwaaqGZHnTjFOvL4Yp4qWNk+K6eabIpVEKnbgeDhlO+MWsYp+Mm+OcuTJNlAmvdNDxr8M4+y2YYDCF3H4ekvM9zDkQqkaujPC6zUYW7WVEp12wsz3zVgiaJvDAGQRpTlOnrPCiBPtZxOalTcz358aW6fUFea0nVOO72usRevHjyUJQN0CpKuS9SD5xpw/Iczqhi1hmxfuzKI8crBgXGfYCdB8MxLPIdkO7o/ggI9zx4pHxJWyhY3x1AaWIdoiyxDnspB+JahPPzUTQEPXzHywIchK++oilC9ARDX6xiin9GsTJMVWE0allNkn9K3CL3um37SM12fnTcUxR8rxO10gfMi56mPlABI/wD+zHy2SIGMTAlE/zgDTSlLYD0D/IpeeUjRTCNkmsgOh/gl2WYpLsi9uoH9fjZ0oEEvofVkS8SRI8WN3tTUve8q7JV2yjXlE+vqXMwsK6V8/6DuW6UjzUPo3+F2DJ2MKr7iKKE/tFygtIqgfdaYypaZJ+7sbezyjgAZvdtu+7FVYUrJWdjtkDte0EdgFVyiWZrermKC++opclqXV3H+P85Bc9oWXmUoK3vYUm4aj8qhZe+Ol73NWx0yOUKY3ljaiTDe5oOP2EUzOVouhTIUDnNo80fE58wnHlMaQhwLCORpawRVf4TynlTru40Fi8dDPOUNG85wT6rkh1IHhh0w5JeWc0xBO2MjKo7buyYRYxxdNul811jvhsOZzT/E8UPKaEUaNKha9cgUtNXm3VxEzTN3Dis95ETnyMZSCJmnXMJ31Jv7q8BirWtw4OeoubUAx19ATySgwXssSE5tImrJlga/nDl3/lN2dMQHGkfx4uU5X287kvjiRLkXs8w1ZDpGKbYqiJh+oGRVZg+TrDjX7UZ38MV8VU8pPZ5cIkPG8kpLTwXm0THEs1rRtwuw125rsbd8g0Oyd3KNzKQLVfV+s6TM79AlUcxcWAWiouTtzf1H7+2C0J8O6QHP6ajyuZFE3YATeKyvmsCfHC3gP7Etmuuusrw5r260kR/76MrMM4Zpnd1bzHgO3o+0QRCrBAVTsUaWQAeff31fLn4JsKb7x/e+lizHgybXZHSYF6VobvfoXsbI5d0NywEZfE1kUaHPoEJdx2eA09u60DMc9GAp9xzy6BepdZNAD0eovvS90GLDMN3fxQtAkfuoIURxWlcxW7sShjgZ/Sii+pvMT6hYTewwwQa6PG4mfEC9/er45YDC57GDQf3NoOXCbfecNDDJRcJ0pw928PKF2vhtchJGMVVLS3tyv20+PlZMBb+8zOvKQZ/Qom48YqEhjTwkgQPi1ySoMOdDeaH1gvH8GYfGBpB95xlN7aze6/e9rg+oSOPEL5Ji5LoyqTE94yAQP3Q8V2o0HHIOAzGJKDY9vbFiJHtxGLfo/AKor/dmvg4tyaG33IbdJXZe2mgIZDe1oWBTr9/bdr6v+rvL/y/3eX/gVfgHODl3+aZP9wnX7ac2jMJvjWiahn7BPoMicEo1lJihK6BdOYBa6EwfJdKElzuZP+VYwFBN3h87h4MyAjYET+7/YQwfJYA7Kbx/Zu/Gya4HnDJ8aSOl6LLbLfpCGKmymsrw02AJ51JZIzqdAqibYGGATdW0Q8ZSl6PTh98dfrwoX2dd44b1baIF6FOEVknsaIt+7Xr87iJYaVIwFzg/mmeoYXhOi/etZxtUefaAqupnnUwQ4VQ8Fh9uyVJm06UeOibR0otRFLnpGZKkfp3GTGhOyKXGpMjjPBxpCIj2L0g25L9aI+vjsod7XsnWWu91XTm7ba3mCm77Z2eEl8BOwmkR/x9HiWNnN6H3O7ovnjbajl/yfLabIaYYdKExTqEBdWQn0zbus+ziQ7WtMOQAhec4mHclQ2KT9F2GbcUeS39aiJ7I6trWE0Nx3QvdrRlCC01sJvNcCdBzDYYhrtlXgxqnHIt2h9aqgXb3TxNFjbeFqzD+lATfUc3OJ+8yjmydCImNIbW7kyUlE7tJqGb4G5hYtRa3d8lHGQseWinzPpNx/xbpjeLzezvmy66fzH4O6cB3HXvmDeZLPJQ9uTJ2nsHHOrWJEfc8zzeuV3+eYrDoQeJfPX4Jank7GeKxWBNvdSxrv7h82qS9SPl8KvUrwWPM5scvV6GVubjM2eKuzwLcVz2ehZioZ6ehZhduzaCWaoQNeVThbi4yjJjhyHEj7YcNqOls6CvJZuk7Jkk5ek6XrxjzxIipzphStJImNL3OlhrzhRlIrqjpCkfJz9Kq+5jiqst+VGcWapja/cL0g3lT4a5dAyJtT0gwpA1JPVh5z49pOHycFjkoKMcEPaG+T0uVI9xBXuvcotlD1Ed7XvOd3+H+BB1UV0TNlXFO5qzvnd3hS+qq377eGJiXCQlXghMr0xQSFEQiJ+5l2UN7DpPYNRsIQ9pPUtHEcTD0oYYd3Q65348biB/Mwa2dhpm311/oGseq9p0RoGt1Q1W/2Lgt44Cat3Ebbut3DHsd3T1tGMFyaj0XkH6iicuIal8V0vo2BuetQG1jenZBtOu+537+Z91w9N/afP2rmkewvwMg+od876eNy9xjtz7lf454nuV7vrkVJDDbUPOhcrP5upir1nUdw7vMqNL79uGxGQxbZNm6Ba3PT99CARehSuPpe8lVCNP3Cv0iMMkeldhQom29FZG1/0l1Ira0DbhjZkYTopGe5i0oUPXTNpqhns+1aHxrVE8fSjvyzZMfVQYs1Ol0fZz9I6jQ5kQc1NdJfmu1BdU5Oy7NBMKET1lEQWN9VDsKs5i0YKWmnx/RtnAuSCOz76d/U/g9/3tsUn33p2RGsbGzjIJ6MwNERBSwP9OHPJRmYoOo546sVNc9vJ43U8bGtxA0lD1PiN6cFNN/U8QDyIDI4vUsVTAKHTQAYatu1zSCGSLm8OpAeEEGk6wxSOxODb1mp/UpNELzEqyWhXxyrgbYDCKKEo40TIeBytXknoQMX4VZ0S5BcpDdLxkB6TmkbeZ7KjSZ0BzeLRcwt78powXeRaVfHcPxgNnXQ+jG1VexvOtuZtPp6hnxGdnwRPoHzr6A+hkUcqBZ0kbgdBciEHMpniwCq/QILNYhGWzIf7ohDOoxuikM9mNHOaW7O0iQaxL6Bf5KRYeSEklHadLrWyyQrqJr9FgFZaVXKTB61kq+I7c5fJBK7kfhKA0fx0m6MO+RCSK+FRmCfR0+6AZqB67C+MbRzBgD6b/7vdD6bhFUbIxw1x9t7DekRw6VztHuD9snavadKcI5lNdOG6E3j1kFWrgA/m/qvcZrMX9CRkGygNGUrNjCcNAowd9XOZZwyKpyWUotSz5Bq2Zjs5jttxrssTpIUdtgwxrKOTVT0CsNJC/Ud9x1OdPj/ERqTGpLinUX1IdKJzgthDcxKGeZqAkBRHVWkdK6Z8xvN4h79+i0OHKHHJXmHfdVN1x4ure08yPTHU6ZVwCMu5vssQnlSWs1XILqxTndu/yNG4tq+RSdZ4pw+neXLieAUSSU6t5gpvFQoVH2mVVkvbZbLQo0uNskrcb6wZviBdv6nj8fOcfNxwjtoqFOC4pH+xmgiqFnXV3kS4RVGvlh2iBxmb9Pu8+h25xaBSzfhGHqdiqoEN8M9KJTLlM0soYNOCCYzOEjDTSiPbyf2wblSaQ1Gz4P+DtdDU44bKKxZlD7kg5GXHmcaCS4LG3aLAIMw5yP8MamOyGMjjC09nLix8wotSsjkpja2bYAgfMNJg7yzaMp4KIALmg2yFaLx0dEo706XskiHp6NFTUcdNCtwk6nKCSL9Eb/vdmFrJmdhgPsxrRZFDgng3QXLjZXurkPWN653WIHVGPW6rRuxMjXUPTN4XRP9m3I/TLrTNETEsqldyTt4PmTpDxDpkXajsIAeNzuSt9kDmphtjLzMNxuTPXvZR8SNhGgi9vNsgqLOChzdSvY2MxDOB7NrrC+yzIhlXJ4X113c9AoLt1o7bZvz00Wa9Py0OEptXqjLGQ8SUsKZzoljhYnQbynmR9Wcuwx9hIDSpx7oQMTJ70m/IByFh1zLw6MsgYOqSRX4fk5alb6tvfDKGfWHnpzST6rG13eju0GO1HeuA5qj6ZbPos+zesz/WeUjfLqHt38NFt0yv80+9yvrtVA/c380bUsXSrkOigV06PcRixSrKTPg68+ylCZU4Zdm5WkwPX/4xoAbOtGn6vjN+Ung4mCslmcjxFUPMd5ECpkZQJJi8qChM3kCwIRu/MUtiKPTsqVJsK5mzNwngEuxJME3L5PI3k2zX6xcPegWGerXsRqvRweuReDCRHqvQZ0WBbGq0htNcnW1aLpI1zy0GhuyetVRpHAKhXw59h0njdWa9M3uJwSEuAfIwPY4hUFfBbob0NMz7dDmtc58MpkVD5jCjRdB8fyPz65IbqQxPYeAfrYzfBjjxLfdIgGYH4ve97pFtCyyVMTRx1lDGSLbXggby7/XUEtL/YkyHAMJp73++xv/dZL3KT0lwlNMtRsNvCwzoDtsQF8S+elsxKIzRyccDl0b96o3l6kg24e48nnr3XjO5NHaUwgOYJDb6ulJlLyYqGI/NuA5HYLt11fQmX0G4XnpYxlsIeqQRKXJaDKVozN5rvVpNdMvnjOlmtRxo87c979mSOqhZhX/meWTSyT3h1Ce/waXLcOxlhuRjJvUIPqBbbu5DZpzK9qxjgrIz97vTRg9ePvjp7+ODs0b///VCrfNum8b3eNKTTLdbDP93oO6a4W6gRKuoR+Iz2js5bFQM3k84UVz7Lvi+dF0ZulMVKUXjkuyX71JlTSABCFsD84ARn1QhGZ6Q0gTHxykJvjGxhmEG2mXpkv3Wff095eY6tRmhM+OygHMuJKQcDVrwCmcCkXqYd4Tn4uEK/b6b96tyiX3Kc+S4rKiN7mNpaGtvOb9prbxsozYqjzpqL8DCdVq/E29Nua2yacl6XyI83aw6kJTMu0+2QEoE6mJCw9qcno7257gbSSo+cc33oA5ruUACY2R1IB5Le8nZIoM6VeRgRcP3PiAx63MgaSBG9Urf1oYnvJINeO1Vkq124OuZqy7bIVzABGzS1a3AUmfF2fJ1rmAON6YSCrv0Z0Eu126bDLrdo7G+BFKj1DlKok6IpC6mRdq/WuHtp1/gZymOsrHP9eM2gnHrl4KR6/Qy66/yaXODQGjiwQczdhgKrqJNbjAOYYcaOIXqkftyGhdX4UK1z//o05mygM0dd89MvTq9o2Cs74UDW3jv3oJ4pM42JJ/OjdwEq23IXjbXlPFH0NGoQR60CmlZsJ8OKYdWe2ND09xoOnv6O302CqxPcLNCII6rdFHgS6GsnjsYo8R3GV3SYD38wiZQM1Jt3b6F4EHypspJRpljrKrP6RLBfi/L5ro4Rr8Ih04sWq70Frg/bfVUrwF2KXxZXeNp8nOpXK31hIABxhWoWmgDl/j9W/447vMS1qhc0rFR0kUnDRYxJHWB8yQLCY47fH+71PGzqhfjl4APPHoogEHeyxKDa6HOjXA/TVHkeYpT2ZJFsyWtCPdxnJ5fPIZu9hU6/DLzsuJg6HrslbsEhuwrVENHgtEh3mAwrsPYY/GDCSwxbj82F/rw21nB4GtRpuex+uMHuVCwcCxyyLeaGaTMCaNPOyy7oMHS7ilyg7BbFJu0Ye8VvOVYh1pNN3N/sa8EycoLerdn3E3KE12ukg5olWCM85bfDDpYtCL0PmO0jC6BpNMymTgiPkUVL5Ixt/HbK7ve+1uWP3pavmrHH/TttH97Gg969a1LaUI+6ghkq5SuOe687NS186zs8WDJTtdL+eoBWcuDhm+Rc9XAD6jzeR8EizGdQKHIyM+CHwsuIMs6rOZjNsAKsiuUpR6pRC3o2K2FnCsuzKJ4nYTab+ZCSfLINpGqcaLeUC0LYgK0RPP8lREkUI3uK6y4GsnIa2i+YcGsHyyXWrH56ZuRVQfpmyx2ohRCEA91eKs7lJnkXp2l+Dev3pE96dHXewyoDnvVYIJyW1WkOLWZJ9I2L2RaT9p8N9WE2xlh2cxxM4KUYzm5ebkEAHOZFJgKQTkbbU/IhpiIN2iRJmXlVojMc2pKjoeAOBF+Gryrs4uGLCmt/+rU0IJtv28qhGFoy4LYJpVjhqnBz6KrCNeFhNKoeVfdpCv+KtW7jfpJK7NxuA8R7nKvw17jor4HS/khnH8H1Og/WGEgawRQqY85x1t8ao6HWJZyPRZHMsaomz8+IMm/tzlA9RHcfCcsY1ANtFEwqGs5txSUyZ/v/DaEMopK6lx+BTCTzsScgyiATgYKjwqJwiMUF5mrsuKruzcnNaStNmIbEtYfMZER2WwQkNKfADL3Yoet9RhTGaaODx/y3k65GtUAxIBz1kEzYfciPEe0gQBSHDmRQWPWok26LWkDV2uSlKkjA+3GlmmLsOp+eWtD7HNt5LF8Gb1jV/qS8fb3gX2MG3SHOMFWMbmAHUgbW5VxmIQVXPWrv8jGV19hCP4mbi35GZIEI1dtUDjLrFB+1UwchZJYPks0Wzy+x2l4awu7fAhFhW70pCK3GXis63SJFc1Ujv/IrqNK0TXtCryhbdEt6CNWAPbHPYt7TS4kcjKYqnDP4GdqXV+3mQd2O+SosOgM/yW4AmWylLMlssWUEyWLb8CVGYx+m3+TyBsF+n19Pg+e/wD5dsf/Hy4sfAjQpi93JzYX0N/icvnp1+uzZ6xcvzl69Oru4+PtsNq0NRF+Qgfnhg9MH/4EG5q/+4+zBw79/0Zbk5a4MtDjxdNiJU9C4QI85NPT8NI4Z3oz0y8uwIquHfuAnVTuE/HZXNRJDItyTfXnkHj34XY8Mwpu4WKkg9DgEbDzVGYQbBP1jXOBUAiehmryKZzOshAlQMmAnsxkC8oWmN2yHRvS663XMt7dheAkqn5AYcXia9tB91dviDdVZeY1lpDKcAu6SVFanXdmbAaQtrMoQUqSR3EeDOkMqFpJU3ZjuhykS/9ge2tJRi0YQhsr9eakyrZLPNX/XhY9P1V2PRd9I3dozokdKBNP/PJI8wQemRdhlyT8xd07kJEhouqE3J7+Xg4iXEm4x6YHlUWImPuhmD/S5mwDtuvN9px7N0ZcikPSYfdNwfzwB2NNuwu7KutzXMH/Xs68s+R8h44XRr74Ti5vchhe0fyp/ev7k2avn+2zgjdHXWeQfq2/DOC7jtYfjHpoOiRHqP0RLIXn45st8pI8KWLZjkxnROryxCP01sq1cor4aadJ1uHg8tSF1MvgzGVQkh7ZOSK4hqcTktL2U97kcZb8jGGyOqVD5Im3uPvxHb0FyK0u8MQQi703NgEjBuCmreKNCpqiQMNmN0T9EQ5LRg7amTiwRMFnWa3i1ZwcdcqjTKDz5CMYqnT1WvgniX+hmIIMq4wIUuRO/YAJ4mIyhLkJeDPTWCpfrEQX2nTUMYQbYYB8GYJ9CwJ+7Wv66H0ckvZFzun559n6iwnY+vTrXHgme+9zLO1PrmVlXzEaGKBfQwy0MpZ1W6uMk1aOGfRpDS0JxZzoRQOdclXGl7P0kKhvHnmy6nwTJKstxRK1puxDWLnd7TRA+Pu938qpbsWcuQseVTYLexux0Ymi1zFqsUaJLrxQ7KlIE05LT1mxcujW0ZTcwqYDZ17DDR/4wuzBH7LH5q4WDwGCxK64eNHTANeZpJKjAY/lW6wrd5wWc3fSwfdKnuQLYRhpPIUizo0ewmAbJukyFNW0vVf7UT/qwJ8jvM9Zj2u5u5LsZ+dCBxlGFDb4z3yZu5TAAJIdDWWP4JEQf8KciM8PzbVFoQF19uq426eDUnBwGrp46ANYxY2SvNjdlslsP2Y4HZt4UG/cdpt2EHnC6285pK3TSxpY8qVhieGLUxugDlK7hh9fO+MOTu52AIu533nTEDODgHs6oJGfxEpRlmSIOqiu2mAmFwCT/bu4DyeBd0VfM+OFs44Edy3Oq8TM1zN6A0DjIVNgwiFR0tDGbSbuOagGzLG7Migi0Eva0+PlZMH5KQTACgf6MhJATjrd3YVBHr5CdgkJ5/0sepdPwlFBFgtvA/mVoAmxYBlbmp2IJMG6QMQUSl1MPAjqPDeN3t9HQACNHy67lzKgmnXDMTWJjVz1Ug4mY9FqF8zSfm0uxXxd8+drpFBxBOAnZWVlypE19TqFuyYiW1ZCgMBC+N/I6VMyJJsUxSGmn0IGUDwuQ/qxmNRVb84yxOTlkTq25ao11nuPxHMv2oBZa4Ci+u0/yei820VG/zM6Oi7VM5chnnrDjqapJn9ZWCyOIteN9JoVJucURN6JqaM4wvwH11/GyLELMK/1X9DJ+XhSgYOGVqPH3OQAE5Rdo9aTBPlQXeCjpcgBBFj4/OmmC2MeuaZUh6sq4TtFXjS715edqzEaKP+5j5qqR82D+zdegr+aRHrCTaRTT79GuWp7+fmRX1BZ2ZRk/q3mxMcl68I246F6GPNLkC6WuwjQhfo8P+elYv2+7i6fDq/tqS+KBD1bVpjss2eh77XY+eZ1qu/ufTLEeE1y7BBTnVS0l9bB5JwCfvtGV8fjBspkZr2RjbYVADTEAfdJQP3dry7aNhfpszG7yV2T5aV5MMHLwJT5onI0ZGyvnhFVpYP1b06A8sOa2kuaFuxfBI0or6G1H8HV85+LrXnlnW00f3EWhIx4sypG73zaCZZ21v43oXBRDJvDw+4wd8GasOiOdJqFLPWPBi0oZJdoNHzjZnF9RpU9a5LusatUaebesQM1R+dwCqlA6Nlid50eFvobtbR1C7es8iDHYMl7/mM3CNMWY07BmZrP8OqNTi+B5aFzewEohbJDL6uaUKqcxparC+MQ65JmNCbLpKtbgHZOpbPjU2vQEr1+8oVtGb988eEsCIG/JVIZCWdL41NzJqPC7h24NMj2juSWrvOozDstRkcNh39cnLTcOgZCRR8XmVu4VCzojhcGxgrODgL6ptjfGNNkuWUZgcbw8R33DuKsh9JCGv8KNcLPFGOYkPuG+Qab1dYzkZQE71edUVXCVhIwXd9GKc31bwcGNu2B7zQeWDVHpOrYNutxO2XmPkp8G5+c4vo68wcNq3BJpbjAIyNlERFmaYrsj9FByb4vg1TFm6PT2rb/md2FZnb7KI0q93Q7CLta4iUZ7wv8CUEsDBBQAAAAIAI611kJcGomyCgMAAIgJAAAXAAAAZ2l0aHViMy9yZXBvcy9jb21taXQucHm9Vt9r2zAQfvdfcc0enEDQsq4wMHWh23sfSvcUSqrY51qrY3mW3FBK//edJP+QXbcUNmYCcU53333f6XTKYrEI7oXOm/1XVmMlFUvk4SB0EM88QXCTCwUHmTYFQiJLzUWpQOcI1xT7w0ZCUnClgBeyxCBYEH6Q1fIAXRb6BnGoZK3BBYyXCRwL1Xl85wrnvBqFde/0k34EQeDyDkSWQ/AqCoAeInNDXCPrGd15nM+H94s7kPtfmGgGVi1VpUaFpSZN4IoDXFm8R4FHTGH/RCs+qBJa1k93LQB9UpFlWBMGWBW8Vd4mslg16qYuCc16mJKaQqVcc1DkI2TJAut4c5QdDSq+5mWCChJewp62JMfkgTAK8YCgZBS5EPMkXyCOITn1DSfWYC2XZWqI4u9GPPLCMNWTcKZy7iDM23ThpF/oKm2/U8xgtxOl0LvdUmGRrVvua1KlFKmKr6hP2v0xj2oqrJfDdhjHIluxHmUSv+ojP0X9JpiOgPNRszBjo7095hJ4o3NZU51MmR0eGwhQOuY8IO5W71EvQ2cMh4wi870HDa9hTPKlZ3Kq2O4vRDhm+j0VnctUSG+f0dKvzcjx8QZFvfUjorrz5k0D1p27Wfaz1N/k/SZpgmmngmd8RXhMwDb8KDtZwpEsM07K5rCnksgMeJoKc1JpRPIU6Xi+02C9awybtxFpFuIHEQfXKaLUvPAwk5yX9zQzWrBMFKgmWNqG+DhU5lEhNNcqXM21vCfMRWxb79v2FHUOXiVnRcxG9w5z0R3t2Ui7GHp73Bbb6qdKcA1HmtHmdhOZcGNdm/k9W20XNe4OawvXsL1ts7jpZy6Qdvp5BXPzHsLz4cLoboXt8+bl9iJkmawPvG1Y6rxt9M0HNnfKFJTG7rXDNTtrPLpB7FKqiii7njeM3RuvxHpUy9GTIzVereLn8DJJsNJhBCGvqkIk3OzD58cyZe4wM5MvfFlNJZq0zPxZMLdKd1x3eykL5OXSrK7hdLNZw9nmbAV0+SNc2f8OndKK6yR/X6p1+Z9abcJ/KPYPUEsDBBQAAAAIAG2jI0P5qRtwjAYAAO0VAAAZAAAAZ2l0aHViMy9yZXBvcy9jb250ZW50cy5wee1YbY8TNxD+nl9hrh82kcLe9aCoWhHUK6CCRCmCo1KFUOLsOlnD7nqxvXdNEf+9M37Z2E6uvVaqVFXdL0m842fGM48fj3NycjLZcl0P63u5ZL1QeSk6zTqtJoujz2RyWXNFWlENDSNoTHmniK4ZeexmErH+wEpNeibxJe+2RAvy+unFkx+fKkK7iggwl2TDG6YmuqaalLQja0ZoWTKlWEWuODWQP3D9bFiTi1fP88nkBGKdbKRoyQclOsLbXkhNqqHtlR1eU8Ue3Pcv1g/uV6wUFZvjV9bhV2vnFwyf3vixaFuu49ewRtYob2FDeSxkAoI+JNVCjpaSfRq4ZGpJB11PJpOyoUqN2ZnugWbFhMAD67qEtRbGrliNaXzovz1auZTm5LkmtWgqm3DebYRsqeaiM0BQjZJJk3Da7YirJJgRSkxxOYS5M/ExpYM02/wixOW1COYpTQFR+fKUNSs/wrSGf2REiaKwc4zrr8liQcrzcOCOGTAjF1B0YA0m5oo2CK6T6bmqqYXAb+mLO+ML8+YNA640EAGpte6L09OKXbFGAOFyWxZgcXt6de/UrPrUU/rUp9t8VmxDlkvgp14up4o1m7lf+ZwooCFkdfFSdL5K+KgBXEx9WdCs2czyESSdPhsnfgU56z6qPRBMzJe052ThneZbpqfZIJssmFaQJ7zE+lKom9gcQzFDKczSjAJSCPX29QvEwILbzUhgF+3zFcPWum2WEE2K7MePYAMZDThuK1xavP/3bmNHYH3MjxtO3MAoVDtcyUjWDcHdDPoCVVpbeYodjcPLG1weGETOiarF0FTAu2u6U7gdMqs3WRjga6YHCXpo5AZXPqCcQZ6DWPM4rtE0CcePZ3OSxZGMPHOCZ7WtMtJqJa8KY/reWN31Vj5jLoGowklE3iIJyP04iAdIym6EJhRLst5ppvYitiHXjGigNPDCBhyiwWBZU0lLDYeEYtoQayeGOc5q+bbWZsVDh+9BmdivJetxk5Drmpd1CHXNm4b0EtQBJQdCckeTPS4YZr2UjIIW5uSnjvQ7XYvuHCyBSNyIbIimaOvWo7SEuVCAQWNx7bx7GKSnSUnBM3q06yMtA5Mqjk3XlhbRYhHjmqsa0wDkmROWb/N5OHG18mVxxXafoB56c/fbbLZa5aF9npMrJlGQwFO3ZVVRkLP8m/w8rroDg6pne0rDtkpIuhh5b/gWEmYvlEdAx+N4Gk6xwGw6iwhuiNNBtuekp7qeW0/8t6gaL7EasQokPEaElMQ45hgcYL2iuvYidRwL40ixcOwQ6w3EmcSVCBEapNoDYwB1FiM9u3BMS4IxZ2UCUNPDUC53vQnFW5JphqlFQ7Vr8YwwX73uBZONG43TEz84dsQRlfDWbjfRNTuURyQzpgFBrC5blzm5dNvrGls/TBMOh3C94NgAaZHEY72kEZnRUJXsyQ5nv3Qne3CESyPQJPPNFXn3+ezL+0dZblup6VjsCIt9GnsE07seAsZsX1izEKJjt4Jw3U4w/bu4n/SI0JsyzRxiCw0H3TLsYLCPBS0xrQtsHJgiZNrHQAv0xEy3SmePgPFt0YMetcg8j1uQqQuimnkf/p3VcFVKvmammJK1Apq8FK6CRmYfHiAKo9m0AURQmU6E7SyyY8tBtSMJxgcXBGXjJYo2CqTMVDTTcBBCwYM3J7+AmraD0kT1rOSbXYS1hiwDL41MoMKwlvImPxq4zeNB1MKsprJp9J4hnQ2M8c5IfORxXH8YsjkQe4oXn7mR/zDgNMgILg3YEkkVwV3ClOphcOPJ7dij1SSkw/jdXK0WBAkTHgKeCJH7imrUoc+Ze5sVeyIaQSpGTs+jif7JxnyAKXCGAyJb4qAdnY7vZzcA2LrcMNu+nH05PJaWhqRs2cEyp7iMWWTjkmBN8YeVhWWw50z3PjcpWJgrqIUBWpyfncVokD630AxJgXjFwWqcS1ucKf565ye9dxeNVC/Q6A8lYugxI4cS4brHW2vFW4PzT2iFjfAYmm8pEjSr2dga+Zhcmxlttf8lZ//8+yWHjw2KSUkn8B7n/3zYX6rNHWIW7xxJuWLkZ9oM7KmUQk6xe5y+xP8woOUFxs0ONpq/xtgl459O0e0kmx1C3FIcTfRHW+H9hWr8J8qva5Y277dXWH8fK/Zb+j+puv2g/57k2vR4zTXl+XMhtp78XzpeiC3UgRInof919Z6gTh/LYuWYDitxF/vg/jILR8yOzA7bSbtv3Q9D2d8BUEsDBBQAAAAIAI611kIWe9MwgwQAAOANAAAVAAAAZ2l0aHViMy9yZXBvcy9ob29rLnB5rVdLb+M2EL7rV0zSg23AldPdnIRq0UV32/RSFKiLHoJAS0tjixtZVEjKgRHkv3dI6kE62tQpqkMiDYffvD/Sl5eX0Y7rst28jyU2QsWlEPdR+uKJonXJFexF0VYIuag147UCUVdH0CXCDW0DsfmKuYatkPAr1zftZqbcwsc/fouj6JKMRVsp9vBViRr4vhFSQ9HuG+XEvScF5kIyLaTqlSQ+tFyiyliry1CZXMJqUHR2fxYSoyjKK6acB/NRvkgioIecWZPfidVJvlg3fzR/P3zp4ojBhlyyuqhQ2Sh5TbHtmebkvkTdyhoLi7Y5dpaBbUSrwWRRgUJNGQIGNrWcAjpSGoz++lFYHUJUmtU54eeshg2ltsT8Hguo+D2CEkniNpin/AHSFMp3vuDCCqzkY10A+WsydWAV1hr0yfaYFw6BXk7EF73Yyv9EBFaRdSi1bpLVqsADVqJBGbu0x7nYrw7vVzawlY121afV/i9wC1nGa66zbK6w2i5tvEvKiVKUvvR3UfelMI9qCXx+06lU20U87A72LcYdpBVnrOGQWuh4h3o+a2U1W8JsNup9l0DBNGq+x75ByWvqJcoQr3fwWGJNxTWVNgV5ZAqoJTS0jdlWxKHBTpoxTWZNDMMy3/puDGozL8hpFBeI0rIxPs6nQc6Px/SpUbAvQ0i5xIloOum/+DFqnfhhBqhmxo/tYO3Egl32C2QEYXU+H8hzRXXgeQla8t0O5bfg0On6gE4UQv5dIgFIICKqhXbVtRNuKIxJM1+UE5ZrfkAzoW52Q1Pdqm/KiUJTn3hu6IDJY8+KfRHoc8t3rXR0YUixJ8rTKljFwJIThZb+qvlDSxxUvJJuM+AeDC8IwptH0yjdPHpt6ZgMZpb+4Pbp6vnuwyx2TDcfqhgA4cMw1sJk+iXa4E7qNAZucQA1ngtwMQngZsOnFp9MbCef8oft7p5FrO5P4bHSg9N5ghpPs0TM9skujGQRj+SaOK9VAhshKn/TZFyZ0UJWu/RmnkVLaYslvLu6XsL11fU5rmaq3ahc8sZ02mt+I7QKJZ3K/gY6JlxIL06pMwMjzh3oY9PyqshIMp/5NoiTN0yhWUjHKN+QGtp4dlKw4LprDDdH6dPzEhxPpLd3S2BFkXmfcu99BWTdUUS6li2GKf1MNqYboWGS7aEgWuisJzAXNgnMhHCPx+/peKZBbhinCw7NMl0TDHOrjiO4CnywF7IT9IrTAeV8DtEdiXYsqUrRVoXzkm4WHbViEcCTzUn0MUehhQ6beoYgSYmo1PYPum1i66P3yiXzktU7or5peyjIK6Yl7g+CjNu7YG8+iIwy+3b7pvm6qofG/WRaWBu/VXzLrBBrMRqWp57hk65J6M7SnS5Jh/rs3yy6dATxGajb/vi7I1D3Gvn7vCpO7B1X7f7xM8AYqzEBQWUQB/RRBvURxF73e4YwH91sN0zn5ch6S4uZ2h8Ec/O6sCN/tQjcMfsnrlTDiWDWF8F6xy5miKNTyvmFrrn4KptoVHqCU9ckHnvq/+BLY0j9d6Ik7tYvaPIfUEsDBBQAAAAIAI611kJK2warjgAAAMcAAAAZAAAAZ2l0aHViMy9yZXBvcy9fX2luaXRfXy5weU2OwQrDMAxD7/4Kkw9IDr0V+hPbbmOEtPWaQFKH2C3s71c6xqabBHqSMQaWpHEbO9uossDwL4BbTIKF5y0TTrxqSKugxsPkIEKCjXLQtC6ojCchKbdEYgGuRBiycI9RtfbOzbRT5krNfjbtxMXtnTt7DsxxBp6NC55fMJXKTfHypb4AvA85e48D3n/xA95QSwMEFAAAAAgAjrXWQuNmkdLkAwAAOAoAABkAAABnaXRodWIzL3JlcG9zL2Rvd25sb2FkLnB5hVZdb9s2FH33r7hIHywDiuA02YswFx0SbA0wZMOaPg2DSkmUxZUiVZKqkRX977uXkmh9GK3gB5k8POd+U5XRDRyFq7v8Nml0yaUF0bTaOPhNuHddfq8N31RTVMkLbZjTJiAN/9wJw23GOlf34EJLyQsntAqoeyYlyyXfbDaFZNbCgz4pqVkZnZV26Qbwubq6eq45pB6XfhyB8PP49uYj6PxfFEjgkfRbVOfKWaj1aTAccKG0nk6oSpuGkTXAct05qITkFrqWuHgJToNDvXJgt3jW2w66Akb02gp0+CXZeL4kgRMzSqhjmvYr9Pyh4PX+5vZ6f3t9cxMjobDwy5+PCEW+rm11L5SjDtlbMIcL+ctgbgLPeCCQNZxh5FzNHNBPvYATDY9H3wrdyfLM04u1DKOMFpMrJMxcoBsJ4IRJ9AHoDMIMKO1EwRP4oJyQ8IiBUSUQQDio0fCccxVYznYP7p2ElBiehgm1VI+BSZI61kTlgTkPTJ3yETFIlYwZ7yNZ8gqyTCjhsiyyXFZxSEuMabEW03J40mosFXqQi5voYQKT1S4JLKvzu/NJRCYZawUcgkxy5C7adkZuY9huz9hXKXz46/fRxRFN6RkyOGetXSMzZFkxjxsX6JX43HEQ5UoES/GiCEKX9KJE4v2M94lh5heUCyJFkCUVLa6tfOC2MKId++M7pOUEueSe7K0l3ov/fmSwJciSlBZX3r/DkdCMDWDPrSKKTjLjR0Eo9cDHV74MGxm2nnJrd2bbKxvutXI4n8C9tD9yrOihmYcuZaabQ9gmXUNzcOiaSXcY7jqjYBuGJ/z9df/tnzfbpJ+KUSiAgeztfJ6P/Hg3cMeX7Ni4D36jD2yoWIGTE0+jscJPDGrwhUV98+VaSxx2vRXZRMT35S7GoXoXw93+buKqZV84s8N4aJmrDxiJmU3vEbGwaBjyBAfb8kJUgrIcTqVYFKwB64zHpBBpX55MohHojtL9WeQMx+NLw82nEvUxCMpLFp0xlP0Sg1rQPeLHsN/yfRfoJtfBjA1FCoZc7BPH+4gq9loKfO/vQMDiPXEpz570AbYpUHCnYQnv3h/XOzqT8i4ezkNhM8mabcedjKpxNuZo3kt9whrsvbSHZ9PhhYXh5Kzxf3ZT9XnyiZsyve8zPTcJ0cIKZR1TBY9QmTlnIjIUO+BkhKNW8FdCHD4yFhT0UNgyH7YDkDlrAA1Top3t4BcR/z7Zrwwhl9l0y1WwNJ8MOY/QBoq6U5+oTigCCbpisqHHo59uXl/yoky8y5E/uVsGipIabLt4upDa8mh+cGjIWVSGNe8czjCInjR+dnzhhh0xk/8DUEsDBBQAAAAIAI611kKPFA3FwAEAAOcDAAAUAAAAZ2l0aHViMy9yZXBvcy90YWcucHmVUk1r3DAQvetXDJuDd2ErF3IzTSBQaAqlLcn2VIKjtce2iiwt0jghDfnvHcn21lnIIbrsembee/PxVquVaDV1w/5cejy4IEm14uL0CbHrdIDe1YNBqJwlpW0A6hBuGLVTLbj9H6wIGufhi6brYZ9xnuNXP79KIVasIxrvepjVmAtNAN0fnKcJ8iNxCCEqo0KYqdfL5KYQwI/5dixepMLifm7i0/Tn8n7qR0JqPJDzOParLbfYK9LOJiaemlNoSdsWVGqZOkXwqAJUHhVhDc5yJq1HM9ETzxORt4igTHAFdESHIs9rfEDjDujlOKSsXJ8/nOcJmZ8ZHegD84d5gvRbYwNlqa2mslwHNM029jCNGV8YmHE9DbaFWLKRR0SsPZaeFfBd9QiuSaNyTv6nYZy0MXuREi3SOovf2Sv8r5tv6YYRP+4dWrTo0x7+6sNeGQO8c1fpFHrkSd8Qm6rLwZul5iL8DmlS/h3SU/Wp9CL8WvqzrqIhlH+azR3dELlvr69A2To1N62Vr9prOlEcg0uxMZJt4fllIxanjoabTr24skcavIUsOXi0GURH/37++HJ3mcnRtCNqyRbobbLjycU/UEsDBBQAAAAIAI611kIYnSlMewMAAKUKAAAbAAAAZ2l0aHViMy9yZXBvcy9jb21wYXJpc29uLnB5vVZRb9Q4EH7Pr5iWh+xKS7YHPK1YpF4f7k5CCJXyhFBwkknja9YOsbMVQvx3Zpw4idMt3EmIvOxmPPN9843H45yfn0e30lZd9jxpsdEmyfWhEa00WkX7R54ouqmkgYMuuhoh18oKqQzYCuFqjAad/Yu5hVK3MGCqW7D3mt8O0ho4SsEx0V/S/t1lcPn2nySKzimhqGz1AXxaRIO1AXlodGuhd77SLYZeY/IE7X2vyXblLFEU5bUwZpbfakJa7yKgh6hvSMLOee4+zaS8nP6/+jQIS8AVAVUuGtPVwqKrgEOSilQfhJUU26LtWoUFZF+G5E+WY0AlnQqEA3GKpNXtFyoLG256Z58UldwKlRNtLhRktBEV5ndEVMs7BKN3uz6Mn/wP2O8hfzY3nDmDs1yqAljL504eRY3Kgl2EJ37THIx/O+VwFjg4j3eIIGrKyL1V1ja77bbAI9a6wTbpt5BDtsfnWyd7O8Rvn/SC8SlV6umclfuEfwssIU2lkjZNVwbrcjPUyO8qP6YjntW0iRtgz3UyBvqQKYLWk1Q0EvYeL7lFu4q7to43EMeT65MdvL9+TRWjhsZ7dwpmuyR8y4bQlT3UKWEt4b09xH+L1E2K96WW6o6pLPfeRJOE6A37s+spimDxpA5D+8UyClmW1Fj2HlE5w+z0LhjZ9RSZty/0CJtXjm0sj5sTYe2WojjopCC/EJL4czxNAXg5/R/PMZ+zFg0V1x1IyiATBkGXExY8nhT7psMJ3s8GzirIcOYVrzfwRisMUv0TK0lHkCogKhTFgoOOue3MUnVvDSW/6Q4ZtpT7OGMdHo2eBaQzpzSRFqDe/jPYrE/4AW5vPwE8LvwMmRsGW5qqyJPwhw1htRV1Og6mkDBYDElfS2OZ8j82yLLVJ8IP4X6v/V3HmQfJjGl8PJVHIXnuF2jyVma+CUtZo7tiZSlx2RH94kKxM9Js+vBxHc1GI7f3MBpnE7G/lSCe3WycyteLb34nXsVJf4mtHhY7IMDP4+TVlHn7kCUs2753C6+IHkrh/4I6exSKu2gpmW6M6x7EzzZ/h/T4pqGK9nOf6zneAJvR58HDpwVbs/8aX+Y5NjbeQSyappa5u/u3R1X424354m/rpR6mTfgLioe7LAf+TOsahVrx6gaeXVxs4MXFizXQdxC66TEpdcPvx1Kdy+/U6gh/odjvUEsDBBQAAAAIAI611kLiJpm6NQIAAJwFAAAXAAAAZ2l0aHViMy9yZXBvcy9zdGF0dXMucHmVVE2L2zAQvetXDOnBCQT5sDezWSgU2oXSls3uqRSvY49jFdsyGjk5LPvfO5KcxEq3LdXFtvTmvTcf8mKxEHtlm3F3Iw0OmiTZwo4kNm8sIR4bRdDpamwRSt3bQvUEtkHY+ijQu59YWqi1gY/Kfhp3CTGu65SFwAvvv90LsWBVURvdwUmbObElUN2gjZ1iv3qyGDcSmjPsiT+EEGVbEE0OlvPQVSaAF6s9ssXM47LnyepteN49T6Yl+OS4CAYJe8sqPefRFVbpHpwJT+aSfeBCnTLmfKTwJ1tEKFrSGTTWDlmaVnjAVg9oZHAvuRLp4Sb1dU5DPZDSk0f/rLCGPFe9snm+JGzr9VS4KRe3aGTOZdDnYwat5CUmoM/gdxlUhUWrOjx155yi6vc+n9JgyFLX/pvmzbzIspD0UKzywsIm7ORkzeDoJ2m5R7tMLrhkFZk5dcH1Dm6jtkq3x/04NhqmeG/njz54yjZ+CH6X1uZKd9u4iamQSqOGebKhjjH7HLaBOfnsJIn4w9zB/Qc//P+ooqquaFUVszlTGLdjDSj3cg0JjWWJRAm/DthX3ET3Wheqxcq9oTGcfSxIni/W9Hux7NPDZ7AaDgqPfMsNRleg2OnRzgzFCrYwzJqPpr2SuRwk/zeVPCcs5xCzah4LgnFwsVWsP22GwfyiezwfqzrycwEmszv1Ns9fBnxOsxKzu+vymO7ujN+gHU0PyfTXge8vxFPwmr2EHy6+/rhLZKj1kjY+WPwCUEsDBBQAAAAIAG2jI0NYjldIbwEAAE0DAAAXAAAAZ2l0aHViMy9yZXBvcy9icmFuY2gucHltUrFugzAQ3f0Vp3QApMiq1A3RDMnQdskQdasqMMQObsGO7GOoovx7AQMGWg8Y3b17fvfuhNE1XCSWTf5Ea33mlQVZX7VBeJH42uQHbTgRc5ThV21poeta4og9tbFDHyGEFBWzFvaGqaIMPUsUE2jPZrN5LznEPSrOHAwSd+8y0PkXL5DCG0Kpq7MFbNFSCW1qhlKrQVfPZTg2RllguW4QGOSOrAWxPj8+0smzErX5gWTZRvelPr3L6Ciyv89cQJpKJTFNQ8srsR3e2ILl1rZyno9aja11xzZXbsL9BKpERCeGVW00VT3EcGQ1By36dh2OetKWhqoO8DzmLhzDoAsFC5bT4IhnCezCBjclSPx/57nxHABZ1vWUZav3h4kvFbjgTIMUc7T35S+NVxDOEs4zmv5n0dhckFZSfdsAGKKReYN8JbVPr5QONVu43SMyG267AWYY7myMbrMgSGarM6zqx+3x/rkLqNvIcJpNRH4BUEsDBBQAAAAIAG2jI0MiTP/4YgIAAHMFAAAWAAAAZ2l0aHViMy9yZXBvcy9zdGF0cy5weW1UTYvbMBC951cM6cE2pE5hb6FZWPbQFkopZHsKwVHs8UZd2TLSOCGE/PeOJCe20/hgPJ7Rm6/3VBpdQSEISVYIsmq0oZs9KZ33XdK+3T2llS5Q2WvMN0nf292rNndRrUVzC/rDxmQyKbAEoQhNzcDZEfEjdq9kMQF+DFJrajh7wz2RJcGHdQkuKlrc6kldJvfBAVUTy5o8zjo6RpskmfUAoigkSV1bPhwiRLQZ+LkRHPuLkT/XVSWp9+ZX74W7yZWwFl51TUbuWtJmRYJs3A+E+/LB0+n0bS8t6N1fzAkaow+yQAso7AlEniPDkAZZl9pUwtXTzQIL2J2A9uhhuFmSlmRuwTKOC+PRsBdefv9IQ6oVIuyJmsV8XuABlW7QpGElKTczPzzNDTbaznuwOXBasA3msmQzvdUcPtzOskzWkrIstqjKmS/EZqEbtrh8rmX5S9fYbdJX23Lq+H46LlyVSdojPsJKbiifFsMB84igYUrIvFXCcOuC+MWTNaiYGm6KfX7Ok4qW9nxs6Qk4ypW+I8VR8EczOF+Sx9nfNAkFdVvt0Lhxd4yAcDIsaLsN1nabjtOTP7yE/xN7TzTK9JPXceW6OkEh/YqFkWjvYF2EfQjrPdzOejOCfuk0Jw/IDSjVs+dBslH3brg3vor+guioLOoisJjpa7BCP6UPPFnPKRT5fojGYquwJrdFx1rFDafAmoXPz/dan7F2w/9ewrMhFgvVu3sF85E8/Luq9o4LirLr5Nb3t1DiCz660voRb4YKYNmYTgEDlnd3VvR1yNJVL9T1+ctl8xylQdnxgJTJ5B9QSwMEFAAAAAgAs5g+Q8EfbAg/FwAAhUgAACoAAABnaXRodWIzLnB5LTAuNy4xLmRpc3QtaW5mby9ERVNDUklQVElPTi5yc3StXG132kqS/u5f0Xu998TOAQG2k0y8mzkhNrHZ69hewDeTT0agBnQtJEYtmZB77v72faq6JbVA2CYzPjMTQN1V1dX18lR1a+aR50/8sZv4UVgTbizFQsZzP0mkJxZx9Oh7+JDM3AT/I8UkCoJo6YdTMY5Cz6dJiiftzWVyurfXckRPer5KYn+U6qfRRKgojccSUzwp5qlKRCwT1w+ZojuKHunRYhX701ki9sIo8ceyhoe+EgFIEQWbW+itiQJ+48D15zJ29o42BQCjkR+68QpT4nkmANbmpRDq3y6DMAvb86JxOpdhwqqlKY0oFhEexWLuJjL23UAVKl76yYzn2cI7e8eOGODH0J1LkoGlTZNZRDRWAnKKkRSpoj2KhAy9KFYYGBPdeZRIoZeZKIgDjo8YN8ETvTAVTZIlbR7xjtJEqIUckzFglg8ay5jMINQGoRTLsze47PZF/+bz4Gu71xH4fNu7+b173jkXn76JwWVHtO8Glzc9MRy2+3j86pVoX5/jv99E5x+3vU6/L/Bwr/vl9qqLOSDSa18Pup1+TXSvz67uzrvXFzXx6W4grm8G4qr7pTvAsMFNjWln0/aKeeLms/jS6Z1d4mv7U/eqO/jGHD93B9fE7TPYtcVtuzfont1dtXvi9q53e9OHnBB/77zbP7tqd790zh3wB0/R+b1zPRD9y/bVlb2cTx0I0/501dEEsZzzbq9zNqhhLdfZR6wAmoAcVzXRv+2cdelD5x8dSN3ufavRys9urvud/73DIDwU5+0v7QusYe/gmcVDyWd3vc4Xkg0L7t996g+6g7tBR1zc3JxrnfY7vd+7Z53+f4mrmz7r5a7fqYHHoM2sQQNKwWNazl2/y+rpXg86vd7d7aB7c30o9i5vvkIBELONueesyJtrXi50cdP7RlRJD6znmvh62cHvPVIdFjbotVkh/UGvezawx4Hj4KY3EMUyxXXn4qp70bk+69DTGyLztdvvHGJfun0aAJp7xPhrG1zveNm0H5BLf7TMsMa7JrqfRfv89y4JbgbvYaf7XWMVrLezS6N0mPK5VOPYX5CjnQrHEf7cncrT0z1h/c2SZKFOG43YXTpTuEk6csbRvKH86dx99ONUHZ009O/HzmLV8OSjDKJFg0mpxnR2XA+iaeQswmlONv9QzBPwRhcBZr6I5UyGCo6KWDxO8G+wEoYofJfijvyexG4UexTSfDxViTsKZEF1GbsLeCyicpSaMHXhJ5fpSLRvu+Lg8fjQ2RSlL6WARrFJ35wY4Q6REsxW4pdRLN0HBLhfxHjmhlhTxeRuCBmCgONc/mPd+tucYmm5pO7/FAt/gQjKBC0FbY4+lwuEOxmOfaleyLSOsP/PVKpE3QsxWonfZBhKRN2e9JMf1qgUcU/OF1iQBOt7Gtp1Q3EGpbtqHG0Shu3cZ6RPc5OxzOVBc4qJUSMbWZpe5llJpGRz1vhNec6i0KQQy+ye1s1tIF1kDuy2Npkh+3MXsQi+OLwXWTKr2H4S3x79vPCWw4yCaJR7jU2FzHCT1wCKsxf1f/pvc+C3KBVjbFqchgJap6Q7HNq2VY/ZGvxY0rKUk3xPhkNKotkAzuEZuSLRjyR8A7BBC0KpVvnYhxXIz90H/aDuyYUaDpFSEvJslU7hOASoVpDKiwqynIaBF1wB1SSpGyCF41PEmqbEjy0JpU7uyPNGNEri4EsCEjdFT7HOiq2pI1ogpwNssBVfEAj6JONw5sZeYo2aR+MHHvHFh5vLQHyOYOzWgDEAUoyQxoOuIcAnNxnPZABQUW0QGd9KY5hCjlEmRiMbWpqfMdTzMT2U3ijnyVQITjaycY3SbFpPPpO+OGTYUBjMWDlRPG3IsEG+o5LGpvxXwH6hkuuesznwC2Nn0kb/HDCRZ91X68M8/XnfuEJqB3TYpN757sL+KoJgdZRniAkt3LMNzcmWpaGwxbdpdK5MI95i9YRGfcTl784smQf7RL8u1yXc3Z27llN6VuTXaHbdkYV0pk5FhtmWdZ6JC6Wx+4Kxt+3pL2eUz6uY02ZYv7aLFZqwMpE4sE3nsDoRAEaIGwY51XlyS6r8LBEGJjFZTEQFhs4KhXUiJyQu4l8o+mDxcAM3nCBE5siBcxwXS5YGKP5R3TJzHy33Et2Jjoy+CnwoqEzQ5xgKYDSRcZzVojRcwQrASsi56wckpcWokPNj4APDUA1HvmYx/WZkQRUWUW3Hijp49F1N8NCutTyYwzhBkOcqzeKTr7Jhgjx/BiM2HjIVX69t6auZzi7jIEUZrAjlEb4Tnpu4WzyvWEXuf4p0ExndcPQoRMB+TKXXeAo15R8uoZAoXjXOGNUBo+ZPPqz/bU5uOu+c1qk4araO68339ePmNsOqNq225xVOvCITWkdcUJSLQXe97sD8zEkO0RZGAM0K1NpKIWKV/MsKb1bhzQaZaDwEMssZUhy3LDKOVXEP9u9/h7Gh7E0xMl5RrocEC5fq6+GQghswWwDIABa3KQJHz8A62FIag+qK6nVLuo9xNJXxLK3k1pNzakEMh1kyBGGXagIKFraybOIfpYLNygfljp5dwn7rpGWtY+Jr3+k8kjbZpbxIqvAVYud38pVqg/y3olSyomZmRW/qrfe7WRFWB311aXXOOIiUHA5r+Q+xRL0U0i9UMmW/wmb8aUjA7KBrtNJ8WxE2tYkOh0AbwEU6Bvg/2Jw0RuRYODRlFdui/p3RiH4ayiVZS2KbgGngUB3238afs9outqvLx+NGRFwb+yxB3Q3rJSH+Pryv3HAjNTJzIu8nfmBUki688g+eDKT1gyXhcOgTWBxnBUQU3yvyI0SYsdKTzYD53E/uuUT1k9U2Kh6YcLkD0yWL5r1YSvkQrDISMOgwsbXak4sIoRHBCb/ayhv9Ac94Yt16mTkbvUh8naPyijxVcKCsSOGZnPc5or66z7G/LeWdYh99dv4MKEnrbeSSiZJNuJBIxiyQvVyHlbZALKHaoYokdQLJgt0kjbkdOBxeRtGDIz2fVDhDxNBVuodhITc34dgIHYvIh5vbzy3F4telDAKH4ufpZhKtNNGPo/dvJkfvW+7Ju/dvTlpvTty37t/G3rvx0dH7t2PPc9+P3raarbcnVcsY5jBCexBEp1ItRLLPmpmu7odgn4Dm5m4IhB/XGNbVLAG3wSz8caI28mouB4dEdTo7XR9Kf6n4gEcOeMcHr+wQ9qoiPDSdt0X6O6k33+6e/uATbgDH4ewUuCMZlPNGO5B/wIzjSFygGPwhDj662S9T+mGLVE1Lqje7SzUcqihOcg8CymQjXzfZ8u45SrrxeHZPulNmbikWVA+Pye632LlxvSLQmPBa0JoiIilQVEmWKOfS1YcNKDhMh4VynSXJH9T4J++daeyjawcTxElqYujqqp7CuL/dr+d+6M9RrQM3TWn8AVsm5DM/OFOZXOEjWZMR+dXhcFiZanqyjvLJDf0fGr0QXqU63RUjSCAO+gsYikgXgjWGtFvTKV1/1IpYrHgBrr3cCRIQnzZQhwHKU+moPo+8NKCqiWqYlVDgmqycSrHOUAzR0oZDIO9YqtnBIE7loQY8rrUVKonpgMFsb5d1GDF+GVNHA6DZEmoZxQ+KNszgHI+8vlrNSJLGBqwYTjHCHY/lIjFxWAL0Eq94ypCPSONByf6M3a2T8qJKvl+oRCtWF42TaOwWPlEYoBVarFEjqByqXizgSJYUVKuQNudSKeoMkzXrYhCruNGzsR0r6giFU+DagwE+PCAmLPHrFrthyPjIhz6yjKgn4nbVv/nb22arco3apMqaMf6obaX8iDw7f77h3hVEHNE28Vvp5G9rtMxNb2llvNjgXZ1LGMmd6YrLyTHAknJdFMfayFjbCXC/FvaVKtcITycp+LRPuK+wPToAFBHX1AgCQB5cCORhkt2Lw2GG+CoU1kFuixexz6AAxl4rxf/fYoJc4HJB4BLh34t8NUeWHqVxCAuptIi+pF5YkBVHWmDCLiSDH+sWBzZDmXYinTe4cXb2OBx++FC1v//xgTuZoZhHiJ9jlyhz33Lpo+phgMprTEMfey1869iYWo7aOmi+jeU4LtWotreo9C/b+miV+gf6oHSaQqnQFNUx83mqjzpoiOFmw5isxtMnpqwE2uY6HafCp0gV3HiAHugg2BzLjujgk9dDZD06mA5KPQs9YgYtUlvoEXmY7BnjPdprZALpVThZ03njHGfZ+Hjn4kYnGZQrlIwyQysMDPtn4caxwbO0cDdEfP2YLGRS0ZgloY4KoZpHuwnVT6KFVUN6kg/0ae9HqwTI1Og5loCnod5+wN63J3ogWRFVpErsvzuqli0HVUf1o9Zusl1GCYra7+SYuuBdziTlKXLDvLTl3XfpkCPQJ+pKVpwxQJJCjtZWcFclRavZ/FUcUMP5UFfuWXt62x6bTJH3890wRD00lt495Sn3PgfvW6GITSG/oYD1mayNHVnHzS8C0P6cqZoYuG0Uw2YTJl+GnfXfvlBAsSLx8T/UHKiwVcPAydDHIc36SsGiffW1/a1v2n/iojPIjvXYgxHusOMrxFIBICIDH/BxK1GGNDlhpsjnpaDJMdEVVL+BnkrHM11N+RO6dTGzu9Zb/vbtgquIdXRng4te4U5dCslPC1tBlkPjEpmDZr6ic1Kp4ZDOfp42+mdK0212wyB4RKcB4qu+9YNQp8G1r4rmKxVsXlRpPv+qUfmWUTEGQODWEOCg1dxqUrQOGkTHaX5VjbdPJ28qSSeTn2IMLwLU/OA79E+lFG1jPUqSPqEh7AzveBQCBE+p10uaoyHUHIqzAE7HGFm5Tu6gSj0jY9sU22kjYCFjheSNUEZXdLDYIWDfdLkKwwah0Ac/GVYcQW3uOZd6nE4BClC4VXeUkLZt/1YO9T3yLtCDXKkMGBHOUHqBkamkpK6jXr9GPn/92l4U0QIIo/mOuI50MPat1EESShc+hyFm6Wx9skjCyVp/9dGnhno4Pc3KfuqknRInh/g8szpdXBVJlda4SEcomvB4xD0K8uaRRFaJGXl7joAyqg4ditqA/rGpMARDRHlGGHfh5zomwe51wTccvlJW/yeXJ8e5T7eW6Qzk/k/dbCC0qc8oYNfUA1Z/WaURF8a5J+hik2H2C+gXdE3pXhPUZ9ykX6E47n051E03zfRn9FR0ASpDTt3UiKnu1eUAURcHphGWY1TdAtCoWc+LliFPLIWJnMpTHLHngT8u8cyuDHJLMX+uNWLsXkcPcoUSRwuuamhrJnFsGcnMHLN7hyG1zOB3+r7eE0JCDnJ9FACFILR4c/yp+PALW2kuh24n5cmJmwZJ0Soo6LE+kZOh6pijQT32PRSpXBC4ZhNQm3kbazYXLWoYNZXYB39cRZ920vU8U+JRgaLTnjJBo0SUBpMMWoRMXxd+Pos3aRmlAUVvOvMsMm0a5h2LEk2Ig6VXHyEVJaR2MYdPW5x8/w8ON9oKpYG5layVyOvWUjKQ7qYV1Mxd1Zhup2ZWU6Kn49kz3vZ0INALxl7c6whjxNayKtPZ0hdpr3S/M9KSarhuAiM9dssaHkVRAPixxZTJJkh6zdViSrd0XzqX8nwutd4QhN3AHcuqxfA6lHZFo9SSwGrGFmQG8wH1IlmZ1ZPVA0yiCFeTNGCQoCkBBlNlZyav2ZimlCvQ6pHwudaVWXtm+1UbeQ35lwh9ERVCBBjVIo39KFUm/HXiOIp5U06aJwjaDFrwTdfhVcYv9YzlDAVzwp0RXa/Spv6holBfbIKDLKgP5Ig2DC8/iyEcWWjIbg1oT8wOBF5nXcTX2fDrKJSEwn1eBu0yBLbth/u8tnm7PstFO/Gd2jfsJwfdUC38WGeA/ZP3lR0VrZp+goSruCNJInEPc8sBaV6/VZ6NjoJo2midoKxMF/gOoermVmU9iep6YB3J6tEfy/L1QCoG8zsA284MaVD5HlQZ423ebN1GzEjV4CoYRfBxPaNUZ0plLusAtHLt64Oq6u6TrO5u7Vh3W1EqkFN3vHKu+B/Cc9t8H/Dp/k8POT6IXE/VdHSrLf0H/y9uKEuNa/ObA87afArjMaBoIvM4bpK//rWU/ddDNheQZS/foJhFak8uAO+4sLNTfCz5yuZzUXsd2G5TBx90xg/M2aCgMuOJ+0jvL0zMKmmwvcSntfMSihV6e9Ha6Aj0iVXpa9QvlkIP30GIF4DWXBbkiqkkN3qxOPmMHXBoSTx6lSV7v0c5g1lcWX7kEqYhDXixeHr4tta8XfrYJEFQcQEXlm5S5BlM47CtQCV7hWXjtoCZXeElVfK9a/76XJOuWfRwW/jPT4akl7lg7oC8evpYHTXWJ+VuxvPMty0Bxxz1l0hQHCzCIH81sZA/U0DMo6FKkEzpDakiLP6LLmo5qG7985cN8VHxV1efuzti2Q2Zaf49X2jGuDQz79isStDWFUm6CPLXs/i4iMnaL21Zc/2k7MnAbhH1zZOKVPWTrmw5sjkt4Yv9W1f3RHldzYCKps8o6x2q7XmdxCb/lX95okzZoOVkZ/IkHuPr0km9USIJtDHV3GTkV2jCLATQ+30cY/gAJZSmGUEXMk1RlNE0LEpk85cHJKwc+EifssPoCbxn78hldLhRbAlCZ//3NOGgElLmB8vxVDk3+uBfl27FwWj5qJGuPa8WUlW29bjp8jrH1ZDHpplVBBpvLyX2n06VZGEK+pZUZUOqTy36jACN5eOT4fD+HmHg3jpKd3KFMcXIHGILusy7U4d4S3+Y/l580kB/sTW4cLyDtCZe5cFiVX060Q4rXWpHiV8iTXkBLxBN5DdWQfCXX37h/Xmgi5xkytmj5Yx2mS9ak/lziuXOah5/SiT/bP4FUtXskEvC5CC/8Km99yA+LCt7X/ykIGtUtrwFUSXaWRrzLeCsHs6M1LxDCy4TyT3SLW3BzZa2OEj1uXYWvymCHT4x6Te5suY84BtdVXtqRpH/15k1OFwuXD9+bv7AnVqT6f79c3Jmdx2tafo41hPm2LgySr1dx0Zat3SyaY26W0xjat3R+0fZ7eeW03S+VxfHHMWerWLZQBr7tLfZxSiOZXX7wKQKqumTbVSrrSdOj6sW+6X9P/ROL8p7eov4otPfYjbluy5AtvT66Ijbp/X636sf6xcvLIBMhD7F0YMMs5b5a8yfpOE4f1vdOgbQMdecOtBee9kVVNP0Xy8hifVrq9UehRa8LpewPYOmK8VgiF2G1zWmRDfuamtc7ZRT3LkuXZGtxIlt7tz+kJyMTRdeC+7Y25O9b2e9vyLOTPueVLF0V+WLtOY+rL5stv1ajbWKJy7YFLxKPMbFJWJzGpfG5tLB2KAO3Zqyl/Jmw63ofRPyqm1vBTXNpQg269bxLmZNJ35k1HSWZpRbXDoS4xRoZU4hopLpyPKm1o7vd1xi/4GH3zSbWY9wJKm5+bNXnHKK2S067i7qS0u/DoVazUdR8BIm9p5q9wnoXSSmHSLCZBf6GSvyfVcuSfjqfdmQbt00EP2lGyc/RMmMFnig+PfDSm6er5AeV9n5RX6ax45ffnHF5nfwUSFcuqry3m9rlNtIs36848WZNAQs1q+R0nus/NYbXyHg64pkmVZrdQa1ZC1e+6Xy/eN39nLjZyOLmaxjgzXz2i5xmPZTxXlr1CwWvus17P7a1Ru6DUdYuLQwgHD62Vcz6VWCMt1Y53fIzKtdOsnqnrHkNZSGt/XrZo98m1q/YRbd+7QJ5WvW9MyCDPxSB1lFKfRqK4qAIsoFzBVdJOE7c2ZHTTUwMSfzEV8KZh58zEFPGEzl21TZVnz/t1+LyDVaWbZTjL4F+COkeCrurn+7vvl6vXdGrkfvycan4lwnfb6qa9rqp6fiDWjf6v+jEvBu9LnTXJpnXsmlwTf9rmgv6I4hyhZ7TJcCMiWUdur5fEnvNGcIpZbGghugy5xa8OIK0T2lFWH47QoKDXcYSp+Odh3vvN15xrsdZxzvOt7ZdRXHzq48umVrxC9nRt//D1BLAwQUAAAACACzmD5Dxycf1sABAAAVAwAAJgAAAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL3B5ZGlzdC5qc29uhVLRitswEPwVoacEDiWXcBQOXK5cSy8vbbj2rYQg25tErSW5q1VyIeTfuyvnIC2Fe7K9szuzs+OT7lwDIYG+V/oZWpcIXZ3JxaBsaFVOoFxQKWZsoFRqFywe1SaiTzfq4GinIpZnzKT0jdJtbLKHQOtgPSQmPukWUoOuF1oR+vjp2+PzYvl98fWLwUT6zFPSLNiWmXI9N/1RuDyQbS3Z9R4wXaZnZipQEwPZhkTgx0lj7Mq4zbwICg7euq4wot1sLDWx8y5s4/5hK4hpotdXugsb1GPE1qYm6vOKkS0EQEvMxnAtp1kfdgCdGk3N7NZMxzJOwGWE39khvK5y9aV9bH5VFXebW2mv2Y+3L/LaH2W2qmZmbu6kkIMjKc2qamruuH9V1kjZe764LLE8srmgDmj7HlAyULQD9dnRU67Vh+VitCPq7yeTFvbQRe4xwznF7GQ/Lxv3GH9CQ+uM3RDOUxwuILOJhy8J9EeDYFsW4ECTibgtOWEOb/lVo4vj8X8tC1xMj/9yLeXie6zFNrwQWllLQFH+R0g+GElq9J7FmG9gQ0fg+84S8B8kGGclUQ23vPqLpubdEEkRGjiL1Or8B1BLAwQUAAAACACzmD5DpfomWhAAAAAOAAAAKAAAAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL3RvcF9sZXZlbC50eHQrSS0uKeZKzyzJKE0y5gIAUEsDBBQAAAAIALOYPkOFog2xXgAAAG4AAAAgAAAAZ2l0aHViMy5weS0wLjcuMS5kaXN0LWluZm8vV0hFRUwLz0hNzdENSy0qzszPs1Iw1DPgck/NSy1KLMkvslJISsksLokvB6lR0DDQMwJKa3IF5eeX6HoW6waUFqXmZCZZKZQUlaZyhSSmWykUVBrp5uXnpeom5lXCRIwRIlwAUEsDBBQAAAAIALOYPkNR7Iu7JRgAANpKAAAjAAAAZ2l0aHViMy5weS0wLjcuMS5kaXN0LWluZm8vTUVUQURBVEGtXG132siS/s6v6J3snOAcEGA7ycR3MyfEJjE7ju0FPLn5ZARqQGMhsWrJhMyZ/e37VHVLaoHwy9zrc+8Yo+7qqup6eaq6lS8ycT03cZu/y1j5UXgiDp127dJdyhMx95NFOjlyVpta/rTtvHU6tWG6XLrx5kRcb5JFFIp17K5WMhazKBbJQorPfnKeTkT3ul9fJMnqpNXy5L0MIoxxNFVnGi1b90cHtfNoKZsrd471aKjCWLPuauPE0vVAz4umyoniea2bYrn4RPTdUJxGseeqaWS+bMql6wdgOnZnMzeZRsHSD+fR/Yc5fU/L1S78qQwVFhpIz1dJ7E/SBEIJN/REqqTwQ6GiNJ5K/mbihxCRRFqqhliDJwHp6HeUJqI2kP+b+rFUzTOQOhEx/pQqUaL+6/uOc+hAsq0RaewncrkK3ERCozSujXHtg9p1HN37Hsb1viexeyIS0NmevIymd6L+HqTbTufgH0LSUPH+vXhJo19uD59gV5fu90fHrTb0NREGx87rxwmnoZ/Qg0Oa03ZeVzJTW0aeP/OnLmm3IdxYCmz8kmZ6YqWl9WAnbsLGMouCIFpjs8Q0Cj2fJimeVFvK5KRW6zhbG6ZENMt2ahp5UixTCBFDZuwgUXQn0T09Wm1if77AZoVRgr1v4KGvRABSRMFeLfS2WMF608D1lzDY2uEuA1jIso+MAcjmpWDq386DMILV4AnpUoaJmxluCzYZ4VEsljCs2HcDVaiYjZbm2cw7tSNHjPBlCCcnHphb9iHQ2AjwCfshhwA/kZChF8VwDjwF3WWUSKHFhK3XPKx4j3EzPNGCqWiWrGnzMkdRKzklY8Asn/wnJjMItUEoxfzURuf9oRhefRp97Q56Ap+vB1e/9896Z+LjNzE674nuzej8aiDG4+4Qj1++FN3LM/z/m+j983rQGw4FHtb6X64v+pgDIoPu5ajfGzZE//L04uasf/m5IT7ejMTl1Uhc9L/0Rxg2umow7WxarZgnrj6JL73B6Tn+7H7sX/RH33jFT/3RJa32Cct1xXV3MOqf3lx0B+L6ZnB9NQSfYL921h+eXnT7X3pnDtbHmqL3e+9yJIbn3YsLW5yPPTDT/XjR0wQhzll/0DsdNSDLZfYREkAT4OOiIYbXvdM+fej9sweuu4NvDZL89Opy2PufGwzCQ3HW/dL9DBlq9UeEh5JPbwa9L8QbBB7efByO+qObUU98vro60zod9ga/9097w3+Ii6sh6+Vm2GtgjVGXlwYNKAWPSZybYZ/V078c9QaDm+tR/+ryQNTOr75CAWCzi7lnrMirSxYXurgafCOqpAfWc0N8Pe/h+wGpDoKNBl1WyHA06J+O7HFYcXQ1GIlCTHHZ+3zR/9y7PO3R0ysi87U/7B1gX/pDGgCaNVr4axer3rDYtB/gS3+0zLDBuyb6n0T37Pc+MW4G17DTw76xCtbb6blROkz5TKpp7K8STpaOI/wlpbaTmrB+sjwXu2s7Gyofqerej1N1eNwqcm+WOltMSrXmi6NmEM0jZxXOc7L5h2KegDe6CDDLVSwXyHtwVMTiaYLfwUZk+djjuMMRHPmUQpqPpypxJ4EsqGb53Y2j1ISpIsWLOvK4s8vKUEoBjWKTvjkxwh2BAzfciJ8mSOt3CHA/ienCDSFTxeR+CB6CgONc/mXT+tmdYmm5pO7/FCt/hQjKBG1QszP6TK4Q7mQ49aV64qLNPPPfCjHZiN9kGEpE3YH0kx/WqHL2v6WhJRCzQxi2c5uR3oZGbC53eqWYFmplI0vTy2tWEinZnDV+l5/TKDQpxDK7h3VzHUgXmYNAHJvMmP25j1gEXxzfiiyZVWw/sW+Pfpx5y2EmQTTJvcamQma4u9YIirOF+j/9szvwW5SKKTYtTkMBrVPSHY9t22rGbA3ASySWcpLvyXhMSTQbwDk8I1ck+omEb0gGfvQn/ET52IcNyC/dO/2g6cmVGo+RUhLybJXO4TgEqDbgyosKspyGgRdcAdUkqRsgheNTxJqmxI8tCaVO7hOZsUZJ3ID3hHEsnkLOiq1pIlogpwNssBV/JhD0Ucbhwo29xBpFkJVHfPHh5jIQnyIYuzVgCoAUI6TxoEsw8BGwfSEDgIpqg8jWrTSGOfiYZGy0sqGl+dmCej6mh9Kb5GsyFYKTrWxcqzSb5Mln0h/b1UlLhi3yHZW0dvk3tce25+wO/MLYmbQxPANM5Fm31foIsnrm7/rGBVI7oMMu9d53F/ZXEQSrozxDTGjhlm1oSbYsDYU9vk2jc2XurfcsjfqIy9+dRbIMXhD9ptzm8Pnu3Lec0rMiv0az244spDN3KjLMvqzzSFwojX0hGHvbnv70hfJ5FXN0aby1ixWasDKRqNumc1CdCAAjxBWDnOo8uSdVfpIIA7OYLCbiipuzQmGdyAmJi/gXiiGWuLuCG84QInPkwDmOiyVLAxT/qG5ZuPeWe4n+TEdGXwU+FFQm6HMMBTCayTjOalEarmAFWEpwM4G4tBYq+PwQ+MAwVMNxX6FY9JvhBVVYRLUdK6p+77ua4IFda3kwh2mCIM9VmrVOLmXLBHn+jIXYeMhUfC3b2lcLnV2mQYoyWBHKI3wnqKOzx/MKKXL/U6SbyOiGo0fBAvZjLr3WQ6gp/3AOhUTxpnXKqA4YNX/yfvtndzI3lk7EYbtz1Gy/ax619xlWtWl1Pa9w4g2Z0DbigqJcDLoZ9Efma05yiLYwAmhWoNZWChGr5F9WeLMKbzbIROMhkFkvkOK4ZZGtWBX3YP/+dxgbyt4UI+MN5XpwsHKpvh6PKbgBswWADFjiOkXgGGRdpWmUxqC6oXrd4u5DHM1lvEgrVxvIJbUgxuMsGYKwSzUB93wsZdnEP0gFm5V3yp08KsKLznHHkmPma9/p3ZM22aW8SKrwJWLnd/KVaoP8t6JUsqJ2ZkWvm513z7MiSAd99Uk6ZxpESo7HjfyLWKJeCukbKpmyb2Ez/jwkYFbvG62031SETW2i4zHQBnCRjgH+DzYnjRE5Fo5NWcW2qL9nNKKfhnJN1pLYJmAaOFSH/dfDvdZWRKu2XjAHTTdslpj4dXxbueGGa2TmRN7O/MCoJF155S88GUjrC4vD8dgnsDjNCogovlXkR4gwU6UnmwHLpZ/cconqJ5t9VDwswuUOTJcsmvdiLeVdsMlIwKDDxNbqQK4ihEYEJ3xrK2/yBzzjAbm1mPkyWkj8uUTlFXmqWIGyIoVnct7HiPrqNsf+Npc3in300fkLoCStt4lLJko24YIjGTNDtrgOK22FWEK1QxVJ6gSSBbtJGnM7cDw+j6I7R3o+qXCBiKGrdA/DQm5uwrEROlaRDze3n1uKxbdrGQQOxc+T3SRaaaIfJu9ezw7fddzjt+9eH3deH7tv3F+m3tvp4eG7N1PPc99N3nTanTfHVWKMcxihPQisU6kWItlnzUxX90OwT0BzSzcEwo8bDOsaFoP7YBZ+OFEbfvUq9QOiOl+cbA+ln1S8xyMHa8f1l3YIe1kRHtrOmyL9HTfbb56f/uATbgDH4ewUuBMZlPNGN5B/wIzjSHxGMfhD1D+42Tdz+mIPV22Lq9fP52o8VlGc5B4ElMlGvm2y5d1zlHTj6eKWdKfM3FIsqB4ek93vsXPjekWgMeG1oDVHRFKgqJIsUS6lqw8bUHCYDgvlOouTP6jxT9670NhH1w4miBPXtKCrq3oK4/5+v176ob9EtQ7cNKfxdbZM8Ge+cOYyucBHsibD8suD8bgy1QxkE+WTG/o/NHohvEp1uism4EDUhysYikhXgjWGtNvQKV1/1IpYbVgA1xZ3hgTEpw3UYYDyVDppLiMvDahqohpmIxRWTTZOJVunKIZItPEYyDuWalEfxak80IDHtbZCJTEdMJjt7bMOI8YvU+poADRbTK2j+E7Rhhmc45HXV6sZSdLYgBXDKUa406lcJSYOS4BeWiueM+Qj0nhQsj9jd9ukvKhy3S9UohXSRdMkmrqFTxQGaIUWa9QEKoeqVys4ksUF1SqkzaVUijrDZM26GIQUV3o2tmNDHaFwDlxbH+HDHWLCGt/usRuGjPd86CPLiHomrjfDq1/etDuVMmqTKmvG+KO2lfIj8uz8+Y57VxBxRNfEb6WTv63R8mp6Syvjxc7a1bmEkdyprricHAOsKddFcayNjLWdAPdrZl+qco3wcJKCT/uE+wrbowNAEXFNjSAA5MGFQB4m2b04HGaIr0JhPeS2eBX7DApg7I1S/P8tJsiFVT4TuET49yJfLZGlJ2kcwkIqLWIoqRcWZMWRZpiwC/Hgx7rFgc1Qpp1I5w1unJ09jsfv31ft73+8505mKJYR4ufUJcrct1z7qHoYoLKMaehjr4VvHRtTy1FbB823sRzHpQbV9haV4XlXH61S/0AflM5TKBWaojpmuUz1UQffAdCr2TAmq/H0iSkrgba5Scep8ClSBTceoAc6CDbHshM6+GR5iKxHB9NBqWehRyygRWoL3SMPkz1jvEd7jUwgvQono/P2oywbHz27uNFJBuUKJaPM0AoDw/5ZuHFq8CwJ7oaIrx+SlUwqGrPE1GHBVPvweUwNk2hl1ZCe5AN92vvJJgEyNXqOJeBpqLcfsPfNsR5IVkQVqRIv3h5W85aDqsPmYed5vJ1HCYra7+SYuuBdLyTlKXLDvLTl3XfpkCPQJ+pKVpwxgJOCj85ecFfFRafd/lnUqeF8oCv3rD29b49Npsj7+W4Yoh6aSu+W8pR7m4P3vVDEppDfUIB8JmtjR7Zx85MAtL9kqiYG7hvFsNmEyadhZ/3zQiigWJH4+A81Byps1SzgZOjjgGZ9pWDRvfja/TY07T/xuTfKjvXYgxHusOMbxFIBICIDH/BxL1GGNDlhpsjnpaDJMdEVVL+BnkqnC11N+TO6dbGwu9Z7fl7YBVcR6+jOBhe9wp27FJIfZraCLIfGNTIHzXxJ56RSwyGd/Txt9I+UpvvshkHwhE4DxFd96wehToNrXxXNVyrYvKjSfP5Vo/Ito2IMgMCtIUC9095rUiQHDaLjNL+qxntBJ28qSWezv7UwvAhQ873v0K9KLrrGepQkfUJD2Bne8SgECJ5Tr5c0R0OoORRnAZyOMbJyndxBlXpGxrYpttNGwEKmCskboYyu6EDYMWDffL0Jwxah0Ds/GVccQe3uOZd6nE4BClC4VXeUkLZt/1YO9T3yLtCd3KgMGBHOUFrAyFRSUtdRr14hn796ZQtFtADCaL4jLiMdjH0rdRCH0oXPYYgRna1PFkk42eqv3vvUUA/n2V1I7qSd0EoOrfOIdLq4KpIqybhKJyia8HjCPQry5olEVokZeXuOgDKqDh2K2oB+2VQYgiGiPMKMu/JzHRNjt7rgG49fKqv/k/OT49yHW8t0BnL7p242ENrUZxSwa+oBq7+s0ogL49wTdLHJMPsJ9Au6pnRvCOoz7tKvUBz3vhzqpptm+iN6KroAlSGnaWrEVPfqcoCoiwPTCMsxqm4BaNSs50XrkCeWwkRO5aEVseeBPy2tmV0Z5JZi/lxrxNi9jh7kCqUVLbiqoa2ZxLFlIjNzzO4dhtQyu9d3gCsMomASfJDrowAoGCHhzfGn4sMvbKW5HLqflCdnbhokRaugoMf6RE6GqmOOBs3Y91CkckHgmk1AbebtyGwuWjQwai6xD/60ij7tpOt5psSjAkWnPWWCRokoDSYeNAuZvj77+SzepHWUBhS96cyzyLRpmHcsSjTBDkSvPkIqSkjtYg6ftjj5/tcPdtoKpYG5lWyVyNvWUjKQ/q4VNMxd1Zhup2ZWU6Kn49kj3vZwINACYy9udYQxbGtelels6Yu0F7rfGWlONVw3gZEeu2UNT6IoAPzYY8pkE8S9XtValG7pPnUu5fmca70hCLuBO5VVwrAcSruiUWqJYbVgCzKD+YB6lWyM9GT1AJMowtUsDRgkaEqAwVTZmclbNqYp5Qq0eiR8rnVhZM9sv2ojL8H/GqEvokKIAKNapbEfpcqEv14cRzFvynH7GEGbQQv+0nV4lfFLPWO9QMGccGdE16u0qX+oKNQXm+AgK+oDOaILw8vPYghHFhqyWwPaE7MDgVdZF/FVNvwyCiWhcJ/FoF0Gw7b9cJ/XNm/XZ75oJ75T+4b9pN4P1cqPdQZ4cfyusqOiVTNMkHAVdySJJe5h7jkgzeu3yrPRSRDNW51jlJXpCn+Dqaa5VdlMoqYe2ESyuvensnw9kIrB/A7AvjNDGlS+B1XGeLs3W/cRM1y1uApGEXzUzCg1mVJ5lW0AWin79qCquvs4q7s7z6y7rSgVyLk73TgX/Ivw3D7fB3y6/dNDjg8i11MNHd0aa//O/4sbylLj2vzmgLM1n8J4DCiayDyOm+Svvy1l/+2QzQVk2ct3KGaR2pMrwDsu7OwUH0u+svlY1N4GtvvUwQed8R2vbFBQeeGZe0/vL8yMlDTYFvFh7TyFYoXeniQbHYE+IJW+Rv1kLvTwZzDxBNCa84JcMZfkRk9mJ5/xDBxaYo9eZcne71HOaBFXlh85h2lIA57Mnh6+rzVvlz42SRBUXMCFpZsUeQbTOGwvUMleYdm5LWBmV3hJFX9v2z8/1qRrFz3cDv73N0PS01wwd0CWnj5WR43tSbmb8Tzz156AY476SyQoDhZhkP80sZA/U0DMo6FKkEzpDakiLP6LLmo5qG798x877KPir64+n++IZTfkRfO/c0GzhUsz847NpgRtXZGkqyB/PYuPi5is/dKWNddPyp4M7BZR3zypSFV/05UtRzanJXyxf690D5TX1QtQ0fQJZb1DtT3LScvk3/I3D5QpO7Sc7Eye2GN8XTqpN0okhnammpuM/ApNmIUAer+PYwwfoITSNCPoQqYpijKaZokS2fzlAQkrBz7Sp+wwegLv2TtyGR1uFFuM0Nn/LU2oV0LK/GA5nivnSh/869KtOBgtHzXStefNSqrKth43XV7luBr82DSzikDj7bXE/tOpkixMQd+SqmxIDalFnxGgsXx8Mh7f3iIM3FpH6U6uMKYYmUNsQZd5n9Uh3tMfpp8nnzTQT2wNLhyvnjbEyzxYbKpPJ7phpUs9k+OncFMW4AmsifzGKgj+9NNPvD93dJGTTDl7tF7QLvNFazJ/TrHcWc3jT4nkn+2/QKp6OeSSMKnnFz6199bjg7KyX4i/ycgWlT1vQVSxdprGfAs4q4czIzXv0GKVmeQe6Z624G5LW9RTfa6dxW+KYAcPTPpNbqw5d/iLrqo9NKPI/9uLtThcrlw/fmz+yJ1bk+n+/WN8ZncdrWn6ONYT5ti4Mkq92cZGWrd0smmNulnNY2rd0ftH2e1neuv9e3VxzFHs0SqWDaT1gvY2uxjFsaxpH5hUQTV9so1qtfPA6XGVsF+6/03v9KK8p7eIP/eGe8ymfNcFyJZeH51w+7TZ/LX6sX7xwgLIROhjHN3JMGuZv8L8WRpO87fVrWMAHXPNqQPttZddQTVN/+0SkpZ+ZbXao9CC1+USdmDQdCUbDLHL8LrBlOjGXWNrVTvlFHeuS1dkK3Filzu3PyQnY9OF14w79vZk79tZ76+IU9O+J1Ws3U35Iq25D6svm+2/VmNJ8cAFm2Kt0hrT4hKxOY1LY3PpYGpQh25N2aK83nEret+E/8GIPW8Ftc2lCDbrztFzzJpO/Mio6SzNKLe4dCSmKdDKkkJE5aITy5s6z3y/4xz7Dzz8ut3OeoQTSc3Nv3vFKaeY3aLj7qK+tPTzWKjNchIFT1nE3lPtPgG9i8S0Q0SY7EI/Y0W+78olCV+9LxvStZsGYrh24+SHKJnRCg8Uf39QuZrnK6THTXZ+kZ/mseOXX1yx16t/UAiXrqq899uZ5DbSbh498+IM/Ssh5jVSeo+V33rjKwR8XZEs02qtLqCWrMVrv1T+4uitLW78aGQxk3VssGZe2iUO036oOO9M2oXgz72GPdy6ekO34QgLlwQDCKevfbWQXiUo0411fofMvNqlk6zuGUuWoTS8q183u+fb1PoNs+jWp00oX7OmZxZk4Jc6yCpKoVdbUQQUUS5gLugiCd+ZMztqqoGZOZmP+FIwr8HHHPSEwVS+TZVtxXe//FxErsnGsp1i9DXAHyHFE3Fz+dvl1dfL2im5Hr0nG5+IM530+aquaaufnIjXoH2t/6ESrN0acqe5NM+8kkuDr4Z90V3RHUOULfaYPgVkSijd1PP5kt5JviCUWhqL1QBdltSCFxeI7ilJdJL9G0nPGEqfDp873nnz7Blvnznj6LnjnedKceQ8d41+2RrxzanR9/8DUEsDBBQAAAAIALOYPkO1QxFBDgsAAIoTAAAhAAAAZ2l0aHViMy5weS0wLjcuMS5kaXN0LWluZm8vUkVDT1JEfZfHlqNak4XnvVa/iajCm0EPJISQsMKbCQsPEt6jp//Jezs7UWZ1TcgcaH3Eidjs2GeI+6H/PWxPL82HbAx+Neuhz3wYw/9HE/oamdAEPmcoAJ3IxBAe+slkNQZM42ekGfhAkVHQ4F19QBAUAv/7v4YvXFUPeZKH/pDXVb+jsjodoGN5086hViyo45CCBcAaONfYKtkPsgdqZfTwcQmYAwLCyBu0rKO42NOWG0dJWas2CL6yQSxgecIat0yLszkYiiRAQHXFc70TFeYAQxj5SUvyZRi7eI/q0yq1zITHaq28LGSseYBMoYQozwikPxw/6EWeBVoPmcIDBuJvdTVj8VYWOPXO7XiEVAefavtlCagmcqwgC/fXpWXbRMbuzjhivb70BxTHqE/YOORvnNV/TJepuy71AJe8q60cHz4nK1pC1rAUupgm+1I+uOj4um3NQoi3ovxxyPawAA0r6JiqM4JBCoKuF0F0EUJc/deotLqtEWfc93NFY5j6AJEE9g5r8h3qfFrE181S5pWTwsC48+TFXa8uHIRpcDnzxmscC5dTwGlwDhiKwm+ofujGcNhXZkQTFmXFdH/MtuRBpE7aaRKWctgaqiHrAj5dAnQyV9YWDzABoZ84z8urfPC8HQolzozSPMjrSfMBT7+VFoBxdDwqsfosMUlsOMtlkUwbL8bhXbB534/xP02ru/wVe3XzIV2/8PqwbuLdK+pScxvDvfYuwRSQ8lwcnSSDWDFnWQtH+0xmOsKw/msqmQMEo+9K6eKm3h/dwYZ5XrXX5XpVRga/1uw9BzOFtV88OqBqlTGcDoNzXxLhASXgL6n8Q6u7dA8DKsIHaym9eSd2Dq+6g7rEFRxwrwm0V+xa6lXEGneeJVM8QBACvzfgu/gqHk7TY7ZkGi0SFxLpnmtsC1mmXpexsrlnoeuuq51W0rwdIATFfnZzTytFQ5H55UkhyQXCeq0LKowUV1yRn/du9sRnMSgJJ66gsakPhGDyDZfm/ZtilhSIhGPRUIvmqeESXU7LUUdg6UmEFHFup7szjKGlQgypHHAUhL7Bhh1quJ7gmMKDmnO9+XSDFtkvyGkCxxOYo6seX8JM81HrYgmbhZAI+t6zPu72dUl5IsVsxOsSIwqSx6HmtXslHkBaYq7N62WhaYVgj0mg9QeSIt61EU9x9XbKkbiKTKANORHYy5Afn7HGn6EYMrhmgh1rhSlZWwm1Ga10c+CPz/9fE0c2BgD+In5Bv6KtcUBeJfVv68owwidZxC7R06Jr8Tne0YJMR9cWJ5FAhfMVjGak4ZNrdq/njk3JTSngX8Eiox/PR/34yfbWzdcChbaANdNKhJKaLAAzzqFyHpJN3S5zj6P06wXqlANEQTj8V7rK0LJ6Phz++qMzo9Hq7a7fZOlX1w+flcz+M3jdaLtu2dU6QRcmL3xvvHVjEPkh4DonoOjn2c2bbbQQieHYX1/SrB///3r0dfX5gmcKwIJ874o1MgpGCOBaANk+B12vk2qQk7oi5UJd9CneORAk9Vf8UDdesUmg+DUs/3cCKsrzEzBWYyg2OMY2A2I7BmPR40owpNhgTElOLuI/8z48fPji//J/f/d+e8XPABtbd0Gd/bBzZ+JMVo+b68fPVHk2gAVS5mqrT2maNyURX434/UOU5cKfu9NL9JsVz25iYjppqeFY5g30tc6uKQ2/XKkPWO5IHjCE/BLl7x8J46WDaIGNGBTLZBCBZxsvIYnEJYeObSa4nlPN4zHwjjPkczM/ivhq4O//L16QauTzSupQkI00cEqLQfVgL15rT+tDxBvpyp79KodVh5u3zYRDX8Tv9of7HW+VgCh027ISvYhYxj4/0/ykAyeXov02d45uSxRLamyGBe9q+54GWhGdO8qsee9YjD4FXbCqpaTnAzScQDLVLFLadYwqis82GSIUBO+K+uYvNRGRw1BT6dFLraVe6K4pDTNy7L5MB9afKd4FfR99gNBz0wOG7lB/WJZ6pqOqpbBGe8I7l4E5wp0u55vO5/xwvjTyBKIcdzXG1kI/RvnFiuKw7vyhfqvNxRcSj1knLzkYdE3k/AReEC0fZUl6XDHMuKs3Jh0Ar23SA4yiX6by+2ciYBq9RpUugBYJDe9uQDesQxYzOIt4xvLHIN3Ef9LuvjqTW/AByTeR7TixLlyruB0Mwky5AXSwwPMnZ1JYhJsHC0iPi4gdIWeEU+aAk/huiEWc+uG6QzUx6nbgJSZPWBAOJqb6ZdU3utkR43yVC/iGjXJulhIH1Qcch/Ev1I/UWkc9YVfr9VrXD47Uee/iMVqF8N61n64Q6WA+ek70oQ3NdBMESe6O957DcOyMPj2aETRgQdUrTZ6elaFoj9eRjobLMMWE9Bp9x3TjzWoRZGfkv79FB7cNbsFsbVEJq8IlsxFUW5lAP6qtLtiPkBRIWL529AzbW0kEgsD7jn9ssLAuy80pdkghdYBxLuntJFbNG1IKCbSf2BxmRkfltC0xh1kpK4tkaD5QCPkdmG3PuttPIH86cxBBDAjRbpoAlalFL8cIgAeVaNOlxjgCFOjJyUMJ3RYLAn0nJnmxz3EnR8aTBTInWBDRO/88RS+0rm1rBniCW41H0Pe3sjcXvdqODCLod9zHc4ebHwPbXjGPHZmTAJzKJH9OrEIPNQ1YSxohTG17bSDniDYfCGrvF//i/vB90kEEg33FzZ1JRL4UUIWrlPczFryms+krKYzALqPQD5TaogmFfBH/TV///tnxurh9Eklup4SzzQpa5T6Z1tbAzY4vPCr24qA4g3VS9dVmRCC6CxSfxJ9TlicVhy4O00fAnUTqRTf4V92bSkwl2AoCdOubCXEGZVsFDxSI/yAWfrCtvF0cU54c+mj72ifaCJel5IFfhPUxXxKDxlag4eYrl8mLZBjgJkQQ+gH8Qx9FZjluV4xLqbSv8lGtgpUQyTlWiUczuBchp8SE1Dt/0Yv0QILwD2S5CWcTY7Xv5QuqqanSFIyd0c5HTc9F9WpuNM259uVHuBkx6og5z47dHAom0R/Qfxbr/q7HPzWUYIGojbJkmaL7emxRKhcAUxLuy0tFMNq8twP3mpzt4Piuk//cKf4wGnXC4m5VI9mF0RNwY8918Gwl1z8+6mMVuBBEQ1EZXUyE+bgc4+R34sdz30WHhM65fOaMDEHZkwetUHQUaSx/uFxMpxxG2IxGvpAPLyVAEvxjhW/ubHdgUgN+10FIhWt2rGHDI3JcfWCmvgJXp1QFhsIjNCi+b4xPYDV8SycgmFAUyIiZkJGgJ5/WktFldpHHhCf4O1BE69AJZmsp8HYzxSHkOzKr6+f+o7aZVOcnIrS5tCvVM3SqBXhOJCdO/DZmG5t12A7TJq/fEjiGwd9xfxBjUNkP5wFnozpeUANjTBhfg9nD8q5G0CMI9Atfu5ipVuY2Z4r6TozquSpqP9p/1tg9cYTti+hVVoXzJVP92cACo7+dUjfvJrsmOYdz4PqOHmAc+jGXwU/3l46iGVNXeDU0xiVqd7nzzfGkAqJbmVKRIap0z7XSkvBxs0XqZ33bkBu/y7eQvF94EMR1NZ76zfJY9GPmA0ZY1NbtdlIeVtSQ0kMj3ZDXINLYLvgw9h3aD/4wvoUzA599B3zKj9xTLIMCWUl3IIzEnsb5Vr3gPiJVIXgRmnDcchDy48hB51dhtr9Q6oaGoZaHc8d4OldcfOpulOglIbCGkzbbcYvTY3nMwmQ+kOgfC3y7n4IeiswpUOWYVXS5Sh2zuY1GNKup8XEXq3imei2d+dMmwy3ybbz/AFBLAQIUAxQAAAAIADSXPkONiblWuBEAAIKCAAAUAAAAAAAAAAAAAACkgQAAAAB0ZXN0cy90ZXN0X2dpdGh1Yi5weVBLAQIUAxQAAAAIANqZMkNPV8f9zgIAAM8LAAAbAAAAAAAAAAAAAACkgeoRAAB0ZXN0cy90ZXN0X25vdGlmaWNhdGlvbnMucHlQSwECFAMUAAAACADamTJD+cYV1p4CAABuCAAAFAAAAAAAAAAAAAAApIHxFAAAdGVzdHMvdGVzdF9tb2RlbHMucHlQSwECFAMUAAAACABtoyNDiWjw6vkAAAD6AQAAEQAAAAAAAAAAAAAApIHBFwAAdGVzdHMvZml4dHVyZXMucHlQSwECFAMUAAAACADamTJDqNgwEUIEAAAzEgAAEwAAAAAAAAAAAAAApIHpGAAAdGVzdHMvdGVzdF9wdWxscy5weVBLAQIUAxQAAAAIADSXPkNoxivX5AMAAN0LAAAOAAAAAAAAAAAAAACkgVwdAAB0ZXN0cy91dGlscy5weVBLAQIUAxQAAAAIANqZMkPatWq6QAIAAFMHAAATAAAAAAAAAAAAAACkgWwhAAB0ZXN0cy90ZXN0X2F1dGhzLnB5UEsBAhQDFAAAAAgAh7XWQhmPByEtBAAAQhUAABEAAAAAAAAAAAAAAKSB3SMAAHRlc3RzL3Rlc3RfYXBpLnB5UEsBAhQDFAAAAAgA2pkyQ7QgaEKdAgAAmgoAABUAAAAAAAAAAAAAAKSBOSgAAHRlc3RzL3Rlc3Rfc3RydWN0cy5weVBLAQIUAxQAAAAIAIe11kIAAAAAAgAAAAAAAAARAAAAAAAAAAAAAACkgQkrAAB0ZXN0cy9fX2luaXRfXy5weVBLAQIUAxQAAAAIANqZMkNMlb3MvAEAAN4EAAAsAAAAAAAAAAAAAACkgTorAAB0ZXN0cy90ZXN0X2lzc3VlX2F1dGhvcml6ZV9vcHRpb25hbF9zY29wZS5weVBLAQIUAxQAAAAIANqZMkPikikgWhwAAJu4AAATAAAAAAAAAAAAAACkgUAtAAB0ZXN0cy90ZXN0X3JlcG9zLnB5UEsBAhQDFAAAAAgA2pkyQxlCrU5aBgAAOCwAABIAAAAAAAAAAAAAAKSBy0kAAHRlc3RzL3Rlc3Rfb3Jncy5weVBLAQIUAxQAAAAIAG2jI0PL4EsAfAEAAEEFAAATAAAAAAAAAAAAAACkgVVQAAB0ZXN0cy90ZXN0X3V0aWxzLnB5UEsBAhQDFAAAAAgA2pkyQxb264+VBwAAkCcAABQAAAAAAAAAAAAAAKSBAlIAAHRlc3RzL3Rlc3RfaXNzdWVzLnB5UEsBAhQDFAAAAAgA2pkyQ8FaZVzsBAAAARkAABMAAAAAAAAAAAAAAKSByVkAAHRlc3RzL3Rlc3RfZ2lzdHMucHlQSwECFAMUAAAACADamTJDYaka3OQCAAASCwAAEQAAAAAAAAAAAAAApIHmXgAAdGVzdHMvdGVzdF9naXQucHlQSwECFAMUAAAACADamTJDK4aMZdUGAAAQIwAAEwAAAAAAAAAAAAAApIH5YQAAdGVzdHMvdGVzdF91c2Vycy5weVBLAQIUAxQAAAAIANqZMkNGccaBRwMAAAkNAAAUAAAAAAAAAAAAAACkgf9oAAB0ZXN0cy90ZXN0X2V2ZW50cy5weVBLAQIUAxQAAAAIAG2jI0OcuQUE+wMAAC8NAAAQAAAAAAAAAAAAAACkgXhsAABnaXRodWIzL2F1dGhzLnB5UEsBAhQDFAAAAAgAfZg+Q0zi/B/MBQAACxUAABEAAAAAAAAAAAAAAKSBoXAAAGdpdGh1YjMvZXZlbnRzLnB5UEsBAhQDFAAAAAgA2pkyQw1X45kwIgAAa7sAABEAAAAAAAAAAAAAAKSBnHYAAGdpdGh1YjMvZ2l0aHViLnB5UEsBAhQDFAAAAAgAjrXWQg++fzqiBQAAVRUAABgAAAAAAAAAAAAAAKSB+5gAAGdpdGh1YjMvbm90aWZpY2F0aW9ucy5weVBLAQIUAxQAAAAIAG2jI0Oi6PERzwEAAAUEAAAQAAAAAAAAAAAAAACkgdOeAABnaXRodWIzL3V0aWxzLnB5UEsBAhQDFAAAAAgA2pkyQ73wA4W/DAAAWDYAABAAAAAAAAAAAAAAAKSB0KAAAGdpdGh1YjMvcHVsbHMucHlQSwECFAMUAAAACABtoyNDmg6Kg9sMAADOOAAAEAAAAAAAAAAAAAAApIG9rQAAZ2l0aHViMy91c2Vycy5weVBLAQIUAxQAAAAIAIWYPkOZqSJPLAEAABoCAAATAAAAAAAAAAAAAACkgca6AABnaXRodWIzL19faW5pdF9fLnB5UEsBAhQDFAAAAAgAbaMjQxtbZ3ZiAwAAiAkAABUAAAAAAAAAAAAAAKSBI7wAAGdpdGh1YjMvZGVjb3JhdG9ycy5weVBLAQIUAxQAAAAIANqZMkOjFt/WMAQAAMALAAASAAAAAAAAAAAAAACkgbi/AABnaXRodWIzL3N0cnVjdHMucHlQSwECFAMUAAAACABtoyNDA4G9gHgHAADVGgAADgAAAAAAAAAAAAAApIEYxAAAZ2l0aHViMy9naXQucHlQSwECFAMUAAAACACOtdZCOLuwWkoGAADiGQAAEQAAAAAAAAAAAAAApIG8ywAAZ2l0aHViMy9sZWdhY3kucHlQSwECFAMUAAAACABtoyNDA3kpKcIPAABANgAAEQAAAAAAAAAAAAAApIE10gAAZ2l0aHViMy9tb2RlbHMucHlQSwECFAMUAAAACABtoyNDmKj/g44LAAD+MwAADgAAAAAAAAAAAAAApIEm4gAAZ2l0aHViMy9hcGkucHlQSwECFAMUAAAACABtoyNDKvGfoMMMAAC0QwAADwAAAAAAAAAAAAAApIHg7QAAZ2l0aHViMy9vcmdzLnB5UEsBAhQDFAAAAAgAbaMjQ7HF7AvHAQAAqgMAABgAAAAAAAAAAAAAAKSB0PoAAGdpdGh1YjMvZ2lzdHMvY29tbWVudC5weVBLAQIUAxQAAAAIAG2jI0M5hhZvwwIAAIsHAAAYAAAAAAAAAAAAAACkgc38AABnaXRodWIzL2dpc3RzL2hpc3RvcnkucHlQSwECFAMUAAAACABtoyNDYuNAjIkBAAAKBAAAFQAAAAAAAAAAAAAApIHG/wAAZ2l0aHViMy9naXN0cy9maWxlLnB5UEsBAhQDFAAAAAgAbaMjQ05vii+ICAAA+R4AABUAAAAAAAAAAAAAAKSBggEBAGdpdGh1YjMvZ2lzdHMvZ2lzdC5weVBLAQIUAxQAAAAIAI611kJ6g6BWqgAAACUBAAAZAAAAAAAAAAAAAACkgT0KAQBnaXRodWIzL2dpc3RzL19faW5pdF9fLnB5UEsBAhQDFAAAAAgA2pkyQ01AsBgTCwAAxSgAABcAAAAAAAAAAAAAAKSBHgsBAGdpdGh1YjMvaXNzdWVzL2lzc3VlLnB5UEsBAhQDFAAAAAgAbaMjQxc71v22AQAAigMAABkAAAAAAAAAAAAAAKSBZhYBAGdpdGh1YjMvaXNzdWVzL2NvbW1lbnQucHlQSwECFAMUAAAACACOtdZCE6UwOXwCAAClBgAAFwAAAAAAAAAAAAAApIFTGAEAZ2l0aHViMy9pc3N1ZXMvbGFiZWwucHlQSwECFAMUAAAACABtoyND4TO7ymMBAAAiAwAAGgAAAAAAAAAAAAAApIEEGwEAZ2l0aHViMy9pc3N1ZXMvX19pbml0X18ucHlQSwECFAMUAAAACACOtdZCSke/xlcEAADUDAAAGwAAAAAAAAAAAAAApIGfHAEAZ2l0aHViMy9pc3N1ZXMvbWlsZXN0b25lLnB5UEsBAhQDFAAAAAgAjrXWQmkN0fm9AgAA5gYAABcAAAAAAAAAAAAAAKSBLyEBAGdpdGh1YjMvaXNzdWVzL2V2ZW50LnB5UEsBAhQDFAAAAAgAjrXWQgA3VLAJAwAAeAgAABgAAAAAAAAAAAAAAKSBISQBAGdpdGh1YjMvcmVwb3MvY29tbWVudC5weVBLAQIUAxQAAAAIAG2jI0Nl9wsJCzMAAJYUAQAVAAAAAAAAAAAAAACkgWAnAQBnaXRodWIzL3JlcG9zL3JlcG8ucHlQSwECFAMUAAAACACOtdZCXBqJsgoDAACICQAAFwAAAAAAAAAAAAAApIGeWgEAZ2l0aHViMy9yZXBvcy9jb21taXQucHlQSwECFAMUAAAACABtoyND+akbcIwGAADtFQAAGQAAAAAAAAAAAAAApIHdXQEAZ2l0aHViMy9yZXBvcy9jb250ZW50cy5weVBLAQIUAxQAAAAIAI611kIWe9MwgwQAAOANAAAVAAAAAAAAAAAAAACkgaBkAQBnaXRodWIzL3JlcG9zL2hvb2sucHlQSwECFAMUAAAACACOtdZCStsGq44AAADHAAAAGQAAAAAAAAAAAAAApIFWaQEAZ2l0aHViMy9yZXBvcy9fX2luaXRfXy5weVBLAQIUAxQAAAAIAI611kLjZpHS5AMAADgKAAAZAAAAAAAAAAAAAACkgRtqAQBnaXRodWIzL3JlcG9zL2Rvd25sb2FkLnB5UEsBAhQDFAAAAAgAjrXWQo8UDcXAAQAA5wMAABQAAAAAAAAAAAAAAKSBNm4BAGdpdGh1YjMvcmVwb3MvdGFnLnB5UEsBAhQDFAAAAAgAjrXWQhidKUx7AwAApQoAABsAAAAAAAAAAAAAAKSBKHABAGdpdGh1YjMvcmVwb3MvY29tcGFyaXNvbi5weVBLAQIUAxQAAAAIAI611kLiJpm6NQIAAJwFAAAXAAAAAAAAAAAAAACkgdxzAQBnaXRodWIzL3JlcG9zL3N0YXR1cy5weVBLAQIUAxQAAAAIAG2jI0NYjldIbwEAAE0DAAAXAAAAAAAAAAAAAACkgUZ2AQBnaXRodWIzL3JlcG9zL2JyYW5jaC5weVBLAQIUAxQAAAAIAG2jI0MiTP/4YgIAAHMFAAAWAAAAAAAAAAAAAACkgep3AQBnaXRodWIzL3JlcG9zL3N0YXRzLnB5UEsBAhQDFAAAAAgAs5g+Q8EfbAg/FwAAhUgAACoAAAAAAAAAAAAAAKSBgHoBAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL0RFU0NSSVBUSU9OLnJzdFBLAQIUAxQAAAAIALOYPkPHJx/WwAEAABUDAAAmAAAAAAAAAAAAAACkgQeSAQBnaXRodWIzLnB5LTAuNy4xLmRpc3QtaW5mby9weWRpc3QuanNvblBLAQIUAxQAAAAIALOYPkOl+iZaEAAAAA4AAAAoAAAAAAAAAAAAAACkgQuUAQBnaXRodWIzLnB5LTAuNy4xLmRpc3QtaW5mby90b3BfbGV2ZWwudHh0UEsBAhQDFAAAAAgAs5g+Q4WiDbFeAAAAbgAAACAAAAAAAAAAAAAAAKSBYZQBAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL1dIRUVMUEsBAhQDFAAAAAgAs5g+Q1Hsi7slGAAA2koAACMAAAAAAAAAAAAAAKSB/ZQBAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL01FVEFEQVRBUEsBAhQDFAAAAAgAs5g+Q7VDEUEOCwAAihMAACEAAAAAAAAAAAAAAKSBY60BAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL1JFQ09SRFBLBQYAAAAAPwA/AM4QAACwuAEAAAA=", "encoding": null}}, "recorded_at": "2015-03-12T13:22:34"}]}
+\ No newline at end of file
++{
++  "http_interactions": [
++    {
++      "recorded_at": "2015-03-12T13:22:33",
++      "request": {
++        "body": {
++          "base64_string": "",
++          "encoding": "utf-8"
++        },
++        "headers": {
++          "Accept": [
++            "application/octet-stream"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "User-Agent": [
++            "python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"
++          ]
++        },
++        "method": "GET",
++        "uri": "https://api.github.com/repos/sigmavirus24/github3.py/releases/assets/37944"
++      },
++      "response": {
++        "body": {
++          "base64_string": "",
++          "encoding": "utf-8"
++        },
++        "headers": {
++          "access-control-allow-credentials": [
++            "true"
++          ],
++          "access-control-allow-origin": [
++            "*"
++          ],
++          "access-control-expose-headers": [
++            "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"
++          ],
++          "content-length": [
++            "0"
++          ],
++          "content-security-policy": [
++            "default-src 'none'"
++          ],
++          "content-type": [
++            "text/html;charset=utf-8"
++          ],
++          "date": [
++            "Thu, 12 Mar 2015 13:22:33 GMT"
++          ],
++          "location": [
++            "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D"
++          ],
++          "server": [
++            "GitHub.com"
++          ],
++          "status": [
++            "302 Found"
++          ],
++          "strict-transport-security": [
++            "max-age=31536000; includeSubdomains; preload"
++          ],
++          "vary": [
++            "Accept-Encoding"
++          ],
++          "x-content-type-options": [
++            "nosniff"
++          ],
++          "x-frame-options": [
++            "deny"
++          ],
++          "x-github-request-id": [
++            "48A0C951:54E7:48B5311:55019319"
++          ],
++          "x-ratelimit-limit": [
++            "60"
++          ],
++          "x-ratelimit-remaining": [
++            "58"
++          ],
++          "x-ratelimit-reset": [
++            "1426170017"
++          ],
++          "x-served-by": [
++            "8dd185e423974a7e13abbbe6e060031e"
++          ],
++          "x-xss-protection": [
++            "1; mode=block"
++          ]
++        },
++        "status": {
++          "code": 302,
++          "message": "Found"
++        },
++        "url": "https://api.github.com/repos/sigmavirus24/github3.py/releases/assets/37944"
++      }
++    },
++    {
++      "recorded_at": "2015-03-12T13:22:34",
++      "request": {
++        "body": {
++          "base64_string": "",
++          "encoding": "utf-8"
++        },
++        "headers": {
++          "Accept": [
++            "application/octet-stream"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "User-Agent": [
++            "python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"
++          ]
++        },
++        "method": "GET",
++        "uri": "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D"
++      },
++      "response": {
++        "body": {
++          "base64_string": "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",
++          "encoding": null
++        },
++        "headers": {
++          "accept-ranges": [
++            "bytes"
++          ],
++          "cache-control": [
++            "max-age=31557600"
++          ],
++          "content-disposition": [
++            "attachment; filename=github3.py-0.7.1-py2.py3-none-any.whl"
++          ],
++          "content-length": [
++            "117140"
++          ],
++          "content-type": [
++            "application/octet-stream"
++          ],
++          "date": [
++            "Thu, 12 Mar 2015 13:22:35 GMT"
++          ],
++          "etag": [
++            "\"6550854f02f7bf10b944070b84f38313\""
++          ],
++          "last-modified": [
++            "Fri, 15 Nov 2013 22:35:23 GMT"
++          ],
++          "server": [
++            "AmazonS3"
++          ],
++          "x-amz-id-2": [
++            "9+TuHhbd7y2BUJaEV+mFpaDgjl1g9uSAPiZxwc6b2cYydhlhZSyKSuB7PQyiPBPD"
++          ],
++          "x-amz-meta-surrogate-control": [
++            "max-age=31557600"
++          ],
++          "x-amz-meta-surrogate-key": [
++            "repository-3710711 user-240830"
++          ],
++          "x-amz-request-id": [
++            "4B4BFE6BF5135B8D"
++          ]
++        },
++        "status": {
++          "code": 200,
++          "message": "OK"
++        },
++        "url": "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D"
++      }
++    }
++  ],
++  "recorded_with": "betamax/0.4.1"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/stream_response_without_content_length_to_file.json b/tests/cassettes/stream_response_without_content_length_to_file.json
+index f2bf898..75944d0 100644
+--- a/tests/cassettes/stream_response_without_content_length_to_file.json
++++ b/tests/cassettes/stream_response_without_content_length_to_file.json
+@@ -1 +1,174 @@
+-{"recorded_with": "betamax/0.4.1", "http_interactions": [{"request": {"uri": "https://api.github.com/repos/sigmavirus24/github3.py/releases/assets/37944", "method": "GET", "headers": {"Accept": ["application/octet-stream"], "Accept-Encoding": ["gzip, deflate"], "Connection": ["keep-alive"], "User-Agent": ["python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"]}, "body": {"base64_string": "", "encoding": "utf-8"}}, "response": {"status": {"code": 302, "message": "Found"}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/releases/assets/37944", "headers": {"access-control-allow-credentials": ["true"], "x-xss-protection": ["1; mode=block"], "vary": ["Accept-Encoding"], "location": ["https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D"], "x-content-type-options": ["nosniff"], "content-security-policy": ["default-src 'none'"], "x-ratelimit-limit": ["60"], "status": ["302 Found"], "x-frame-options": ["deny"], "x-served-by": ["8dd185e423974a7e13abbbe6e060031e"], "server": ["GitHub.com"], "access-control-allow-origin": ["*"], "strict-transport-security": ["max-age=31536000; includeSubdomains; preload"], "x-github-request-id": ["48A0C951:54E7:48B5311:55019319"], "date": ["Thu, 12 Mar 2015 13:22:33 GMT"], "access-control-expose-headers": ["ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"], "x-ratelimit-remaining": ["58"], "content-type": ["text/html;charset=utf-8"], "x-ratelimit-reset": ["1426170017"]}, "body": {"base64_string": "", "encoding": "utf-8"}}, "recorded_at": "2015-03-12T13:22:33"}, {"request": {"uri": "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D", "method": "GET", "headers": {"Accept": ["application/octet-stream"], "Accept-Encoding": ["gzip, deflate"], "Connection": ["keep-alive"], "User-Agent": ["python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"]}, "body": {"base64_string": "", "encoding": "utf-8"}}, "response": {"status": {"code": 200, "message": "OK"}, "url": "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D", "headers": {"accept-ranges": ["bytes"], "content-disposition": ["attachment; filename=github3.py-0.7.1-py2.py3-none-any.whl"], "x-amz-id-2": ["9+TuHhbd7y2BUJaEV+mFpaDgjl1g9uSAPiZxwc6b2cYydhlhZSyKSuB7PQyiPBPD"], "x-amz-meta-surrogate-key": ["repository-3710711 user-240830"], "x-amz-request-id": ["4B4BFE6BF5135B8D"], "last-modified": ["Fri, 15 Nov 2013 22:35:23 GMT"], "x-amz-meta-surrogate-control": ["max-age=31557600"], "etag": ["\"6550854f02f7bf10b944070b84f38313\""], "date": ["Thu, 12 Mar 2015 13:22:35 GMT"], "cache-control": ["max-age=31557600"], "content-type": ["application/octet-stream"], "server": ["AmazonS3"]}, "body": {"base64_string": "", "encoding": null}}, "recorded_at": "2015-03-12T13:22:34"}]}
++{
++  "http_interactions": [
++    {
++      "recorded_at": "2015-03-12T13:22:33",
++      "request": {
++        "body": {
++          "base64_string": "",
++          "encoding": "utf-8"
++        },
++        "headers": {
++          "Accept": [
++            "application/octet-stream"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "User-Agent": [
++            "python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"
++          ]
++        },
++        "method": "GET",
++        "uri": "https://api.github.com/repos/sigmavirus24/github3.py/releases/assets/37944"
++      },
++      "response": {
++        "body": {
++          "base64_string": "",
++          "encoding": "utf-8"
++        },
++        "headers": {
++          "access-control-allow-credentials": [
++            "true"
++          ],
++          "access-control-allow-origin": [
++            "*"
++          ],
++          "access-control-expose-headers": [
++            "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"
++          ],
++          "content-security-policy": [
++            "default-src 'none'"
++          ],
++          "content-type": [
++            "text/html;charset=utf-8"
++          ],
++          "date": [
++            "Thu, 12 Mar 2015 13:22:33 GMT"
++          ],
++          "location": [
++            "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D"
++          ],
++          "server": [
++            "GitHub.com"
++          ],
++          "status": [
++            "302 Found"
++          ],
++          "strict-transport-security": [
++            "max-age=31536000; includeSubdomains; preload"
++          ],
++          "vary": [
++            "Accept-Encoding"
++          ],
++          "x-content-type-options": [
++            "nosniff"
++          ],
++          "x-frame-options": [
++            "deny"
++          ],
++          "x-github-request-id": [
++            "48A0C951:54E7:48B5311:55019319"
++          ],
++          "x-ratelimit-limit": [
++            "60"
++          ],
++          "x-ratelimit-remaining": [
++            "58"
++          ],
++          "x-ratelimit-reset": [
++            "1426170017"
++          ],
++          "x-served-by": [
++            "8dd185e423974a7e13abbbe6e060031e"
++          ],
++          "x-xss-protection": [
++            "1; mode=block"
++          ]
++        },
++        "status": {
++          "code": 302,
++          "message": "Found"
++        },
++        "url": "https://api.github.com/repos/sigmavirus24/github3.py/releases/assets/37944"
++      }
++    },
++    {
++      "recorded_at": "2015-03-12T13:22:34",
++      "request": {
++        "body": {
++          "base64_string": "",
++          "encoding": "utf-8"
++        },
++        "headers": {
++          "Accept": [
++            "application/octet-stream"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "User-Agent": [
++            "python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"
++          ]
++        },
++        "method": "GET",
++        "uri": "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D"
++      },
++      "response": {
++        "body": {
++          "base64_string": "",
++          "encoding": null
++        },
++        "headers": {
++          "accept-ranges": [
++            "bytes"
++          ],
++          "cache-control": [
++            "max-age=31557600"
++          ],
++          "content-disposition": [
++            "attachment; filename=github3.py-0.7.1-py2.py3-none-any.whl"
++          ],
++          "content-type": [
++            "application/octet-stream"
++          ],
++          "date": [
++            "Thu, 12 Mar 2015 13:22:35 GMT"
++          ],
++          "etag": [
++            "\"6550854f02f7bf10b944070b84f38313\""
++          ],
++          "last-modified": [
++            "Fri, 15 Nov 2013 22:35:23 GMT"
++          ],
++          "server": [
++            "AmazonS3"
++          ],
++          "x-amz-id-2": [
++            "9+TuHhbd7y2BUJaEV+mFpaDgjl1g9uSAPiZxwc6b2cYydhlhZSyKSuB7PQyiPBPD"
++          ],
++          "x-amz-meta-surrogate-control": [
++            "max-age=31557600"
++          ],
++          "x-amz-meta-surrogate-key": [
++            "repository-3710711 user-240830"
++          ],
++          "x-amz-request-id": [
++            "4B4BFE6BF5135B8D"
++          ]
++        },
++        "status": {
++          "code": 200,
++          "message": "OK"
++        },
++        "url": "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D"
++      }
++    }
++  ],
++  "recorded_with": "betamax/0.4.1"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/test_x509_adapter_der.json b/tests/cassettes/test_x509_adapter_der.json
+index 0f4072a..8fd5c0c 100644
+--- a/tests/cassettes/test_x509_adapter_der.json
++++ b/tests/cassettes/test_x509_adapter_der.json
+@@ -1 +1,68 @@
+-{"http_interactions": [{"request": {"body": {"encoding": "utf-8", "string": ""}, "headers": {"User-Agent": ["python-requests/2.21.0"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"], "Connection": ["keep-alive"]}, "method": "GET", "uri": "https://pkiprojecttest01.dev.labs.internal/"}, "response": {"body": {"encoding": "ISO-8859-1", "base64_string": "H4sIAAAAAAAAA7NRdPF3DokMcFXIKMnNseOygVJJ+SmVdlxArqFdSGpxiY0+kAHkFoB5CsGlycmpxcU2+gUgQX2IYqAasBEAYvDs5FMAAAA=", "string": ""}, "headers": {"Server": ["nginx/1.10.3 (Ubuntu)"], "Date": ["Thu, 20 Dec 2018 20:02:30 GMT"], "Content-Type": ["text/html"], "Last-Modified": ["Mon, 19 Nov 2018 20:48:30 GMT"], "Transfer-Encoding": ["chunked"], "Connection": ["keep-alive"], "ETag": ["W/\"5bf3219e-53\""], "Content-Encoding": ["gzip"]}, "status": {"code": 200, "message": "OK"}, "url": "https://pkiprojecttest01.dev.labs.internal/"}, "recorded_at": "2018-12-20T20:02:30"}], "recorded_with": "betamax/0.8.1"}
+\ No newline at end of file
++{
++  "http_interactions": [
++    {
++      "recorded_at": "2018-12-20T20:02:30",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "User-Agent": [
++            "python-requests/2.21.0"
++          ]
++        },
++        "method": "GET",
++        "uri": "https://pkiprojecttest01.dev.labs.internal/"
++      },
++      "response": {
++        "body": {
++          "base64_string": "H4sIAAAAAAAAA7NRdPF3DokMcFXIKMnNseOygVJJ+SmVdlxArqFdSGpxiY0+kAHkFoB5CsGlycmpxcU2+gUgQX2IYqAasBEAYvDs5FMAAAA=",
++          "encoding": "ISO-8859-1",
++          "string": ""
++        },
++        "headers": {
++          "Connection": [
++            "keep-alive"
++          ],
++          "Content-Encoding": [
++            "gzip"
++          ],
++          "Content-Type": [
++            "text/html"
++          ],
++          "Date": [
++            "Thu, 20 Dec 2018 20:02:30 GMT"
++          ],
++          "ETag": [
++            "W/\"5bf3219e-53\""
++          ],
++          "Last-Modified": [
++            "Mon, 19 Nov 2018 20:48:30 GMT"
++          ],
++          "Server": [
++            "nginx/1.10.3 (Ubuntu)"
++          ],
++          "Transfer-Encoding": [
++            "chunked"
++          ]
++        },
++        "status": {
++          "code": 200,
++          "message": "OK"
++        },
++        "url": "https://pkiprojecttest01.dev.labs.internal/"
++      }
++    }
++  ],
++  "recorded_with": "betamax/0.8.1"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/test_x509_adapter_pem.json b/tests/cassettes/test_x509_adapter_pem.json
+index 0f4072a..8fd5c0c 100644
+--- a/tests/cassettes/test_x509_adapter_pem.json
++++ b/tests/cassettes/test_x509_adapter_pem.json
+@@ -1 +1,68 @@
+-{"http_interactions": [{"request": {"body": {"encoding": "utf-8", "string": ""}, "headers": {"User-Agent": ["python-requests/2.21.0"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"], "Connection": ["keep-alive"]}, "method": "GET", "uri": "https://pkiprojecttest01.dev.labs.internal/"}, "response": {"body": {"encoding": "ISO-8859-1", "base64_string": "H4sIAAAAAAAAA7NRdPF3DokMcFXIKMnNseOygVJJ+SmVdlxArqFdSGpxiY0+kAHkFoB5CsGlycmpxcU2+gUgQX2IYqAasBEAYvDs5FMAAAA=", "string": ""}, "headers": {"Server": ["nginx/1.10.3 (Ubuntu)"], "Date": ["Thu, 20 Dec 2018 20:02:30 GMT"], "Content-Type": ["text/html"], "Last-Modified": ["Mon, 19 Nov 2018 20:48:30 GMT"], "Transfer-Encoding": ["chunked"], "Connection": ["keep-alive"], "ETag": ["W/\"5bf3219e-53\""], "Content-Encoding": ["gzip"]}, "status": {"code": 200, "message": "OK"}, "url": "https://pkiprojecttest01.dev.labs.internal/"}, "recorded_at": "2018-12-20T20:02:30"}], "recorded_with": "betamax/0.8.1"}
+\ No newline at end of file
++{
++  "http_interactions": [
++    {
++      "recorded_at": "2018-12-20T20:02:30",
++      "request": {
++        "body": {
++          "encoding": "utf-8",
++          "string": ""
++        },
++        "headers": {
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "User-Agent": [
++            "python-requests/2.21.0"
++          ]
++        },
++        "method": "GET",
++        "uri": "https://pkiprojecttest01.dev.labs.internal/"
++      },
++      "response": {
++        "body": {
++          "base64_string": "H4sIAAAAAAAAA7NRdPF3DokMcFXIKMnNseOygVJJ+SmVdlxArqFdSGpxiY0+kAHkFoB5CsGlycmpxcU2+gUgQX2IYqAasBEAYvDs5FMAAAA=",
++          "encoding": "ISO-8859-1",
++          "string": ""
++        },
++        "headers": {
++          "Connection": [
++            "keep-alive"
++          ],
++          "Content-Encoding": [
++            "gzip"
++          ],
++          "Content-Type": [
++            "text/html"
++          ],
++          "Date": [
++            "Thu, 20 Dec 2018 20:02:30 GMT"
++          ],
++          "ETag": [
++            "W/\"5bf3219e-53\""
++          ],
++          "Last-Modified": [
++            "Mon, 19 Nov 2018 20:48:30 GMT"
++          ],
++          "Server": [
++            "nginx/1.10.3 (Ubuntu)"
++          ],
++          "Transfer-Encoding": [
++            "chunked"
++          ]
++        },
++        "status": {
++          "code": 200,
++          "message": "OK"
++        },
++        "url": "https://pkiprojecttest01.dev.labs.internal/"
++      }
++    }
++  ],
++  "recorded_with": "betamax/0.8.1"
++}
+\ No newline at end of file
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-toolbelt/720240501dca0b4eacc3295665d7ced8719e11d2.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-toolbelt/720240501dca0b4eacc3295665d7ced8719e11d2.patch
new file mode 100644
index 0000000..0439b09
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-toolbelt/720240501dca0b4eacc3295665d7ced8719e11d2.patch
@@ -0,0 +1,546 @@
+From 720240501dca0b4eacc3295665d7ced8719e11d2 Mon Sep 17 00:00:00 2001
+From: Quentin Pradet <quentin.pradet@gmail.com>
+Date: Fri, 28 Apr 2023 23:28:43 +0400
+Subject: [PATCH] Test urllib3 2.0
+
+Upstream-Status: Submitted [https://github.com/requests/toolbelt/pull/356]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../redirect_request_for_dump_all.json        | 302 +++++++++++++-----
+ tests/cassettes/simple_get_request.json       |  16 +-
+ tox.ini                                       |  11 +-
+ 3 files changed, 239 insertions(+), 90 deletions(-)
+
+diff --git a/tests/cassettes/redirect_request_for_dump_all.json b/tests/cassettes/redirect_request_for_dump_all.json
+index f713ff3..dc8fefe 100644
+--- a/tests/cassettes/redirect_request_for_dump_all.json
++++ b/tests/cassettes/redirect_request_for_dump_all.json
+@@ -1,17 +1,25 @@
+ {
+   "http_interactions": [
+     {
+-      "recorded_at": "2015-11-14T22:53:20",
++      "recorded_at": "2023-04-28T18:04:50",
+       "request": {
+         "body": {
+           "encoding": "utf-8",
+           "string": ""
+         },
+         "headers": {
+-          "Accept": "*/*",
+-          "Accept-Encoding": "gzip, deflate",
+-          "Connection": "keep-alive",
+-          "User-Agent": "python-requests/2.8.1"
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "User-Agent": [
++            "python-requests/2.28.1"
++          ]
+         },
+         "method": "GET",
+         "uri": "https://httpbin.org/redirect/5"
+@@ -22,14 +30,30 @@
+           "string": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title>Redirecting...</title>\n<h1>Redirecting...</h1>\n<p>You should be redirected automatically to target URL: <a href=\"/relative-redirect/4\">/relative-redirect/4</a>.  If not click the link."
+         },
+         "headers": {
+-          "Access-Control-Allow-Credentials": "true",
+-          "Access-Control-Allow-Origin": "*",
+-          "Connection": "keep-alive",
+-          "Content-Length": "247",
+-          "Content-Type": "text/html; charset=utf-8",
+-          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
+-          "Location": "/relative-redirect/4",
+-          "Server": "nginx"
++          "Access-Control-Allow-Credentials": [
++            "true"
++          ],
++          "Access-Control-Allow-Origin": [
++            "*"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "Content-Length": [
++            "247"
++          ],
++          "Content-Type": [
++            "text/html; charset=utf-8"
++          ],
++          "Date": [
++            "Fri, 28 Apr 2023 18:04:50 GMT"
++          ],
++          "Location": [
++            "/relative-redirect/4"
++          ],
++          "Server": [
++            "gunicorn/19.9.0"
++          ]
+         },
+         "status": {
+           "code": 302,
+@@ -39,17 +63,25 @@
+       }
+     },
+     {
+-      "recorded_at": "2015-11-14T22:53:20",
++      "recorded_at": "2023-04-28T18:04:52",
+       "request": {
+         "body": {
+           "encoding": "utf-8",
+           "string": ""
+         },
+         "headers": {
+-          "Accept": "*/*",
+-          "Accept-Encoding": "gzip, deflate",
+-          "Connection": "keep-alive",
+-          "User-Agent": "python-requests/2.8.1"
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "User-Agent": [
++            "python-requests/2.28.1"
++          ]
+         },
+         "method": "GET",
+         "uri": "https://httpbin.org/relative-redirect/4"
+@@ -60,14 +92,30 @@
+           "string": ""
+         },
+         "headers": {
+-          "Access-Control-Allow-Credentials": "true",
+-          "Access-Control-Allow-Origin": "*",
+-          "Connection": "keep-alive",
+-          "Content-Length": "0",
+-          "Content-Type": "text/html; charset=utf-8",
+-          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
+-          "Location": "/relative-redirect/3",
+-          "Server": "nginx"
++          "Access-Control-Allow-Credentials": [
++            "true"
++          ],
++          "Access-Control-Allow-Origin": [
++            "*"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "Content-Length": [
++            "0"
++          ],
++          "Content-Type": [
++            "text/html; charset=utf-8"
++          ],
++          "Date": [
++            "Fri, 28 Apr 2023 18:04:52 GMT"
++          ],
++          "Location": [
++            "/relative-redirect/3"
++          ],
++          "Server": [
++            "gunicorn/19.9.0"
++          ]
+         },
+         "status": {
+           "code": 302,
+@@ -77,17 +125,25 @@
+       }
+     },
+     {
+-      "recorded_at": "2015-11-14T22:53:20",
++      "recorded_at": "2023-04-28T18:04:53",
+       "request": {
+         "body": {
+           "encoding": "utf-8",
+           "string": ""
+         },
+         "headers": {
+-          "Accept": "*/*",
+-          "Accept-Encoding": "gzip, deflate",
+-          "Connection": "keep-alive",
+-          "User-Agent": "python-requests/2.8.1"
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "User-Agent": [
++            "python-requests/2.28.1"
++          ]
+         },
+         "method": "GET",
+         "uri": "https://httpbin.org/relative-redirect/3"
+@@ -98,14 +154,30 @@
+           "string": ""
+         },
+         "headers": {
+-          "Access-Control-Allow-Credentials": "true",
+-          "Access-Control-Allow-Origin": "*",
+-          "Connection": "keep-alive",
+-          "Content-Length": "0",
+-          "Content-Type": "text/html; charset=utf-8",
+-          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
+-          "Location": "/relative-redirect/2",
+-          "Server": "nginx"
++          "Access-Control-Allow-Credentials": [
++            "true"
++          ],
++          "Access-Control-Allow-Origin": [
++            "*"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "Content-Length": [
++            "0"
++          ],
++          "Content-Type": [
++            "text/html; charset=utf-8"
++          ],
++          "Date": [
++            "Fri, 28 Apr 2023 18:04:53 GMT"
++          ],
++          "Location": [
++            "/relative-redirect/2"
++          ],
++          "Server": [
++            "gunicorn/19.9.0"
++          ]
+         },
+         "status": {
+           "code": 302,
+@@ -115,17 +187,25 @@
+       }
+     },
+     {
+-      "recorded_at": "2015-11-14T22:53:20",
++      "recorded_at": "2023-04-28T18:04:55",
+       "request": {
+         "body": {
+           "encoding": "utf-8",
+           "string": ""
+         },
+         "headers": {
+-          "Accept": "*/*",
+-          "Accept-Encoding": "gzip, deflate",
+-          "Connection": "keep-alive",
+-          "User-Agent": "python-requests/2.8.1"
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "User-Agent": [
++            "python-requests/2.28.1"
++          ]
+         },
+         "method": "GET",
+         "uri": "https://httpbin.org/relative-redirect/2"
+@@ -136,14 +216,30 @@
+           "string": ""
+         },
+         "headers": {
+-          "Access-Control-Allow-Credentials": "true",
+-          "Access-Control-Allow-Origin": "*",
+-          "Connection": "keep-alive",
+-          "Content-Length": "0",
+-          "Content-Type": "text/html; charset=utf-8",
+-          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
+-          "Location": "/relative-redirect/1",
+-          "Server": "nginx"
++          "Access-Control-Allow-Credentials": [
++            "true"
++          ],
++          "Access-Control-Allow-Origin": [
++            "*"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "Content-Length": [
++            "0"
++          ],
++          "Content-Type": [
++            "text/html; charset=utf-8"
++          ],
++          "Date": [
++            "Fri, 28 Apr 2023 18:04:55 GMT"
++          ],
++          "Location": [
++            "/relative-redirect/1"
++          ],
++          "Server": [
++            "gunicorn/19.9.0"
++          ]
+         },
+         "status": {
+           "code": 302,
+@@ -153,17 +249,25 @@
+       }
+     },
+     {
+-      "recorded_at": "2015-11-14T22:53:20",
++      "recorded_at": "2023-04-28T18:04:56",
+       "request": {
+         "body": {
+           "encoding": "utf-8",
+           "string": ""
+         },
+         "headers": {
+-          "Accept": "*/*",
+-          "Accept-Encoding": "gzip, deflate",
+-          "Connection": "keep-alive",
+-          "User-Agent": "python-requests/2.8.1"
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "User-Agent": [
++            "python-requests/2.28.1"
++          ]
+         },
+         "method": "GET",
+         "uri": "https://httpbin.org/relative-redirect/1"
+@@ -174,14 +278,30 @@
+           "string": ""
+         },
+         "headers": {
+-          "Access-Control-Allow-Credentials": "true",
+-          "Access-Control-Allow-Origin": "*",
+-          "Connection": "keep-alive",
+-          "Content-Length": "0",
+-          "Content-Type": "text/html; charset=utf-8",
+-          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
+-          "Location": "/get",
+-          "Server": "nginx"
++          "Access-Control-Allow-Credentials": [
++            "true"
++          ],
++          "Access-Control-Allow-Origin": [
++            "*"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "Content-Length": [
++            "0"
++          ],
++          "Content-Type": [
++            "text/html; charset=utf-8"
++          ],
++          "Date": [
++            "Fri, 28 Apr 2023 18:04:56 GMT"
++          ],
++          "Location": [
++            "/get"
++          ],
++          "Server": [
++            "gunicorn/19.9.0"
++          ]
+         },
+         "status": {
+           "code": 302,
+@@ -191,34 +311,56 @@
+       }
+     },
+     {
+-      "recorded_at": "2015-11-14T22:53:20",
++      "recorded_at": "2023-04-28T18:04:58",
+       "request": {
+         "body": {
+           "encoding": "utf-8",
+           "string": ""
+         },
+         "headers": {
+-          "Accept": "*/*",
+-          "Accept-Encoding": "gzip, deflate",
+-          "Connection": "keep-alive",
+-          "User-Agent": "python-requests/2.8.1"
++          "Accept": [
++            "*/*"
++          ],
++          "Accept-Encoding": [
++            "gzip, deflate"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "User-Agent": [
++            "python-requests/2.28.1"
++          ]
+         },
+         "method": "GET",
+         "uri": "https://httpbin.org/get"
+       },
+       "response": {
+         "body": {
+-          "encoding": null,
+-          "string": "{\n  \"args\": {}, \n  \"headers\": {\n    \"Accept\": \"*/*\", \n    \"Accept-Encoding\": \"gzip, deflate\", \n    \"Host\": \"httpbin.org\", \n    \"User-Agent\": \"python-requests/2.8.1\"\n  }, \n  \"origin\": \"<IPADDR>\", \n  \"url\": \"https://httpbin.org/get\"\n}\n"
++          "encoding": "utf-8",
++          "string": "{\n  \"args\": {}, \n  \"headers\": {\n    \"Accept\": \"*/*\", \n    \"Accept-Encoding\": \"gzip, deflate\", \n    \"Host\": \"httpbin.org\", \n    \"User-Agent\": \"python-requests/2.28.1\", \n    \"X-Amzn-Trace-Id\": \"Root=1-644c0ac8-450daa2735c478ca518c5c8d\"\n  }, \n  \"origin\": \"83.198.52.66\", \n  \"url\": \"https://httpbin.org/get\"\n}\n"
+         },
+         "headers": {
+-          "Access-Control-Allow-Credentials": "true",
+-          "Access-Control-Allow-Origin": "*",
+-          "Connection": "keep-alive",
+-          "Content-Length": "239",
+-          "Content-Type": "application/json",
+-          "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
+-          "Server": "nginx"
++          "Access-Control-Allow-Credentials": [
++            "true"
++          ],
++          "Access-Control-Allow-Origin": [
++            "*"
++          ],
++          "Connection": [
++            "keep-alive"
++          ],
++          "Content-Length": [
++            "306"
++          ],
++          "Content-Type": [
++            "application/json"
++          ],
++          "Date": [
++            "Fri, 28 Apr 2023 18:04:58 GMT"
++          ],
++          "Server": [
++            "gunicorn/19.9.0"
++          ]
+         },
+         "status": {
+           "code": 200,
+@@ -228,5 +370,5 @@
+       }
+     }
+   ],
+-  "recorded_with": "betamax/0.5.1"
++  "recorded_with": "betamax/0.8.2"
+ }
+\ No newline at end of file
+diff --git a/tests/cassettes/simple_get_request.json b/tests/cassettes/simple_get_request.json
+index 68378cd..a97bcf1 100644
+--- a/tests/cassettes/simple_get_request.json
++++ b/tests/cassettes/simple_get_request.json
+@@ -1,7 +1,7 @@
+ {
+   "http_interactions": [
+     {
+-      "recorded_at": "2015-11-14T22:33:32",
++      "recorded_at": "2023-04-28T18:04:48",
+       "request": {
+         "body": {
+           "encoding": "utf-8",
+@@ -18,7 +18,7 @@
+             "keep-alive"
+           ],
+           "User-Agent": [
+-            "python-requests/2.8.1"
++            "python-requests/2.28.1"
+           ]
+         },
+         "method": "GET",
+@@ -26,8 +26,8 @@
+       },
+       "response": {
+         "body": {
+-          "encoding": null,
+-          "string": "{\n  \"args\": {}, \n  \"headers\": {\n    \"Accept\": \"*/*\", \n    \"Accept-Encoding\": \"gzip, deflate\", \n    \"Host\": \"httpbin.org\", \n    \"User-Agent\": \"python-requests/2.8.1\"\n  }, \n  \"origin\": \"<IPADDR>\", \n  \"url\": \"https://httpbin.org/get\"\n}\n"
++          "encoding": "utf-8",
++          "string": "{\n  \"args\": {}, \n  \"headers\": {\n    \"Accept\": \"*/*\", \n    \"Accept-Encoding\": \"gzip, deflate\", \n    \"Host\": \"httpbin.org\", \n    \"User-Agent\": \"python-requests/2.28.1\", \n    \"X-Amzn-Trace-Id\": \"Root=1-644c0ac0-4986bed42b965a007af785e1\"\n  }, \n  \"origin\": \"83.198.52.66\", \n  \"url\": \"https://httpbin.org/get\"\n}\n"
+         },
+         "headers": {
+           "Access-Control-Allow-Credentials": [
+@@ -40,16 +40,16 @@
+             "keep-alive"
+           ],
+           "Content-Length": [
+-            "239"
++            "306"
+           ],
+           "Content-Type": [
+             "application/json"
+           ],
+           "Date": [
+-            "Sat, 14 Nov 2015 22:33:30 GMT"
++            "Fri, 28 Apr 2023 18:04:48 GMT"
+           ],
+           "Server": [
+-            "nginx"
++            "gunicorn/19.9.0"
+           ]
+         },
+         "status": {
+@@ -60,5 +60,5 @@
+       }
+     }
+   ],
+-  "recorded_with": "betamax/0.5.1"
++  "recorded_with": "betamax/0.8.2"
+ }
+\ No newline at end of file
+diff --git a/tox.ini b/tox.ini
+index 64b6ab3..e27c275 100644
+--- a/tox.ini
++++ b/tox.ini
+@@ -1,5 +1,5 @@
+ [tox]
+-envlist = py{27,37,38,39,310,311,py,py3},py{27,37}-flake8,noopenssl,docstrings
++envlist = py{27,37,38,39,310,311,py,py3},py{27,37}-flake8,noopenssl,docstrings,urllib3-2.0
+ 
+ [gh-actions]
+ python =
+@@ -8,12 +8,13 @@ python =
+     3.8: py38
+     3.9: py39
+     3.10: py310
+-    3.11: py311
++    3.11: py311, urllib3-2.0
+ 
+ [testenv]
+ pip_pre = False
+ deps =
+     requests{env:REQUESTS_VERSION:>=2.0.1,<3.0.0}
++    urllib3<2.0.0
+     pytest
+     mock;python_version<"3.3"
+     pyopenssl
+@@ -34,6 +35,12 @@ deps =
+ commands =
+     pytest -W error::DeprecationWarning {posargs}
+ 
++[testenv:urllib3-2.0]
++basepython = python3.11
++commands =
++    pip install -U urllib3>=2.0.0
++    pytest -W error::DeprecationWarning {posargs}
++
+ [testenv:py27-flake8]
+ basepython = python2.7
+ deps =
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-toolbelt_1.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-toolbelt_1.0.0.bb
index 6e5491e..466e01d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-toolbelt_1.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-toolbelt_1.0.0.bb
@@ -6,6 +6,8 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=6f14302a4b4099009ab38b4dde5f1075"
 
 SRC_URI = "file://run-ptest \
+	   file://090856f4159c40a2927fb88546419f2e1697ad5f.patch \
+	   file://720240501dca0b4eacc3295665d7ced8719e11d2.patch \
           "
 
 SRC_URI[sha256sum] = "7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.25.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.26.0.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.25.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.26.0.bb
index 51f63af..697f102 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.25.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sentry-sdk_1.26.0.bb
@@ -15,7 +15,7 @@
 	${PYTHON_PN}-datetime \
 "
 
-SRC_URI[sha256sum] = "aa796423eb6a2f4a8cd7a5b02ba6558cb10aab4ccdc0537f63a47b038c520c38"
+SRC_URI[sha256sum] = "760e4fb6d01c994110507133e08ecd4bdf4d75ee4be77f296a3579796cf73134"
 
 PYPI_PACKAGE = "sentry-sdk"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.15.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.19.bb
similarity index 87%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.15.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.19.bb
index e6f0d64..a2cf00d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.15.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.19.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b707d50badb798e1d897f2c8f649382d"
 
-SRC_URI[sha256sum] = "2e940a8659ef870ae10e0d9e2a6d5aaddf0ff6e91f7d0d7732afc9e8c4be9bbc"
+SRC_URI[sha256sum] = "77a14fa20264af73ddcdb1e2b9c5a829b8cc6b8304d0f093271980e36c200a3f"
 
 PYPI_PACKAGE = "SQLAlchemy"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.6.3.bb
new file mode 100644
index 0000000..ed8fc38
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.6.3.bb
@@ -0,0 +1,34 @@
+# SPDX-License-Identifier: MIT
+# Copyright (C) 2023 iris-GmbH infrared & intelligent sensors
+
+SUMMARY = "Automate and standardize testing in Python. It is part of a larger vision of easing the packaging, testing and release process of Python software (alongside pytest and devpi)."
+HOMEPAGE = "http://tox.readthedocs.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=11610a9d8fd95649cf8159be12b98cb7"
+
+SRC_URI[sha256sum] = "9e2c5091a117d03b583c57c4c40aecd068099c17d40520e7b165e85c19334534"
+
+BBCLASSEXTEND = "native nativesdk"
+inherit pypi python_hatchling
+
+DEPENDS += "\
+    ${PYTHON_PN}-hatch-vcs-native \
+"
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-cachetools \
+    ${PYTHON_PN}-chardet \
+    ${PYTHON_PN}-colorama \
+    ${PYTHON_PN}-filelock \
+    ${PYTHON_PN}-packaging \
+    ${PYTHON_PN}-platformdirs \
+    ${PYTHON_PN}-pluggy \
+    ${PYTHON_PN}-pyproject-api \
+    ${PYTHON_PN}-tomli \
+    ${PYTHON_PN}-virtualenv \
+"
+
+# Install all built-in python3 modules, as the software tested with tox might
+# depend on it. Tox will attempt to install all required dependencies
+# in a virtualenv using pip, but this obviously does not include the built-in modules.
+RDEPENDS:${PN} += "${PYTHON_PN}-modules"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-virtualenv_20.23.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-virtualenv_20.23.1.bb
new file mode 100644
index 0000000..53771e2
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-virtualenv_20.23.1.bb
@@ -0,0 +1,22 @@
+# SPDX-License-Identifier: MIT
+# Copyright (C) 2023 iris-GmbH infrared & intelligent sensors
+
+SUMMARY = "A tool for creating isolated virtual python environments."
+HOMEPAGE = "https://github.com/pypa/virtualenv"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0ce089158cf60a8ab6abb452b6405538"
+
+SRC_URI[sha256sum] = "8ff19a38c1021c742148edc4f81cb43d7f8c6816d2ede2ab72af5b84c749ade1"
+
+BBCLASSEXTEND = "native nativesdk"
+inherit pypi python_hatchling
+
+DEPENDS += "\
+    ${PYTHON_PN}-hatch-vcs-native \
+"
+
+RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-distlib \
+    ${PYTHON_PN}-filelock \
+    ${PYTHON_PN}-platformdirs \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.68.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.70.0.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.68.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.70.0.bb
index 93eebf1..63be3fe 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.68.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.70.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "LGPL-2.1-only"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=6517bdc8f2416f27ab725d4702f7aac3"
 
-SRC_URI[sha256sum] = "e5c05d4fe8d6ef2133af930a17b18e172f54650294b780f93bb6a42df3af1e0d"
+SRC_URI[sha256sum] = "f95ef3643612b1a874cc3b4216d9cb895a0337bf602901f760c3c6027a38d64a"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
index 6992a84..1ea32f7 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
+++ b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx.inc
@@ -45,6 +45,7 @@
 PACKAGECONFIG[http-auth-request] = "--with-http_auth_request_module,,"
 PACKAGECONFIG[ipv6] = "--with-ipv6,,"
 PACKAGECONFIG[webdav] = "--with-http_dav_module,,"
+PACKAGECONFIG[stream] = "--with-stream,,"
 
 do_configure () {
     if [ "${SITEINFO_BITS}" = "64" ]; then
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.23.4.bb b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.23.4.bb
deleted file mode 100644
index 422b6f3..0000000
--- a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.23.4.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require nginx.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=175abb631c799f54573dc481454c8632"
-
-SRC_URI[sha256sum] = "d43300e36bb249a7e6edc60bca1b0fc372a0bafce2f346d76acfb677a8790fc0"
-
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.24.0.bb b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.24.0.bb
new file mode 100644
index 0000000..2e865e4
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.24.0.bb
@@ -0,0 +1,6 @@
+require nginx.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=175abb631c799f54573dc481454c8632"
+
+SRC_URI[sha256sum] = "77a2541637b92a621e3ee76776c8b7b40cf6d707e69ba53a940283e30ff2f55d"
+
diff --git a/meta-phosphor/conf/distro/include/phosphor-defaults.inc b/meta-phosphor/conf/distro/include/phosphor-defaults.inc
index 91a088d..eb977ad 100644
--- a/meta-phosphor/conf/distro/include/phosphor-defaults.inc
+++ b/meta-phosphor/conf/distro/include/phosphor-defaults.inc
@@ -147,9 +147,6 @@
 # Set security headers on builds
 require conf/distro/include/security_flags.inc
 
-# Enable 64-bit time_t
-require conf/distro/include/time64.inc
-
 # obmc-libobmc-intf doesn't compile with security flags enabled
 SECURITY_CFLAGS:pn-obmc-libobmc-intf = ""
 
diff --git a/poky/bitbake/README b/poky/bitbake/README
index a5f5c1b..78610e6 100644
--- a/poky/bitbake/README
+++ b/poky/bitbake/README
@@ -45,8 +45,7 @@
 recommended before submitting patches, particularly to the fetcher and datastore. We also
 appreciate new test cases and may require them for more obscure issues.
 
-To run the tests "zstd" and "git" must be installed. Git must be correctly configured, in
-particular the user.email and user.name values must be set.
+To run the tests "zstd" and "git" must be installed.
 
 The assumption is made that this testsuite is run from an initialized OpenEmbedded build
 environment (i.e. `source oe-init-build-env` is used). If this is not the case, run the
@@ -54,3 +53,8 @@
 
     export PATH=$(pwd)/bin:$PATH
     bin/bitbake-selftest
+
+The testsuite can alternatively be executed using pytest, e.g. obtained from PyPI (in this
+case, the PATH is configured automatically):
+
+    pytest
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py
index 0a21f1c..11c9fa2 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -1666,6 +1666,7 @@
             self.updateCacheSync()
 
         if self.state != state.parsing and not self.parsecache_valid:
+            bb.server.process.serverlog("Parsing started")
             self.setupParserWatcher()
 
             bb.parse.siggen.reset(self.data)
diff --git a/poky/bitbake/lib/bb/fetch2/npm.py b/poky/bitbake/lib/bb/fetch2/npm.py
index e6d0598..f83485a 100644
--- a/poky/bitbake/lib/bb/fetch2/npm.py
+++ b/poky/bitbake/lib/bb/fetch2/npm.py
@@ -44,9 +44,12 @@
     """Convert the npm package name to remove unsupported character"""
     # Scoped package names (with the @) use the same naming convention
     # as the 'npm pack' command.
-    if package.startswith("@"):
-        return re.sub("/", "-", package[1:])
-    return package
+    name = re.sub("/", "-", package)
+    name = name.lower()
+    name = re.sub(r"[^\-a-z0-9]", "", name)
+    name = name.strip("-")
+    return name
+
 
 def npm_filename(package, version):
     """Get the filename of a npm package"""
diff --git a/poky/bitbake/lib/bb/fetch2/npmsw.py b/poky/bitbake/lib/bb/fetch2/npmsw.py
index cc81100..971ccc9 100644
--- a/poky/bitbake/lib/bb/fetch2/npmsw.py
+++ b/poky/bitbake/lib/bb/fetch2/npmsw.py
@@ -41,8 +41,9 @@
         with:
             name = the package name (string)
             params = the package parameters (dictionary)
-            deptree = the package dependency tree (array of strings)
+            destdir = the destination of the package (string)
     """
+    # For handling old style dependencies entries in shinkwrap files
     def _walk_deps(deps, deptree):
         for name in deps:
             subtree = [*deptree, name]
@@ -52,9 +53,22 @@
                     continue
                 elif deps[name].get("bundled", False):
                     continue
-                callback(name, deps[name], subtree)
+                destsubdirs = [os.path.join("node_modules", dep) for dep in subtree]
+                destsuffix = os.path.join(*destsubdirs)
+                callback(name, deps[name], destsuffix)
 
-    _walk_deps(shrinkwrap.get("dependencies", {}), [])
+    # packages entry means new style shrinkwrap file, else use dependencies
+    packages = shrinkwrap.get("packages", None)
+    if packages is not None:
+        for package in packages:
+            if package != "":
+                name = package.split('node_modules/')[-1]
+                package_infos = packages.get(package, {})
+                if dev == False and package_infos.get("dev", False):
+                    continue
+                callback(name, package_infos, package)
+    else:
+        _walk_deps(shrinkwrap.get("dependencies", {}), [])
 
 class NpmShrinkWrap(FetchMethod):
     """Class to fetch all package from a shrinkwrap file"""
@@ -75,12 +89,10 @@
         # Resolve the dependencies
         ud.deps = []
 
-        def _resolve_dependency(name, params, deptree):
+        def _resolve_dependency(name, params, destsuffix):
             url = None
             localpath = None
             extrapaths = []
-            destsubdirs = [os.path.join("node_modules", dep) for dep in deptree]
-            destsuffix = os.path.join(*destsubdirs)
             unpack = True
 
             integrity = params.get("integrity", None)
diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py
index 0bb3bc2..48788f4 100644
--- a/poky/bitbake/lib/bb/runqueue.py
+++ b/poky/bitbake/lib/bb/runqueue.py
@@ -212,6 +212,10 @@
                     exceeds_cpu_pressure =  self.rq.max_cpu_pressure and (float(curr_cpu_pressure) - float(self.prev_cpu_pressure)) > self.rq.max_cpu_pressure
                     exceeds_io_pressure =  self.rq.max_io_pressure and (float(curr_io_pressure) - float(self.prev_io_pressure)) > self.rq.max_io_pressure
                     exceeds_memory_pressure = self.rq.max_memory_pressure and (float(curr_memory_pressure) - float(self.prev_memory_pressure)) > self.rq.max_memory_pressure
+            pressure_state = (exceeds_cpu_pressure, exceeds_io_pressure, exceeds_memory_pressure)
+            if hasattr(self, "pressure_state") and pressure_state != self.pressure_state:
+                bb.note("Pressure status changed to CPU: %s, IO: %s, Mem: %s" % pressure_state)
+            self.pressure_state = pressure_state
             return (exceeds_cpu_pressure or exceeds_io_pressure or exceeds_memory_pressure)
         return False
 
@@ -1991,11 +1995,19 @@
                 self.setbuildable(revdep)
                 logger.debug("Marking task %s as buildable", revdep)
 
-        for t in self.sq_deferred.copy():
+        found = None
+        for t in sorted(self.sq_deferred.copy()):
             if self.sq_deferred[t] == task:
-                logger.debug2("Deferred task %s now buildable" % t)
-                del self.sq_deferred[t]
-                update_scenequeue_data([t], self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self, summary=False)
+                # Allow the next deferred task to run. Any other deferred tasks should be deferred after that task.
+                # We shouldn't allow all to run at once as it is prone to races.
+                if not found:
+                    bb.debug(1, "Deferred task %s now buildable" % t)
+                    del self.sq_deferred[t]
+                    update_scenequeue_data([t], self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self, summary=False)
+                    found = t
+                else:
+                    bb.debug(1, "Deferring %s after %s" % (t, found))
+                    self.sq_deferred[t] = found
 
     def task_complete(self, task):
         self.stats.taskCompleted()
@@ -2932,7 +2944,7 @@
                 sqdata.hashes[h] = tid
             else:
                 sqrq.sq_deferred[tid] = sqdata.hashes[h]
-                bb.note("Deferring %s after %s" % (tid, sqdata.hashes[h]))
+                bb.debug(1, "Deferring %s after %s" % (tid, sqdata.hashes[h]))
 
     update_scenequeue_data(sqdata.sq_revdeps, sqdata, rqdata, rq, cooker, stampcache, sqrq, summary=True)
 
diff --git a/poky/bitbake/lib/bb/server/process.py b/poky/bitbake/lib/bb/server/process.py
index 7616ef5..4d4fa6d 100644
--- a/poky/bitbake/lib/bb/server/process.py
+++ b/poky/bitbake/lib/bb/server/process.py
@@ -502,7 +502,7 @@
     def runCommand(self, command):
         self.connection.send(command)
         if not self.recv.poll(30):
-            logger.info("No reply from server in 30s")
+            logger.info("No reply from server in 30s (for command %s)" % command[0])
             if not self.recv.poll(30):
                 raise ProcessTimeout("Timeout while waiting for a reply from the bitbake server (60s)")
         ret, exc = self.recv.get()
diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py
index d230120..2059376 100644
--- a/poky/bitbake/lib/bb/tests/fetch.py
+++ b/poky/bitbake/lib/bb/tests/fetch.py
@@ -24,7 +24,8 @@
     return lambda f: f
 
 class TestTimeout(Exception):
-    pass
+    # Indicate to pytest that this is not a test suite
+    __test__ = False
 
 class Timeout():
 
@@ -428,9 +429,15 @@
         # a common setup is to use other default
         # branch than master.
         self.git(['checkout', '-b', 'master'], cwd=cwd)
-        if not self.git(['config', 'user.email'], cwd=cwd):
+
+        try:
+            self.git(['config', 'user.email'], cwd=cwd)
+        except bb.process.ExecutionError:
             self.git(['config', 'user.email', 'you@example.com'], cwd=cwd)
-        if not self.git(['config', 'user.name'], cwd=cwd):
+
+        try:
+            self.git(['config', 'user.name'], cwd=cwd)
+        except bb.process.ExecutionError:
             self.git(['config', 'user.name', 'Your Name'], cwd=cwd)
 
 class MirrorUriTest(FetcherTest):
@@ -2485,7 +2492,7 @@
         uris = self.d.getVar('SRC_URI').split()
 
         fetcher = bb.fetch2.Fetch(uris, self.d)
-        with self.assertRaisesRegexp(bb.fetch2.FetchError, "Fetcher failure for URL"):
+        with self.assertRaisesRegex(bb.fetch2.FetchError, "Fetcher failure for URL"):
             fetcher.download()
 
 class NPMTest(FetcherTest):
@@ -3037,7 +3044,7 @@
         self.mirrorname = "git2_git.fake.repo.bitbake.tar.gz"
         recipeurl = "git:/git.fake.repo/bitbake"
         os.makedirs(self.gitdir)
-        self.git("init", self.gitdir)
+        self.git_init(cwd=self.gitdir)
         for i in range(0):
             self.git_new_commit()
         bb.process.run('tar -czvf {} .'.format(os.path.join(self.mirrordir, self.mirrorname)), cwd =  self.gitdir)
@@ -3176,7 +3183,7 @@
         import sys
         self.d.setVar("SRCREV", "0"*40)
         fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
-        with self.assertRaises(bb.fetch2.FetchError):
+        with self.assertRaises(bb.fetch2.FetchError), self.assertLogs() as logs:
             fetcher.download()
-        stdout = sys.stdout.getvalue()
-        self.assertFalse(" not a git repository (or any parent up to mount point /)" in stdout)
+        output = "".join(logs.output)
+        self.assertFalse(" not a git repository (or any parent up to mount point /)" in output)
diff --git a/poky/bitbake/lib/bb/tests/parse.py b/poky/bitbake/lib/bb/tests/parse.py
index a3165d9..304bbbe 100644
--- a/poky/bitbake/lib/bb/tests/parse.py
+++ b/poky/bitbake/lib/bb/tests/parse.py
@@ -186,14 +186,16 @@
 """
     def test_parse_addtask_deltask(self):
         import sys
-        f = self.parsehelper(self.addtask_deltask)
-        d = bb.parse.handle(f.name, self.d)['']
 
-        stdout = sys.stdout.getvalue()
-        self.assertTrue("addtask contained multiple 'before' keywords" in stdout)
-        self.assertTrue("addtask contained multiple 'after' keywords" in stdout)
-        self.assertTrue('addtask ignored: " do_patch"' in stdout)
-        #self.assertTrue('dependent task do_foo for do_patch does not exist' in stdout)
+        with self.assertLogs() as logs:
+            f = self.parsehelper(self.addtask_deltask)
+            d = bb.parse.handle(f.name, self.d)['']
+
+        output = "".join(logs.output)
+        self.assertTrue("addtask contained multiple 'before' keywords" in output)
+        self.assertTrue("addtask contained multiple 'after' keywords" in output)
+        self.assertTrue('addtask ignored: " do_patch"' in output)
+        #self.assertTrue('dependent task do_foo for do_patch does not exist' in output)
 
     broken_multiline_comment = """
 # First line of comment \\
diff --git a/poky/meta-poky/conf/distro/include/gcsections.inc b/poky/meta-poky/conf/distro/include/gcsections.inc
index a1f8651..0e7bd2e 100644
--- a/poky/meta-poky/conf/distro/include/gcsections.inc
+++ b/poky/meta-poky/conf/distro/include/gcsections.inc
@@ -27,8 +27,10 @@
 
 # set default for target
 CFLAGS:append:class-target = " ${CFLAGS_SECTION_REMOVAL}"
+CXXFLAGS:append:class-target = " ${CFLAGS_SECTION_REMOVAL}"
 LDFLAGS:append:class-target = " ${LDFLAGS_SECTION_REMOVAL}"
 
 # set default for nativesdk
 CFLAGS:append:class-nativesdk = " ${CFLAGS_SECTION_REMOVAL}"
+CXXFLAGS:append:class-nativesdk = " ${CFLAGS_SECTION_REMOVAL}"
 LDFLAGS:append:class-nativesdk = " ${LDFLAGS_SECTION_REMOVAL}"
diff --git a/poky/meta-poky/conf/distro/poky.conf b/poky/meta-poky/conf/distro/poky.conf
index d137527..c72df16 100644
--- a/poky/meta-poky/conf/distro/poky.conf
+++ b/poky/meta-poky/conf/distro/poky.conf
@@ -41,6 +41,7 @@
             fedora-36 \n \
             fedora-37 \n \
             debian-11 \n \
+            debian-12 \n \
             opensuseleap-15.3 \n \
             opensuseleap-15.4 \n \
             almalinux-8.7 \n \
diff --git a/poky/meta-selftest/recipes-test/multiconfig/multiconfig-image-packager_0.1.bb b/poky/meta-selftest/recipes-test/multiconfig/multiconfig-image-packager_0.1.bb
index daf2834..d7785ce 100644
--- a/poky/meta-selftest/recipes-test/multiconfig/multiconfig-image-packager_0.1.bb
+++ b/poky/meta-selftest/recipes-test/multiconfig/multiconfig-image-packager_0.1.bb
@@ -7,15 +7,19 @@
 MCIMGTYPE:virtclass-mcextend-tiny = "cpio.gz"
 
 MC_DEPLOY_DIR_IMAGE = "${TOPDIR}/tmp-mc-${MCNAME}/deploy/images/${MCMACHINE}"
+MC_DEPLOY_IMAGE_BASENAME = "core-image-minimal"
 
 do_install[mcdepends] += "mc::${MCNAME}:core-image-minimal:do_image_complete mc::${MCNAME}:virtual/kernel:do_deploy"
 
 do_install () {
     install -d ${D}/var/lib/machines/${MCNAME}
-    install ${MC_DEPLOY_DIR_IMAGE}/core-image-minimal-${MCMACHINE}.${MCIMGTYPE} ${D}/var/lib/machines/${MCNAME}/core-image-minimal.${MCIMGTYPE}
+    install ${MC_DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME_CORE_IMAGE_MINIMAL}.${MCIMGTYPE} ${D}/var/lib/machines/${MCNAME}/${MC_DEPLOY_IMAGE_BASENAME}.${MCIMGTYPE}
     install ${MC_DEPLOY_DIR_IMAGE}/bzImage ${D}/var/lib/machines/${MCNAME}
 }
 
+# for IMAGE_LINK_NAME, IMAGE_BASENAME
+inherit image-artifact-names
+
 python () {
     mcname = d.getVar('MCNAME')
     if not mcname:
@@ -23,6 +27,18 @@
     multiconfigs = d.getVar('BBMULTICONFIG') or ""
     if mcname not in multiconfigs:
         raise bb.parse.SkipRecipe("multiconfig target %s not enabled" % mcname)
+
+    # these will most likely start with my BPN multiconfig-image-packager, but I want them from core-image-minimal
+    # as there is no good way to query core-image-minimal's context lets assume that there are no overrides
+    # and that we can just replace IMAGE_BASENAME
+    image_link_name = d.getVar('IMAGE_LINK_NAME')
+    image_basename = d.getVar('IMAGE_BASENAME')
+    machine = d.getVar('MACHINE')
+    mcmachine = d.getVar('MCMACHINE')
+    image_to_deploy = d.getVar('MC_DEPLOY_IMAGE_BASENAME')
+    image_link_name_to_deploy = image_link_name.replace(image_basename, image_to_deploy).replace(machine, mcmachine)
+    bb.warn('%s: assuming that "%s" built for "%s" has IMAGE_LINK_NAME "%s"' % (d.getVar('PN'), mcmachine, image_to_deploy, image_link_name_to_deploy))
+    d.setVar('IMAGE_LINK_NAME_CORE_IMAGE_MINIMAL', image_link_name_to_deploy)
 }
 
 BBCLASSEXTEND = "mcextend:tiny mcextend:musl"
diff --git a/poky/meta/classes-global/insane.bbclass b/poky/meta/classes-global/insane.bbclass
index a4dbc9a..114781c 100644
--- a/poky/meta/classes-global/insane.bbclass
+++ b/poky/meta/classes-global/insane.bbclass
@@ -34,6 +34,7 @@
             missing-update-alternatives native-last missing-ptest \
             license-exists license-no-generic license-syntax license-format \
             license-incompatible license-file-missing obsolete-license \
+            32bit-time \
             "
 ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
             perms dep-cmp pkgvarcheck perm-config perm-line perm-link \
@@ -513,6 +514,11 @@
     """
     Check that ELF files do not use any 32 bit time APIs from glibc.
     """
+    thirtytwo_bit_time_archs = set(('arm','armeb','mipsarcho32','powerpc','x86'))
+    overrides = set(d.getVar('OVERRIDES').split(':'))
+    if not(thirtytwo_bit_time_archs & overrides):
+        return
+
     import re
     # This list is manually constructed by searching the image folder of the
     # glibc recipe for __USE_TIME_BITS64.  There is no good way to do this
diff --git a/poky/meta/classes-recipe/cargo.bbclass b/poky/meta/classes-recipe/cargo.bbclass
index 7a8cc1e..3ef0bbb 100644
--- a/poky/meta/classes-recipe/cargo.bbclass
+++ b/poky/meta/classes-recipe/cargo.bbclass
@@ -55,7 +55,6 @@
 
 do_compile[progress] = "outof:\s+(\d+)/(\d+)"
 cargo_do_compile () {
-	oe_cargo_fix_env
 	oe_cargo_build
 }
 
diff --git a/poky/meta/classes-recipe/cargo_common.bbclass b/poky/meta/classes-recipe/cargo_common.bbclass
index 82ab25b..db54826 100644
--- a/poky/meta/classes-recipe/cargo_common.bbclass
+++ b/poky/meta/classes-recipe/cargo_common.bbclass
@@ -149,6 +149,10 @@
 }
 do_configure[postfuncs] += "cargo_common_do_patch_paths"
 
+do_compile:prepend () {
+        oe_cargo_fix_env
+}
+
 oe_cargo_fix_env () {
 	export CC="${RUST_TARGET_CC}"
 	export CXX="${RUST_TARGET_CXX}"
@@ -170,3 +174,15 @@
 EXTRA_OECARGO_PATHS ??= ""
 
 EXPORT_FUNCTIONS do_configure
+
+# The culprit for this setting is the libc crate,
+# which as of Jun 2023 calls directly into 32 bit time functions in glibc,
+# bypassing all of glibc provisions to choose the right Y2038-safe functions. As
+# rust components statically link with that crate, pretty much everything
+# is affected, and so there's no point trying to have recipe-specific
+# INSANE_SKIP entries.
+#
+# Upstream ticket and PR:
+# https://github.com/rust-lang/libc/issues/3223
+# https://github.com/rust-lang/libc/pull/3175
+INSANE_SKIP:append = " 32bit-time"
diff --git a/poky/meta/classes-recipe/cml1.bbclass b/poky/meta/classes-recipe/cml1.bbclass
index d87d820..d83c636 100644
--- a/poky/meta/classes-recipe/cml1.bbclass
+++ b/poky/meta/classes-recipe/cml1.bbclass
@@ -109,3 +109,9 @@
 do_diffconfig[nostamp] = "1"
 do_diffconfig[dirs] = "${KCONFIG_CONFIG_ROOTDIR}"
 addtask diffconfig
+
+do_showconfig() {
+    bbplain "Config file written to ${KCONFIG_CONFIG_ROOTDIR}/.config"
+}
+do_showconfig[nostamp] = "1"
+addtask showconfig after do_configure
diff --git a/poky/meta/classes-recipe/image-artifact-names.bbclass b/poky/meta/classes-recipe/image-artifact-names.bbclass
index ac2376d..bc76ff0 100644
--- a/poky/meta/classes-recipe/image-artifact-names.bbclass
+++ b/poky/meta/classes-recipe/image-artifact-names.bbclass
@@ -12,9 +12,10 @@
 IMAGE_VERSION_SUFFIX ?= "-${DATETIME}"
 IMAGE_VERSION_SUFFIX[vardepsexclude] += "DATETIME SOURCE_DATE_EPOCH"
 IMAGE_NAME ?= "${IMAGE_LINK_NAME}${IMAGE_VERSION_SUFFIX}"
-IMAGE_LINK_NAME ?= "${IMAGE_BASENAME}${IMAGE_MACHINE_SUFFIX}"
+IMAGE_LINK_NAME ?= "${IMAGE_BASENAME}${IMAGE_MACHINE_SUFFIX}${IMAGE_NAME_SUFFIX}"
 
 # This needs to stay in sync with IMAGE_LINK_NAME, but with INITRAMFS_IMAGE instead of IMAGE_BASENAME
+# and without ${IMAGE_NAME_SUFFIX} which all initramfs images should set to empty
 INITRAMFS_IMAGE_NAME ?= "${@['${INITRAMFS_IMAGE}${IMAGE_MACHINE_SUFFIX}', ''][d.getVar('INITRAMFS_IMAGE') == '']}"
 
 # The default DEPLOY_DIR_IMAGE is ${MACHINE} directory:
diff --git a/poky/meta/classes-recipe/image-live.bbclass b/poky/meta/classes-recipe/image-live.bbclass
index 168774a..95dd44a 100644
--- a/poky/meta/classes-recipe/image-live.bbclass
+++ b/poky/meta/classes-recipe/image-live.bbclass
@@ -260,6 +260,5 @@
     bb.build.exec_func('create_symlinks', d)
 }
 do_bootimg[subimages] = "hddimg iso"
-do_bootimg[imgsuffix] = "."
 
 addtask bootimg before do_image_complete after do_rootfs
diff --git a/poky/meta/classes-recipe/image.bbclass b/poky/meta/classes-recipe/image.bbclass
index e0dfba4..21b220a 100644
--- a/poky/meta/classes-recipe/image.bbclass
+++ b/poky/meta/classes-recipe/image.bbclass
@@ -480,14 +480,14 @@
                     if subimage not in subimages:
                         subimages.append(subimage)
                     if type not in alltypes:
-                        rm_tmp_images.add(localdata.expand("${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"))
+                        rm_tmp_images.add(localdata.expand("${IMAGE_NAME}.${type}"))
 
         for bt in basetypes[t]:
             gen_conversion_cmds(bt)
 
         localdata.setVar('type', realt)
         if t not in alltypes:
-            rm_tmp_images.add(localdata.expand("${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"))
+            rm_tmp_images.add(localdata.expand("${IMAGE_NAME}.${type}"))
         else:
             subimages.append(realt)
 
@@ -594,13 +594,12 @@
     manifest_name = d.getVar('IMAGE_MANIFEST')
     taskname = d.getVar("BB_CURRENTTASK")
     subimages = (d.getVarFlag("do_" + taskname, 'subimages', False) or "").split()
-    imgsuffix = d.getVarFlag("do_" + taskname, 'imgsuffix') or d.expand("${IMAGE_NAME_SUFFIX}.")
 
     if not link_name:
         return
     for type in subimages:
         dst = os.path.join(deploy_dir, link_name + "." + type)
-        src = img_name + imgsuffix + type
+        src = img_name + "." + type
         if os.path.exists(os.path.join(deploy_dir, src)):
             bb.note("Creating symlink: %s -> %s" % (dst, src))
             if os.path.islink(dst):
diff --git a/poky/meta/classes-recipe/image_types.bbclass b/poky/meta/classes-recipe/image_types.bbclass
index 023eb87..fdee835 100644
--- a/poky/meta/classes-recipe/image_types.bbclass
+++ b/poky/meta/classes-recipe/image_types.bbclass
@@ -66,9 +66,9 @@
 ZSTD_COMPRESSION_LEVEL ?= "-3"
 
 JFFS2_SUM_EXTRA_ARGS ?= ""
-IMAGE_CMD:jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} --faketime --output=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.jffs2 ${EXTRA_IMAGECMD}"
+IMAGE_CMD:jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} --faketime --output=${IMGDEPLOYDIR}/${IMAGE_NAME}.jffs2 ${EXTRA_IMAGECMD}"
 
-IMAGE_CMD:cramfs = "mkfs.cramfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cramfs ${EXTRA_IMAGECMD}"
+IMAGE_CMD:cramfs = "mkfs.cramfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}.cramfs ${EXTRA_IMAGECMD}"
 
 oe_mkext234fs () {
 	fstype=$1
@@ -88,14 +88,14 @@
 		eval COUNT=\"$MIN_COUNT\"
 	fi
 	# Create a sparse image block
-	bbdebug 1 Executing "dd if=/dev/zero of=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype seek=$ROOTFS_SIZE count=$COUNT bs=1024"
-	dd if=/dev/zero of=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype seek=$ROOTFS_SIZE count=$COUNT bs=1024
+	bbdebug 1 Executing "dd if=/dev/zero of=${IMGDEPLOYDIR}/${IMAGE_NAME}.$fstype seek=$ROOTFS_SIZE count=$COUNT bs=1024"
+	dd if=/dev/zero of=${IMGDEPLOYDIR}/${IMAGE_NAME}.$fstype seek=$ROOTFS_SIZE count=$COUNT bs=1024
 	bbdebug 1 "Actual Rootfs size:  `du -s ${IMAGE_ROOTFS}`"
-	bbdebug 1 "Actual Partition size: `stat -c '%s' ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype`"
-	bbdebug 1 Executing "mkfs.$fstype -F $extra_imagecmd ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype -d ${IMAGE_ROOTFS}"
-	mkfs.$fstype -F $extra_imagecmd ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype -d ${IMAGE_ROOTFS}
+	bbdebug 1 "Actual Partition size: `stat -c '%s' ${IMGDEPLOYDIR}/${IMAGE_NAME}.$fstype`"
+	bbdebug 1 Executing "mkfs.$fstype -F $extra_imagecmd ${IMGDEPLOYDIR}/${IMAGE_NAME}.$fstype -d ${IMAGE_ROOTFS}"
+	mkfs.$fstype -F $extra_imagecmd ${IMGDEPLOYDIR}/${IMAGE_NAME}.$fstype -d ${IMAGE_ROOTFS}
 	# Error codes 0-3 indicate successfull operation of fsck (no errors or errors corrected)
-	fsck.$fstype -pvfD ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype || [ $? -le 3 ]
+	fsck.$fstype -pvfD ${IMGDEPLOYDIR}/${IMAGE_NAME}.$fstype || [ $? -le 3 ]
 }
 
 IMAGE_CMD:ext2 = "oe_mkext234fs ext2 ${EXTRA_IMAGECMD}"
@@ -109,8 +109,8 @@
 		size=${MIN_BTRFS_SIZE}
 		bbwarn "Rootfs size is too small for BTRFS. Filesystem will be extended to ${size}K"
 	fi
-	dd if=/dev/zero of=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.btrfs seek=${size} count=0 bs=1024
-	mkfs.btrfs ${EXTRA_IMAGECMD} -r ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.btrfs
+	dd if=/dev/zero of=${IMGDEPLOYDIR}/${IMAGE_NAME}.btrfs seek=${size} count=0 bs=1024
+	mkfs.btrfs ${EXTRA_IMAGECMD} -r ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}.btrfs
 }
 
 oe_mksquashfs () {
@@ -119,7 +119,7 @@
 
     # Use the bitbake reproducible timestamp instead of the hardcoded squashfs one
     export SOURCE_DATE_EPOCH=$(stat -c '%Y' ${IMAGE_ROOTFS})
-    mksquashfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.squashfs${comp:+-}${suffix:-$comp} ${EXTRA_IMAGECMD} -noappend ${comp:+-comp }$comp
+    mksquashfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}.squashfs${comp:+-}${suffix:-$comp} ${EXTRA_IMAGECMD} -noappend ${comp:+-comp }$comp
 }
 IMAGE_CMD:squashfs = "oe_mksquashfs"
 IMAGE_CMD:squashfs-xz = "oe_mksquashfs xz"
@@ -127,18 +127,18 @@
 IMAGE_CMD:squashfs-lz4 = "oe_mksquashfs lz4"
 IMAGE_CMD:squashfs-zst = "oe_mksquashfs zstd zst"
 
-IMAGE_CMD:erofs = "mkfs.erofs ${EXTRA_IMAGECMD} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.erofs ${IMAGE_ROOTFS}"
-IMAGE_CMD:erofs-lz4 = "mkfs.erofs -zlz4 ${EXTRA_IMAGECMD} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.erofs-lz4 ${IMAGE_ROOTFS}"
-IMAGE_CMD:erofs-lz4hc = "mkfs.erofs -zlz4hc ${EXTRA_IMAGECMD} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.erofs-lz4hc ${IMAGE_ROOTFS}"
+IMAGE_CMD:erofs = "mkfs.erofs ${EXTRA_IMAGECMD} ${IMGDEPLOYDIR}/${IMAGE_NAME}.erofs ${IMAGE_ROOTFS}"
+IMAGE_CMD:erofs-lz4 = "mkfs.erofs -zlz4 ${EXTRA_IMAGECMD} ${IMGDEPLOYDIR}/${IMAGE_NAME}.erofs-lz4 ${IMAGE_ROOTFS}"
+IMAGE_CMD:erofs-lz4hc = "mkfs.erofs -zlz4hc ${EXTRA_IMAGECMD} ${IMGDEPLOYDIR}/${IMAGE_NAME}.erofs-lz4hc ${IMAGE_ROOTFS}"
 
 
 IMAGE_CMD_TAR ?= "tar"
 # ignore return code 1 "file changed as we read it" as other tasks(e.g. do_image_wic) may be hardlinking rootfs
-IMAGE_CMD:tar = "${IMAGE_CMD_TAR} --sort=name --format=posix --numeric-owner -cf ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.tar -C ${IMAGE_ROOTFS} . || [ $? -eq 1 ]"
+IMAGE_CMD:tar = "${IMAGE_CMD_TAR} --sort=name --format=posix --numeric-owner -cf ${IMGDEPLOYDIR}/${IMAGE_NAME}.tar -C ${IMAGE_ROOTFS} . || [ $? -eq 1 ]"
 
 do_image_cpio[cleandirs] += "${WORKDIR}/cpio_append"
 IMAGE_CMD:cpio () {
-	(cd ${IMAGE_ROOTFS} && find . | sort | cpio --reproducible -o -H newc >${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cpio)
+	(cd ${IMAGE_ROOTFS} && find . | sort | cpio --reproducible -o -H newc >${IMGDEPLOYDIR}/${IMAGE_NAME}.cpio)
 	# We only need the /init symlink if we're building the real
 	# image. The -dbg image doesn't need it! By being clever
 	# about this we also avoid 'touch' below failing, as it
@@ -152,7 +152,7 @@
 			else
                                 touch -r ${IMAGE_ROOTFS} ${WORKDIR}/cpio_append/init
 			fi
-			(cd  ${WORKDIR}/cpio_append && echo ./init | cpio --reproducible -oA -H newc -F ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cpio)
+			(cd  ${WORKDIR}/cpio_append && echo ./init | cpio --reproducible -oA -H newc -F ${IMGDEPLOYDIR}/${IMAGE_NAME}.cpio)
 		fi
 	fi
 }
@@ -167,7 +167,7 @@
 	cat <<EOF > ubinize${vname}-${IMAGE_NAME}.cfg
 [ubifs]
 mode=ubi
-image=${IMGDEPLOYDIR}/${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.${UBI_IMGTYPE}
+image=${IMGDEPLOYDIR}/${IMAGE_NAME}${vname}.${UBI_IMGTYPE}
 vol_id=0
 vol_type=${UBI_VOLTYPE}
 vol_name=${UBI_VOLNAME}
@@ -192,9 +192,9 @@
 	write_ubi_config "${vname}"
 
 	if [ -n "$vname" ]; then
-		mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubifs ${mkubifs_args}
+		mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${vname}.ubifs ${mkubifs_args}
 	fi
-	ubinize -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubi ${ubinize_args} ubinize${vname}-${IMAGE_NAME}.cfg
+	ubinize -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${vname}.ubi ${ubinize_args} ubinize${vname}-${IMAGE_NAME}.cfg
 
 	# Cleanup cfg file
 	mv ubinize${vname}-${IMAGE_NAME}.cfg ${IMGDEPLOYDIR}/
@@ -202,12 +202,12 @@
 	# Create own symlinks for 'named' volumes
 	if [ -n "$vname" ]; then
 		cd ${IMGDEPLOYDIR}
-		if [ -e ${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubifs ]; then
-			ln -sf ${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubifs \
+		if [ -e ${IMAGE_NAME}${vname}.ubifs ]; then
+			ln -sf ${IMAGE_NAME}${vname}.ubifs \
 			${IMAGE_LINK_NAME}${vname}.ubifs
 		fi
-		if [ -e ${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubi ]; then
-			ln -sf ${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubi \
+		if [ -e ${IMAGE_NAME}${vname}.ubi ]; then
+			ln -sf ${IMAGE_NAME}${vname}.ubi \
 			${IMAGE_LINK_NAME}${vname}.ubi
 		fi
 		cd -
@@ -232,7 +232,7 @@
 }
 IMAGE_TYPEDEP:ubi = "${UBI_IMGTYPE}"
 
-IMAGE_CMD:ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.ubifs ${MKUBIFS_ARGS}"
+IMAGE_CMD:ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${IMGDEPLOYDIR}/${IMAGE_NAME}.ubifs ${MKUBIFS_ARGS}"
 
 MIN_F2FS_SIZE ?= "524288"
 IMAGE_CMD:f2fs () {
@@ -246,9 +246,9 @@
 		size=${MIN_F2FS_SIZE}
 		bbwarn "Rootfs size is too small for F2FS. Filesystem will be extended to ${size}K"
 	fi
-	dd if=/dev/zero of=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.f2fs seek=${size} count=0 bs=1024
-	mkfs.f2fs ${EXTRA_IMAGECMD} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.f2fs
-	sload.f2fs -f ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.f2fs
+	dd if=/dev/zero of=${IMGDEPLOYDIR}/${IMAGE_NAME}.f2fs seek=${size} count=0 bs=1024
+	mkfs.f2fs ${EXTRA_IMAGECMD} ${IMGDEPLOYDIR}/${IMAGE_NAME}.f2fs
+	sload.f2fs -f ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}.f2fs
 }
 
 EXTRA_IMAGECMD = ""
@@ -314,32 +314,32 @@
 COMPRESSIONTYPES ?= ""
 
 CONVERSIONTYPES = "gz bz2 lzma xz lz4 lzo zip 7zip zst sum md5sum sha1sum sha224sum sha256sum sha384sum sha512sum bmap u-boot vmdk vhd vhdx vdi qcow2 base64 gzsync zsync ${COMPRESSIONTYPES}"
-CONVERSION_CMD:lzma = "lzma -k -f -7 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
-CONVERSION_CMD:gz = "gzip -f -9 -n -c --rsyncable ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.gz"
-CONVERSION_CMD:bz2 = "pbzip2 -f -k ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
-CONVERSION_CMD:xz = "xz -f -k -c ${XZ_COMPRESSION_LEVEL} ${XZ_DEFAULTS} --check=${XZ_INTEGRITY_CHECK} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.xz"
-CONVERSION_CMD:lz4 = "lz4 -9 -z -l ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.lz4"
-CONVERSION_CMD:lzo = "lzop -9 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
-CONVERSION_CMD:zip = "zip ${ZIP_COMPRESSION_LEVEL} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.zip ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
-CONVERSION_CMD:7zip = "7za a -mx=${7ZIP_COMPRESSION_LEVEL} -mm=${7ZIP_COMPRESSION_METHOD} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.${7ZIP_EXTENSION} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
-CONVERSION_CMD:zst = "zstd -f -k -T0 -c ${ZSTD_COMPRESSION_LEVEL} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.zst"
-CONVERSION_CMD:sum = "sumtool -i ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} -o ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sum ${JFFS2_SUM_EXTRA_ARGS}"
-CONVERSION_CMD:md5sum = "md5sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.md5sum"
-CONVERSION_CMD:sha1sum = "sha1sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha1sum"
-CONVERSION_CMD:sha224sum = "sha224sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha224sum"
-CONVERSION_CMD:sha256sum = "sha256sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha256sum"
-CONVERSION_CMD:sha384sum = "sha384sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha384sum"
-CONVERSION_CMD:sha512sum = "sha512sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha512sum"
-CONVERSION_CMD:bmap = "bmaptool create ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} -o ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.bmap"
-CONVERSION_CMD:u-boot = "mkimage -A ${UBOOT_ARCH} -O linux -T ramdisk -C none -n ${IMAGE_NAME} -d ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.u-boot"
-CONVERSION_CMD:vmdk = "qemu-img convert -O vmdk ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.vmdk"
-CONVERSION_CMD:vhdx = "qemu-img convert -O vhdx -o subformat=dynamic ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.vhdx"
-CONVERSION_CMD:vhd = "qemu-img convert -O vpc -o subformat=fixed ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.vhd"
-CONVERSION_CMD:vdi = "qemu-img convert -O vdi ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.vdi"
-CONVERSION_CMD:qcow2 = "qemu-img convert -O qcow2 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.qcow2"
-CONVERSION_CMD:base64 = "base64 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.base64"
-CONVERSION_CMD:zsync = "zsyncmake_curl ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
-CONVERSION_CMD:gzsync = "zsyncmake_curl -z ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
+CONVERSION_CMD:lzma = "lzma -k -f -7 ${IMAGE_NAME}.${type}"
+CONVERSION_CMD:gz = "gzip -f -9 -n -c --rsyncable ${IMAGE_NAME}.${type} > ${IMAGE_NAME}.${type}.gz"
+CONVERSION_CMD:bz2 = "pbzip2 -f -k ${IMAGE_NAME}.${type}"
+CONVERSION_CMD:xz = "xz -f -k -c ${XZ_COMPRESSION_LEVEL} ${XZ_DEFAULTS} --check=${XZ_INTEGRITY_CHECK} ${IMAGE_NAME}.${type} > ${IMAGE_NAME}.${type}.xz"
+CONVERSION_CMD:lz4 = "lz4 -9 -z -l ${IMAGE_NAME}.${type} ${IMAGE_NAME}.${type}.lz4"
+CONVERSION_CMD:lzo = "lzop -9 ${IMAGE_NAME}.${type}"
+CONVERSION_CMD:zip = "zip ${ZIP_COMPRESSION_LEVEL} ${IMAGE_NAME}.${type}.zip ${IMAGE_NAME}.${type}"
+CONVERSION_CMD:7zip = "7za a -mx=${7ZIP_COMPRESSION_LEVEL} -mm=${7ZIP_COMPRESSION_METHOD} ${IMAGE_NAME}.${type}.${7ZIP_EXTENSION} ${IMAGE_NAME}.${type}"
+CONVERSION_CMD:zst = "zstd -f -k -T0 -c ${ZSTD_COMPRESSION_LEVEL} ${IMAGE_NAME}.${type} > ${IMAGE_NAME}.${type}.zst"
+CONVERSION_CMD:sum = "sumtool -i ${IMAGE_NAME}.${type} -o ${IMAGE_NAME}.${type}.sum ${JFFS2_SUM_EXTRA_ARGS}"
+CONVERSION_CMD:md5sum = "md5sum ${IMAGE_NAME}.${type} > ${IMAGE_NAME}.${type}.md5sum"
+CONVERSION_CMD:sha1sum = "sha1sum ${IMAGE_NAME}.${type} > ${IMAGE_NAME}.${type}.sha1sum"
+CONVERSION_CMD:sha224sum = "sha224sum ${IMAGE_NAME}.${type} > ${IMAGE_NAME}.${type}.sha224sum"
+CONVERSION_CMD:sha256sum = "sha256sum ${IMAGE_NAME}.${type} > ${IMAGE_NAME}.${type}.sha256sum"
+CONVERSION_CMD:sha384sum = "sha384sum ${IMAGE_NAME}.${type} > ${IMAGE_NAME}.${type}.sha384sum"
+CONVERSION_CMD:sha512sum = "sha512sum ${IMAGE_NAME}.${type} > ${IMAGE_NAME}.${type}.sha512sum"
+CONVERSION_CMD:bmap = "bmaptool create ${IMAGE_NAME}.${type} -o ${IMAGE_NAME}.${type}.bmap"
+CONVERSION_CMD:u-boot = "mkimage -A ${UBOOT_ARCH} -O linux -T ramdisk -C none -n ${IMAGE_NAME} -d ${IMAGE_NAME}.${type} ${IMAGE_NAME}.${type}.u-boot"
+CONVERSION_CMD:vmdk = "qemu-img convert -O vmdk ${IMAGE_NAME}.${type} ${IMAGE_NAME}.${type}.vmdk"
+CONVERSION_CMD:vhdx = "qemu-img convert -O vhdx -o subformat=dynamic ${IMAGE_NAME}.${type} ${IMAGE_NAME}.${type}.vhdx"
+CONVERSION_CMD:vhd = "qemu-img convert -O vpc -o subformat=fixed ${IMAGE_NAME}.${type} ${IMAGE_NAME}.${type}.vhd"
+CONVERSION_CMD:vdi = "qemu-img convert -O vdi ${IMAGE_NAME}.${type} ${IMAGE_NAME}.${type}.vdi"
+CONVERSION_CMD:qcow2 = "qemu-img convert -O qcow2 ${IMAGE_NAME}.${type} ${IMAGE_NAME}.${type}.qcow2"
+CONVERSION_CMD:base64 = "base64 ${IMAGE_NAME}.${type} > ${IMAGE_NAME}.${type}.base64"
+CONVERSION_CMD:zsync = "zsyncmake_curl ${IMAGE_NAME}.${type}"
+CONVERSION_CMD:gzsync = "zsyncmake_curl -z ${IMAGE_NAME}.${type}"
 CONVERSION_DEPENDS_lzma = "xz-native"
 CONVERSION_DEPENDS_gz = "pigz-native"
 CONVERSION_DEPENDS_bz2 = "pbzip2-native"
diff --git a/poky/meta/classes-recipe/image_types_wic.bbclass b/poky/meta/classes-recipe/image_types_wic.bbclass
index be31fbf..669606d 100644
--- a/poky/meta/classes-recipe/image_types_wic.bbclass
+++ b/poky/meta/classes-recipe/image_types_wic.bbclass
@@ -71,7 +71,7 @@
 		bbfatal "No kickstart files from WKS_FILES were found: ${WKS_FILES}. Please set WKS_FILE or WKS_FILES appropriately."
 	fi
 	BUILDDIR="${TOPDIR}" PSEUDO_UNLOAD=1 wic create "$wks" --vars "${STAGING_DIR}/${MACHINE}/imgdata/" -e "${IMAGE_BASENAME}" -o "$build_wic/" -w "$tmp_wic" ${WIC_CREATE_EXTRA_ARGS}
-	mv "$build_wic/$(basename "${wks%.wks}")"*.direct "$out${IMAGE_NAME_SUFFIX}.wic"
+	mv "$build_wic/$(basename "${wks%.wks}")"*.direct "$out.wic"
 }
 IMAGE_CMD:wic[vardepsexclude] = "WKS_FULL_PATH WKS_FILES TOPDIR"
 do_image_wic[cleandirs] = "${WORKDIR}/build-wic"
diff --git a/poky/meta/classes-recipe/kernel-arch.bbclass b/poky/meta/classes-recipe/kernel-arch.bbclass
index 6e19dbb..df4884b 100644
--- a/poky/meta/classes-recipe/kernel-arch.bbclass
+++ b/poky/meta/classes-recipe/kernel-arch.bbclass
@@ -80,3 +80,10 @@
 KERNEL_STRIP = "${CCACHE}${HOST_PREFIX}strip ${HOST_STRIP_KERNEL_ARCH}"
 TOOLCHAIN ?= "gcc"
 
+# 6.3+ requires the variable LOCALVERSION to be set to not get a "+" in
+# the local version. Having it empty means nothing will be added, and any
+# value will be appended to the local kernel version. This replaces the
+# use of .scmversion file for setting a localversion without using
+# the CONFIG_LOCALVERSION option.
+KERNEL_LOCALVERSION ??= ""
+export LOCALVERSION ?= "${KERNEL_LOCALVERSION}"
diff --git a/poky/meta/classes-recipe/kernel-devicetree.bbclass b/poky/meta/classes-recipe/kernel-devicetree.bbclass
index 1b60c14..eff052b 100644
--- a/poky/meta/classes-recipe/kernel-devicetree.bbclass
+++ b/poky/meta/classes-recipe/kernel-devicetree.bbclass
@@ -100,28 +100,36 @@
 		if "${@'false' if oe.types.boolean(d.getVar('KERNEL_DTBVENDORED')) else 'true'}"; then
 			dtb=$dtb_base_name.$dtb_ext
 		fi
-		install -m 0644 ${D}/${KERNEL_DTBDEST}/$dtb $deployDir/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext
-		if [ "${KERNEL_IMAGETYPE_SYMLINK}" = "1" ] ; then
-			ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext $deployDir/$dtb_base_name.$dtb_ext
+		install -m 0644 ${D}/${KERNEL_DTBDEST}/$dtb $deployDir/$dtb_base_name.$dtb_ext
+		if [ -n "${KERNEL_DTB_NAME}" ] ; then
+			ln -sf $dtb_base_name.$dtb_ext $deployDir/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext
 		fi
 		if [ -n "${KERNEL_DTB_LINK_NAME}" ] ; then
-			ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext $deployDir/$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext
+			ln -sf $dtb_base_name.$dtb_ext $deployDir/$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext
 		fi
 		for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
 			if [ "$type" = "zImage" ] && [ "${KERNEL_DEVICETREE_BUNDLE}" = "1" ]; then
 				cat ${D}/${KERNEL_IMAGEDEST}/$type \
-					$deployDir/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
-					> $deployDir/$type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT}
+					$deployDir/$dtb_base_name.$dtb_ext \
+					> $deployDir/$type-$dtb_base_name.$dtb_ext${KERNEL_DTB_BIN_EXT}
+				if [ -n "${KERNEL_DTB_NAME}" ]; then
+					ln -sf $type-$dtb_base_name.$dtb_ext${KERNEL_DTB_BIN_EXT} \
+						$deployDir/$type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT}
+				fi
 				if [ -n "${KERNEL_DTB_LINK_NAME}" ]; then
-					ln -sf $type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT} \
+					ln -sf $type-$dtb_base_name.$dtb_ext${KERNEL_DTB_BIN_EXT} \
 						$deployDir/$type-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT}
 				fi
 				if [ -e "${KERNEL_OUTPUT_DIR}/${type}.initramfs" ]; then
 					cat ${KERNEL_OUTPUT_DIR}/${type}.initramfs \
-						$deployDir/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
-						>  $deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT}
+						$deployDir/$dtb_base_name.$dtb_ext \
+						>  $deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name.$dtb_ext${KERNEL_DTB_BIN_EXT}
+					if [ -n "${KERNEL_DTB_NAME}" ]; then
+						ln -sf ${type}-${INITRAMFS_NAME}-$dtb_base_name.$dtb_ext${KERNEL_DTB_BIN_EXT} \
+							$deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT}
+					fi
 					if [ -n "${KERNEL_DTB_LINK_NAME}" ]; then
-						ln -sf ${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT} \
+						ln -sf ${type}-${INITRAMFS_NAME}-$dtb_base_name.$dtb_ext${KERNEL_DTB_BIN_EXT} \
 							$deployDir/${type}-${INITRAMFS_NAME}-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext${KERNEL_DTB_BIN_EXT}
 					fi
 				fi
diff --git a/poky/meta/classes-recipe/kernel-module-split.bbclass b/poky/meta/classes-recipe/kernel-module-split.bbclass
index 50882c3..c1208d5 100644
--- a/poky/meta/classes-recipe/kernel-module-split.bbclass
+++ b/poky/meta/classes-recipe/kernel-module-split.bbclass
@@ -30,9 +30,8 @@
 
 PACKAGE_WRITE_DEPS += "kmod-native depmodwrapper-cross"
 
-do_install:append() {
-	install -d ${D}${sysconfdir}/modules-load.d/ ${D}${sysconfdir}/modprobe.d/
-}
+modulesloaddir ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${nonarch_libdir}', '${sysconfdir}', d)}/modules-load.d"
+modprobedir ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${nonarch_base_libdir}', '${sysconfdir}', d)}/modprobe.d"
 
 KERNEL_SPLIT_MODULES ?= "1"
 PACKAGESPLITFUNCS =+ "split_kernel_module_packages"
@@ -73,9 +72,8 @@
             cmd = "%sobjcopy -j .modinfo -O binary %s %s" % (d.getVar("HOST_PREFIX") or "", file, tmpfile)
         subprocess.check_call(cmd, shell=True)
         # errors='replace': Some old kernel versions contain invalid utf-8 characters in mod descriptions (like 0xf6, 'ö')
-        f = open(tmpfile, errors='replace')
-        l = f.read().split("\000")
-        f.close()
+        with open(tmpfile, errors='replace') as f:
+            l = f.read().split("\000")
         os.close(tf[0])
         os.unlink(tmpfile)
         if compressed:
@@ -93,7 +91,7 @@
 
         dvar = d.getVar('PKGD')
 
-        # If autoloading is requested, output /etc/modules-load.d/<name>.conf and append
+        # If autoloading is requested, output ${modulesloaddir}/<name>.conf and append
         # appropriate modprobe commands to the postinst
         autoloadlist = (d.getVar("KERNEL_MODULE_AUTOLOAD") or "").split()
         autoload = d.getVar('module_autoload_%s' % basename)
@@ -102,14 +100,18 @@
         if autoload and basename not in autoloadlist:
             bb.warn("module_autoload_%s is defined but '%s' isn't included in KERNEL_MODULE_AUTOLOAD, please add it there" % (basename, basename))
         if basename in autoloadlist:
-            name = '%s/etc/modules-load.d/%s.conf' % (dvar, basename)
-            f = open(name, 'w')
-            if autoload:
-                for m in autoload.split():
-                    f.write('%s\n' % m)
-            else:
-                f.write('%s\n' % basename)
-            f.close()
+            conf = '%s/%s.conf' % (d.getVar('modulesloaddir'), basename)
+            name = '%s%s' % (dvar, conf)
+            os.makedirs(os.path.dirname(name), exist_ok=True)
+            with open(name, 'w') as f:
+                if autoload:
+                    for m in autoload.split():
+                        f.write('%s\n' % m)
+                else:
+                    f.write('%s\n' % basename)
+            conf2append = ' %s' % conf
+            d.appendVar('FILES:%s' % pkg, conf2append)
+            d.appendVar('CONFFILES:%s' % pkg, conf2append)
             postinst = d.getVar('pkg_postinst:%s' % pkg)
             if not postinst:
                 bb.fatal("pkg_postinst:%s not defined" % pkg)
@@ -120,21 +122,18 @@
         modconflist = (d.getVar("KERNEL_MODULE_PROBECONF") or "").split()
         modconf = d.getVar('module_conf_%s' % basename)
         if modconf and basename in modconflist:
-            name = '%s/etc/modprobe.d/%s.conf' % (dvar, basename)
-            f = open(name, 'w')
-            f.write("%s\n" % modconf)
-            f.close()
+            conf = '%s/%s.conf' % (d.getVar('modprobedir'), basename)
+            name = '%s%s' % (dvar, conf)
+            os.makedirs(os.path.dirname(name), exist_ok=True)
+            with open(name, 'w') as f:
+                f.write("%s\n" % modconf)
+            conf2append = ' %s' % conf
+            d.appendVar('FILES:%s' % pkg, conf2append)
+            d.appendVar('CONFFILES:%s' % pkg, conf2append)
+
         elif modconf:
             bb.error("Please ensure module %s is listed in KERNEL_MODULE_PROBECONF since module_conf_%s is set" % (basename, basename))
 
-        files = d.getVar('FILES:%s' % pkg)
-        files = "%s /etc/modules-load.d/%s.conf /etc/modprobe.d/%s.conf" % (files, basename, basename)
-        d.setVar('FILES:%s' % pkg, files)
-
-        conffiles = d.getVar('CONFFILES:%s' % pkg)
-        conffiles = "%s /etc/modules-load.d/%s.conf /etc/modprobe.d/%s.conf" % (conffiles, basename, basename)
-        d.setVar('CONFFILES:%s' % pkg, conffiles)
-
         if "description" in vals:
             old_desc = d.getVar('DESCRIPTION:' + pkg) or ""
             d.setVar('DESCRIPTION:' + pkg, old_desc + "; " + vals["description"])
@@ -169,8 +168,8 @@
     postrm = d.getVar('pkg_postrm:modules')
 
     if splitmods != '1':
-        etcdir = d.getVar('sysconfdir')
-        d.appendVar('FILES:' + metapkg, '%s/modules-load.d/ %s/modprobe.d/ %s/modules/' % (etcdir, etcdir, d.getVar("nonarch_base_libdir")))
+        d.appendVar('FILES:' + metapkg, '%s %s %s/modules' %
+            (d.getVar('modulesloaddir'), d.getVar('modprobedir'), d.getVar("nonarch_base_libdir")))
         d.appendVar('pkg_postinst:%s' % metapkg, postinst)
         d.prependVar('pkg_postrm:%s' % metapkg, postrm);
         return
@@ -184,14 +183,6 @@
     modules = do_split_packages(d, root='${nonarch_base_libdir}/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='%s-%s' % (kernel_package_name, kernel_version))
     if modules:
         d.appendVar('RDEPENDS:' + metapkg, ' '+' '.join(modules))
-
-    # If modules-load.d and modprobe.d are empty at this point, remove them to
-    # avoid warnings. removedirs only raises an OSError if an empty
-    # directory cannot be removed.
-    dvar = d.getVar('PKGD')
-    for dir in ["%s/etc/modprobe.d" % (dvar), "%s/etc/modules-load.d" % (dvar), "%s/etc" % (dvar)]:
-        if len(os.listdir(dir)) == 0:
-            os.rmdir(dir)
 }
 
 do_package[vardeps] += '${@" ".join(map(lambda s: "module_conf_" + s, (d.getVar("KERNEL_MODULE_PROBECONF") or "").split()))}'
diff --git a/poky/meta/classes-recipe/kernel.bbclass b/poky/meta/classes-recipe/kernel.bbclass
index e82b696..2e95631 100644
--- a/poky/meta/classes-recipe/kernel.bbclass
+++ b/poky/meta/classes-recipe/kernel.bbclass
@@ -181,13 +181,14 @@
 do_clean[cleandirs] += " ${S} ${STAGING_KERNEL_DIR} ${B} ${STAGING_KERNEL_BUILDDIR}"
 python do_symlink_kernsrc () {
     s = d.getVar("S")
-    if s[-1] == '/':
-        # drop trailing slash, so that os.symlink(kernsrc, s) doesn't use s as directory name and fail
-        s=s[:-1]
     kernsrc = d.getVar("STAGING_KERNEL_DIR")
     if s != kernsrc:
         bb.utils.mkdirhier(kernsrc)
         bb.utils.remove(kernsrc, recurse=True)
+        if s[-1] == '/':
+            # drop trailing slash, so that os.symlink(kernsrc, s) doesn't use s as
+            # directory name and fail
+            s = s[:-1]
         if d.getVar("EXTERNALSRC"):
             # With EXTERNALSRC S will not be wiped so we can symlink to it
             os.symlink(s, kernsrc)
@@ -355,6 +356,9 @@
 	export PKG_CONFIG_LIBDIR="$PKG_CONFIG_DIR"
 	export PKG_CONFIG_SYSROOT_DIR=""
 
+	# for newer kernels (5.19+) there's a dedicated variable
+	export HOSTPKG_CONFIG="pkg-config-native"
+
 	if [ "${KERNEL_DEBUG_TIMESTAMPS}" != "1" ]; then
 		# kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH may not
 		# be set....
@@ -426,7 +430,7 @@
 	if (grep -q -i -e '^CONFIG_MODULES=y$' ${B}/.config); then
 		oe_runmake -C ${B} ${PARALLEL_MAKE} modules ${KERNEL_EXTRA_ARGS}
 
-		# Module.symvers gets updated during the 
+		# Module.symvers gets updated during the
 		# building of the kernel modules. We need to
 		# update this in the shared workdir since some
 		# external kernel modules has a dependency on
@@ -483,8 +487,6 @@
 	install -m 0644 .config ${D}/${KERNEL_IMAGEDEST}/config-${KERNEL_VERSION}
 	install -m 0644 vmlinux ${D}/${KERNEL_IMAGEDEST}/vmlinux-${KERNEL_VERSION}
 	[ -e Module.symvers ] && install -m 0644 Module.symvers ${D}/${KERNEL_IMAGEDEST}/Module.symvers-${KERNEL_VERSION}
-	install -d ${D}${sysconfdir}/modules-load.d
-	install -d ${D}${sysconfdir}/modprobe.d
 }
 
 # Must be ran no earlier than after do_kernel_checkout or else Makefile won't be in ${S}/Makefile
@@ -622,7 +624,6 @@
 # We don't need to stage anything, not the modules/firmware since those would clash with linux-firmware
 SYSROOT_DIRS = ""
 
-KERNEL_LOCALVERSION ??= ""
 KERNEL_CONFIG_COMMAND ?= "oe_runmake_call -C ${S} O=${B} olddefconfig || oe_runmake -C ${S} O=${B} oldnoconfig"
 
 python check_oldest_kernel() {
@@ -644,6 +645,9 @@
 	# $ scripts/setlocalversion . => +
 	# $ make kernelversion => 2.6.37
 	# $ make kernelrelease => 2.6.37+
+	# See kernel-arch.bbclass for post v6.3 removal of the extra
+	# + in localversion. .scmversion is no longer used, and the
+	# variable LOCALVERSION must be used
 	if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ]; then
 		echo ${KERNEL_LOCALVERSION} > ${B}/.scmversion
 		echo ${KERNEL_LOCALVERSION} > ${S}/.scmversion
diff --git a/poky/meta/classes-recipe/meson.bbclass b/poky/meta/classes-recipe/meson.bbclass
index 48688be..7f5e9b1 100644
--- a/poky/meta/classes-recipe/meson.bbclass
+++ b/poky/meta/classes-recipe/meson.bbclass
@@ -111,6 +111,7 @@
 strip = ${@meson_array('BUILD_STRIP', d)}
 readelf = ${@meson_array('BUILD_READELF', d)}
 objcopy = ${@meson_array('BUILD_OBJCOPY', d)}
+llvm-config = '${STAGING_BINDIR_NATIVE}/llvm-config'
 pkgconfig = 'pkg-config-native'
 ${@rust_tool(d, "BUILD_SYS")}
 
diff --git a/poky/meta/classes-recipe/npm.bbclass b/poky/meta/classes-recipe/npm.bbclass
index 639f461..91da329 100644
--- a/poky/meta/classes-recipe/npm.bbclass
+++ b/poky/meta/classes-recipe/npm.bbclass
@@ -109,6 +109,7 @@
     import tempfile
     from bb.fetch2.npm import NpmEnvironment
     from bb.fetch2.npm import npm_unpack
+    from bb.fetch2.npm import npm_package
     from bb.fetch2.npmsw import foreach_dependencies
     from bb.progress import OutOfProgressHandler
     from oe.npm_registry import NpmRegistry
@@ -129,22 +130,6 @@
         sha512 = bb.utils.sha512_file(tarball)
         return "sha512-" + base64.b64encode(bytes.fromhex(sha512)).decode()
 
-    def _npmsw_dependency_dict(orig, deptree):
-        """
-        Return the sub dictionary in the 'orig' dictionary corresponding to the
-        'deptree' dependency tree. This function follows the shrinkwrap file
-        format.
-        """
-        ptr = orig
-        for dep in deptree:
-            if "dependencies" not in ptr:
-                ptr["dependencies"] = {}
-            ptr = ptr["dependencies"]
-            if dep not in ptr:
-                ptr[dep] = {}
-            ptr = ptr[dep]
-        return ptr
-
     # Manage the manifest file and shrinkwrap files
     orig_manifest_file = d.expand("${S}/package.json")
     orig_shrinkwrap_file = d.expand("${S}/npm-shrinkwrap.json")
@@ -168,31 +153,44 @@
 
     if has_shrinkwrap_file:
        cached_shrinkwrap = copy.deepcopy(orig_shrinkwrap)
-       cached_shrinkwrap.pop("dependencies", None)
+       for package in orig_shrinkwrap["packages"]:
+            if package != "":
+                cached_shrinkwrap["packages"].pop(package, None)
+       cached_shrinkwrap["packages"][""].pop("dependencies", None)
+       cached_shrinkwrap["packages"][""].pop("devDependencies", None)
+       cached_shrinkwrap["packages"][""].pop("peerDependencies", None)
 
     # Manage the dependencies
     progress = OutOfProgressHandler(d, r"^(\d+)/(\d+)$")
     progress_total = 1 # also count the main package
     progress_done = 0
 
-    def _count_dependency(name, params, deptree):
+    def _count_dependency(name, params, destsuffix):
         nonlocal progress_total
         progress_total += 1
 
-    def _cache_dependency(name, params, deptree):
-        destsubdirs = [os.path.join("node_modules", dep) for dep in deptree]
-        destsuffix = os.path.join(*destsubdirs)
+    def _cache_dependency(name, params, destsuffix):
         with tempfile.TemporaryDirectory() as tmpdir:
             # Add the dependency to the npm cache
             destdir = os.path.join(d.getVar("S"), destsuffix)
             (tarball, pkg) = npm_pack(env, destdir, tmpdir)
             _npm_cache_add(tarball, pkg)
             # Add its signature to the cached shrinkwrap
-            dep = _npmsw_dependency_dict(cached_shrinkwrap, deptree)
+            dep = params
             dep["version"] = pkg['version']
             dep["integrity"] = _npm_integrity(tarball)
             if params.get("dev", False):
                 dep["dev"] = True
+                if "devDependencies" not in cached_shrinkwrap["packages"][""]:
+                    cached_shrinkwrap["packages"][""]["devDependencies"] = {}
+                cached_shrinkwrap["packages"][""]["devDependencies"][name] = pkg['version']
+
+            else:
+                if "dependencies" not in cached_shrinkwrap["packages"][""]:
+                    cached_shrinkwrap["packages"][""]["dependencies"] = {}
+                cached_shrinkwrap["packages"][""]["dependencies"][name] = pkg['version']
+
+            cached_shrinkwrap["packages"][destsuffix] = dep
             # Display progress
             nonlocal progress_done
             progress_done += 1
@@ -203,6 +201,19 @@
     if has_shrinkwrap_file:
         foreach_dependencies(orig_shrinkwrap, _count_dependency, dev)
         foreach_dependencies(orig_shrinkwrap, _cache_dependency, dev)
+    
+    # Manage Peer Dependencies
+    if has_shrinkwrap_file:
+        packages = orig_shrinkwrap.get("packages", {})
+        peer_deps = packages.get("", {}).get("peerDependencies", {})
+        package_runtime_dependencies = d.getVar("RDEPENDS:%s" % d.getVar("PN"))
+        
+        for peer_dep in peer_deps:
+            peer_dep_yocto_name = npm_package(peer_dep)
+            if peer_dep_yocto_name not in package_runtime_dependencies:
+                bb.warn(peer_dep + " is a peer dependencie that is not in RDEPENDS variable. " + 
+                "Please add this peer dependencie to the RDEPENDS variable as %s and generate its recipe with devtool"
+                % peer_dep_yocto_name)
 
     # Configure the main package
     with tempfile.TemporaryDirectory() as tmpdir:
@@ -212,7 +223,7 @@
     # Configure the cached manifest file and cached shrinkwrap file
     def _update_manifest(depkey):
         for name in orig_manifest.get(depkey, {}):
-            version = cached_shrinkwrap["dependencies"][name]["version"]
+            version = cached_shrinkwrap["packages"][""][depkey][name]
             if depkey not in cached_manifest:
                 cached_manifest[depkey] = {}
             cached_manifest[depkey][name] = version
@@ -279,6 +290,9 @@
         args.append(("target_arch", d.getVar("NPM_ARCH")))
         args.append(("build-from-source", "true"))
 
+        # Don't install peer dependencies as they should be in RDEPENDS variable
+        args.append(("legacy-peer-deps", "true"))
+
         # Pack and install the main package
         (tarball, _) = npm_pack(env, d.getVar("NPM_PACKAGE"), tmpdir)
         cmd = "npm install %s %s" % (shlex.quote(tarball), d.getVar("EXTRA_OENPM"))
diff --git a/poky/meta/classes-recipe/ptest-cargo.bbclass b/poky/meta/classes-recipe/ptest-cargo.bbclass
index 4ed5284..5d53abe 100644
--- a/poky/meta/classes-recipe/ptest-cargo.bbclass
+++ b/poky/meta/classes-recipe/ptest-cargo.bbclass
@@ -23,13 +23,13 @@
     bb.note(f"Building tests with cargo ({cmd})")
 
     try:
-        proc = subprocess.Popen(cmd, shell=True, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+        proc = subprocess.Popen(cmd, shell=True, env=env, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True)
     except subprocess.CalledProcessError as e:
         bb.fatal(f"Cannot build test with cargo: {e}")
 
     lines = []
     for line in proc.stdout:
-        data = line.decode('utf-8').strip('\n')
+        data = line.strip('\n')
         lines.append(data)
         bb.note(data)
     proc.communicate()
@@ -50,7 +50,7 @@
                 current_manifest_path = os.path.normpath(data['manifest_path'])
                 project_manifest_path = os.path.normpath(manifest_path)
                 if current_manifest_path == project_manifest_path:
-                    if data['target']['test'] or data['target']['doctest'] and data['executable']:
+                    if (data['target']['test'] or data['target']['doctest']) and data['executable']:
                         test_bins.append(data['executable'])
             except KeyError as e:
                 # skip lines that do not meet the requirements
diff --git a/poky/meta/classes-recipe/rootfs-postcommands.bbclass b/poky/meta/classes-recipe/rootfs-postcommands.bbclass
index 652601b..4492c9c 100644
--- a/poky/meta/classes-recipe/rootfs-postcommands.bbclass
+++ b/poky/meta/classes-recipe/rootfs-postcommands.bbclass
@@ -37,7 +37,7 @@
 ROOTFS_POSTPROCESS_COMMAND += "write_image_test_data; "
 
 # Write manifest
-IMAGE_MANIFEST = "${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.manifest"
+IMAGE_MANIFEST = "${IMGDEPLOYDIR}/${IMAGE_NAME}.manifest"
 ROOTFS_POSTUNINSTALL_COMMAND =+ "write_image_manifest ; "
 # Set default postinst log file
 POSTINST_LOGFILE ?= "${localstatedir}/log/postinstall.log"
diff --git a/poky/meta/classes-recipe/rootfs_rpm.bbclass b/poky/meta/classes-recipe/rootfs_rpm.bbclass
index 6eccd5a..55f1cc9 100644
--- a/poky/meta/classes-recipe/rootfs_rpm.bbclass
+++ b/poky/meta/classes-recipe/rootfs_rpm.bbclass
@@ -20,11 +20,9 @@
 # Dnf is python based, so be sure python3-native is available to us.
 EXTRANATIVEPATH += "python3-native"
 
-# opkg is needed for update-alternatives
 RPMROOTFSDEPENDS = "rpm-native:do_populate_sysroot \
     dnf-native:do_populate_sysroot \
-    createrepo-c-native:do_populate_sysroot \
-    opkg-native:do_populate_sysroot"
+    createrepo-c-native:do_populate_sysroot"
 
 do_rootfs[depends] += "${RPMROOTFSDEPENDS}"
 do_populate_sdk[depends] += "${RPMROOTFSDEPENDS}"
diff --git a/poky/meta/classes-recipe/rust-common.bbclass b/poky/meta/classes-recipe/rust-common.bbclass
index e0cedd7..8782727 100644
--- a/poky/meta/classes-recipe/rust-common.bbclass
+++ b/poky/meta/classes-recipe/rust-common.bbclass
@@ -158,6 +158,10 @@
 WRAPPER_TARGET_CCLD = "${CCLD}"
 WRAPPER_TARGET_LDFLAGS = "${LDFLAGS}"
 WRAPPER_TARGET_EXTRALD = ""
+# see recipes-devtools/gcc/gcc/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
+# we need to link with ssp_nonshared on musl to avoid "undefined reference to `__stack_chk_fail_local'"
+# when building MACHINE=qemux86 for musl
+WRAPPER_TARGET_EXTRALD:libc-musl = "-lssp_nonshared"
 WRAPPER_TARGET_AR = "${AR}"
 
 # compiler is used by gcc-rs
diff --git a/poky/meta/classes-recipe/testexport.bbclass b/poky/meta/classes-recipe/testexport.bbclass
index 0f0c561..572f5d9 100644
--- a/poky/meta/classes-recipe/testexport.bbclass
+++ b/poky/meta/classes-recipe/testexport.bbclass
@@ -61,16 +61,12 @@
         d.getVar("TEST_TARGET"), None, d.getVar("TEST_TARGET_IP"),
         d.getVar("TEST_SERVER_IP"))
 
-    host_dumper = OERuntimeTestContextExecutor.getHostDumper(
-        d.getVar("testimage_dump_host"), d.getVar("TESTIMAGE_DUMP_DIR"))
-
     image_manifest = "%s.manifest" % image_name
     image_packages = OERuntimeTestContextExecutor.readPackagesManifest(image_manifest)
 
     extract_dir = d.getVar("TEST_EXTRACTED_DIR")
 
-    tc = OERuntimeTestContext(td, logger, target, host_dumper,
-                              image_packages, extract_dir)
+    tc = OERuntimeTestContext(td, logger, target, image_packages, extract_dir)
 
     copy_needed_files(d, tc)
 
diff --git a/poky/meta/classes-recipe/testimage.bbclass b/poky/meta/classes-recipe/testimage.bbclass
index 0f02ead..e306834 100644
--- a/poky/meta/classes-recipe/testimage.bbclass
+++ b/poky/meta/classes-recipe/testimage.bbclass
@@ -124,18 +124,6 @@
     find /var/log/ -type f 2>/dev/null -exec echo "====================" \; -exec echo {} \; -exec echo "====================" \; -exec cat {} \; -exec echo "" \;
 }
 
-testimage_dump_host () {
-    top -bn1
-    iostat -x -z -N -d -p ALL 20 2
-    ps -ef
-    free
-    df
-    memstat
-    dmesg
-    ip -s link
-    netstat -an
-}
-
 testimage_dump_monitor () {
     query-status
     query-block
@@ -381,19 +369,13 @@
     # runtime use network for download projects for build
     export_proxies(d)
 
-    # we need the host dumper in test context
-    host_dumper = OERuntimeTestContextExecutor.getHostDumper(
-        d.getVar("testimage_dump_host"),
-        d.getVar("TESTIMAGE_DUMP_DIR"))
-
     # the robot dance
     target = OERuntimeTestContextExecutor.getTarget(
         d.getVar("TEST_TARGET"), logger, d.getVar("TEST_TARGET_IP"),
         d.getVar("TEST_SERVER_IP"), **target_kwargs)
 
     # test context
-    tc = OERuntimeTestContext(td, logger, target, host_dumper,
-                              image_packages, extract_dir)
+    tc = OERuntimeTestContext(td, logger, target, image_packages, extract_dir)
 
     # Load tests before starting the target
     test_paths = get_runtime_paths(d)
diff --git a/poky/meta/classes-recipe/uboot-extlinux-config.bbclass b/poky/meta/classes-recipe/uboot-extlinux-config.bbclass
index 86a7d30..653e583 100644
--- a/poky/meta/classes-recipe/uboot-extlinux-config.bbclass
+++ b/poky/meta/classes-recipe/uboot-extlinux-config.bbclass
@@ -33,11 +33,11 @@
 # UBOOT_EXTLINUX_DEFAULT_LABEL ??= "Linux Default"
 # UBOOT_EXTLINUX_TIMEOUT ??= "30"
 #
-# UBOOT_EXTLINUX_KERNEL_IMAGE_default ??= "../zImage"
-# UBOOT_EXTLINUX_MENU_DESCRIPTION_default ??= "Linux Default"
+# UBOOT_EXTLINUX_KERNEL_IMAGE:default ??= "../zImage"
+# UBOOT_EXTLINUX_MENU_DESCRIPTION:default ??= "Linux Default"
 #
-# UBOOT_EXTLINUX_KERNEL_IMAGE_fallback ??= "../zImage-fallback"
-# UBOOT_EXTLINUX_MENU_DESCRIPTION_fallback ??= "Linux Fallback"
+# UBOOT_EXTLINUX_KERNEL_IMAGE:fallback ??= "../zImage-fallback"
+# UBOOT_EXTLINUX_MENU_DESCRIPTION:fallback ??= "Linux Fallback"
 #
 # Results:
 #
diff --git a/poky/meta/classes/cve-check.bbclass b/poky/meta/classes/cve-check.bbclass
index bd9e7e7..c1f1ea0 100644
--- a/poky/meta/classes/cve-check.bbclass
+++ b/poky/meta/classes/cve-check.bbclass
@@ -48,8 +48,8 @@
 CVE_CHECK_DIR ??= "${DEPLOY_DIR}/cve"
 CVE_CHECK_RECIPE_FILE ?= "${CVE_CHECK_DIR}/${PN}"
 CVE_CHECK_RECIPE_FILE_JSON ?= "${CVE_CHECK_DIR}/${PN}_cve.json"
-CVE_CHECK_MANIFEST ?= "${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cve"
-CVE_CHECK_MANIFEST_JSON ?= "${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.json"
+CVE_CHECK_MANIFEST ?= "${IMGDEPLOYDIR}/${IMAGE_NAME}.cve"
+CVE_CHECK_MANIFEST_JSON ?= "${IMGDEPLOYDIR}/${IMAGE_NAME}.json"
 CVE_CHECK_COPY_FILES ??= "1"
 CVE_CHECK_CREATE_MANIFEST ??= "1"
 
@@ -70,12 +70,28 @@
 # Skip CVE Check for packages (PN)
 CVE_CHECK_SKIP_RECIPE ?= ""
 
-# Ingore the check for a given list of CVEs. If a CVE is found,
-# then it is considered patched. The value is a string containing
-# space separated CVE values:
+# Replace NVD DB check status for a given CVE. Each of CVE has to be mentioned
+# separately with optional detail and description for this status.
 #
-# CVE_CHECK_IGNORE = 'CVE-2014-2524 CVE-2018-1234'
+# CVE_STATUS[CVE-1234-0001] = "not-applicable-platform: Issue only applies on Windows"
+# CVE_STATUS[CVE-1234-0002] = "fixed-version: Fixed externally"
 #
+# Settings the same status and reason for multiple CVEs is possible
+# via CVE_STATUS_GROUPS variable.
+#
+# CVE_STATUS_GROUPS = "CVE_STATUS_WIN CVE_STATUS_PATCHED"
+#
+# CVE_STATUS_WIN = "CVE-1234-0001 CVE-1234-0003"
+# CVE_STATUS_WIN[status] = "not-applicable-platform: Issue only applies on Windows"
+# CVE_STATUS_PATCHED = "CVE-1234-0002 CVE-1234-0004"
+# CVE_STATUS_PATCHED[status] = "fixed-version: Fixed externally"
+#
+# All possible CVE statuses could be found in cve-check-map.conf
+# CVE_CHECK_STATUSMAP[not-applicable-platform] = "Ignored"
+# CVE_CHECK_STATUSMAP[fixed-version] = "Patched"
+#
+# CVE_CHECK_IGNORE is deprecated and CVE_STATUS has to be used instead.
+# Keep CVE_CHECK_IGNORE until other layers migrate to new variables
 CVE_CHECK_IGNORE ?= ""
 
 # Layers to be excluded
@@ -88,6 +104,24 @@
 # set to "alphabetical" for version using single alphabetical character as increment release
 CVE_VERSION_SUFFIX ??= ""
 
+python () {
+    # Fallback all CVEs from CVE_CHECK_IGNORE to CVE_STATUS
+    cve_check_ignore = d.getVar("CVE_CHECK_IGNORE")
+    if cve_check_ignore:
+        bb.warn("CVE_CHECK_IGNORE is deprecated in favor of CVE_STATUS")
+        for cve in (d.getVar("CVE_CHECK_IGNORE") or "").split():
+            d.setVarFlag("CVE_STATUS", cve, "ignored")
+
+    # Process CVE_STATUS_GROUPS to set multiple statuses and optional detail or description at once
+    for cve_status_group in (d.getVar("CVE_STATUS_GROUPS") or "").split():
+        cve_group = d.getVar(cve_status_group)
+        if cve_group is not None:
+            for cve in cve_group.split():
+                d.setVarFlag("CVE_STATUS", cve, d.getVarFlag(cve_status_group, "status"))
+        else:
+            bb.warn("CVE_STATUS_GROUPS contains undefined variable %s" % cve_status_group)
+}
+
 def generate_json_report(d, out_path, link_path):
     if os.path.exists(d.getVar("CVE_CHECK_SUMMARY_INDEX_PATH")):
         import json
@@ -260,7 +294,7 @@
     """
     Connect to the NVD database and find unpatched cves.
     """
-    from oe.cve_check import Version, convert_cve_version
+    from oe.cve_check import Version, convert_cve_version, decode_cve_status
 
     pn = d.getVar("PN")
     real_pv = d.getVar("PV")
@@ -282,7 +316,12 @@
         bb.note("Recipe has been skipped by cve-check")
         return ([], [], [], [])
 
-    cve_ignore = d.getVar("CVE_CHECK_IGNORE").split()
+    # Convert CVE_STATUS into ignored CVEs and check validity
+    cve_ignore = []
+    for cve in (d.getVarFlags("CVE_STATUS") or {}):
+        decoded_status, _, _ = decode_cve_status(d, cve)
+        if decoded_status == "Ignored":
+            cve_ignore.append(cve)
 
     import sqlite3
     db_file = d.expand("file:${CVE_CHECK_DB_FILE}?mode=ro")
@@ -413,6 +452,8 @@
     CVE manifest if enabled.
     """
 
+    from oe.cve_check import decode_cve_status
+
     cve_file = d.getVar("CVE_CHECK_LOG")
     fdir_name  = d.getVar("FILE_DIRNAME")
     layer = fdir_name.split("/")[-3]
@@ -441,20 +482,27 @@
         is_patched = cve in patched
         is_ignored = cve in ignored
 
+        status = "Unpatched"
         if (is_patched or is_ignored) and not report_all:
             continue
+        if is_ignored:
+            status = "Ignored"
+        elif is_patched:
+            status = "Patched"
+        else:
+            # default value of status is Unpatched
+            unpatched_cves.append(cve)
 
         write_string += "LAYER: %s\n" % layer
         write_string += "PACKAGE NAME: %s\n" % d.getVar("PN")
         write_string += "PACKAGE VERSION: %s%s\n" % (d.getVar("EXTENDPE"), d.getVar("PV"))
         write_string += "CVE: %s\n" % cve
-        if is_ignored:
-            write_string += "CVE STATUS: Ignored\n"
-        elif is_patched:
-            write_string += "CVE STATUS: Patched\n"
-        else:
-            unpatched_cves.append(cve)
-            write_string += "CVE STATUS: Unpatched\n"
+        write_string += "CVE STATUS: %s\n" % status
+        _, detail, description = decode_cve_status(d, cve)
+        if detail:
+            write_string += "CVE DETAIL: %s\n" % detail
+        if description:
+            write_string += "CVE DESCRIPTION: %s\n" % description
         write_string += "CVE SUMMARY: %s\n" % cve_data[cve]["summary"]
         write_string += "CVSS v2 BASE SCORE: %s\n" % cve_data[cve]["scorev2"]
         write_string += "CVSS v3 BASE SCORE: %s\n" % cve_data[cve]["scorev3"]
@@ -516,6 +564,8 @@
     Prepare CVE data for the JSON format, then write it.
     """
 
+    from oe.cve_check import decode_cve_status
+
     output = {"version":"1", "package": []}
     nvd_link = "https://nvd.nist.gov/vuln/detail/"
 
@@ -576,6 +626,11 @@
             "status" : status,
             "link": issue_link
         }
+        _, detail, description = decode_cve_status(d, cve)
+        if detail:
+            cve_item["detail"] = detail
+        if description:
+            cve_item["description"] = description
         cve_list.append(cve_item)
 
     package_data["issue"] = cve_list
diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf
index 9625a6f..475d652 100644
--- a/poky/meta/conf/bitbake.conf
+++ b/poky/meta/conf/bitbake.conf
@@ -831,6 +831,7 @@
 include conf/documentation.conf
 include conf/licenses.conf
 require conf/sanity.conf
+require conf/cve-check-map.conf
 
 ##################################################################
 # Weak variables (usually to retain backwards compatibility)
@@ -904,7 +905,7 @@
 
 # Native distro features (will always be used for -native, even if they
 # are not enabled for target)
-DISTRO_FEATURES_NATIVE ?= "x11 ipv6 xattr"
+DISTRO_FEATURES_NATIVE ?= "acl x11 ipv6 xattr"
 DISTRO_FEATURES_NATIVESDK ?= "x11"
 
 # Normally target distro features will not be applied to native builds:
diff --git a/poky/meta/conf/cve-check-map.conf b/poky/meta/conf/cve-check-map.conf
new file mode 100644
index 0000000..17b0f15
--- /dev/null
+++ b/poky/meta/conf/cve-check-map.conf
@@ -0,0 +1,28 @@
+# Possible options for CVE statuses
+
+# used by this class internally when fix is detected (NVD DB version check or CVE patch file)
+CVE_CHECK_STATUSMAP[patched] = "Patched"
+# use when this class does not detect backported patch (e.g. vendor kernel repo with cherry-picked CVE patch)
+CVE_CHECK_STATUSMAP[backported-patch] = "Patched"
+# use when NVD DB does not mention patched versions of stable/LTS branches which have upstream CVE backports
+CVE_CHECK_STATUSMAP[cpe-stable-backport] = "Patched"
+# use when NVD DB does not mention correct version or does not mention any verion at all
+CVE_CHECK_STATUSMAP[fixed-version] = "Patched"
+
+# used internally by this class if CVE vulnerability is detected which is not marked as fixed or ignored
+CVE_CHECK_STATUSMAP[unpatched] = "Unpatched"
+# use when CVE is confirmed by upstream but fix is still not available
+CVE_CHECK_STATUSMAP[vulnerable-investigating] = "Unpatched"
+
+# used for migration from old concept, do not use for new vulnerabilities
+CVE_CHECK_STATUSMAP[ignored] = "Ignored"
+# use when NVD DB wrongly indicates vulnerability which is actually for a different component
+CVE_CHECK_STATUSMAP[cpe-incorrect] = "Ignored"
+# use when upstream does not accept the report as a vulnerability (e.g. works as designed)
+CVE_CHECK_STATUSMAP[disputed] = "Ignored"
+# use when vulnerability depends on build or runtime configuration which is not used
+CVE_CHECK_STATUSMAP[not-applicable-config] = "Ignored"
+# use when vulnerability affects other platform (e.g. Windows or Debian)
+CVE_CHECK_STATUSMAP[not-applicable-platform] = "Ignored"
+# use when upstream acknowledged the vulnerability but does not plan to fix it
+CVE_CHECK_STATUSMAP[upstream-wontfix] = "Ignored"
diff --git a/poky/meta/conf/distro/defaultsetup.conf b/poky/meta/conf/distro/defaultsetup.conf
index f6894f3..1abb509 100644
--- a/poky/meta/conf/distro/defaultsetup.conf
+++ b/poky/meta/conf/distro/defaultsetup.conf
@@ -2,7 +2,7 @@
 include conf/distro/include/default-versions.inc
 include conf/distro/include/default-distrovars.inc
 include conf/distro/include/maintainers.inc
-
+include conf/distro/include/time64.inc
 require conf/distro/include/tcmode-${TCMODE}.inc
 require conf/distro/include/tclibc-${TCLIBC}.inc
 
diff --git a/poky/meta/conf/distro/include/cve-extra-exclusions.inc b/poky/meta/conf/distro/include/cve-extra-exclusions.inc
index 1c3cc36..61fb08d 100644
--- a/poky/meta/conf/distro/include/cve-extra-exclusions.inc
+++ b/poky/meta/conf/distro/include/cve-extra-exclusions.inc
@@ -15,44 +15,43 @@
 # the aim of sharing that work and ensuring we don't duplicate it.
 #
 
+# strace https://nvd.nist.gov/vuln/detail/CVE-2000-0006
+CVE_STATUS[CVE-2000-0006] = "upstream-wontfix: CVE is more than 20 years old \
+with no resolution evident. Broken links in CVE database references make resolution impractical."
 
-# strace https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2000-0006
-# CVE is more than 20 years old with no resolution evident
-# broken links in CVE database references make resolution impractical
-CVE_CHECK_IGNORE += "CVE-2000-0006"
+# epiphany https://nvd.nist.gov/vuln/detail/CVE-2005-0238
+CVE_STATUS[CVE-2005-0238] = "upstream-wontfix: \
+The issue here is spoofing of domain names using characters from other character sets. \
+There has been much discussion amongst the epiphany and webkit developers and \
+whilst there are improvements about how domains are handled and displayed to the user \
+there is unlikely ever to be a single fix to webkit or epiphany which addresses this \
+problem. There isn't any mitigation or fix or way to progress this further."
 
-# epiphany https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2005-0238
-# The issue here is spoofing of domain names using characters from other character sets.
-# There has been much discussion amongst the epiphany and webkit developers and
-# whilst there are improvements about how domains are handled and displayed to the user
-# there is unlikely ever to be a single fix to webkit or epiphany which addresses this
-# problem. Ignore this CVE as there isn't any mitigation or fix or way to progress this further
-# we can seem to take.
-CVE_CHECK_IGNORE += "CVE-2005-0238"
+# glibc https://nvd.nist.gov/vuln/detail/CVE-2010-4756
+CVE_STATUS[CVE-2010-4756] = "upstream-wontfix: \
+Issue is memory exhaustion via glob() calls, e.g. from within an ftp server \
+Best discussion in https://bugzilla.redhat.com/show_bug.cgi?id=681681 \
+Upstream don't see it as a security issue, ftp servers shouldn't be passing \
+this to libc glob. Upstream have no plans to add BSD's GLOB_LIMIT or similar."
 
-# glibc https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-4756
-# Issue is memory exhaustion via glob() calls, e.g. from within an ftp server
-# Best discussion in https://bugzilla.redhat.com/show_bug.cgi?id=681681
-# Upstream don't see it as a security issue, ftp servers shouldn't be passing
-# this to libc glob. Exclude as upstream have no plans to add BSD's GLOB_LIMIT or similar
-CVE_CHECK_IGNORE += "CVE-2010-4756"
-
-# go https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-29509
-# go https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-29511
-# The encoding/xml package in go can potentially be used for security exploits if not used correctly
-# CVE applies to a netapp product as well as flagging a general issue. We don't ship anything
-# exposing this interface in an exploitable way
-CVE_CHECK_IGNORE += "CVE-2020-29509 CVE-2020-29511"
+# go https://nvd.nist.gov/vuln/detail/CVE-2020-29509
+# go https://nvd.nist.gov/vuln/detail/CVE-2020-29511
+CVE_STATUS_GROUPS += "CVE_STATUS_GO"
+CVE_STATUS_GO = "CVE-2020-29509 CVE-2020-29511"
+CVE_STATUS_GO[status] = "not-applicable-config: \
+The encoding/xml package in go can potentially be used for security exploits if not used correctly \
+CVE applies to a netapp product as well as flagging a general issue. We don't ship anything \
+exposing this interface in an exploitable way"
 
 # db
-# Since Oracle relicensed bdb, the open source community is slowly but surely replacing bdb with
-# supported and open source friendly alternatives. As a result these CVEs are unlikely to ever be fixed.
-CVE_CHECK_IGNORE += "CVE-2015-2583 CVE-2015-2624 CVE-2015-2626 CVE-2015-2640 CVE-2015-2654 \
+CVE_STATUS_GROUPS += "CVE_STATUS_DB"
+CVE_STATUS_DB = "CVE-2015-2583 CVE-2015-2624 CVE-2015-2626 CVE-2015-2640 CVE-2015-2654 \
 CVE-2015-2656 CVE-2015-4754 CVE-2015-4764 CVE-2015-4774 CVE-2015-4775 CVE-2015-4776 CVE-2015-4777 \
 CVE-2015-4778 CVE-2015-4779 CVE-2015-4780 CVE-2015-4781 CVE-2015-4782 CVE-2015-4783 CVE-2015-4784 \
 CVE-2015-4785 CVE-2015-4786 CVE-2015-4787 CVE-2015-4788 CVE-2015-4789 CVE-2015-4790 CVE-2016-0682 \
 CVE-2016-0689 CVE-2016-0692 CVE-2016-0694 CVE-2016-3418 CVE-2020-2981"
-
+CVE_STATUS_DB[status] = "upstream-wontfix: Since Oracle relicensed bdb, the open source community is slowly but surely \
+replacing bdb with supported and open source friendly alternatives. As a result this CVE is unlikely to ever be fixed."
 
 #
 # Kernel CVEs, e.g. linux-yocto*
@@ -65,605 +64,64 @@
 # issues to be visible. If anyone wishes to clean up CPE entries with NIST for these, we'd
 # welcome than and then entries can likely be removed from here.
 #
+
+CVE_STATUS_GROUPS += "CVE_STATUS_KERNEL_2010 CVE_STATUS_KERNEL_2017 CVE_STATUS_KERNEL_2018 CVE_STATUS_KERNEL_2020 \
+                      CVE_STATUS_KERNEL_2021 CVE_STATUS_KERNEL_2022"
+
 # 1999-2010
-CVE_CHECK_IGNORE += "CVE-1999-0524 CVE-1999-0656 CVE-2006-2932 CVE-2007-2764 CVE-2007-4998 CVE-2008-2544 \
-                     CVE-2008-4609 CVE-2010-0298 CVE-2010-4563"
+CVE_STATUS_KERNEL_2010 = "CVE-1999-0524 CVE-1999-0656 CVE-2006-2932 CVE-2007-2764 CVE-2007-4998 CVE-2008-2544 \
+                          CVE-2008-4609 CVE-2010-0298 CVE-2010-4563"
+CVE_STATUS_KERNEL_2010[status] = "ignored"
+
 # 2011-2017
-CVE_CHECK_IGNORE += "CVE-2011-0640 CVE-2014-2648 CVE-2014-8171 CVE-2016-0774 CVE-2016-3695 CVE-2016-3699 \
-                     CVE-2017-1000255 CVE-2017-1000377 CVE-2017-5897 CVE-2017-6264"
+CVE_STATUS_KERNEL_2017 = "CVE-2011-0640 CVE-2014-2648 CVE-2014-8171 CVE-2016-0774 CVE-2016-3695 CVE-2016-3699 \
+                          CVE-2017-1000255 CVE-2017-1000377 CVE-2017-5897 CVE-2017-6264"
+CVE_STATUS_KERNEL_2017[status] = "ignored"
+
 # 2018
-CVE_CHECK_IGNORE += "CVE-2018-1000026 CVE-2018-10840 CVE-2018-10876 CVE-2018-10882 CVE-2018-10901 CVE-2018-10902 \
-                     CVE-2018-14625 CVE-2018-16880 CVE-2018-16884 CVE-2018-5873"
-
-# This is specific to Ubuntu
-CVE_CHECK_IGNORE += "CVE-2018-6559"
-
-# https://www.linuxkernelcves.com/cves/CVE-2019-3016
-# Fixed with 5.6
-CVE_CHECK_IGNORE += "CVE-2019-3016"
-
-# https://www.linuxkernelcves.com/cves/CVE-2019-3819
-# Fixed with 5.1
-CVE_CHECK_IGNORE += "CVE-2019-3819"
-
-# https://www.linuxkernelcves.com/cves/CVE-2019-3887
-# Fixed with 5.2
-CVE_CHECK_IGNORE += "CVE-2019-3887"
+CVE_STATUS_KERNEL_2018 = "CVE-2018-1000026 CVE-2018-10840 CVE-2018-10876 CVE-2018-10882 CVE-2018-10901 CVE-2018-10902 \
+                           CVE-2018-14625 CVE-2018-16880 CVE-2018-16884 CVE-2018-5873"
+CVE_STATUS_KERNEL_2018[status] = "ignored"
 
 # 2020
-CVE_CHECK_IGNORE += "CVE-2020-10732 CVE-2020-10742 CVE-2020-16119 CVE-2020-1749 CVE-2020-25672 CVE-2020-27820 CVE-2020-35501 CVE-2020-8834"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2020-27784
-# Introduced in version v4.1 b26394bd567e5ebe57ec4dee7fe6cd14023c96e9
-# Patched in kernel since v5.10	e8d5f92b8d30bb4ade76494490c3c065e12411b1
-# Backported in version v5.4.73	e9e791f5c39ab30e374a3b1a9c25ca7ff24988f3
-CVE_CHECK_IGNORE += "CVE-2020-27784"
+CVE_STATUS_KERNEL_2020 = "CVE-2020-10732 CVE-2020-10742 CVE-2020-16119 CVE-2020-1749 CVE-2020-25672 CVE-2020-27820 CVE-2020-35501 CVE-2020-8834"
+CVE_STATUS_KERNEL_2020[status] = "ignored"
 
 # 2021
-CVE_CHECK_IGNORE += "CVE-2021-20194 CVE-2021-20226 CVE-2021-20265 CVE-2021-3564 CVE-2021-3743 CVE-2021-3847 CVE-2021-4002 \
-                     CVE-2021-4090 CVE-2021-4095 CVE-2021-4197 CVE-2021-4202 CVE-2021-44879 CVE-2021-45402"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2021-3669
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.15 20401d1058f3f841f35a594ac2fc1293710e55b9
-CVE_CHECK_IGNORE += "CVE-2021-3669"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2021-3759
-# Introduced in version v4.5 a9bb7e620efdfd29b6d1c238041173e411670996
-# Patched in kernel since v5.15 18319498fdd4cdf8c1c2c48cd432863b1f915d6f
-# Backported in version v5.4.224 bad83d55134e647a739ebef2082541963f2cbc92
-# Backported in version v5.10.154 836686e1a01d7e2fda6a5a18252243ff30a6e196
-CVE_CHECK_IGNORE += "CVE-2021-3759"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2021-4218
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.8 32927393dc1ccd60fb2bdc05b9e8e88753761469
-CVE_CHECK_IGNORE += "CVE-2021-4218"
+CVE_STATUS_KERNEL_2021 = "CVE-2021-20194 CVE-2021-20226 CVE-2021-20265 CVE-2021-3564 CVE-2021-3743 CVE-2021-3847 CVE-2021-4002 \
+                          CVE-2021-4090 CVE-2021-4095 CVE-2021-4197 CVE-2021-4202 CVE-2021-44879 CVE-2021-45402"
+CVE_STATUS_KERNEL_2021[status] = "ignored"
 
 # 2022
-CVE_CHECK_IGNORE += "CVE-2022-0185 CVE-2022-0264 CVE-2022-0286 CVE-2022-0330 CVE-2022-0382 CVE-2022-0433 CVE-2022-0435 \
-                     CVE-2022-0492 CVE-2022-0494 CVE-2022-0500 CVE-2022-0516 CVE-2022-0617 CVE-2022-0742 CVE-2022-0854 \
-                     CVE-2022-0995 CVE-2022-0998 CVE-2022-1011 CVE-2022-1015 CVE-2022-1048 CVE-2022-1055 CVE-2022-1195 \
-                     CVE-2022-1353 CVE-2022-24122 CVE-2022-24448 CVE-2022-24958 CVE-2022-24959 CVE-2022-25258 CVE-2022-25265 \
-                     CVE-2022-25375 CVE-2022-26490 CVE-2022-26878 CVE-2022-26966 CVE-2022-27223 CVE-2022-27666 CVE-2022-27950 \
-                     CVE-2022-28356 CVE-2022-28388 CVE-2022-28389 CVE-2022-28390 CVE-2022-28796 CVE-2022-28893 CVE-2022-29156 \
-                     CVE-2022-29582 CVE-2022-29968"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-0480
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.15 0f12156dff2862ac54235fc72703f18770769042
-CVE_CHECK_IGNORE += "CVE-2022-0480"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-1184
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.19 46c116b920ebec58031f0a78c5ea9599b0d2a371
-# Backported in version v5.4.198 17034d45ec443fb0e3c0e7297f9cd10f70446064
-# Backported in version v5.10.121 da2f05919238c7bdc6e28c79539f55c8355408bb
-# Backported in version v5.15.46 ca17db384762be0ec38373a12460081d22a8b42d
-CVE_CHECK_IGNORE += "CVE-2022-1184"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-1462
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.19 a501ab75e7624d133a5a3c7ec010687c8b961d23
-# Backported in version v5.4.208 f7785092cb7f022f59ebdaa181651f7c877df132
-# Backported in version v5.10.134 08afa87f58d83dfe040572ed591b47e8cb9e225c
-# Backported in version v5.15.58 b2d1e4cd558cffec6bfe318f5d74e6cffc374d29
-CVE_CHECK_IGNORE += "CVE-2022-1462"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-2196
-# Introduced in version v5.8 5c911beff20aa8639e7a1f28988736c13e03ed54
-# Breaking commit backported in v5.4.47 64b8f33b2e1e687d465b5cb382e7bec495f1e026
-# Patched in kernel since v6.2 2e7eab81425ad6c875f2ed47c0ce01e78afc38a5
-# Backported in version v5.4.233 f93a1a5bdcdd122aae0a3eab7a52c15b71fb725b
-# Backported in version v5.10.170 1b0cafaae8884726c597caded50af185ffc13349
-# Backported in version v5.15.96 6b539a7dbb49250f92515c2ba60aea239efc9e35
-# Backported in version v6.1.14 63fada296062e91ad9f871970d4e7f19e21a6a15
-CVE_CHECK_IGNORE += "CVE-2022-2196"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-2308
-# Introduced in version v5.15 c8a6153b6c59d95c0e091f053f6f180952ade91e
-# Patched in kernel since v6.0 46f8a29272e51b6df7393d58fc5cb8967397ef2b
-# Backported in version v5.15.72 dc248ddf41eab4566e95b1ee2433c8a5134ad94a
-# Backported in version v5.19.14 38d854c4a11c3bbf6a96ea46f14b282670c784ac
-CVE_CHECK_IGNORE += "CVE-2022-2308"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-2327
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.10.125 df3f3bb5059d20ef094d6b2f0256c4bf4127a859
-CVE_CHECK_IGNORE += "CVE-2022-2327"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-2663
-# Introduced in version v2.6.20 869f37d8e48f3911eb70f38a994feaa8f8380008
-# Patched in kernel since v6.0 0efe125cfb99e6773a7434f3463f7c2fa28f3a43
-# Backported in version v5.4.213 36f7b71f8ad8e4d224b45f7d6ecfeff63b091547
-# Backported in version v5.10.143 e12ce30fe593dd438c5b392290ad7316befc11ca
-# Backported in version v5.15.68 451c9ce1e2fc9b9e40303bef8e5a0dca1a923cc4
-# Backported in version v5.19.9 6cf0609154b2ce8d3ae160e7506ab316400a8d3d
-CVE_CHECK_IGNORE += "CVE-2022-2663"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-2785
-# Introduced in version v5.18 b1d18a7574d0df5eb4117c14742baf8bc2b9bb74
-# Patched in kernel since v6.0 86f44fcec22ce2979507742bc53db8400e454f46
-# Backported in version v5.19.4 b429d0b9a7a0f3dddb1f782b72629e6353f292fd
-CVE_CHECK_IGNORE += "CVE-2022-2785"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3176
-# Introduced in version v5.1 221c5eb2338232f7340386de1c43decc32682e58
-# Patched in kernel since v5.17 791f3465c4afde02d7f16cf7424ca87070b69396
-# Backported in version v5.15.65 e9d7ca0c4640cbebe6840ee3bac66a25a9bacaf5
-CVE_CHECK_IGNORE += "CVE-2022-3176"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3424
-# Introduced in version v2.6.33 55484c45dbeca2eec7642932ec3f60f8a2d4bdbf
-# Patched in kernel since v6.2 643a16a0eb1d6ac23744bb6e90a00fc21148a9dc
-# Backported in version v5.4.229 0078dd8758561540ed30b2c5daa1cb647e758977
-# Backported in version v5.10.163 0f67ed565f20ea2fdd98e3b0b0169d9e580bb83c
-# Backported in version v5.15.86 d5c8f9003a289ee2a9b564d109e021fc4d05d106
-# Backported in version v6.1.2 4e947fc71bec7c7da791f8562d5da233b235ba5e
-CVE_CHECK_IGNORE += "CVE-2022-3424"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3435
-# Introduced in version v5.18 6bf92d70e690b7ff12b24f4bfff5e5434d019b82
-# Breaking commit backported in v5.4.189 f5064531c23ad646da7be8b938292b00a7e61438
-# Breaking commit backported in v5.10.111 63ea57478aaa3e06a597081a0f537318fc04e49f
-# Breaking commit backported in v5.15.34 907c97986d6fa77318d17659dd76c94b65dd27c5
-# Patched in kernel since v6.1 61b91eb33a69c3be11b259c5ea484505cd79f883
-# Backported in version v5.4.226 cc3cd130ecfb8b0ae52e235e487bae3f16a24a32
-# Backported in version v5.10.158 0b5394229ebae09afc07aabccb5ffd705ffd250e
-# Backported in version v5.15.82 25174d91e4a32a24204060d283bd5fa6d0ddf133
-CVE_CHECK_IGNORE += "CVE-2022-3435"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3526
-# Introduced in version v5.13 427f0c8c194b22edcafef1b0a42995ddc5c2227d
-# Patched in kernel since v5.18 e16b859872b87650bb55b12cca5a5fcdc49c1442
-# Backported in version v5.15.35 8f79ce226ad2e9b2ec598de2b9560863b7549d1b
-CVE_CHECK_IGNORE += "CVE-2022-3526"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3534
-# Introduced in version v5.10 919d2b1dbb074d438027135ba644411931179a59
-# Patched in kernel since v6.2 93c660ca40b5d2f7c1b1626e955a8e9fa30e0749
-# Backported in version v5.10.163 c61650b869e0b6fb0c0a28ed42d928eea969afc8
-# Backported in version v5.15.86 a733bf10198eb5bb927890940de8ab457491ed3b
-# Backported in version v6.1.2 fbe08093fb2334549859829ef81d42570812597d
-CVE_CHECK_IGNORE += "CVE-2022-3534"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3564
-# Introduced in version v3.6 4b51dae96731c9d82f5634e75ac7ffd3b9c1b060
-# Patched in kernel since v6.1 3aff8aaca4e36dc8b17eaa011684881a80238966
-# Backported in version v5.10.154 cb1c012099ef5904cd468bdb8d6fcdfdd9bcb569
-# Backported in version v5.15.78 8278a87bb1eeea94350d675ef961ee5a03341fde
-CVE_CHECK_IGNORE += "CVE-2022-3564"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3619
-# Introduced in version v5.12 4d7ea8ee90e42fc75995f6fb24032d3233314528
-# Patched in kernel since v6.1 7c9524d929648935bac2bbb4c20437df8f9c3f42
-# Backported in version v5.15.78 aa16cac06b752e5f609c106735bd7838f444784c
-CVE_CHECK_IGNORE += "CVE-2022-3619"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3621
-# Introduced in version v2.60.30 05fe58fdc10df9ebea04c0eaed57adc47af5c184
-# Patched in kernel since v6.1 21a87d88c2253350e115029f14fe2a10a7e6c856
-# Backported in version v5.4.218 792211333ad77fcea50a44bb7f695783159fc63c
-# Backported in version v5.10.148 3f840480e31495ce674db4a69912882b5ac083f2
-# Backported in version v5.15.74 1e512c65b4adcdbdf7aead052f2162b079cc7f55
-# Backported in version v5.19.16 caf2c6b580433b3d3e413a3d54b8414a94725dcd
-CVE_CHECK_IGNORE += "CVE-2022-3621"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3623
-# Introduced in version v5.1 5480280d3f2d11d47f9be59d49b20a8d7d1b33e8
-# Patched in kernel since v6.1 fac35ba763ed07ba93154c95ffc0c4a55023707f
-# Backported in version v5.4.228 176ba4c19d1bb153aa6baaa61d586e785b7d736c
-# Backported in version v5.10.159 fccee93eb20d72f5390432ecea7f8c16af88c850
-# Backported in version v5.15.78 3a44ae4afaa5318baed3c6e2959f24454e0ae4ff
-# Backported in version v5.19.17 86a913d55c89dd13ba070a87f61a493563e94b54
-CVE_CHECK_IGNORE += "CVE-2022-3623"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3624
-# Introduced in version v6.0 d5410ac7b0baeca91cf73ff5241d35998ecc8c9e
-# Patched in kernel since v6.0 4f5d33f4f798b1c6d92b613f0087f639d9836971
-CVE_CHECK_IGNORE += "CVE-2022-3624"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3625
-# Introduced in version v4.19 45f05def5c44c806f094709f1c9b03dcecdd54f0
-# Patched in kernel since v6.0 6b4db2e528f650c7fb712961aac36455468d5902
-# Backported in version v5.4.211 1ad4ba9341f15412cf86dc6addbb73871a10212f
-# Backported in version v5.10.138 0e28678a770df7989108327cfe86f835d8760c33
-# Backported in version v5.15.63 c4d09fd1e18bac11c2f7cf736048112568687301
-# Backported in version v5.19.4 26bef5616255066268c0e40e1da10cc9b78b82e9
-CVE_CHECK_IGNORE += "CVE-2022-3625"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3629
-# Introduced in version v3.9 d021c344051af91f42c5ba9fdedc176740cbd238
-# Patched in kernel since v6.0 7e97cfed9929eaabc41829c395eb0d1350fccb9d
-# Backported in version v5.4.211 f82f1e2042b397277cd39f16349950f5abade58d
-# Backported in version v5.10.138 38ddccbda5e8b762c8ee06670bb1f64f1be5ee50
-# Backported in version v5.15.63 e4c0428f8a6fc8c218d7fd72bddd163f05b29795
-# Backported in version v5.19.4 8ff5db3c1b3d6797eda5cd326dcd31b9cd1c5f72
-CVE_CHECK_IGNORE += "CVE-2022-3629"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3630
-# Introduced in version v5.19 85e4ea1049c70fb99de5c6057e835d151fb647da
-# Patched in kernel since v6.0 fb24771faf72a2fd62b3b6287af3c610c3ec9cf1
-# Backported in version v5.19.4 7a369dc87b66acc85d0cffcf39984344a203e20b
-CVE_CHECK_IGNORE += "CVE-2022-3630"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3633
-# Introduced in version v5.4 9d71dd0c70099914fcd063135da3c580865e924c
-# Patched in kernel since v6.0 8c21c54a53ab21842f5050fa090f26b03c0313d6
-# Backported in version v5.4.211 04e41b6bacf474f5431491f92e981096e8cc8e93
-# Backported in version v5.10.138 a220ff343396bae8d3b6abee72ab51f1f34b3027
-# Backported in version v5.15.63 98dc8fb08299ab49e0b9c08daedadd2f4de1a2f2
-# Backported in version v5.19.4 a0278dbeaaf7ca60346c62a9add65ae7d62564de
-CVE_CHECK_IGNORE += "CVE-2022-3633"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3635
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v6.0 3f4093e2bf4673f218c0bf17d8362337c400e77b
-# Backported in version v5.4.211 9a6cbaa50f263b12df18a051b37f3f42f9fb5253
-# Backported in version v5.10.138 a0ae122e9aeccbff75014c4d36d11a9d32e7fb5e
-# Backported in version v5.15.63 a5d7ce086fe942c5ab422fd2c034968a152be4c4
-# Backported in version v5.19.4 af412b252550f9ac36d9add7b013c2a2c3463835
-CVE_CHECK_IGNORE += "CVE-2022-3635"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3636
-# Introduced in version v5.19 33fc42de33278b2b3ec6f3390512987bc29a62b7
-# Patched in kernel since v5.19 17a5f6a78dc7b8db385de346092d7d9f9dc24df6
-CVE_CHECK_IGNORE += "CVE-2022-3636"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3640
-# Introduced in version v5.19 d0be8347c623e0ac4202a1d4e0373882821f56b0
-# Breaking commit backported in v5.4.209 098e07ef0059296e710a801cdbd74b59016e6624
-# Breaking commit backported in v5.10.135 de5d4654ac6c22b1be756fdf7db18471e7df01ea
-# Breaking commit backported in v5.15.59 f32d5615a78a1256c4f557ccc6543866e75d03f4
-# Patched in kernel since v6.1 0d0e2d032811280b927650ff3c15fe5020e82533
-# Backported in version v5.4.224 c1f594dddd9ffd747c39f49cc5b67a9b7677d2ab
-# Backported in version v5.10.154 d9ec6e2fbd4a565b2345d4852f586b7ae3ab41fd
-# Backported in version v5.15.78 a3a7b2ac64de232edb67279e804932cb42f0b52a
-CVE_CHECK_IGNORE += "CVE-2022-3640"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3646
-# Introduced in version v2.6.30 9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453
-# Patched in kernel since v6.1 d0d51a97063db4704a5ef6bc978dddab1636a306
-# Backported in version v5.4.218 b7e409d11db9ce9f8bc05fcdfa24d143f60cd393
-# Backported in version v5.10.148 aad4c997857f1d4b6c1e296c07e4729d3f8058ee
-# Backported in version v5.15.74 44b1ee304bac03f1b879be5afe920e3a844e40fc
-# Backported in version v5.19.16 4755fcd844240857b525f6e8d8b65ee140fe9570
-CVE_CHECK_IGNORE += "CVE-2022-3646"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3649
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v6.1 d325dc6eb763c10f591c239550b8c7e5466a5d09
-# Backported in version v5.4.220 d1c2d820a2cd73867b7d352e89e92fb3ac29e926
-# Backported in version v5.10.148 21ee3cffed8fbabb669435facfd576ba18ac8652
-# Backported in version v5.15.74 cb602c2b654e26763226d8bd27a702f79cff4006
-# Backported in version v5.19.16 394b2571e9a74ddaed55aa9c4d0f5772f81c21e4
-CVE_CHECK_IGNORE += "CVE-2022-3649"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-4382
-# Introduced in version v5.3 e5d82a7360d124ae1a38c2a5eac92ba49b125191
-# Patched in kernel since v6.2-rc5 d18dcfe9860e842f394e37ba01ca9440ab2178f4
-# Backported in version v5.4.230 9a39f4626b361ee7aa10fd990401c37ec3b466ae
-# Backported in version v5.10.165 856e4b5e53f21edbd15d275dde62228dd94fb2b4
-# Backported in version v5.15.90 a2e075f40122d8daf587db126c562a67abd69cf9
-# Backported in version v6.1.8 616fd34d017000ecf9097368b13d8a266f4920b3
-CVE_CHECK_IGNORE += "CVE-2022-4382"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-26365
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.19 2f446ffe9d737e9a844b97887919c4fda18246e7
-# Backported in version v5.4.204 42112e8f94617d83943f8f3b8de2b66041905506
-# Backported in version v5.10.129 cfea428030be836d79a7690968232bb7fa4410f1
-# Backported in version v5.15.53 7ed65a4ad8fa9f40bc3979b32c54243d6a684ec9
-CVE_CHECK_IGNORE += "CVE-2022-26365"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-33740
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.19 307c8de2b02344805ebead3440d8feed28f2f010
-# Backported in version v5.4.204 04945b5beb73019145ac17a2565526afa7293c14
-# Backported in version v5.10.129 728d68bfe68d92eae1407b8a9edc7817d6227404
-# Backported in version v5.15.53 5dd0993c36832d33820238fc8dc741ba801b7961
-CVE_CHECK_IGNORE += "CVE-2022-33740"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-33741
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.19 4491001c2e0fa69efbb748c96ec96b100a5cdb7e
-# Backported in version v5.4.204 ede57be88a5fff42cd00e6bcd071503194d398dd
-# Backported in version v5.10.129 4923217af5742a796821272ee03f8d6de15c0cca
-# Backported in version v5.15.53 ed3cfc690675d852c3416aedb271e0e7d179bf49
-CVE_CHECK_IGNORE += "CVE-2022-33741"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-33742
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.19 2400617da7eebf9167d71a46122828bc479d64c9
-# Backported in version v5.4.204 60ac50daad36ef3fe9d70d89cfe3b95d381db997
-# Backported in version v5.10.129 cbbd2d2531539212ff090aecbea9877c996e6ce6
-# Backported in version v5.15.53 6d0a9127279a4533815202e30ad1b3a39f560ba3
-CVE_CHECK_IGNORE += "CVE-2022-33742"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-42895
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v6.1 b1a2cd50c0357f243b7435a732b4e62ba3157a2e
-# Backported in version v5.15.78 3e4697ffdfbb38a2755012c4e571546c89ab6422
-# Backported in version v5.10.154 26ca2ac091b49281d73df86111d16e5a76e43bd7
-# Backported in version v5.4.224 6949400ec9feca7f88c0f6ca5cb5fdbcef419c89
-CVE_CHECK_IGNORE += "CVE-2022-42895"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2022-42896
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v6.1 711f8c3fb3db61897080468586b970c87c61d9e4
-# Backported in version v5.4.226 0d87bb6070361e5d1d9cb391ba7ee73413bc109b
-# Backported in version v5.10.154 6b6f94fb9a74dd2891f11de4e638c6202bc89476
-# Backported in version v5.15.78 81035e1201e26d57d9733ac59140a3e29befbc5a
-CVE_CHECK_IGNORE += "CVE-2022-42896"
+CVE_STATUS_KERNEL_2022 = "CVE-2022-0185 CVE-2022-0264 CVE-2022-0286 CVE-2022-0330 CVE-2022-0382 CVE-2022-0433 CVE-2022-0435 \
+                          CVE-2022-0492 CVE-2022-0494 CVE-2022-0500 CVE-2022-0516 CVE-2022-0617 CVE-2022-0742 CVE-2022-0854 \
+                          CVE-2022-0995 CVE-2022-0998 CVE-2022-1011 CVE-2022-1015 CVE-2022-1048 CVE-2022-1055 CVE-2022-1195 \
+                          CVE-2022-1353 CVE-2022-24122 CVE-2022-24448 CVE-2022-24958 CVE-2022-24959 CVE-2022-25258 CVE-2022-25265 \
+                          CVE-2022-25375 CVE-2022-26490 CVE-2022-26878 CVE-2022-26966 CVE-2022-27223 CVE-2022-27666 CVE-2022-27950 \
+                          CVE-2022-28356 CVE-2022-28388 CVE-2022-28389 CVE-2022-28390 CVE-2022-28796 CVE-2022-28893 CVE-2022-29156 \
+                          CVE-2022-29582 CVE-2022-29968"
+CVE_STATUS_KERNEL_2022[status] = "ignored"
 
 
-# 2023
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-0179
-# Patched in kernel since v6.2 696e1a48b1a1b01edad542a1ef293665864a4dd0
-# Backported in version v5.10.164 550efeff989b041f3746118c0ddd863c39ddc1aa
-# Backported in version v5.15.89 a8acfe2c6fb99f9375a9325807a179cd8c32e6e3
-# Backported in version v6.1.7 76ef74d4a379faa451003621a84e3498044e7aa3
-CVE_CHECK_IGNORE += "CVE-2023-0179"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-0266
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v6.2 56b88b50565cd8b946a2d00b0c83927b7ebb055e
-# Backported in version v5.15.88 26350c21bc5e97a805af878e092eb8125843fe2c
-# Backported in version v6.1.6 d6ad4bd1d896ae1daffd7628cd50f124280fb8b1
-CVE_CHECK_IGNORE += "CVE-2023-0266"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-0394
-# Introduced in version 2.6.12 357b40a18b04c699da1d45608436e9b76b50e251
-# Patched in kernel since v6.2 cb3e9864cdbe35ff6378966660edbcbac955fe17
-# Backported in version v5.4.229 3998dba0f78a59922b0ef333ccfeb58d9410cd3d
-# Backported in version v5.10.164 6c9e2c11c33c35563d34d12b343d43b5c12200b5
-# Backported in version v5.15.89 456e3794e08a0b59b259da666e31d0884b376bcf
-# Backported in version v6.1.7 0afa5f0736584411771299074bbeca8c1f9706d4
-CVE_CHECK_IGNORE += "CVE-2023-0394"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-0461
-# Introduced in version v4.13 734942cc4ea6478eed125af258da1bdbb4afe578
-# Patched in kernel since v6.2 2c02d41d71f90a5168391b6a5f2954112ba2307c
-# Backported in version v5.4.229 c6d29a5ffdbc362314853462a0e24e63330a654d
-# Backported in version v5.10.163 f8ed0a93b5d576bbaf01639ad816473bdfd1dcb0
-# Backported in version v5.15.88 dadd0dcaa67d27f550131de95c8e182643d2c9d6
-# Backported in version v6.1.5 7d242f4a0c8319821548c7176c09a6e0e71f223c
-CVE_CHECK_IGNORE += "CVE-2023-0461"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-0386
-# Introduced in 5.11 459c7c565ac36ba09ffbf24231147f408fde4203
-# Patched in kernel v6.2 4f11ada10d0ad3fd53e2bd67806351de63a4f9c3
-# Backported in version 6.1.9 42fea1c35254c49cce07c600d026cbc00c6d3c81
-# Backported in version 5.15.91 e91308e63710574c4b6a0cadda3e042a3699666e
-CVE_CHECK_IGNORE += "CVE-2023-0386"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1073
-# Introduced in v3.16 1b15d2e5b8077670b1e6a33250a0d9577efff4a5
-# Patched in kernel v6.2 b12fece4c64857e5fab4290bf01b2e0317a88456
-# Backported in version 5.10.166 5dc3469a1170dd1344d262a332b26994214eeb58
-# Backported in version 5.15.91 2b49568254365c9c247beb0eabbaa15d0e279d64
-# Backported in version 6.1.9 cdcdc0531a51659527fea4b4d064af343452062d
-CVE_CHECK_IGNORE += "CVE-2023-1073"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1074
-# Patched in kernel v6.2 458e279f861d3f61796894cd158b780765a1569f
-# Backported in version 5.15.91 3391bd42351be0beb14f438c7556912b9f96cb32
-# Backported in version 6.1.9 9f08bb650078dca24a13fea1c375358ed6292df3
-CVE_CHECK_IGNORE += "CVE-2023-1074"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1076
-# Patched in kernel v6.3 a096ccca6e503a5c575717ff8a36ace27510ab0a
-# Backported in version v5.4.235 d92d87000eda9884d49f1acec1c1fccd63cd9b11
-# Backported in version v5.10.173 9a31af61f397500ccae49d56d809b2217d1e2178
-# Backported in version v5.15.99 67f9f02928a34aad0a2c11dab5eea269f5ecf427
-# Backported in version v6.1.16 b4ada752eaf1341f47bfa3d8ada377eca75a8d44
-# Backported in version v6.2.3 4aa4b4b3b3e9551c4de2bf2987247c28805fb8f6
-CVE_CHECK_IGNORE += "CVE-2023-1076"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1077
-# Patched in kernel 6.3rc1 7c4a5b89a0b5a57a64b601775b296abf77a9fe97
-# Backported in version 5.15.99 2c36c390a74981d03f04f01fe7ee9c3ac3ea11f7
-# Backported in version 6.1.16 6b4fcc4e8a3016e85766c161daf0732fca16c3a3
-CVE_CHECK_IGNORE += "CVE-2023-1077"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1078
-# Patched in kernel 6.2 f753a68980cf4b59a80fe677619da2b1804f526d
-# Backported in version 5.15.94 528e3f3a4b53df36dafd10cdf6b8c0fe2aa1c4ba
-# Backported in version 6.1.12 1d52bbfd469af69fbcae88c67f160ce1b968e7f3
-CVE_CHECK_IGNORE += "CVE-2023-1078"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1079
-# Patched in kernel since v6.3-rc1 4ab3a086d10eeec1424f2e8a968827a6336203df
-# Backported in version v5.4.235 dd08e68d04d08d2f42b09162c939a0b0841216cc
-# Backported in version v5.10.173 21a2eec4a440060a6eb294dc890eaf553101ba09
-# Backported in version v5.15.99 3959316f8ceb17866646abc6be4a332655407138
-# Backported in version v6.1.16 ee907829b36949c452c6f89485cb2a58e97c048e
-# Backported in version v6.2.3 b08bcfb4c97d7bd41b362cff44b2c537ce9e8540
-CVE_CHECK_IGNORE += "CVE-2023-1079"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1118
-# Introduced in version v2.6.36 9ea53b74df9c4681f5bb2da6b2e10e37d87ea6d6
-# Patched in kernel since v6.3-rc1 29b0589a865b6f66d141d79b2dd1373e4e50fe17
-# Backported in version v5.4.235 d120334278b370b6a1623a75ebe53b0c76cb247c
-# Backported in version v5.10.173 78da5a378bdacd5bf68c3a6389bdc1dd0c0f5b3c
-# Backported in version v5.15.99 29962c478e8b2e6a6154d8d84b8806dbe36f9c28
-# Backported in version v6.1.16 029c1410e345ce579db5c007276340d072aac54a
-# Backported in version v6.2.3 182ea492aae5b64067277e60a4ea5995c4628555
-CVE_CHECK_IGNORE += "CVE-2023-1118"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1281
-# Introduced in version v4.14 9b0d4446b56904b59ae3809913b0ac760fa941a6
-# Patched in kernel since v6.2 ee059170b1f7e94e55fa6cadee544e176a6e59c2
-# Backported in version v5.10.169 eb8e9d8572d1d9df17272783ad8a84843ce559d4
-# Backported in version v5.15.95 becf55394f6acb60dd60634a1c797e73c747f9da
-# Backported in version v6.1.13 bd662ba56187b5ef8a62a3511371cd38299a507f
-CVE_CHECK_IGNORE += "CVE-2023-1281"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1513
-# Patched in kernel since v6.2 2c10b61421a28e95a46ab489fd56c0f442ff6952
-# Backported in version v5.4.232 9f95a161a7deef62d6d2f57b1a69f94e0546d8d8
-# Backported in version v5.10.169 6416c2108ba54d569e4c98d3b62ac78cb12e7107
-# Backported in version v5.15.95 35351e3060d67eed8af1575d74b71347a87425d8
-# Backported in version v6.1.13 747ca7c8a0c7bce004709143d1cd6596b79b1deb
-CVE_CHECK_IGNORE += "CVE-2023-1513"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1652
-# Patched in kernel since v6.2 e6cf91b7b47ff82b624bdfe2fdcde32bb52e71dd
-# Backported in version v5.15.91 0a27dcd5343026ac0cb168ee63304255372b7a36
-# Backported in version v6.1.9 32d5eb95f8f0e362e37c393310b13b9e95404560
-# Ref: https://www.linuxkernelcves.com/cves/CVE-2023-1652
-# Ref: Debian kernel-sec team: https://salsa.debian.org/kernel-team/kernel-sec/-/blob/1fa77554d4721da54e2df06fa1908a83ba6b1045/retired/CVE-2023-1652
-CVE_CHECK_IGNORE += "CVE-2023-1652"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1829
-# Patched in kernel since v6.3-rc1 8c710f75256bb3cf05ac7b1672c82b92c43f3d28
-# Backported in version v5.4.235 7a6fb69bbcb21e9ce13bdf18c008c268874f0480
-# Backported in version v5.10.173 18c3fa7a7fdbb4d21dafc8a7710ae2c1680930f6
-# Backported in version v5.15.100 7c183dc0af472dec33d2c0786a5e356baa8cad19
-# Backported in version v6.1.18 3abebc503a5148072052c229c6b04b329a420ecd
-# Backported in version v6.2.5 372ae77cf11d11fb118cbe2d37def9dd5f826abd
-# Ref: https://www.linuxkernelcves.com/cves/CVE-2023-1829
-# Ref: Debian kernel-sec team : https://salsa.debian.org/kernel-team/kernel-sec/-/blob/1fa77554d4721da54e2df06fa1908a83ba6b1045/active/CVE-2023-1829
-CVE_CHECK_IGNORE += "CVE-2023-1829"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-23005
-# Introduced in version v6.1 7b88bda3761b95856cf97822efe8281c8100067b
-# Patched in kernel since v6.2 4a625ceee8a0ab0273534cb6b432ce6b331db5ee
-# But, the CVE is disputed:
-# > NOTE: this is disputed by third parties because there are no realistic cases
-# > in which a user can cause the alloc_memory_type error case to be reached.
-# See: https://bugzilla.suse.com/show_bug.cgi?id=1208844#c2
-# We can safely ignore it.
-CVE_CHECK_IGNORE += "CVE-2023-23005"
-
-# https://nvd.nist.gov/vuln/detail/CVE-2023-28466
-# Introduced in version v4.13 3c4d7559159bfe1e3b94df3a657b2cda3a34e218
-# Patched in kernel since v6.3-rc2 49c47cc21b5b7a3d8deb18fc57b0aa2ab1286962
-# Backported in version v5.15.105 0b54d75aa43a1edebc8a3770901f5c3557ee0daa
-# Backported in version v6.1.20 14c17c673e1bba08032d245d5fb025d1cbfee123
-# Backported in version v6.2.7 5231fa057bb0e52095591b303cf95ebd17bc62ce
-CVE_CHECK_IGNORE += "CVE-2023-28466"
-
-# Wrong CPE in NVD database
 # https://nvd.nist.gov/vuln/detail/CVE-2022-3563
 # https://nvd.nist.gov/vuln/detail/CVE-2022-3637
-# Those issue do not affect the kernel, patchs listed on CVE pages links to https://git.kernel.org/pub/scm/bluetooth/bluez.git
-CVE_CHECK_IGNORE += "CVE-2022-3563 CVE-2022-3637"
+CVE_STATUS[CVE-2022-3563] = "cpe-incorrect: This issue do not affect the kernel, patchs listed on CVE pages links to https://git.kernel.org/pub/scm/bluetooth/bluez.git"
+CVE_STATUS[CVE-2022-3637] = "cpe-incorrect: This issue do not affect the kernel, patchs listed on CVE pages links to https://git.kernel.org/pub/scm/bluetooth/bluez.git"
 
-# qemu:qemu-native:qemu-system-native https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-20255
-# There was a proposed patch https://lists.gnu.org/archive/html/qemu-devel/2021-02/msg06098.html
-# qemu maintainers say the patch is incorrect and should not be applied
-# Ignore from OE's perspectivee as the issue is of low impact, at worst sitting in an infinite loop rather than exploitable
-CVE_CHECK_IGNORE += "CVE-2021-20255"
+# qemu:qemu-native:qemu-system-native https://nvd.nist.gov/vuln/detail/CVE-2021-20255
+CVE_STATUS[CVE-2021-20255] = "upstream-wontfix: \
+There was a proposed patch https://lists.gnu.org/archive/html/qemu-devel/2021-02/msg06098.html \
+qemu maintainers say the patch is incorrect and should not be applied \
+The issue is of low impact, at worst sitting in an infinite loop rather than exploitable."
 
-# qemu:qemu-native:qemu-system-native https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2019-12067
-# There was a proposed patch but rejected by upstream qemu. It is unclear if the issue can
-# still be reproduced or where exactly any bug is.
-# Ignore from OE's perspective as we'll pick up any fix when upstream accepts one.
-CVE_CHECK_IGNORE += "CVE-2019-12067"
+# qemu:qemu-native:qemu-system-native https://nvd.nist.gov/vuln/detail/CVE-2019-12067
+CVE_STATUS[CVE-2019-12067] = "upstream-wontfix: \
+There was a proposed patch but rejected by upstream qemu. It is unclear if the issue can \
+still be reproduced or where exactly any bug is. \
+We'll pick up any fix when upstream accepts one."
 
-# nasm:nasm-native https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-18974
-# It is a fuzzing related buffer overflow. It is of low impact since most devices
-# wouldn't expose an assembler. The upstream is inactive and there is little to be
-# done about the bug, ignore from an OE perspective.
-CVE_CHECK_IGNORE += "CVE-2020-18974"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-0459
-# Fixed in 6.1.14 onwards
-CVE_CHECK_IGNORE += "CVE-2023-0459"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-0615
-# Fixed in 6.1 onwards
-CVE_CHECK_IGNORE += "CVE-2023-0615"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-1380
-# Fixed in 6.1.27
-CVE_CHECK_IGNORE += "CVE-2023-1380"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-1611
-# Fixed in 6.1.23
-CVE_CHECK_IGNORE += "CVE-2023-1611"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-1855
-# Fixed in 6.1.21
-CVE_CHECK_IGNORE += "CVE-2023-1855"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-1859
-# Fixed in 6.1.25
-CVE_CHECK_IGNORE += "CVE-2023-1859"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-1989
-# Fixed in 6.1.22
-CVE_CHECK_IGNORE += "CVE-2023-1989"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-1990
-# Fixed in 6.1.21
-CVE_CHECK_IGNORE += "CVE-2023-1990"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-1999
-# Fixed in 6.1.16
-CVE_CHECK_IGNORE += "CVE-2023-1998"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-2002
-# Fixed in 6.1.27
-CVE_CHECK_IGNORE += "CVE-2023-2002"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-2156
-# Fixed in 6.1.26
-CVE_CHECK_IGNORE += "CVE-2023-2156"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-2162
-# Fixed in 6.1.11
-CVE_CHECK_IGNORE += "CVE-2023-2162"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-2194
-# Fixed with 6.1.22
-CVE_CHECK_IGNORE += "CVE-2023-2194"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-2235
-# Fixed with 6.1.21
-CVE_CHECK_IGNORE += "CVE-2023-2235"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-28328
-# Fixed with 6.1.2
-CVE_CHECK_IGNORE += "CVE-2023-28328"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-2985
-# Fixed in 6.1.16
-CVE_CHECK_IGNORE += "CVE-2023-2985"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-28866
-# Fixed with 6.1.22
-CVE_CHECK_IGNORE += "CVE-2023-28866"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-30456
-# Fixed with 6.1.21
-CVE_CHECK_IGNORE += "CVE-2023-30456"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-30772
-# Fixed with 6.1.22
-CVE_CHECK_IGNORE += "CVE-2023-30772"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-31436
-# Fixed with 6.1.26
-CVE_CHECK_IGNORE += "CVE-2023-31436"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-32233
-# Fixed with 6.1.28
-CVE_CHECK_IGNORE += "CVE-2023-32233"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-33203
-# Fixed with 6.1.22
-CVE_CHECK_IGNORE += "CVE-2023-33203"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-33288
-# Fixed with 6.1.22
-CVE_CHECK_IGNORE += "CVE-2023-33288"
-
-# https://www.linuxkernelcves.com/cves/CVE-2023-34256
-# Fixed in 6.1.29
-CVE_CHECK_IGNORE += "CVE-2023-34256"
-
-# Backported to 6.1.30 as 9a342d4
-CVE_CHECK_IGNORE += "CVE-2023-3141"
+# nasm:nasm-native https://nvd.nist.gov/vuln/detail/CVE-2020-18974
+CVE_STATUS[CVE-2020-18974] = "upstream-wontfix: \
+It is a fuzzing related buffer overflow. It is of low impact since most devices
+wouldn't expose an assembler. The upstream is inactive and there is little to be
+done about the bug, ignore from an OE perspective."
diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc
index 9bb5c52..6e82e94 100644
--- a/poky/meta/conf/distro/include/maintainers.inc
+++ b/poky/meta/conf/distro/include/maintainers.inc
@@ -127,7 +127,6 @@
 RECIPE_MAINTAINER:pn-cryptodev-tests = "Robert Yang <liezhi.yang@windriver.com>"
 RECIPE_MAINTAINER:pn-cups = "Chen Qi <Qi.Chen@windriver.com>"
 RECIPE_MAINTAINER:pn-curl = "Robert Joslyn <robert.joslyn@redrectangle.org>"
-RECIPE_MAINTAINER:pn-cve-update-db-native = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER:pn-cve-update-nvd2-native = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER:pn-cwautomacros = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER:pn-db = "Unassigned <unassigned@yoctoproject.org>"
@@ -322,7 +321,6 @@
 RECIPE_MAINTAINER:pn-libcroco = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-libdaemon = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-libdazzle = "Alexander Kanavin <alex.kanavin@gmail.com>"
-RECIPE_MAINTAINER:pn-libdmx = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-libdnf = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-libdrm = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
 RECIPE_MAINTAINER:pn-libedit = "Khem Raj <raj.khem@gmail.com>"
@@ -664,7 +662,7 @@
 RECIPE_MAINTAINER:pn-python3-pycairo = "Zang Ruochen <zangruochen@loongson.cn>"
 RECIPE_MAINTAINER:pn-python3-pycparser = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-pyelftools = "Joshua Watt <JPEWhacker@gmail.com>"
-RECIPE_MAINTAINER:pn-python3-pygments = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER:pn-python3-pygments = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-pygobject = "Zang Ruochen <zangruochen@loongson.cn>"
 RECIPE_MAINTAINER:pn-python3-pyopenssl = "Tim Orling <tim.orling@konsulko.com>"
 RECIPE_MAINTAINER:pn-python3-pyparsing = "Unassigned <unassigned@yoctoproject.org>"
@@ -847,6 +845,7 @@
 RECIPE_MAINTAINER:pn-xauth = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-xcb-proto = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-xcb-util = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER:pn-xcb-util-cursor = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-xcb-util-image = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-xcb-util-keysyms = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-xcb-util-renderutil = "Unassigned <unassigned@yoctoproject.org>"
diff --git a/poky/meta/conf/distro/include/ptest-packagelists.inc b/poky/meta/conf/distro/include/ptest-packagelists.inc
index da9153b..6250cf0 100644
--- a/poky/meta/conf/distro/include/ptest-packagelists.inc
+++ b/poky/meta/conf/distro/include/ptest-packagelists.inc
@@ -99,6 +99,7 @@
     libgcrypt \
     libmodule-build-perl \
     lttng-tools \
+    mdadm \
     openssh \
     openssl \
     parted \
@@ -122,7 +123,6 @@
 #    rt-tests \ # Needs to be checked whether it runs at all
 #    bash \ # Test outcomes are non-deterministic by design
 #    ifupdown \ # Tested separately in lib/oeqa/selftest/cases/imagefeatures.py
-#    mdadm \ # Tests rely on non-deterministic sleep() amounts
 #    libinput \ # Tests need an unloaded system to be reliable
 #    libpam \ # Needs pam DISTRO_FEATURE
 #    numactl \ # qemu not (yet) configured for numa; all tests are skipped
@@ -134,7 +134,6 @@
     rt-tests \
     bash \
     ifupdown \
-    mdadm \
     libinput \
     libpam \
     libseccomp \
diff --git a/poky/meta/conf/distro/include/tcmode-default.inc b/poky/meta/conf/distro/include/tcmode-default.inc
index 0b33e61..18daf44 100644
--- a/poky/meta/conf/distro/include/tcmode-default.inc
+++ b/poky/meta/conf/distro/include/tcmode-default.inc
@@ -21,7 +21,7 @@
 BINUVERSION ?= "2.40%"
 GDBVERSION ?= "13.%"
 GLIBCVERSION ?= "2.37"
-LINUXLIBCVERSION ?= "6.1%"
+LINUXLIBCVERSION ?= "6.4%"
 QEMUVERSION ?= "8.0%"
 GOVERSION ?= "1.20%"
 LLVMVERSION ?= "16.%"
diff --git a/poky/meta/conf/distro/include/time64.inc b/poky/meta/conf/distro/include/time64.inc
index 78569de..bc0c722 100644
--- a/poky/meta/conf/distro/include/time64.inc
+++ b/poky/meta/conf/distro/include/time64.inc
@@ -27,20 +27,25 @@
 GLIBC_64BIT_TIME_FLAGS:pn-pipewire = ""
 # Pulseaudio override certain LFS64 functions e.g. open64 and intentionally
 # undefines _FILE_OFFSET_BITS, which wont work when _TIME_BITS=64 is set
+# See https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/3770
 GLIBC_64BIT_TIME_FLAGS:pn-pulseaudio = ""
+# Undefines _FILE_OFFSET_BITS on purpose in
+# libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
 GLIBC_64BIT_TIME_FLAGS:pn-gcc-sanitizers = ""
+# https://github.com/strace/strace/issues/250
+GLIBC_64BIT_TIME_FLAGS:pn-strace = ""
 
-INSANE_SKIP:append:pn-cargo = " 32bit-time"
+# Caused by the flags exceptions above
 INSANE_SKIP:append:pn-gcc-sanitizers = " 32bit-time"
 INSANE_SKIP:append:pn-glibc = " 32bit-time"
 INSANE_SKIP:append:pn-glibc-tests = " 32bit-time"
-INSANE_SKIP:append:pn-librsvg = " 32bit-time"
-INSANE_SKIP:append:pn-libstd-rs = " 32bit-time"
-INSANE_SKIP:append:pn-pseudo = " 32bit-time"
 INSANE_SKIP:append:pn-pulseaudio = " 32bit-time"
-INSANE_SKIP:append:pn-python3-bcrypt = " 32bit-time"
-INSANE_SKIP:append:pn-python3-cryptography = " 32bit-time"
-INSANE_SKIP:append:pn-rust = " 32bit-time"
-INSANE_SKIP:append:pn-rust-hello-world = " 32bit-time"
+
+# Strace has tests that call 32 bit API directly, which is fair enough, e.g.
+# /usr/lib/strace/ptest/tests/ioctl_termios uses 32-bit api 'ioctl'
 INSANE_SKIP:append:pn-strace = " 32bit-time"
 
+# Additionally cargo_common class (i.e. everything written in rust)
+# has the same INSANE_SKIP setting.
+# Please check the comment in meta/classes-recipe/cargo_common.bbclass
+# for information about why, and the overall Y2038 situation in rust.
diff --git a/poky/meta/conf/machine/include/arm/arch-arm64.inc b/poky/meta/conf/machine/include/arm/arch-arm64.inc
index 0e2efb5..832d000 100644
--- a/poky/meta/conf/machine/include/arm/arch-arm64.inc
+++ b/poky/meta/conf/machine/include/arm/arch-arm64.inc
@@ -37,3 +37,8 @@
 TUNE_PKGARCH = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${TUNE_PKGARCH_64}', '${TUNE_PKGARCH_32}', d)}"
 ABIEXTENSION = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${ABIEXTENSION_64}', '${ABIEXTENSION_32}', d)}"
 TARGET_FPU = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${TARGET_FPU_64}', '${TARGET_FPU_32}', d)}"
+
+# Emit branch protection (PAC/BTI) instructions.  On hardware that doesn't
+# support these they're meaningless NOP instructions, so there's very little
+# reason not to.
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', ' -mbranch-protection=standard', '', d)}"
diff --git a/poky/meta/conf/machine/qemuarm.conf b/poky/meta/conf/machine/qemuarm.conf
index aa9ce88..75cfbaf 100644
--- a/poky/meta/conf/machine/qemuarm.conf
+++ b/poky/meta/conf/machine/qemuarm.conf
@@ -29,4 +29,8 @@
 QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
 QB_TCPSERIAL_OPT = "-device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon"
 
+# 6.4 causes Xorg to fail to read the virtio framebuffer so stick with 6.1 until
+# that is resolved.
+PREFERRED_VERSION_linux-yocto ??= "6.1%"
+
 KMACHINE:qemuarm = "qemuarma15"
diff --git a/poky/meta/lib/oe/cve_check.py b/poky/meta/lib/oe/cve_check.py
index dbaa0b3..5bf3caa 100644
--- a/poky/meta/lib/oe/cve_check.py
+++ b/poky/meta/lib/oe/cve_check.py
@@ -130,6 +130,13 @@
         if not fname_match and not text_match:
             bb.debug(2, "Patch %s doesn't solve CVEs" % patch_file)
 
+    # Search for additional patched CVEs
+    for cve in (d.getVarFlags("CVE_STATUS") or {}):
+        decoded_status, _, _ = decode_cve_status(d, cve)
+        if decoded_status == "Patched":
+            bb.debug(2, "CVE %s is additionally patched" % cve)
+            patched_cves.add(cve)
+
     return patched_cves
 
 
@@ -218,3 +225,21 @@
 
     return version + update
 
+def decode_cve_status(d, cve):
+    """
+    Convert CVE_STATUS into status, detail and description.
+    """
+    status = d.getVarFlag("CVE_STATUS", cve)
+    if status is None:
+        return ("", "", "")
+
+    status_split = status.split(':', 1)
+    detail = status_split[0]
+    description = status_split[1].strip() if (len(status_split) > 1) else ""
+
+    status_mapping = d.getVarFlag("CVE_CHECK_STATUSMAP", detail)
+    if status_mapping is None:
+        bb.warn('Invalid detail %s for CVE_STATUS[%s] = "%s", fallback to Unpatched' % (detail, cve, status))
+        status_mapping = "Unpatched"
+
+    return (status_mapping, detail, description)
diff --git a/poky/meta/lib/oe/package_manager/rpm/rootfs.py b/poky/meta/lib/oe/package_manager/rpm/rootfs.py
index d4c415f..3ba5396 100644
--- a/poky/meta/lib/oe/package_manager/rpm/rootfs.py
+++ b/poky/meta/lib/oe/package_manager/rpm/rootfs.py
@@ -110,7 +110,7 @@
         if self.progress_reporter:
             self.progress_reporter.next_stage()
 
-        self._setup_dbg_rootfs(['/etc', '/var/lib/rpm', '/var/cache/dnf', '/var/lib/dnf'])
+        self._setup_dbg_rootfs(['/etc/rpm', '/etc/rpmrc', '/etc/dnf', '/var/lib/rpm', '/var/cache/dnf', '/var/lib/dnf'])
 
         execute_pre_post_process(self.d, rpm_post_process_cmds)
 
diff --git a/poky/meta/lib/oe/rootfs.py b/poky/meta/lib/oe/rootfs.py
index 890ba5f..1a48ed1 100644
--- a/poky/meta/lib/oe/rootfs.py
+++ b/poky/meta/lib/oe/rootfs.py
@@ -106,7 +106,7 @@
     def _cleanup(self):
         pass
 
-    def _setup_dbg_rootfs(self, dirs):
+    def _setup_dbg_rootfs(self, package_paths):
         gen_debugfs = self.d.getVar('IMAGE_GEN_DEBUGFS') or '0'
         if gen_debugfs != '1':
            return
@@ -122,11 +122,12 @@
         bb.utils.mkdirhier(self.image_rootfs)
 
         bb.note("  Copying back package database...")
-        for dir in dirs:
-            if not os.path.isdir(self.image_rootfs + '-orig' + dir):
-                continue
-            bb.utils.mkdirhier(self.image_rootfs + os.path.dirname(dir))
-            shutil.copytree(self.image_rootfs + '-orig' + dir, self.image_rootfs + dir, symlinks=True)
+        for path in package_paths:
+            bb.utils.mkdirhier(self.image_rootfs + os.path.dirname(path))
+            if os.path.isdir(self.image_rootfs + '-orig' + path):
+                shutil.copytree(self.image_rootfs + '-orig' + path, self.image_rootfs + path, symlinks=True)
+            elif os.path.isfile(self.image_rootfs + '-orig' + path):
+                shutil.copyfile(self.image_rootfs + '-orig' + path, self.image_rootfs + path)
 
         # Copy files located in /usr/lib/debug or /usr/src/debug
         for dir in ["/usr/lib/debug", "/usr/src/debug"]:
@@ -162,6 +163,13 @@
             bb.note("  Install extra debug packages...")
             self.pm.install(extra_debug_pkgs.split(), True)
 
+        bb.note("  Removing package database...")
+        for path in package_paths:
+            if os.path.isdir(self.image_rootfs + path):
+                shutil.rmtree(self.image_rootfs + path)
+            elif os.path.isfile(self.image_rootfs + path):
+                os.remove(self.image_rootfs + path)
+
         bb.note("  Rename debug rootfs...")
         try:
             shutil.rmtree(self.image_rootfs + '-dbg')
diff --git a/poky/meta/lib/oeqa/core/target/qemu.py b/poky/meta/lib/oeqa/core/target/qemu.py
index 79fd724..6893d10 100644
--- a/poky/meta/lib/oeqa/core/target/qemu.py
+++ b/poky/meta/lib/oeqa/core/target/qemu.py
@@ -22,7 +22,7 @@
 class OEQemuTarget(OESSHTarget):
     def __init__(self, logger, server_ip, timeout=300, user='root',
             port=None, machine='', rootfs='', kernel='', kvm=False, slirp=False,
-            dump_dir='', dump_host_cmds='', display='', bootlog='',
+            dump_dir='', display='', bootlog='',
             tmpdir='', dir_image='', boottime=60, serial_ports=2,
             boot_patterns = defaultdict(str), ovmf=False, tmpfsdir=None, **kwargs):
 
@@ -44,8 +44,7 @@
         self.runner = QemuRunner(machine=machine, rootfs=rootfs, tmpdir=tmpdir,
                                  deploy_dir_image=dir_image, display=display,
                                  logfile=bootlog, boottime=boottime,
-                                 use_kvm=kvm, use_slirp=slirp, dump_dir=dump_dir,
-                                 dump_host_cmds=dump_host_cmds, logger=logger,
+                                 use_kvm=kvm, use_slirp=slirp, dump_dir=dump_dir, logger=logger,
                                  serial_ports=serial_ports, boot_patterns = boot_patterns, 
                                  use_ovmf=ovmf, tmpfsdir=tmpfsdir)
         dump_monitor_cmds = kwargs.get("testimage_dump_monitor")
diff --git a/poky/meta/lib/oeqa/runtime/cases/ltp.py b/poky/meta/lib/oeqa/runtime/cases/ltp.py
index a66d5d1..29c26d7 100644
--- a/poky/meta/lib/oeqa/runtime/cases/ltp.py
+++ b/poky/meta/lib/oeqa/runtime/cases/ltp.py
@@ -65,29 +65,34 @@
     ltp_groups += ltp_fs
 
     def runltp(self, ltp_group):
-            cmd = '/opt/ltp/runltp -f %s -p -q -r /opt/ltp -l /opt/ltp/results/%s -I 1 -d /opt/ltp' % (ltp_group, ltp_group)
+            # LTP appends to log files, so ensure we start with a clean log
+            self.target.deleteFiles("/opt/ltp/results/", ltp_group)
+
+            cmd = '/opt/ltp/runltp -f %s -q -r /opt/ltp -l /opt/ltp/results/%s -I 1 -d /opt/ltp' % (ltp_group, ltp_group)
+
             starttime = time.time()
             (status, output) = self.target.run(cmd)
             endtime = time.time()
 
+            # Write the console log to disk for convenience
             with open(os.path.join(self.ltptest_log_dir, "%s-raw.log" % ltp_group), 'w') as f:
                 f.write(output)
 
+            # Also put the console log into the test result JSON
             self.extras['ltpresult.rawlogs']['log'] = self.extras['ltpresult.rawlogs']['log'] + output
 
-            # copy nice log from DUT
-            dst = os.path.join(self.ltptest_log_dir, "%s" %  ltp_group )
+            # Copy the machine-readable test results locally so we can parse it
+            dst = os.path.join(self.ltptest_log_dir, ltp_group)
             remote_src = "/opt/ltp/results/%s" % ltp_group 
             (status, output) = self.target.copyFrom(remote_src, dst, True)
-            msg = 'File could not be copied. Output: %s' % output
             if status:
+                msg = 'File could not be copied. Output: %s' % output
                 self.target.logger.warning(msg)
 
             parser = LtpParser()
             results, sections  = parser.parse(dst)
 
-            runtime = int(endtime-starttime)
-            sections['duration'] = runtime
+            sections['duration'] = int(endtime-starttime)
             self.sections[ltp_group] =  sections
 
             failed_tests = {}
diff --git a/poky/meta/lib/oeqa/runtime/cases/rpm.py b/poky/meta/lib/oeqa/runtime/cases/rpm.py
index fa86eb0..a4ba4e6 100644
--- a/poky/meta/lib/oeqa/runtime/cases/rpm.py
+++ b/poky/meta/lib/oeqa/runtime/cases/rpm.py
@@ -59,8 +59,8 @@
                     return
                 time.sleep(1)
             user_pss = [ps for ps in output.split("\n") if u + ' ' in ps]
-            msg = "There're %s 's process(es) still running: %s".format(u, "\n".join(user_pss))
-            assertTrue(True, msg=msg)
+            msg = "User %s has processes still running: %s" % (u, "\n".join(user_pss))
+            self.fail(msg=msg)
 
         def unset_up_test_user(u):
             # ensure no test1 process in running
diff --git a/poky/meta/lib/oeqa/runtime/context.py b/poky/meta/lib/oeqa/runtime/context.py
index 0c5d186..cb7227a 100644
--- a/poky/meta/lib/oeqa/runtime/context.py
+++ b/poky/meta/lib/oeqa/runtime/context.py
@@ -10,7 +10,6 @@
 from oeqa.core.context import OETestContext, OETestContextExecutor
 from oeqa.core.target.ssh import OESSHTarget
 from oeqa.core.target.qemu import OEQemuTarget
-from oeqa.utils.dump import HostDumper
 
 from oeqa.runtime.loader import OERuntimeTestLoader
 
@@ -20,12 +19,11 @@
                         os.path.dirname(os.path.abspath(__file__)), "files")
 
     def __init__(self, td, logger, target,
-                 host_dumper, image_packages, extract_dir):
+                 image_packages, extract_dir):
         super(OERuntimeTestContext, self).__init__(td, logger)
 
         self.target = target
         self.image_packages = image_packages
-        self.host_dumper = host_dumper
         self.extract_dir = extract_dir
         self._set_target_cmds()
 
@@ -199,10 +197,6 @@
 
         return image_packages
 
-    @staticmethod
-    def getHostDumper(cmds, directory):
-        return HostDumper(cmds, directory)
-
     def _process_args(self, logger, args):
         if not args.packages_manifest:
             raise TypeError('Manifest file not provided')
@@ -215,9 +209,6 @@
         self.tc_kwargs['init']['target'] = \
                 OERuntimeTestContextExecutor.getTarget(args.target_type,
                         None, args.target_ip, args.server_ip, **target_kwargs)
-        self.tc_kwargs['init']['host_dumper'] = \
-                OERuntimeTestContextExecutor.getHostDumper(None,
-                        args.host_dumper_dir)
         self.tc_kwargs['init']['image_packages'] = \
                 OERuntimeTestContextExecutor.readPackagesManifest(
                         args.packages_manifest)
diff --git a/poky/meta/lib/oeqa/selftest/cases/bblayers.py b/poky/meta/lib/oeqa/selftest/cases/bblayers.py
index b048948..8faa060 100644
--- a/poky/meta/lib/oeqa/selftest/cases/bblayers.py
+++ b/poky/meta/lib/oeqa/selftest/cases/bblayers.py
@@ -85,8 +85,9 @@
         result = runCmd('bitbake-layers show-recipes -i image')
         self.assertIn('core-image-minimal', result.output)
         self.assertNotIn('mtd-utils:', result.output)
-        result = runCmd('bitbake-layers show-recipes -i cmake,pkgconfig')
+        result = runCmd('bitbake-layers show-recipes -i meson,pkgconfig')
         self.assertIn('libproxy:', result.output)
+        result = runCmd('bitbake-layers show-recipes -i cmake,pkgconfig')
         self.assertNotIn('mtd-utils:', result.output) # doesn't inherit either
         self.assertNotIn('wget:', result.output) # doesn't inherit cmake
         self.assertNotIn('waffle:', result.output) # doesn't inherit pkgconfig
diff --git a/poky/meta/lib/oeqa/selftest/cases/cve_check.py b/poky/meta/lib/oeqa/selftest/cases/cve_check.py
index 9534c97..60cecd1 100644
--- a/poky/meta/lib/oeqa/selftest/cases/cve_check.py
+++ b/poky/meta/lib/oeqa/selftest/cases/cve_check.py
@@ -207,18 +207,34 @@
             self.assertEqual(len(report["package"]), 1)
             package = report["package"][0]
             self.assertEqual(package["name"], "logrotate")
-            found_cves = { issue["id"]: issue["status"] for issue in package["issue"]}
+            found_cves = {}
+            for issue in package["issue"]:
+                found_cves[issue["id"]] = {
+                    "status" : issue["status"],
+                    "detail" : issue["detail"] if "detail" in issue else "",
+                    "description" : issue["description"] if "description" in issue else ""
+                }
             # m4 CVE should not be in logrotate
             self.assertNotIn("CVE-2008-1687", found_cves)
             # logrotate has both Patched and Ignored CVEs
             self.assertIn("CVE-2011-1098", found_cves)
-            self.assertEqual(found_cves["CVE-2011-1098"], "Patched")
+            self.assertEqual(found_cves["CVE-2011-1098"]["status"], "Patched")
+            self.assertEqual(len(found_cves["CVE-2011-1098"]["detail"]), 0)
+            self.assertEqual(len(found_cves["CVE-2011-1098"]["description"]), 0)
+            detail = "not-applicable-platform"
+            description = "CVE is debian, gentoo or SUSE specific on the way logrotate was installed/used"
             self.assertIn("CVE-2011-1548", found_cves)
-            self.assertEqual(found_cves["CVE-2011-1548"], "Ignored")
+            self.assertEqual(found_cves["CVE-2011-1548"]["status"], "Ignored")
+            self.assertEqual(found_cves["CVE-2011-1548"]["detail"], detail)
+            self.assertEqual(found_cves["CVE-2011-1548"]["description"], description)
             self.assertIn("CVE-2011-1549", found_cves)
-            self.assertEqual(found_cves["CVE-2011-1549"], "Ignored")
+            self.assertEqual(found_cves["CVE-2011-1549"]["status"], "Ignored")
+            self.assertEqual(found_cves["CVE-2011-1549"]["detail"], detail)
+            self.assertEqual(found_cves["CVE-2011-1549"]["description"], description)
             self.assertIn("CVE-2011-1550", found_cves)
-            self.assertEqual(found_cves["CVE-2011-1550"], "Ignored")
+            self.assertEqual(found_cves["CVE-2011-1550"]["status"], "Ignored")
+            self.assertEqual(found_cves["CVE-2011-1550"]["detail"], detail)
+            self.assertEqual(found_cves["CVE-2011-1550"]["description"], description)
 
         self.assertExists(summary_json)
         check_m4_json(summary_json)
diff --git a/poky/meta/lib/oeqa/selftest/cases/devtool.py b/poky/meta/lib/oeqa/selftest/cases/devtool.py
index 4c8e375..14a80d5 100644
--- a/poky/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/poky/meta/lib/oeqa/selftest/cases/devtool.py
@@ -366,6 +366,38 @@
             bindir = bindir[1:]
         self.assertTrue(os.path.isfile(os.path.join(installdir, bindir, 'pv')), 'pv binary not found in D')
 
+    def test_devtool_add_binary(self):
+        # Create a binary package containing a known test file
+        tempdir = tempfile.mkdtemp(prefix='devtoolqa')
+        self.track_for_cleanup(tempdir)
+        pn = 'tst-bin'
+        pv = '1.0'
+        test_file_dir     = "var/lib/%s/" % pn
+        test_file_name    = "test_file"
+        test_file_content = "TEST CONTENT"
+        test_file_package_root = os.path.join(tempdir, pn)
+        test_file_dir_full = os.path.join(test_file_package_root, test_file_dir)
+        bb.utils.mkdirhier(test_file_dir_full)
+        with open(os.path.join(test_file_dir_full, test_file_name), "w") as f:
+           f.write(test_file_content)
+        bin_package_path = os.path.join(tempdir, "%s.tar.gz" % pn)
+        runCmd("tar czf %s -C %s ." % (bin_package_path, test_file_package_root))
+
+        # Test devtool add -b on the binary package
+        self.track_for_cleanup(self.workspacedir)
+        self.add_command_to_tearDown('bitbake -c cleansstate %s' % pn)
+        self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
+        result = runCmd('devtool add  -b %s %s' % (pn, bin_package_path))
+        self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created')
+
+        # Build the resulting recipe
+        result = runCmd('devtool build %s' % pn)
+        installdir = get_bb_var('D', pn)
+        self.assertTrue(installdir, 'Could not query installdir variable')
+
+        # Check that a known file from the binary package has indeed been installed
+        self.assertTrue(os.path.isfile(os.path.join(installdir, test_file_dir, test_file_name)), '%s not found in D' % test_file_name)
+
     def test_devtool_add_git_local(self):
         # We need dbus built so that DEPENDS recognition works
         bitbake('dbus')
diff --git a/poky/meta/lib/oeqa/selftest/cases/distrodata.py b/poky/meta/lib/oeqa/selftest/cases/distrodata.py
index c83a3a7..111bd3c 100644
--- a/poky/meta/lib/oeqa/selftest/cases/distrodata.py
+++ b/poky/meta/lib/oeqa/selftest/cases/distrodata.py
@@ -92,7 +92,7 @@
 
         def is_maintainer_exception(entry):
             exceptions = ["musl", "newlib", "linux-yocto", "linux-dummy", "mesa-gl", "libgfortran", "libx11-compose-data",
-                          "cve-update-db-native","cve-update-nvd2-native",]
+                          "cve-update-nvd2-native",]
             for i in exceptions:
                  if i in entry:
                      return True
diff --git a/poky/meta/lib/oeqa/selftest/cases/fitimage.py b/poky/meta/lib/oeqa/selftest/cases/fitimage.py
index 7bc171e..9383d0c 100644
--- a/poky/meta/lib/oeqa/selftest/cases/fitimage.py
+++ b/poky/meta/lib/oeqa/selftest/cases/fitimage.py
@@ -33,6 +33,8 @@
 # RAM disk variables including load address and entrypoint for kernel and RAM disk
 IMAGE_FSTYPES += "cpio.gz"
 INITRAMFS_IMAGE = "core-image-minimal"
+# core-image-minimal is used as initramfs here, drop the rootfs suffix
+IMAGE_NAME_SUFFIX:pn-core-image-minimal = ""
 UBOOT_RD_LOADADDRESS = "0x88000000"
 UBOOT_RD_ENTRYPOINT = "0x88000000"
 UBOOT_LOADADDRESS = "0x80080000"
diff --git a/poky/meta/lib/oeqa/selftest/cases/glibc.py b/poky/meta/lib/oeqa/selftest/cases/glibc.py
index a446543..4ec4b85 100644
--- a/poky/meta/lib/oeqa/selftest/cases/glibc.py
+++ b/poky/meta/lib/oeqa/selftest/cases/glibc.py
@@ -28,7 +28,7 @@
             features.append('TOOLCHAIN_TEST_HOST_USER = "root"')
             features.append('TOOLCHAIN_TEST_HOST_PORT = "22"')
             # force single threaded test execution
-            features.append('EGLIBCPARALLELISM_task-check:pn-glibc-testsuite = "PARALLELMFLAGS="-j1""')
+            features.append('EGLIBCPARALLELISM:task-check:pn-glibc-testsuite = "PARALLELMFLAGS="-j1""')
         self.write_config("\n".join(features))
 
         bitbake("glibc-testsuite -c check")
diff --git a/poky/meta/lib/oeqa/selftest/cases/rust.py b/poky/meta/lib/oeqa/selftest/cases/rust.py
new file mode 100644
index 0000000..7a0fd70
--- /dev/null
+++ b/poky/meta/lib/oeqa/selftest/cases/rust.py
@@ -0,0 +1,90 @@
+# SPDX-License-Identifier: MIT
+import os
+import subprocess
+from oeqa.core.decorator import OETestTag
+from oeqa.core.case import OEPTestResultTestCase
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, runqemu, Command
+from oeqa.utils.sshcontrol import SSHControl
+
+def parse_results(filename):
+    tests = {}
+    with open(filename, "r") as f:
+        lines = f.readlines()
+        for line in lines:
+            if "..." in line and "test [" in line:
+                test = line.split("test ")[1].split(" ... ")[0]
+                if "] " in test:
+                    test = test.split("] ", 1)[1]
+                result = line.split(" ... ")[1].strip()
+                if result == "ok":
+                    result = "PASS"
+                elif result == "failed":
+                    result = "FAIL"
+                elif "ignored" in result:
+                    result = "SKIPPED"
+                if test in tests:
+                    if tests[test] != result:
+                        print("Duplicate and mismatching result %s for %s" % (result, test))
+                    else:
+                        print("Duplicate result %s for %s" % (result, test))
+                else:
+                    tests[test] = result
+    return tests
+
+# Total time taken for testing is of about 2hr 20min, with PARALLEL_MAKE set to 40 number of jobs.
+@OETestTag("toolchain-system")
+@OETestTag("toolchain-user")
+@OETestTag("runqemu")
+class RustSelfTestSystemEmulated(OESelftestTestCase, OEPTestResultTestCase):
+    def test_rust(self, *args, **kwargs):
+        # build remote-test-server before image build
+        recipe = "rust"
+        bitbake("{} -c test_compile".format(recipe))
+        builddir = get_bb_var("RUSTSRC", "rust")
+        # build core-image-minimal with required packages
+        default_installed_packages = ["libgcc", "libstdc++", "libatomic", "libgomp"]
+        features = []
+        features.append('IMAGE_FEATURES += "ssh-server-dropbear"')
+        features.append('CORE_IMAGE_EXTRA_INSTALL += "{0}"'.format(" ".join(default_installed_packages)))
+        self.write_config("\n".join(features))
+        bitbake("core-image-minimal")
+        # wrap the execution with a qemu instance.
+        # Tests are run with 512 tasks in parallel to execute all tests very quickly
+        with runqemu("core-image-minimal", runqemuparams = "nographic", qemuparams = "-m 512") as qemu:
+            # Copy remote-test-server to image through scp
+            host_sys = get_bb_var("RUST_BUILD_SYS", "rust")
+            ssh = SSHControl(ip=qemu.ip, logfile=qemu.sshlog, user="root")
+            ssh.copy_to(builddir + "/build/" + host_sys + "/stage1-tools-bin/remote-test-server","~/")
+            # Execute remote-test-server on image through background ssh
+            command = '~/remote-test-server --bind 0.0.0.0:12345 -v'
+            sshrun=subprocess.Popen(("ssh", '-o',  'UserKnownHostsFile=/dev/null', '-o',  'StrictHostKeyChecking=no', '-f', "root@%s" % qemu.ip, command), shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+            # Get the values of variables.
+            tcpath = get_bb_var("TARGET_SYS", "rust")
+            targetsys = get_bb_var("RUST_TARGET_SYS", "rust")
+            rustlibpath = get_bb_var("WORKDIR", "rust")
+            tmpdir = get_bb_var("TMPDIR", "rust")
+
+            # Exclude the test folders that error out while building
+            # TODO: Fix the errors and include them for testing
+            # no-fail-fast: Run all tests regardless of failure.
+            # bless: First runs rustfmt to format the codebase,
+            # then runs tidy checks.
+            testargs = "--exclude tests/rustdoc --exclude src/tools/rust-analyzer  --exclude tests/rustdoc-json  --exclude tests/run-make-fulldeps --exclude src/tools/tidy --exclude src/tools/rustdoc-themes --exclude src/rustdoc-json-types --exclude src/librustdoc --exclude src/doc/unstable-book --exclude src/doc/rustdoc --exclude src/doc/rustc --exclude compiler/rustc --exclude library/panic_abort --exclude library/panic_unwind --exclude src/tools/lint-docs  --exclude tests/rustdoc-js-std --doc --no-fail-fast --bless"
+
+            # Set path for target-poky-linux-gcc, RUST_TARGET_PATH and hosttools.
+            cmd = " export PATH=%s/recipe-sysroot-native/usr/bin:$PATH;" % rustlibpath
+            cmd = cmd + " export TARGET_VENDOR=\"-poky\";"
+            cmd = cmd + " export PATH=%s/recipe-sysroot-native/usr/bin/%s:%s/hosttools:$PATH;" % (rustlibpath, tcpath, tmpdir)
+            cmd = cmd + " export RUST_TARGET_PATH=%s/rust-targets;" % rustlibpath
+            # Trigger testing.
+            cmd = cmd + " export TEST_DEVICE_ADDR=\"%s:12345\";" % qemu.ip
+            cmd = cmd + " cd %s; python3 src/bootstrap/bootstrap.py test %s --target %s > summary.txt 2>&1;" % (builddir, testargs, targetsys)
+            runCmd(cmd)
+
+            ptestsuite = "rust"
+            self.ptest_section(ptestsuite, logfile = builddir + "/summary.txt")
+            filename = builddir + "/summary.txt"
+            test_results = parse_results(filename)
+            for test in test_results:
+                self.ptest_result(ptestsuite, test, test_results[test])
diff --git a/poky/meta/lib/oeqa/targetcontrol.py b/poky/meta/lib/oeqa/targetcontrol.py
index d686fe0..e21655c 100644
--- a/poky/meta/lib/oeqa/targetcontrol.py
+++ b/poky/meta/lib/oeqa/targetcontrol.py
@@ -104,7 +104,6 @@
             self.kernel = os.path.join(d.getVar("DEPLOY_DIR_IMAGE"), d.getVar("KERNEL_IMAGETYPE", False) + '-' + d.getVar('MACHINE', False) + '.bin')
         self.qemulog = os.path.join(self.testdir, "qemu_boot_log.%s" % self.datetime)
         dump_target_cmds = d.getVar("testimage_dump_target")
-        dump_host_cmds = d.getVar("testimage_dump_host")
         dump_monitor_cmds = d.getVar("testimage_dump_monitor")
         dump_dir = d.getVar("TESTIMAGE_DUMP_DIR")
         if not dump_dir:
@@ -141,7 +140,6 @@
                             boottime = int(d.getVar("TEST_QEMUBOOT_TIMEOUT")),
                             use_kvm = use_kvm,
                             dump_dir = dump_dir,
-                            dump_host_cmds = dump_host_cmds,
                             logger = logger,
                             tmpfsdir = d.getVar("RUNQEMU_TMPFS_DIR"),
                             serial_ports = len(d.getVar("SERIAL_CONSOLES").split()))
diff --git a/poky/meta/lib/oeqa/utils/dump.py b/poky/meta/lib/oeqa/utils/dump.py
index d420b49..d4d2713 100644
--- a/poky/meta/lib/oeqa/utils/dump.py
+++ b/poky/meta/lib/oeqa/utils/dump.py
@@ -51,9 +51,7 @@
         self.dump_dir = dump_dir
 
     def _construct_filename(self, command):
-        if isinstance(self, HostDumper):
-            prefix = "host"
-        elif isinstance(self, TargetDumper):
+        if isinstance(self, TargetDumper):
             prefix = "target"
         elif isinstance(self, MonitorDumper):
             prefix = "qmp"
@@ -76,22 +74,6 @@
             with open(fullname, 'w') as dump_file:
                 dump_file.write(output)
 
-class HostDumper(BaseDumper):
-    """ Class to get dumps from the host running the tests """
-
-    def __init__(self, cmds, parent_dir):
-        super(HostDumper, self).__init__(cmds, parent_dir)
-
-    def dump_host(self, dump_dir=""):
-        if dump_dir:
-            self.dump_dir = dump_dir
-        env = os.environ.copy()
-        env['PATH'] = '/usr/sbin:/sbin:/usr/bin:/bin'
-        env['COLUMNS'] = '9999'
-        for cmd in self.cmds:
-            result = runCmd(cmd, ignore_status=True, env=env)
-            self._write_dump(cmd.split()[0], result.output)
-
 class TargetDumper(BaseDumper):
     """ Class to get dumps from target, it only works with QemuRunner.
         Will give up permanently after 5 errors from running commands over
diff --git a/poky/meta/lib/oeqa/utils/logparser.py b/poky/meta/lib/oeqa/utils/logparser.py
index 8054acc..496d9e0 100644
--- a/poky/meta/lib/oeqa/utils/logparser.py
+++ b/poky/meta/lib/oeqa/utils/logparser.py
@@ -4,7 +4,7 @@
 # SPDX-License-Identifier: MIT
 #
 
-import sys
+import enum
 import os
 import re
 
@@ -106,30 +106,48 @@
                     f.write(status + ": " + test_name + "\n")
 
 
-# ltp log parsing
-class LtpParser(object):
-    def __init__(self):
-        self.results = {}
-        self.section = {'duration': "", 'log': ""}
-
+class LtpParser:
+    """
+    Parse the machine-readable LTP log output into a ptest-friendly data structure.
+    """
     def parse(self, logfile):
-        test_regex = {}
-        test_regex['PASSED'] = re.compile(r"PASS")
-        test_regex['FAILED'] = re.compile(r"FAIL")
-        test_regex['SKIPPED'] = re.compile(r"SKIP")
+        results = {}
+        # Aaccumulate the duration here but as the log rounds quick tests down
+        # to 0 seconds this is very much a lower bound. The caller can replace
+        # the value.
+        section = {"duration": 0, "log": ""}
 
-        with open(logfile, errors='replace') as f:
+        class LtpExitCode(enum.IntEnum):
+            # Exit codes as defined in ltp/include/tst_res_flags.h
+            TPASS = 0  # Test passed flag
+            TFAIL = 1  # Test failed flag
+            TBROK = 2  # Test broken flag
+            TWARN = 4  # Test warning flag
+            TINFO = 16 # Test information flag
+            TCONF = 32 # Test not appropriate for configuration flag
+
+        with open(logfile, errors="replace") as f:
+            # Lines look like this:
+            # tag=cfs_bandwidth01 stime=1689762564 dur=0 exit=exited stat=32 core=no cu=0 cs=0
             for line in f:
-                for t in test_regex:
-                    result = test_regex[t].search(line)
-                    if result:
-                        self.results[line.split()[0].strip()] = t
+                if not line.startswith("tag="):
+                    continue
 
-        for test in self.results:
-            result = self.results[test]
-            self.section['log'] = self.section['log'] + ("%s: %s\n" % (result.strip()[:-2], test.strip()))
+                values = dict(s.split("=") for s in line.strip().split())
 
-        return self.results, self.section
+                section["duration"] += int(values["dur"])
+                exitcode = int(values["stat"])
+                if values["exit"] == "exited" and exitcode == LtpExitCode.TCONF:
+                    # Exited normally with the "invalid configuration" code
+                    results[values["tag"]] = "SKIPPED"
+                elif exitcode == LtpExitCode.TPASS:
+                    # Successful exit
+                    results[values["tag"]] = "PASSED"
+                else:
+                    # Other exit
+                    results[values["tag"]] = "FAILED"
+
+        return results, section
 
 
 # ltp Compliance log parsing
diff --git a/poky/meta/lib/oeqa/utils/qemurunner.py b/poky/meta/lib/oeqa/utils/qemurunner.py
index 0ef8cf0..22cf258 100644
--- a/poky/meta/lib/oeqa/utils/qemurunner.py
+++ b/poky/meta/lib/oeqa/utils/qemurunner.py
@@ -21,7 +21,6 @@
 import codecs
 import logging
 import tempfile
-from oeqa.utils.dump import HostDumper
 from collections import defaultdict
 import importlib
 
@@ -33,8 +32,8 @@
 
 class QemuRunner:
 
-    def __init__(self, machine, rootfs, display, tmpdir, deploy_dir_image, logfile, boottime, dump_dir, dump_host_cmds,
-                 use_kvm, logger, use_slirp=False, serial_ports=2, boot_patterns = defaultdict(str), use_ovmf=False, workdir=None, tmpfsdir=None):
+    def __init__(self, machine, rootfs, display, tmpdir, deploy_dir_image, logfile, boottime, dump_dir, use_kvm, logger, use_slirp=False,
+     serial_ports=2, boot_patterns = defaultdict(str), use_ovmf=False, workdir=None, tmpfsdir=None):
 
         # Popen object for runqemu
         self.runqemu = None
@@ -69,7 +68,6 @@
         if not workdir:
             workdir = os.getcwd()
         self.qemu_pidfile = workdir + '/pidfile_' + str(os.getpid())
-        self.host_dumper = HostDumper(dump_host_cmds, dump_dir)
         self.monitorpipe = None
 
         self.logger = logger
@@ -138,7 +136,6 @@
                 self.logger.error('runqemu exited with code %d' % self.runqemu.returncode)
                 self.logger.error('Output from runqemu:\n%s' % self.getOutput(self.runqemu.stdout))
                 self.stop()
-                self._dump_host()
 
     def start(self, qemuparams = None, get_ip = True, extra_bootparams = None, runqemuparams='', launch_cmd=None, discard_writes=True):
         env = os.environ.copy()
@@ -286,7 +283,6 @@
                 if self.runqemu.returncode:
                     # No point waiting any longer
                     self.logger.warning('runqemu exited with code %d' % self.runqemu.returncode)
-                    self._dump_host()
                     self.logger.warning("Output from runqemu:\n%s" % self.getOutput(output))
                     self.stop()
                     return False
@@ -314,7 +310,6 @@
             ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,pri,ni,command '], stdout=subprocess.PIPE).communicate()[0]
             processes = ps.decode("utf-8")
             self.logger.debug("Running processes:\n%s" % processes)
-            self._dump_host()
             op = self.getOutput(output)
             self.stop()
             if op:
@@ -430,7 +425,6 @@
                     self.logger.error("Couldn't get ip from qemu command line and runqemu output! "
                                  "Here is the qemu command line used:\n%s\n"
                                  "and output from runqemu:\n%s" % (cmdline, out))
-                    self._dump_host()
                     self.stop()
                     return False
 
@@ -517,7 +511,6 @@
             lines = tail(bootlog if bootlog else self.msg)
             self.logger.warning("Last 25 lines of text (%d):\n%s" % (len(bootlog), lines))
             self.logger.warning("Check full boot log: %s" % self.logfile)
-            self._dump_host()
             self.stop()
             return False
 
@@ -698,13 +691,6 @@
                     status = 1
         return (status, str(data))
 
-
-    def _dump_host(self):
-        self.host_dumper.create_dir("qemu")
-        self.logger.warning("Qemu ended unexpectedly, dump data from host"
-                " is in %s" % self.host_dumper.dump_dir)
-        self.host_dumper.dump_host()
-
 # This class is for reading data from a socket and passing it to logfunc
 # to be processed. It's completely event driven and has a straightforward
 # event loop. The mechanism for stopping the thread is a simple pipe which
diff --git a/poky/meta/recipes-bsp/grub/grub2.inc b/poky/meta/recipes-bsp/grub/grub2.inc
index 58b215d..4183969 100644
--- a/poky/meta/recipes-bsp/grub/grub2.inc
+++ b/poky/meta/recipes-bsp/grub/grub2.inc
@@ -46,10 +46,8 @@
 
 SRC_URI[sha256sum] = "23b64b4c741569f9426ed2e3d0e6780796fca081bee4c99f62aa3f53ae803f5f"
 
-# Applies only to RHEL
-CVE_CHECK_IGNORE += "CVE-2019-14865"
-# Applies only to SUSE
-CVE_CHECK_IGNORE += "CVE-2021-46705"
+CVE_STATUS[CVE-2019-14865] = "not-applicable-platform: applies only to RHEL"
+CVE_STATUS[CVE-2021-46705] = "not-applicable-platform: Applies only to SUSE"
 
 DEPENDS = "flex-native bison-native gettext-native"
 
diff --git a/poky/meta/recipes-bsp/u-boot/files/0001-mkimage-Use-PATH_MAX-for-path-length.patch b/poky/meta/recipes-bsp/u-boot/files/0001-mkimage-Use-PATH_MAX-for-path-length.patch
deleted file mode 100644
index 9f38736..0000000
--- a/poky/meta/recipes-bsp/u-boot/files/0001-mkimage-Use-PATH_MAX-for-path-length.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From dcd3d272975863128e25a4e25453cb6521cddc53 Mon Sep 17 00:00:00 2001
-From: Mingli Yu <mingli.yu@windriver.com>
-Date: Wed, 14 Jun 2023 16:09:59 +0800
-Subject: [PATCH] mkimage: Use PATH_MAX for path length
-
-Fixed when build xilinx_zynqmp in long directory ( >256):
-  |  /buildarea1/testtest/wr_build/wr1023test_secureboot/test1-what/test2-what/test3-what/test4-what/test5-what/test6-what/test7-what/test8-what/test9-what/test10-what/test11-what/test12-what/build/tmp-glibc/work/xilinx_zynqmp-wrs-linux/u-boot-xlnx/1_v2023.01-xilinx-v2023.1+gitAUTOINC+40a08d69e7-r0/build/fitImage-linux: Image file name (uboot-mkimage) too long, can't create tmpfile.
-  | Error: Bad parameters for FIT image type
-
-Upstream-Status: Submitted [https://patchwork.ozlabs.org/project/uboot/patch/20230619062250.3244894-1-mingli.yu@eng.windriver.com/]
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- tools/mkimage.h | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/tools/mkimage.h b/tools/mkimage.h
-index f5ca65e2ed..d92a3ff811 100644
---- a/tools/mkimage.h
-+++ b/tools/mkimage.h
-@@ -17,6 +17,7 @@
- #include <sys/stat.h>
- #include <time.h>
- #include <unistd.h>
-+#include <limits.h>
- #include <u-boot/sha1.h>
- #include "fdt_host.h"
- #include "imagetool.h"
-@@ -44,7 +45,7 @@ static inline ulong map_to_sysmem(void *ptr)
- #define ALLOC_CACHE_ALIGN_BUFFER(type, name, size) type name[size]
- 
- #define MKIMAGE_TMPFILE_SUFFIX		".tmp"
--#define MKIMAGE_MAX_TMPFILE_LEN		256
-+#define MKIMAGE_MAX_TMPFILE_LEN		PATH_MAX
- #define MKIMAGE_DEFAULT_DTC_OPTIONS	"-I dts -O dtb -p 500"
- #define MKIMAGE_MAX_DTC_CMDLINE_LEN	2 * MKIMAGE_MAX_TMPFILE_LEN + 35
- 
--- 
-2.25.1
-
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-common.inc b/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
index 8a2e9ae..1119148 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
+++ b/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
@@ -12,9 +12,9 @@
 
 # We use the revision in order to avoid having to fetch it from the
 # repo during parse
-SRCREV = "fd4ed6b7e83ec3aea9a2ce21baea8ca9676f40dd"
+SRCREV = "83cdab8b2c6ea0fc0860f8444d083353b47f1d5c"
 
-SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master"
+SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=u-boot-2023.07.y"
 
 S = "${WORKDIR}/git"
 B = "${WORKDIR}/build"
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2023.04.bb b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2023.04.bb
deleted file mode 100644
index b77a49a..0000000
--- a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2023.04.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require u-boot-common.inc
-require u-boot-tools.inc
-
-SRC_URI += " \
-    file://0001-mkimage-Use-PATH_MAX-for-path-length.patch \
-"
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2023.07.02.bb b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2023.07.02.bb
new file mode 100644
index 0000000..7eaf721
--- /dev/null
+++ b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2023.07.02.bb
@@ -0,0 +1,2 @@
+require u-boot-common.inc
+require u-boot-tools.inc
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot_2023.04.bb b/poky/meta/recipes-bsp/u-boot/u-boot_2023.07.02.bb
similarity index 100%
rename from poky/meta/recipes-bsp/u-boot/u-boot_2023.04.bb
rename to poky/meta/recipes-bsp/u-boot/u-boot_2023.07.02.bb
diff --git a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
index 1764997..d1c6f7f 100644
--- a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
+++ b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
@@ -32,8 +32,7 @@
 SRC_URI[md5sum] = "229c6aa30674fc43c202b22c5f8c2be7"
 SRC_URI[sha256sum] = "060309d7a333d38d951bc27598c677af1796934dbd98e1024e7ad8de798fedda"
 
-# Issue only affects Debian/SUSE, not us
-CVE_CHECK_IGNORE += "CVE-2021-26720"
+CVE_STATUS[CVE-2021-26720] = "not-applicable-platform: Issue only affects Debian/SUSE"
 
 DEPENDS = "expat libcap libdaemon glib-2.0 glib-2.0-native"
 
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.15/0001-avoid-start-failure-with-bind-user.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.16/0001-avoid-start-failure-with-bind-user.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.15/0001-avoid-start-failure-with-bind-user.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.18.16/0001-avoid-start-failure-with-bind-user.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.15/0001-named-lwresd-V-and-start-log-hide-build-options.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.16/0001-named-lwresd-V-and-start-log-hide-build-options.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.15/0001-named-lwresd-V-and-start-log-hide-build-options.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.18.16/0001-named-lwresd-V-and-start-log-hide-build-options.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.15/bind-ensure-searching-for-json-headers-searches-sysr.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.16/bind-ensure-searching-for-json-headers-searches-sysr.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.15/bind-ensure-searching-for-json-headers-searches-sysr.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.18.16/bind-ensure-searching-for-json-headers-searches-sysr.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.15/bind9 b/poky/meta/recipes-connectivity/bind/bind-9.18.16/bind9
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.15/bind9
rename to poky/meta/recipes-connectivity/bind/bind-9.18.16/bind9
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.15/conf.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.16/conf.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.15/conf.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.18.16/conf.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.15/generate-rndc-key.sh b/poky/meta/recipes-connectivity/bind/bind-9.18.16/generate-rndc-key.sh
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.15/generate-rndc-key.sh
rename to poky/meta/recipes-connectivity/bind/bind-9.18.16/generate-rndc-key.sh
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.15/init.d-add-support-for-read-only-rootfs.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.16/init.d-add-support-for-read-only-rootfs.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.15/init.d-add-support-for-read-only-rootfs.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.18.16/init.d-add-support-for-read-only-rootfs.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.15/make-etc-initd-bind-stop-work.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.16/make-etc-initd-bind-stop-work.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.15/make-etc-initd-bind-stop-work.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.18.16/make-etc-initd-bind-stop-work.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.15/named.service b/poky/meta/recipes-connectivity/bind/bind-9.18.16/named.service
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.15/named.service
rename to poky/meta/recipes-connectivity/bind/bind-9.18.16/named.service
diff --git a/poky/meta/recipes-connectivity/bind/bind_9.18.15.bb b/poky/meta/recipes-connectivity/bind/bind_9.18.16.bb
similarity index 93%
rename from poky/meta/recipes-connectivity/bind/bind_9.18.15.bb
rename to poky/meta/recipes-connectivity/bind/bind_9.18.16.bb
index 80164aa..d9b62bb 100644
--- a/poky/meta/recipes-connectivity/bind/bind_9.18.15.bb
+++ b/poky/meta/recipes-connectivity/bind/bind_9.18.16.bb
@@ -20,7 +20,7 @@
            file://0001-avoid-start-failure-with-bind-user.patch \
            "
 
-SRC_URI[sha256sum] = "28ae8db14862801bc2bd4fd820db00667d3f1ff9ae9cc2d06a0ef7810fed7a4e"
+SRC_URI[sha256sum] = "c88234fe07ee75c3c8a9e59152fee64b714643de8e22cf98da3db4d0b57e0775"
 
 UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
 # follow the ESV versions divisible by 2
@@ -28,7 +28,7 @@
 
 # Issue only affects dhcpd with recent bind versions. We don't ship dhcpd anymore
 # so the issue doesn't affect us.
-CVE_CHECK_IGNORE += "CVE-2019-6470"
+CVE_STATUS[CVE-2019-6470] = "not-applicable-config: Issue only affects dhcpd with recent bind versions and we don't ship dhcpd anymore."
 
 inherit autotools update-rc.d systemd useradd pkgconfig multilib_header update-alternatives
 
@@ -39,7 +39,7 @@
 PACKAGECONFIG[libedit] = "--with-readline=libedit,,libedit"
 PACKAGECONFIG[dns-over-http] = "--enable-doh,--disable-doh,nghttp2"
 
-EXTRA_OECONF = " --disable-devpoll --disable-auto-validation --enable-epoll \
+EXTRA_OECONF = " --disable-auto-validation \
                  --with-gssapi=no --with-lmdb=no --with-zlib \
                  --sysconfdir=${sysconfdir}/bind \
                  --with-openssl=${STAGING_DIR_HOST}${prefix} \
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5.inc b/poky/meta/recipes-connectivity/bluez5/bluez5.inc
index e10158a..d2ee2b4 100644
--- a/poky/meta/recipes-connectivity/bluez5/bluez5.inc
+++ b/poky/meta/recipes-connectivity/bluez5/bluez5.inc
@@ -55,6 +55,7 @@
            file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \
            file://0001-test-gatt-Fix-hung-issue.patch \
            file://0004-src-shared-util.c-include-linux-limits.h.patch \
+           file://fix-check-ell-path.patch \
            "
 S = "${WORKDIR}/bluez-${PV}"
 
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5/fix-check-ell-path.patch b/poky/meta/recipes-connectivity/bluez5/bluez5/fix-check-ell-path.patch
new file mode 100644
index 0000000..7afa639
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bluez5/bluez5/fix-check-ell-path.patch
@@ -0,0 +1,39 @@
+Upstream-Status: Submitted [https://marc.info/?l=linux-bluetooth&m=168818474411163&w=2]
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+From linux-bluetooth  Sat Jul 01 04:12:52 2023
+From: Rudi Heitbaum <rudi () heitbaum ! com>
+Date: Sat, 01 Jul 2023 04:12:52 +0000
+To: linux-bluetooth
+Subject: [PATCH] configure: Fix check ell path for cross compiling
+Message-Id: <20230701041252.139338-1-rudi () heitbaum ! com>
+X-MARC-Message: https://marc.info/?l=linux-bluetooth&m=168818474411163
+
+Use of AC_CHECK_FILE prevents cross compilation.
+Instead use test to support cross compiling.
+
+Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
+---
+ configure.ac | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index eff297960..bc7edfcd3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -298,9 +298,10 @@ if (test "${enable_external_ell}" = "yes"); then
+ 	AC_SUBST(ELL_LIBS)
+ fi
+ if (test "${enable_external_ell}" != "yes"); then
+-	AC_CHECK_FILE(${srcdir}/ell/ell.h, dummy=yes,
+-			AC_CHECK_FILE(${srcdir}/../ell/ell/ell.h, dummy=yes,
+-				AC_MSG_ERROR(ELL source is required or use --enable-external-ell)))
++	if (test ! -f ${srcdir}/ell/ell.h) &&
++			(test ! -f ${srcdir}/../ell/ell/ell.h); then
++				AC_MSG_ERROR(ELL source is required or use --enable-external-ell)
++	fi
+ fi
+ AM_CONDITIONAL(EXTERNAL_ELL, test "${enable_external_ell}" = "yes" ||
+ 				(test "${enable_btpclient}" != "yes" &&
+-- 
+2.34.1
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5_5.66.bb b/poky/meta/recipes-connectivity/bluez5/bluez5_5.68.bb
similarity index 84%
rename from poky/meta/recipes-connectivity/bluez5/bluez5_5.66.bb
rename to poky/meta/recipes-connectivity/bluez5/bluez5_5.68.bb
index 2208b73..f8405ed 100644
--- a/poky/meta/recipes-connectivity/bluez5/bluez5_5.66.bb
+++ b/poky/meta/recipes-connectivity/bluez5/bluez5_5.68.bb
@@ -1,9 +1,9 @@
 require bluez5.inc
 
-SRC_URI[sha256sum] = "39fea64b590c9492984a0c27a89fc203e1cdc74866086efb8f4698677ab2b574"
+SRC_URI[sha256sum] = "fc505e6445cb579a55cacee6821fe70d633921522043d322b696de0a175ff933"
 
-# These issues have kernel fixes rather than bluez fixes so exclude here
-CVE_CHECK_IGNORE += "CVE-2020-12352 CVE-2020-24490"
+CVE_STATUS[CVE-2022-3563] = "cpe-incorrect: This issues have kernel fixes rather than bluez fixes"
+CVE_STATUS[CVE-2022-3637] = "cpe-incorrect: This issues have kernel fixes rather than bluez fixes"
 
 # noinst programs in Makefile.tools that are conditional on READLINE
 # support
diff --git a/poky/meta/recipes-connectivity/libuv/libuv_1.45.0.bb b/poky/meta/recipes-connectivity/libuv/libuv_1.46.0.bb
similarity index 85%
rename from poky/meta/recipes-connectivity/libuv/libuv_1.45.0.bb
rename to poky/meta/recipes-connectivity/libuv/libuv_1.46.0.bb
index 456cb2f..c9aa25c 100644
--- a/poky/meta/recipes-connectivity/libuv/libuv_1.45.0.bb
+++ b/poky/meta/recipes-connectivity/libuv/libuv_1.46.0.bb
@@ -6,8 +6,8 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=74b6f2f7818a4e3a80d03556f71b129b \
                     file://LICENSE-extra;md5=f9307417749e19bd1d6d68a394b49324"
 
-SRCREV = "96e05543f53b19d9642b4b0dd73b86ad3cea313e"
-SRC_URI = "git://github.com/libuv/libuv.git;branch=master;protocol=https"
+SRCREV = "f0bb7e40f0508bedf6fad33769b3f87bb8aedfa6"
+SRC_URI = "git://github.com/libuv/libuv.git;branch=v1.x;protocol=https"
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-connectivity/openssh/openssh_9.3p1.bb b/poky/meta/recipes-connectivity/openssh/openssh_9.3p1.bb
index 42ce814..3edc123 100644
--- a/poky/meta/recipes-connectivity/openssh/openssh_9.3p1.bb
+++ b/poky/meta/recipes-connectivity/openssh/openssh_9.3p1.bb
@@ -28,15 +28,14 @@
            "
 SRC_URI[sha256sum] = "e9baba7701a76a51f3d85a62c383a3c9dcd97fa900b859bc7db114c1868af8a8"
 
-# This CVE is specific to OpenSSH with the pam opie which we don't build/use here
-CVE_CHECK_IGNORE += "CVE-2007-2768"
+CVE_STATUS[CVE-2007-2768] = "not-applicable-config: This CVE is specific to OpenSSH with the pam opie which we don't build/use here."
 
 # This CVE is specific to OpenSSH server, as used in Fedora and Red Hat Enterprise Linux 7
 # and when running in a Kerberos environment. As such it is not relevant to OpenEmbedded
-CVE_CHECK_IGNORE += "CVE-2014-9278"
+CVE_STATUS[CVE-2014-9278] = "not-applicable-platform: This CVE is specific to OpenSSH server, as used in Fedora and \
+Red Hat Enterprise Linux 7 and when running in a Kerberos environment"
 
-# CVE only applies to some distributed RHEL binaries
-CVE_CHECK_IGNORE += "CVE-2008-3844"
+CVE_STATUS[CVE-2008-3844] = "not-applicable-platform: Only applies to some distributed RHEL binaries."
 
 PAM_SRC_URI = "file://sshd"
 
diff --git a/poky/meta/recipes-connectivity/openssl/openssl_3.1.1.bb b/poky/meta/recipes-connectivity/openssl/openssl_3.1.1.bb
index f5f3f32..c2a7173 100644
--- a/poky/meta/recipes-connectivity/openssl/openssl_3.1.1.bb
+++ b/poky/meta/recipes-connectivity/openssl/openssl_3.1.1.bb
@@ -137,7 +137,9 @@
 	fi
 	# WARNING: do not set compiler/linker flags (-I/-D etc.) in EXTRA_OECONF, as they will fully replace the
 	# environment variables set by bitbake. Adjust the environment variables instead.
-	HASHBANGPERL="/usr/bin/env perl" PERL=perl PERL5LIB="${S}/external/perl/Text-Template-1.46/lib/" \
+	PERLEXTERNAL="$(realpath ${S}/external/perl/Text-Template-*/lib)"
+	test -d "$PERLEXTERNAL" || bberror "PERLEXTERNAL '$PERLEXTERNAL' not found!"
+	HASHBANGPERL="/usr/bin/env perl" PERL=perl PERL5LIB="$PERLEXTERNAL" \
 	perl ${S}/Configure ${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS} ${DEPRECATED_CRYPTO_FLAGS} --prefix=$useprefix --openssldir=${libdir}/ssl-3 --libdir=${libdir} $target
 	perl ${B}/configdata.pm --dump
 }
@@ -253,6 +255,5 @@
 
 CVE_VERSION_SUFFIX = "alphabetical"
 
-# Only affects OpenSSL >= 1.1.1 in combination with Apache < 2.4.37
 # Apache in meta-webserver is already recent enough
-CVE_CHECK_IGNORE += "CVE-2019-0190"
+CVE_STATUS[CVE-2019-0190] = "not-applicable-config: Only affects OpenSSL >= 1.1.1 in combination with Apache < 2.4.37"
diff --git a/poky/meta/recipes-core/coreutils/coreutils_9.3.bb b/poky/meta/recipes-core/coreutils/coreutils_9.3.bb
index 25da988..ba38169 100644
--- a/poky/meta/recipes-core/coreutils/coreutils_9.3.bb
+++ b/poky/meta/recipes-core/coreutils/coreutils_9.3.bb
@@ -23,8 +23,8 @@
 SRC_URI[sha256sum] = "adbcfcfe899235b71e8768dcf07cd532520b7f54f9a8064843f8d199a904bbaa"
 
 # http://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=v8.27-101-gf5d7c0842
-# runcon is not really a sandbox command, use `runcon ... setsid ...` to avoid this particular issue.
-CVE_CHECK_IGNORE += "CVE-2016-2781"
+# 
+CVE_STATUS[CVE-2016-2781] = "disputed: runcon is not really a sandbox command, use `runcon ... setsid ...` to avoid this particular issue."
 
 EXTRA_OECONF:class-target = "--enable-install-program=arch,hostname --libexecdir=${libdir}"
 EXTRA_OECONF:class-nativesdk = "--enable-install-program=arch,hostname"
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.76.3.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.76.4.bb
similarity index 96%
rename from poky/meta/recipes-core/glib-2.0/glib-2.0_2.76.3.bb
rename to poky/meta/recipes-core/glib-2.0/glib-2.0_2.76.4.bb
index 4327a13..64a3c6d 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.76.3.bb
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.76.4.bb
@@ -19,7 +19,7 @@
            "
 SRC_URI:append:class-native = " file://relocate-modules.patch"
 
-SRC_URI[sha256sum] = "c0be444e403d7c3184d1f394f89f0b644710b5e9331b54fa4e8b5037813ad32a"
+SRC_URI[sha256sum] = "5a5a191c96836e166a7771f7ea6ca2b0069c603c7da3cba1cd38d1694a395dda"
 
 # Find any meson cross files in FILESPATH that are relevant for the current
 # build (using siteinfo) and add them to EXTRA_OEMESON.
diff --git a/poky/meta/recipes-core/glib-networking/glib-networking_2.76.0.bb b/poky/meta/recipes-core/glib-networking/glib-networking_2.76.1.bb
similarity index 94%
rename from poky/meta/recipes-core/glib-networking/glib-networking_2.76.0.bb
rename to poky/meta/recipes-core/glib-networking/glib-networking_2.76.1.bb
index 75c031e..8e7290c 100644
--- a/poky/meta/recipes-core/glib-networking/glib-networking_2.76.0.bb
+++ b/poky/meta/recipes-core/glib-networking/glib-networking_2.76.1.bb
@@ -14,7 +14,7 @@
 SECTION = "libs"
 DEPENDS = "glib-2.0-native glib-2.0"
 
-SRC_URI[archive.sha256sum] = "149a05a179e629a538be25662aa324b499d7c4549c5151db5373e780a1bf1b9a"
+SRC_URI[archive.sha256sum] = "5c698a9994dde51efdfb1026a56698a221d6250e89dc50ebcddda7b81480a42b"
 
 PACKAGECONFIG ??= "openssl environment ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
 
diff --git a/poky/meta/recipes-core/glibc/glibc-testsuite_2.37.bb b/poky/meta/recipes-core/glibc/glibc-testsuite_2.37.bb
index e8ad2a9..2e076f4 100644
--- a/poky/meta/recipes-core/glibc/glibc-testsuite_2.37.bb
+++ b/poky/meta/recipes-core/glibc/glibc-testsuite_2.37.bb
@@ -16,6 +16,7 @@
 TOOLCHAIN_TEST_HOST_PORT ??= "2222"
 
 do_check[nostamp] = "1"
+do_check[network] = "1"
 do_check:append () {
     chmod 0755 ${WORKDIR}/check-test-wrapper
 
diff --git a/poky/meta/recipes-core/glibc/glibc_2.37.bb b/poky/meta/recipes-core/glibc/glibc_2.37.bb
index 3387441..851aa61 100644
--- a/poky/meta/recipes-core/glibc/glibc_2.37.bb
+++ b/poky/meta/recipes-core/glibc/glibc_2.37.bb
@@ -4,18 +4,19 @@
 # glibc https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2019-1010022
 # glibc https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2019-1010023
 # glibc https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2019-1010024
-# Upstream glibc maintainers dispute there is any issue and have no plans to address it further.
-# "this is being treated as a non-security bug and no real threat."
-CVE_CHECK_IGNORE += "CVE-2019-1010022 CVE-2019-1010023 CVE-2019-1010024"
+CVE_STATUS_GROUPS = "CVE_STATUS_RECIPE"
+CVE_STATUS_RECIPE = "CVE-2019-1010022 CVE-2019-1010023 CVE-2019-1010024"
+CVE_STATUS_RECIPE[status] = "disputed: \
+Upstream glibc maintainers dispute there is any issue and have no plans to address it further. \
+this is being treated as a non-security bug and no real threat."
 
 # glibc https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2019-1010025
-# Allows for ASLR bypass so can bypass some hardening, not an exploit in itself, may allow
-# easier access for another. "ASLR bypass itself is not a vulnerability."
 # Potential patch at https://sourceware.org/bugzilla/show_bug.cgi?id=22853
-CVE_CHECK_IGNORE += "CVE-2019-1010025"
+CVE_STATUS[CVE-2019-1010025] = "disputed: \
+Allows for ASLR bypass so can bypass some hardening, not an exploit in itself, may allow \
+easier access for another. 'ASLR bypass itself is not a vulnerability.'"
 
-# This is integrated into the 2.37 branch as of 07b9521fc6
-CVE_CHECK_IGNORE += "CVE-2023-25139"
+CVE_STATUS[CVE-2023-25139] = "cpe-stable-backport: This is integrated into the 2.37 branch as of 07b9521fc6"
 
 DEPENDS += "gperf-native bison-native"
 
diff --git a/poky/meta/recipes-core/ifupdown/ifupdown_0.8.41.bb b/poky/meta/recipes-core/ifupdown/ifupdown_0.8.41.bb
index 5dbd619..16425ea 100644
--- a/poky/meta/recipes-core/ifupdown/ifupdown_0.8.41.bb
+++ b/poky/meta/recipes-core/ifupdown/ifupdown_0.8.41.bb
@@ -42,6 +42,11 @@
 	install -m 0644 ifup.8 ${D}${mandir}/man8
 	install -m 0644 interfaces.5 ${D}${mandir}/man5
 	cd ${D}${mandir}/man8 && ln -s ifup.8 ifdown.8
+
+	install -d ${D}${sysconfdir}/network/if-pre-up.d
+	install -d ${D}${sysconfdir}/network/if-up.d
+	install -d ${D}${sysconfdir}/network/if-down.d
+	install -d ${D}${sysconfdir}/network/if-post-down.d
 }
 
 do_install_ptest () {
diff --git a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
index 05148ac..4ece229 100644
--- a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
+++ b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
@@ -26,7 +26,7 @@
 
 REQUIRED_DISTRO_FEATURES += "xattr"
 
-SRCREV ?= "581edf20120cd383e8dea0693239629e7547bb7e"
+SRCREV ?= "679b7b6700ec1355a5b15a51c90a7ee339bee97c"
 SRC_URI = "git://git.yoctoproject.org/poky;branch=master \
            file://Yocto_Build_Appliance.vmx \
            file://Yocto_Build_Appliance.vmxf \
@@ -133,9 +133,9 @@
 	cd ${WORKDIR}
 	mkdir -p Yocto_Build_Appliance
 	cp *.vmx* Yocto_Build_Appliance
-	ln -sf ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.wic.vmdk Yocto_Build_Appliance/Yocto_Build_Appliance.vmdk
-	ln -sf ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.wic.vhdx Yocto_Build_Appliance/Yocto_Build_Appliance.vhdx
-	ln -sf ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.wic.vhd Yocto_Build_Appliance/Yocto_Build_Appliance.vhd
+	ln -sf ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic.vmdk Yocto_Build_Appliance/Yocto_Build_Appliance.vmdk
+	ln -sf ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic.vhdx Yocto_Build_Appliance/Yocto_Build_Appliance.vhdx
+	ln -sf ${IMGDEPLOYDIR}/${IMAGE_NAME}.wic.vhd Yocto_Build_Appliance/Yocto_Build_Appliance.vhd
 	zip -r ${IMGDEPLOYDIR}/Yocto_Build_Appliance-${DATETIME}.zip Yocto_Build_Appliance
 	ln -sf Yocto_Build_Appliance-${DATETIME}.zip ${IMGDEPLOYDIR}/Yocto_Build_Appliance.zip
 }
diff --git a/poky/meta/recipes-core/images/core-image-ptest.bb b/poky/meta/recipes-core/images/core-image-ptest.bb
index 90c2664..74cf933 100644
--- a/poky/meta/recipes-core/images/core-image-ptest.bb
+++ b/poky/meta/recipes-core/images/core-image-ptest.bb
@@ -19,12 +19,14 @@
 # strace-ptest in particular needs more than 500MB
 IMAGE_OVERHEAD_FACTOR = "1.0"
 IMAGE_ROOTFS_EXTRA_SPACE = "324288"
+IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-mdadm = "1524288"
 IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-strace = "1024288"
 IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-lttng-tools = "1524288"
 
 # ptests need more memory than standard to avoid the OOM killer
 QB_MEM = "-m 1024"
 QB_MEM:virtclass-mcextend-lttng-tools = "-m 4096"
+QB_MEM:virtclass-mcextend-python3 = "-m 2048"
 QB_MEM:virtclass-mcextend-python3-cryptography = "-m 4096"
 
 TEST_SUITES = "ping ssh parselogs ptest"
diff --git a/poky/meta/recipes-core/kbd/kbd_2.5.1.bb b/poky/meta/recipes-core/kbd/kbd_2.6.0.bb
similarity index 94%
rename from poky/meta/recipes-core/kbd/kbd_2.5.1.bb
rename to poky/meta/recipes-core/kbd/kbd_2.6.0.bb
index 7662b8f..9a3e0a7 100644
--- a/poky/meta/recipes-core/kbd/kbd_2.5.1.bb
+++ b/poky/meta/recipes-core/kbd/kbd_2.6.0.bb
@@ -16,7 +16,7 @@
 SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/${BP}.tar.xz \
            "
 
-SRC_URI[sha256sum] = "ccdf452387a6380973d2927363e9cbb939fa2068915a6f937ff9d24522024683"
+SRC_URI[sha256sum] = "9c159433db5df8ef31d86b42f5b09d32311bdda2ed35107fb1926243da60b28a"
 
 EXTRA_OECONF = "--disable-tests"
 PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.34.bb b/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.36.bb
similarity index 100%
rename from poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.34.bb
rename to poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.36.bb
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt.inc b/poky/meta/recipes-core/libxcrypt/libxcrypt.inc
index 4d145cf..ba93d91 100644
--- a/poky/meta/recipes-core/libxcrypt/libxcrypt.inc
+++ b/poky/meta/recipes-core/libxcrypt/libxcrypt.inc
@@ -10,19 +10,13 @@
 inherit autotools pkgconfig
 
 SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH};protocol=https"
-SRCREV = "e80cfde51bb4fe4bcf27585810e0b4ea3d1e4d7d"
+SRCREV = "f531a36aa916a22ef2ce7d270ba381e264250cbf"
 SRCBRANCH ?= "master"
 
 SRC_URI += "file://fix_cflags_handling.patch"
 
 PROVIDES = "virtual/crypt"
 
-FILES:${PN} = "${libdir}/libcrypt*.so.* \
-               ${libdir}/libcrypt-*.so \
-               ${libdir}/libowcrypt*.so.* \
-               ${libdir}/libowcrypt-*.so \
-"
-
 S = "${WORKDIR}/git"
 
 BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.34.bb b/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.36.bb
similarity index 100%
rename from poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.34.bb
rename to poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.36.bb
diff --git a/poky/meta/recipes-core/libxml/libxml2/fix-tests.patch b/poky/meta/recipes-core/libxml/libxml2/fix-tests.patch
deleted file mode 100644
index 80678ef..0000000
--- a/poky/meta/recipes-core/libxml/libxml2/fix-tests.patch
+++ /dev/null
@@ -1,222 +0,0 @@
-Backport the following patches to fix the reader2 and runsuite test cases:
-
-b92768cd tests: Enable "runsuite" test
-0ac8c15e python/tests/reader2: use absolute paths everywhere
-b9ba5e1d python/tests/reader2: always exit(1) if a test fails
-
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-diff --git a/python/tests/reader2.py b/python/tests/reader2.py
-index 65cecd47..6e6353b4 100755
---- a/python/tests/reader2.py
-+++ b/python/tests/reader2.py
-@@ -6,7 +6,6 @@
- import sys
- import glob
- import os
--import string
- import libxml2
- try:
-     import StringIO
-@@ -20,103 +19,104 @@ libxml2.debugMemory(1)
- 
- err = ""
- basedir = os.path.dirname(os.path.realpath(__file__))
--dir_prefix = os.path.join(basedir, "../../test/valid/")
-+dir_prefix = os.path.realpath(os.path.join(basedir, "..", "..", "test", "valid"))
-+
- # This dictionary reflects the contents of the files
- # ../../test/valid/*.xml.err that are not empty, except that
- # the file paths in the messages start with ../../test/
- 
- expect = {
-     '766956':
--"""../../test/valid/dtds/766956.dtd:2: parser error : PEReference: expecting ';'
-+"""{0}/dtds/766956.dtd:2: parser error : PEReference: expecting ';'
- %ä%ent;
-    ^
--../../test/valid/dtds/766956.dtd:2: parser error : Content error in the external subset
-+{0}/dtds/766956.dtd:2: parser error : Content error in the external subset
- %ä%ent;
-         ^
- Entity: line 1: 
- value
- ^
--""",
-+""".format(dir_prefix),
-     '781333':
--"""../../test/valid/781333.xml:4: element a: validity error : Element a content does not follow the DTD, expecting ( ..., got 
-+"""{0}/781333.xml:4: element a: validity error : Element a content does not follow the DTD, expecting ( ..., got 
- <a/>
-     ^
--../../test/valid/781333.xml:5: element a: validity error : Element a content does not follow the DTD, Expecting more child
-+{0}/781333.xml:5: element a: validity error : Element a content does not follow the DTD, Expecting more child
- 
- ^
--""",
-+""".format(dir_prefix),
-     'cond_sect2':
--"""../../test/valid/dtds/cond_sect2.dtd:15: parser error : All markup of the conditional section is not in the same entity
-+"""{0}/dtds/cond_sect2.dtd:15: parser error : All markup of the conditional section is not in the same entity
-     %ent;
-          ^
- Entity: line 1: 
- ]]>
- ^
--../../test/valid/dtds/cond_sect2.dtd:17: parser error : Content error in the external subset
-+{0}/dtds/cond_sect2.dtd:17: parser error : Content error in the external subset
- 
- ^
--""",
-+""".format(dir_prefix),
-     'rss':
--"""../../test/valid/rss.xml:177: element rss: validity error : Element rss does not carry attribute version
-+"""{0}/rss.xml:177: element rss: validity error : Element rss does not carry attribute version
- </rss>
-       ^
--""",
-+""".format(dir_prefix),
-     't8':
--"""../../test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
-+"""{0}/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
- 
- %defroot; %defmiddle; %deftest;
-          ^
- Entity: line 1: 
- &lt;!ELEMENT root (middle) >
- ^
--../../test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
-+{0}/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
- 
- %defroot; %defmiddle; %deftest;
-                      ^
- Entity: line 1: 
- &lt;!ELEMENT middle (test) >
- ^
--../../test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
-+{0}/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
- 
- %defroot; %defmiddle; %deftest;
-                                ^
- Entity: line 1: 
- &lt;!ELEMENT test (#PCDATA) >
- ^
--""",
-+""".format(dir_prefix),
-     't8a':
--"""../../test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
-+"""{0}/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
- 
- %defroot;%defmiddle;%deftest;
-          ^
- Entity: line 1: 
- &lt;!ELEMENT root (middle) >
- ^
--../../test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
-+{0}/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
- 
- %defroot;%defmiddle;%deftest;
-                     ^
- Entity: line 1: 
- &lt;!ELEMENT middle (test) >
- ^
--../../test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
-+{0}/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
- 
- %defroot;%defmiddle;%deftest;
-                              ^
- Entity: line 1: 
- &lt;!ELEMENT test (#PCDATA) >
- ^
--""",
-+""".format(dir_prefix),
-     'xlink':
--"""../../test/valid/xlink.xml:450: element termdef: validity error : ID dt-arc already defined
-+"""{0}/xlink.xml:450: element termdef: validity error : ID dt-arc already defined
- 	<p><termdef id="dt-arc" term="Arc">An <ter
- 	                                  ^
- validity error : attribute def line 199 references an unknown ID "dt-xlg"
--""",
-+""".format(dir_prefix),
- }
- 
- # Add prefix_dir and extension to the keys
--expect = {"{}{}.xml".format(dir_prefix, key): val for key, val in expect.items()}
-+expect = {os.path.join(dir_prefix, key + ".xml"): val for key, val in expect.items()}
- 
- def callback(ctx, str):
-     global err
-@@ -124,11 +124,12 @@ def callback(ctx, str):
- libxml2.registerErrorHandler(callback, "")
- 
- parsing_error_files = ["766956", "cond_sect2", "t8", "t8a"]
--expect_parsing_error = ["{}{}.xml".format(dir_prefix, f) for f in parsing_error_files]
-+expect_parsing_error = [os.path.join(dir_prefix, f + ".xml") for f in parsing_error_files]
- 
--valid_files = glob.glob(dir_prefix + "*.x*")
-+valid_files = glob.glob(os.path.join(dir_prefix, "*.x*"))
- assert valid_files, "found no valid files in '{}'".format(dir_prefix)
- valid_files.sort()
-+failures = 0
- for file in valid_files:
-     err = ""
-     reader = libxml2.newTextReaderFilename(file)
-@@ -142,9 +143,15 @@ for file in valid_files:
-         #sys.exit(1)
-     if (err):
-         if not(file in expect and err == expect[file]):
-+            failures += 1
-             print("Error: ", err)
-             if file in expect:
-                 print("Expected: ", expect[file])
-+
-+if failures:
-+    print("Failed %d tests" % failures)
-+    sys.exit(1)
-+
- #
- # another separate test based on Stephane Bidoul one
- #
-@@ -337,9 +344,11 @@ while reader.Read() == 1:
- if res != expect:
-     print("test5 failed: unexpected output")
-     print(res)
-+    sys.exit(1)
- if err != "":
-     print("test5 failed: validation error found")
-     print(err)
-+    sys.exit(1)
- 
- #
- # cleanup
-diff --git a/runsuite.c b/runsuite.c
-index 483490a2..a522d24b 100644
---- a/runsuite.c
-+++ b/runsuite.c
-@@ -1054,13 +1054,18 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
-     old_tests = nb_tests;
-     old_leaks = nb_leaks;
-     xsdTest();
--    if ((nb_errors == old_errors) && (nb_leaks == old_leaks))
--	printf("Ran %d tests, no errors\n", nb_tests - old_tests);
--    else
--	printf("Ran %d tests, %d errors, %d leaks\n",
--	       nb_tests - old_tests,
--	       nb_errors - old_errors,
--	       nb_leaks - old_leaks);
-+    printf("Ran %d tests, %d errors, %d leaks\n",
-+           nb_tests - old_tests,
-+           nb_errors - old_errors,
-+           nb_leaks - old_leaks);
-+    if (nb_errors - old_errors == 10) {
-+        printf("10 errors were expected\n");
-+        nb_errors = old_errors;
-+    } else {
-+        printf("10 errors were expected, got %d errors\n",
-+               nb_errors - old_errors);
-+        nb_errors = old_errors + 1;
-+    }
-     old_errors = nb_errors;
-     old_tests = nb_tests;
-     old_leaks = nb_leaks;
diff --git a/poky/meta/recipes-core/libxml/libxml2/install-tests.patch b/poky/meta/recipes-core/libxml/libxml2/install-tests.patch
index b770afb..14ccce5 100644
--- a/poky/meta/recipes-core/libxml/libxml2/install-tests.patch
+++ b/poky/meta/recipes-core/libxml/libxml2/install-tests.patch
@@ -1,19 +1,19 @@
+From 3fc716357ce1372d9418dc86f24315b34d9808de Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Mon, 5 Dec 2022 17:02:32 +0000
+Subject: [PATCH] add yocto-specific install-ptest target
+
 Add a target to install the test suite.
 
 Upstream-Status: Inappropriate
 Signed-off-by: Ross Burton <ross.burton@arm.com>
 
-From c7809dc6947324ea506a0c2bf132ecd37156f211 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@arm.com>
-Date: Mon, 5 Dec 2022 17:02:32 +0000
-Subject: [PATCH] add yocto-specific install-ptest target
-
 ---
  Makefile.am | 10 ++++++++++
  1 file changed, 10 insertions(+)
 
 diff --git a/Makefile.am b/Makefile.am
-index 316109b1..15e100be 100644
+index 5bc4018..57d27af 100644
 --- a/Makefile.am
 +++ b/Makefile.am
 @@ -26,6 +26,16 @@ check_PROGRAMS = \
@@ -32,7 +32,4 @@
 +
  bin_PROGRAMS = xmllint xmlcatalog
  
- nodist_bin_SCRIPTS = xml2-config
--- 
-2.34.1
-
+ bin_SCRIPTS = xml2-config
diff --git a/poky/meta/recipes-core/libxml/libxml2/libxml-64bit.patch b/poky/meta/recipes-core/libxml/libxml2/libxml-64bit.patch
deleted file mode 100644
index fd8e469..0000000
--- a/poky/meta/recipes-core/libxml/libxml2/libxml-64bit.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 056b14345b1abd76a761ab14538f1bc21302781a Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Sat, 11 May 2019 20:26:51 +0800
-Subject: [PATCH] libxml 64bit
-
-Upstream-Status: Backport [from debian: bugs.debian.org/439843]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- libxml.h | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/libxml.h b/libxml.h
-index 64e30f7..4e80d90 100644
---- a/libxml.h
-+++ b/libxml.h
-@@ -15,6 +15,9 @@
- #ifndef _LARGEFILE_SOURCE
- #define _LARGEFILE_SOURCE
- #endif
-+#ifndef _LARGEFILE64_SOURCE
-+#define _LARGEFILE64_SOURCE
-+#endif
- #ifndef _FILE_OFFSET_BITS
- #define _FILE_OFFSET_BITS 64
- #endif
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-core/libxml/libxml2/libxml-m4-use-pkgconfig.patch b/poky/meta/recipes-core/libxml/libxml2/libxml-m4-use-pkgconfig.patch
deleted file mode 100644
index 639c80b..0000000
--- a/poky/meta/recipes-core/libxml/libxml2/libxml-m4-use-pkgconfig.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-Change the AM_PATH_XML2 macros to use pkg-config instead of xml2-config.
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxml2/-/commit/d598d8af0913b6e3d4e61ffa62397a275b669dca]
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
- libxml.m4 | 189 ++----------------------------------------------------
- 1 file changed, 5 insertions(+), 184 deletions(-)
-
-diff --git a/libxml.m4 b/libxml.m4
-index fc7790c..1c53585 100644
---- a/libxml.m4
-+++ b/libxml.m4
-@@ -1,191 +1,12 @@
--# Configure paths for LIBXML2
--# Simon Josefsson 2020-02-12
--# Fix autoconf 2.70+ warnings
--# Mike Hommey 2004-06-19
--# use CPPFLAGS instead of CFLAGS
--# Toshio Kuratomi 2001-04-21
--# Adapted from:
--# Configure paths for GLIB
--# Owen Taylor     97-11-3
--
- dnl AM_PATH_XML2([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
- dnl Test for XML, and define XML_CPPFLAGS and XML_LIBS
- dnl
--AC_DEFUN([AM_PATH_XML2],[ 
--AC_ARG_WITH(xml-prefix,
--            [  --with-xml-prefix=PFX   Prefix where libxml is installed (optional)],
--            xml_config_prefix="$withval", xml_config_prefix="")
--AC_ARG_WITH(xml-exec-prefix,
--            [  --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional)],
--            xml_config_exec_prefix="$withval", xml_config_exec_prefix="")
--AC_ARG_ENABLE(xmltest,
--              [  --disable-xmltest       Do not try to compile and run a test LIBXML program],,
--              enable_xmltest=yes)
--
--  if test x$xml_config_exec_prefix != x ; then
--     xml_config_args="$xml_config_args"
--     if test x${XML2_CONFIG+set} != xset ; then
--        XML2_CONFIG=$xml_config_exec_prefix/bin/xml2-config
--     fi
--  fi
--  if test x$xml_config_prefix != x ; then
--     xml_config_args="$xml_config_args --prefix=$xml_config_prefix"
--     if test x${XML2_CONFIG+set} != xset ; then
--        XML2_CONFIG=$xml_config_prefix/bin/xml2-config
--     fi
--  fi
--
--  AC_PATH_PROG(XML2_CONFIG, xml2-config, no)
--  min_xml_version=ifelse([$1], ,2.0.0,[$1])
--  AC_MSG_CHECKING(for libxml - version >= $min_xml_version)
--  no_xml=""
--  if test "$XML2_CONFIG" = "no" ; then
--    no_xml=yes
--  else
--    XML_CPPFLAGS=`$XML2_CONFIG $xml_config_args --cflags`
--    XML_LIBS=`$XML2_CONFIG $xml_config_args --libs`
--    xml_config_major_version=`$XML2_CONFIG $xml_config_args --version | \
--           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
--    xml_config_minor_version=`$XML2_CONFIG $xml_config_args --version | \
--           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
--    xml_config_micro_version=`$XML2_CONFIG $xml_config_args --version | \
--           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
--    if test "x$enable_xmltest" = "xyes" ; then
--      ac_save_CPPFLAGS="$CPPFLAGS"
--      ac_save_LIBS="$LIBS"
--      CPPFLAGS="$CPPFLAGS $XML_CPPFLAGS"
--      LIBS="$XML_LIBS $LIBS"
--dnl
--dnl Now check if the installed libxml is sufficiently new.
--dnl (Also sanity checks the results of xml2-config to some extent)
--dnl
--      rm -f conf.xmltest
--      AC_RUN_IFELSE(
--            [AC_LANG_SOURCE([[
--#include <stdlib.h>
--#include <stdio.h>
--#include <string.h>
--#include <libxml/xmlversion.h>
--
--int 
--main()
--{
--  int xml_major_version, xml_minor_version, xml_micro_version;
--  int major, minor, micro;
--  char *tmp_version;
--
--  system("touch conf.xmltest");
--
--  /* Capture xml2-config output via autoconf/configure variables */
--  /* HP/UX 9 (%@#!) writes to sscanf strings */
--  tmp_version = (char *)strdup("$min_xml_version");
--  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
--     printf("%s, bad version string from xml2-config\n", "$min_xml_version");
--     exit(1);
--   }
--   free(tmp_version);
--
--   /* Capture the version information from the header files */
--   tmp_version = (char *)strdup(LIBXML_DOTTED_VERSION);
--   if (sscanf(tmp_version, "%d.%d.%d", &xml_major_version, &xml_minor_version, &xml_micro_version) != 3) {
--     printf("%s, bad version string from libxml includes\n", "LIBXML_DOTTED_VERSION");
--     exit(1);
--   }
--   free(tmp_version);
--
-- /* Compare xml2-config output to the libxml headers */
--  if ((xml_major_version != $xml_config_major_version) ||
--      (xml_minor_version != $xml_config_minor_version) ||
--      (xml_micro_version != $xml_config_micro_version))
--    {
--      printf("*** libxml header files (version %d.%d.%d) do not match\n",
--         xml_major_version, xml_minor_version, xml_micro_version);
--      printf("*** xml2-config (version %d.%d.%d)\n",
--         $xml_config_major_version, $xml_config_minor_version, $xml_config_micro_version);
--      return 1;
--    } 
--/* Compare the headers to the library to make sure we match */
--  /* Less than ideal -- doesn't provide us with return value feedback, 
--   * only exits if there's a serious mismatch between header and library.
--   */
--    LIBXML_TEST_VERSION;
--
--    /* Test that the library is greater than our minimum version */
--    if ((xml_major_version > major) ||
--        ((xml_major_version == major) && (xml_minor_version > minor)) ||
--        ((xml_major_version == major) && (xml_minor_version == minor) &&
--        (xml_micro_version >= micro)))
--      {
--        return 0;
--       }
--     else
--      {
--        printf("\n*** An old version of libxml (%d.%d.%d) was found.\n",
--               xml_major_version, xml_minor_version, xml_micro_version);
--        printf("*** You need a version of libxml newer than %d.%d.%d.\n",
--           major, minor, micro);
--        printf("***\n");
--        printf("*** If you have already installed a sufficiently new version, this error\n");
--        printf("*** probably means that the wrong copy of the xml2-config shell script is\n");
--        printf("*** being found. The easiest way to fix this is to remove the old version\n");
--        printf("*** of LIBXML, but you can also set the XML2_CONFIG environment to point to the\n");
--        printf("*** correct copy of xml2-config. (In this case, you will have to\n");
--        printf("*** modify your LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf\n");
--        printf("*** so that the correct libraries are found at run-time))\n");
--    }
--  return 1;
--}
--]])],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
--       CPPFLAGS="$ac_save_CPPFLAGS"
--       LIBS="$ac_save_LIBS"
--     fi
--  fi
-+AC_DEFUN([AM_PATH_XML2],[
-+  AC_REQUIRE([PKG_PROG_PKG_CONFIG])
- 
--  if test "x$no_xml" = x ; then
--     AC_MSG_RESULT(yes (version $xml_config_major_version.$xml_config_minor_version.$xml_config_micro_version))
--     ifelse([$2], , :, [$2])     
--  else
--     AC_MSG_RESULT(no)
--     if test "$XML2_CONFIG" = "no" ; then
--       echo "*** The xml2-config script installed by LIBXML could not be found"
--       echo "*** If libxml was installed in PREFIX, make sure PREFIX/bin is in"
--       echo "*** your path, or set the XML2_CONFIG environment variable to the"
--       echo "*** full path to xml2-config."
--     else
--       if test -f conf.xmltest ; then
--        :
--       else
--          echo "*** Could not run libxml test program, checking why..."
--          CPPFLAGS="$CPPFLAGS $XML_CPPFLAGS"
--          LIBS="$LIBS $XML_LIBS"
--	  AC_LINK_IFELSE(
--            [AC_LANG_PROGRAM([[
--#include <libxml/xmlversion.h>
--#include <stdio.h>
--]],    [[ LIBXML_TEST_VERSION; return 0;]])],
--        [ echo "*** The test program compiled, but did not run. This usually means"
--          echo "*** that the run-time linker is not finding LIBXML or finding the wrong"
--          echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your"
--          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
--          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
--          echo "*** is required on your system"
--          echo "***"
--          echo "*** If you have an old version installed, it is best to remove it, although"
--          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
--        [ echo "*** The test program failed to compile or link. See the file config.log for the"
--          echo "*** exact error that occurred. This usually means LIBXML was incorrectly installed"
--          echo "*** or that you have moved LIBXML since it was installed. In the latter case, you"
--          echo "*** may want to edit the xml2-config script: $XML2_CONFIG" ])
--          CPPFLAGS="$ac_save_CPPFLAGS"
--          LIBS="$ac_save_LIBS"
--       fi
--     fi
-+  verdep=ifelse([$1], [], [], [">= $1"])
-+  PKG_CHECK_MODULES(XML, [libxml-2.0 $verdep], [$2], [$3])
- 
--     XML_CPPFLAGS=""
--     XML_LIBS=""
--     ifelse([$3], , :, [$3])
--  fi
-+  XML_CPPFLAGS=$XML_CFLAGS
-   AC_SUBST(XML_CPPFLAGS)
--  AC_SUBST(XML_LIBS)
--  rm -f conf.xmltest
- ])
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-core/libxml/libxml2_2.10.4.bb b/poky/meta/recipes-core/libxml/libxml2_2.11.4.bb
similarity index 91%
rename from poky/meta/recipes-core/libxml/libxml2_2.10.4.bb
rename to poky/meta/recipes-core/libxml/libxml2_2.11.4.bb
index 4f3b170..cbf2050 100644
--- a/poky/meta/recipes-core/libxml/libxml2_2.10.4.bb
+++ b/poky/meta/recipes-core/libxml/libxml2_2.11.4.bb
@@ -15,21 +15,14 @@
 
 SRC_URI += "http://www.w3.org/XML/Test/xmlts20130923.tar;subdir=${BP};name=testtar \
            file://run-ptest \
-           file://libxml-64bit.patch \
-           file://fix-tests.patch \
            file://install-tests.patch \
-           file://libxml-m4-use-pkgconfig.patch \
            "
 
-SRC_URI[archive.sha256sum] = "ed0c91c5845008f1936739e4eee2035531c1c94742c6541f44ee66d885948d45"
+SRC_URI[archive.sha256sum] = "737e1d7f8ab3f139729ca13a2494fd17bf30ddb4b7a427cf336252cab57f57f7"
 SRC_URI[testtar.sha256sum] = "c6b2d42ee50b8b236e711a97d68e6c4b5c8d83e69a2be4722379f08702ea7273"
 
 BINCONFIG = "${bindir}/xml2-config"
 
-# Fixed since 2.9.11 via
-# https://gitlab.gnome.org/GNOME/libxml2/-/commit/c1ba6f54d32b707ca6d91cb3257ce9de82876b6f
-CVE_CHECK_IGNORE += "CVE-2016-3709"
-
 PACKAGECONFIG ??= "python \
     ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
 "
diff --git a/poky/meta/recipes-core/meta/cve-update-db-native.bb b/poky/meta/recipes-core/meta/cve-update-db-native.bb
deleted file mode 100644
index 079f062..0000000
--- a/poky/meta/recipes-core/meta/cve-update-db-native.bb
+++ /dev/null
@@ -1,288 +0,0 @@
-SUMMARY = "Updates the NVD CVE database"
-LICENSE = "MIT"
-
-INHIBIT_DEFAULT_DEPS = "1"
-
-inherit native
-
-deltask do_unpack
-deltask do_patch
-deltask do_configure
-deltask do_compile
-deltask do_install
-deltask do_populate_sysroot
-
-NVDCVE_URL ?= "https://nvd.nist.gov/feeds/json/cve/1.1/nvdcve-1.1-"
-# CVE database update interval, in seconds. By default: once a day (24*60*60).
-# Use 0 to force the update
-# Use a negative value to skip the update
-CVE_DB_UPDATE_INTERVAL ?= "86400"
-
-# Timeout for blocking socket operations, such as the connection attempt.
-CVE_SOCKET_TIMEOUT ?= "60"
-
-CVE_DB_TEMP_FILE ?= "${CVE_CHECK_DB_DIR}/temp_nvdcve_1.1.db"
-
-python () {
-    if not bb.data.inherits_class("cve-check", d):
-        raise bb.parse.SkipRecipe("Skip recipe when cve-check class is not loaded.")
-}
-
-python do_fetch() {
-    """
-    Update NVD database with json data feed
-    """
-    import bb.utils
-    import bb.progress
-    import shutil
-
-    bb.utils.export_proxies(d)
-
-    db_file = d.getVar("CVE_CHECK_DB_FILE")
-    db_dir = os.path.dirname(db_file)
-    db_tmp_file = d.getVar("CVE_DB_TEMP_FILE")
-
-    cleanup_db_download(db_file, db_tmp_file)
-
-    # The NVD database changes once a day, so no need to update more frequently
-    # Allow the user to force-update
-    try:
-        import time
-        update_interval = int(d.getVar("CVE_DB_UPDATE_INTERVAL"))
-        if update_interval < 0:
-            bb.note("CVE database update skipped")
-            return
-        if time.time() - os.path.getmtime(db_file) < update_interval:
-            bb.debug(2, "Recently updated, skipping")
-            return
-
-    except OSError:
-        pass
-
-    bb.utils.mkdirhier(db_dir)
-    if os.path.exists(db_file):
-        shutil.copy2(db_file, db_tmp_file)
-
-    if update_db_file(db_tmp_file, d) == True:
-        # Update downloaded correctly, can swap files
-        shutil.move(db_tmp_file, db_file)
-    else:
-        # Update failed, do not modify the database
-        bb.note("CVE database update failed")
-        os.remove(db_tmp_file)
-}
-
-do_fetch[lockfiles] += "${CVE_CHECK_DB_FILE_LOCK}"
-do_fetch[file-checksums] = ""
-do_fetch[vardeps] = ""
-
-def cleanup_db_download(db_file, db_tmp_file):
-    """
-    Cleanup the download space from possible failed downloads
-    """
-
-    # Clean up the updates done on the main file
-    # Remove it only if a journal file exists - it means a complete re-download
-    if os.path.exists("{0}-journal".format(db_file)):
-        # If a journal is present the last update might have been interrupted. In that case,
-        # just wipe any leftovers and force the DB to be recreated.
-        os.remove("{0}-journal".format(db_file))
-
-        if os.path.exists(db_file):
-            os.remove(db_file)
-
-    # Clean-up the temporary file downloads, we can remove both journal
-    # and the temporary database
-    if os.path.exists("{0}-journal".format(db_tmp_file)):
-        # If a journal is present the last update might have been interrupted. In that case,
-        # just wipe any leftovers and force the DB to be recreated.
-        os.remove("{0}-journal".format(db_tmp_file))
-
-    if os.path.exists(db_tmp_file):
-        os.remove(db_tmp_file)
-
-def update_db_file(db_tmp_file, d):
-    """
-    Update the given database file
-    """
-    import bb.utils, bb.progress
-    from datetime import date
-    import urllib, gzip, sqlite3
-
-    YEAR_START = 2002
-    cve_socket_timeout = int(d.getVar("CVE_SOCKET_TIMEOUT"))
-
-    # Connect to database
-    conn = sqlite3.connect(db_tmp_file)
-    initialize_db(conn)
-
-    with bb.progress.ProgressHandler(d) as ph, open(os.path.join(d.getVar("TMPDIR"), 'cve_check'), 'a') as cve_f:
-        total_years = date.today().year + 1 - YEAR_START
-        for i, year in enumerate(range(YEAR_START, date.today().year + 1)):
-            bb.debug(2, "Updating %d" % year)
-            ph.update((float(i + 1) / total_years) * 100)
-            year_url = (d.getVar('NVDCVE_URL')) + str(year)
-            meta_url = year_url + ".meta"
-            json_url = year_url + ".json.gz"
-
-            # Retrieve meta last modified date
-            try:
-                response = urllib.request.urlopen(meta_url, timeout=cve_socket_timeout)
-            except urllib.error.URLError as e:
-                cve_f.write('Warning: CVE db update error, Unable to fetch CVE data.\n\n')
-                bb.warn("Failed to fetch CVE data (%s)" % e.reason)
-                return False
-
-            if response:
-                for l in response.read().decode("utf-8").splitlines():
-                    key, value = l.split(":", 1)
-                    if key == "lastModifiedDate":
-                        last_modified = value
-                        break
-                else:
-                    bb.warn("Cannot parse CVE metadata, update failed")
-                    return False
-
-            # Compare with current db last modified date
-            cursor = conn.execute("select DATE from META where YEAR = ?", (year,))
-            meta = cursor.fetchone()
-            cursor.close()
-
-            if not meta or meta[0] != last_modified:
-                bb.debug(2, "Updating entries")
-                # Clear products table entries corresponding to current year
-                conn.execute("delete from PRODUCTS where ID like ?", ('CVE-%d%%' % year,)).close()
-
-                # Update db with current year json file
-                try:
-                    response = urllib.request.urlopen(json_url, timeout=cve_socket_timeout)
-                    if response:
-                        update_db(conn, gzip.decompress(response.read()).decode('utf-8'))
-                    conn.execute("insert or replace into META values (?, ?)", [year, last_modified]).close()
-                except urllib.error.URLError as e:
-                    cve_f.write('Warning: CVE db update error, CVE data is outdated.\n\n')
-                    bb.warn("Cannot parse CVE data (%s), update failed" % e.reason)
-                    return False
-            else:
-                bb.debug(2, "Already up to date (last modified %s)" % last_modified)
-            # Update success, set the date to cve_check file.
-            if year == date.today().year:
-                cve_f.write('CVE database update : %s\n\n' % date.today())
-
-        conn.commit()
-        conn.close()
-        return True
-
-def initialize_db(conn):
-    with conn:
-        c = conn.cursor()
-
-        c.execute("CREATE TABLE IF NOT EXISTS META (YEAR INTEGER UNIQUE, DATE TEXT)")
-
-        c.execute("CREATE TABLE IF NOT EXISTS NVD (ID TEXT UNIQUE, SUMMARY TEXT, \
-            SCOREV2 TEXT, SCOREV3 TEXT, MODIFIED INTEGER, VECTOR TEXT)")
-
-        c.execute("CREATE TABLE IF NOT EXISTS PRODUCTS (ID TEXT, \
-            VENDOR TEXT, PRODUCT TEXT, VERSION_START TEXT, OPERATOR_START TEXT, \
-            VERSION_END TEXT, OPERATOR_END TEXT)")
-        c.execute("CREATE INDEX IF NOT EXISTS PRODUCT_ID_IDX on PRODUCTS(ID);")
-
-        c.close()
-
-def parse_node_and_insert(conn, node, cveId):
-    # Parse children node if needed
-    for child in node.get('children', ()):
-        parse_node_and_insert(conn, child, cveId)
-
-    def cpe_generator():
-        for cpe in node.get('cpe_match', ()):
-            if not cpe['vulnerable']:
-                return
-            cpe23 = cpe.get('cpe23Uri')
-            if not cpe23:
-                return
-            cpe23 = cpe23.split(':')
-            if len(cpe23) < 6:
-                return
-            vendor = cpe23[3]
-            product = cpe23[4]
-            version = cpe23[5]
-
-            if cpe23[6] == '*' or cpe23[6] == '-':
-                version_suffix = ""
-            else:
-                version_suffix = "_" + cpe23[6]
-
-            if version != '*' and version != '-':
-                # Version is defined, this is a '=' match
-                yield [cveId, vendor, product, version + version_suffix, '=', '', '']
-            elif version == '-':
-                # no version information is available
-                yield [cveId, vendor, product, version, '', '', '']
-            else:
-                # Parse start version, end version and operators
-                op_start = ''
-                op_end = ''
-                v_start = ''
-                v_end = ''
-
-                if 'versionStartIncluding' in cpe:
-                    op_start = '>='
-                    v_start = cpe['versionStartIncluding']
-
-                if 'versionStartExcluding' in cpe:
-                    op_start = '>'
-                    v_start = cpe['versionStartExcluding']
-
-                if 'versionEndIncluding' in cpe:
-                    op_end = '<='
-                    v_end = cpe['versionEndIncluding']
-
-                if 'versionEndExcluding' in cpe:
-                    op_end = '<'
-                    v_end = cpe['versionEndExcluding']
-
-                if op_start or op_end or v_start or v_end:
-                    yield [cveId, vendor, product, v_start, op_start, v_end, op_end]
-                else:
-                    # This is no version information, expressed differently.
-                    # Save processing by representing as -.
-                    yield [cveId, vendor, product, '-', '', '', '']
-
-    conn.executemany("insert into PRODUCTS values (?, ?, ?, ?, ?, ?, ?)", cpe_generator()).close()
-
-def update_db(conn, jsondata):
-    import json
-    root = json.loads(jsondata)
-
-    for elt in root['CVE_Items']:
-        if not elt['impact']:
-            continue
-
-        accessVector = None
-        cveId = elt['cve']['CVE_data_meta']['ID']
-        cveDesc = elt['cve']['description']['description_data'][0]['value']
-        date = elt['lastModifiedDate']
-        try:
-            accessVector = elt['impact']['baseMetricV2']['cvssV2']['accessVector']
-            cvssv2 = elt['impact']['baseMetricV2']['cvssV2']['baseScore']
-        except KeyError:
-            cvssv2 = 0.0
-        try:
-            accessVector = accessVector or elt['impact']['baseMetricV3']['cvssV3']['attackVector']
-            cvssv3 = elt['impact']['baseMetricV3']['cvssV3']['baseScore']
-        except KeyError:
-            accessVector = accessVector or "UNKNOWN"
-            cvssv3 = 0.0
-
-        conn.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?)",
-                [cveId, cveDesc, cvssv2, cvssv3, date, accessVector]).close()
-
-        configurations = elt['configurations']['nodes']
-        for config in configurations:
-            parse_node_and_insert(conn, config, cveId)
-
-
-do_fetch[nostamp] = "1"
-
-EXCLUDE_FROM_WORLD = "1"
diff --git a/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb b/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb
index 2b58598..2f7dad7 100644
--- a/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb
+++ b/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb
@@ -17,6 +17,10 @@
 
 NVDCVE_URL ?= "https://services.nvd.nist.gov/rest/json/cves/2.0"
 
+# If you have a NVD API key (https://nvd.nist.gov/developers/request-an-api-key)
+# then setting this to get higher rate limits.
+NVDCVE_API_KEY ?= ""
+
 # CVE database update interval, in seconds. By default: once a day (24*60*60).
 # Use 0 to force the update
 # Use a negative value to skip the update
@@ -119,18 +123,16 @@
     import urllib.parse
     import gzip
     import http
+    import time
 
-    headers = {}
+    request = urllib.request.Request(url + "?" + urllib.parse.urlencode(args))
     if api_key:
-        headers['apiKey'] = api_key
+        request.add_header("apiKey", api_key)
+    bb.note("Requesting %s" % request.full_url)
 
-    data = urllib.parse.urlencode(args)
-
-    full_request = url + '?' + data
-
-    for attempt in range(3):
+    for attempt in range(5):
         try:
-            r = urllib.request.urlopen(full_request)
+            r = urllib.request.urlopen(request)
 
             if (r.headers['content-encoding'] == 'gzip'):
                 buf = r.read()
@@ -140,13 +142,9 @@
 
             r.close()
 
-        except UnicodeDecodeError:
-            # Received garbage, retry
-            bb.debug(2, "CVE database: received malformed data, retrying (request: %s)" %(full_request))
-            pass
-        except http.client.IncompleteRead:
-            # Read incomplete, let's try again
-            bb.debug(2, "CVE database: received incomplete data, retrying (request: %s)" %(full_request))
+        except Exception as e:
+            bb.note("CVE database: received error (%s), retrying" % (e))
+            time.sleep(6)
             pass
         else:
             return raw_data
@@ -172,11 +170,11 @@
     # The maximum range for time is 120 days
     # Force a complete update if our range is longer
     if (database_time != 0):
-        database_date = datetime.datetime.combine(datetime.date.fromtimestamp(database_time), datetime.time())
-        today_date = datetime.datetime.combine(datetime.date.today(), datetime.time())
+        database_date = datetime.datetime.fromtimestamp(database_time, tz=datetime.timezone.utc)
+        today_date = datetime.datetime.now(tz=datetime.timezone.utc)
         delta = today_date - database_date
         if delta.days < 120:
-            bb.debug(2, "CVE database: performing partial update")
+            bb.note("CVE database: performing partial update")
             req_args['lastModStartDate'] = database_date.isoformat()
             req_args['lastModEndDate'] = today_date.isoformat()
         else:
@@ -184,12 +182,14 @@
 
     with bb.progress.ProgressHandler(d) as ph, open(os.path.join(d.getVar("TMPDIR"), 'cve_check'), 'a') as cve_f:
 
-        bb.debug(2, "Updating entries")
+        bb.note("Updating entries")
         index = 0
         url = d.getVar("NVDCVE_URL")
+        api_key = d.getVar("NVDCVE_API_KEY") or None
+
         while True:
             req_args['startIndex'] = index
-            raw_data = nvd_request_next(url, None, req_args)
+            raw_data = nvd_request_next(url, api_key, req_args)
             if raw_data is None:
                 # We haven't managed to download data
                 return False
@@ -199,7 +199,7 @@
             index = data["startIndex"]
             total = data["totalResults"]
             per_page = data["resultsPerPage"]
-
+            bb.note("Got %d entries" % per_page)
             for cve in data["vulnerabilities"]:
                update_db(conn, cve)
 
@@ -312,22 +312,30 @@
         cvssv2 = elt['cve']['metrics']['cvssMetricV2'][0]['cvssData']['baseScore']
     except KeyError:
         cvssv2 = 0.0
+    cvssv3 = None
     try:
-        accessVector = accessVector or elt['impact']['baseMetricV3']['cvssV3']['attackVector']
-        cvssv3 = elt['impact']['baseMetricV3']['cvssV3']['baseScore']
+        accessVector = accessVector or elt['cve']['metrics']['cvssMetricV30'][0]['cvssData']['attackVector']
+        cvssv3 = elt['cve']['metrics']['cvssMetricV30'][0]['cvssData']['baseScore']
     except KeyError:
-        accessVector = accessVector or "UNKNOWN"
-        cvssv3 = 0.0
+        pass
+    try:
+        accessVector = accessVector or elt['cve']['metrics']['cvssMetricV31'][0]['cvssData']['attackVector']
+        cvssv3 = cvssv3 or elt['cve']['metrics']['cvssMetricV31'][0]['cvssData']['baseScore']
+    except KeyError:
+        pass
+    accessVector = accessVector or "UNKNOWN"
+    cvssv3 = cvssv3 or 0.0
 
     conn.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?)",
                 [cveId, cveDesc, cvssv2, cvssv3, date, accessVector]).close()
 
     try:
-        configurations = elt['cve']['configurations'][0]['nodes']
-        for config in configurations:
-            parse_node_and_insert(conn, config, cveId)
+        for config in elt['cve']['configurations']:
+            # This is suboptimal as it doesn't handle AND/OR and negate, but is better than nothing
+            for node in config["nodes"]:
+                parse_node_and_insert(conn, node, cveId)
     except KeyError:
-        bb.debug(2, "Entry without a configuration")
+        bb.note("CVE %s has no configurations" % cveId)
 
 do_fetch[nostamp] = "1"
 
diff --git a/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb
index 7c8434f..b4c2b1f 100644
--- a/poky/meta/recipes-core/musl/musl_git.bb
+++ b/poky/meta/recipes-core/musl/musl_git.bb
@@ -4,7 +4,7 @@
 require musl.inc
 inherit linuxloader
 
-SRCREV = "f5f55d6589940fd2c2188d76686efe3a530e64e0"
+SRCREV = "718f363bc2067b6487900eddc9180c84e7739f80"
 
 BASEVER = "1.2.4"
 
diff --git a/poky/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch b/poky/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
index 0c3df4f..490d9e8 100644
--- a/poky/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
+++ b/poky/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
@@ -1,7 +1,7 @@
-From 1125f5a02c2f327aeffe2d6b66a9d816ad2eeec0 Mon Sep 17 00:00:00 2001
+From d8df6b6433351763e1db791dd84d432983d2b249 Mon Sep 17 00:00:00 2001
 From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
 Date: Thu, 9 Jun 2016 02:23:01 -0700
-Subject: [PATCH 1/6] ovmf: update path to native BaseTools
+Subject: [PATCH 1/4] ovmf: update path to native BaseTools
 
 BaseTools is a set of utilities to build EDK-based firmware. These utilities
 are used during the build process. Thus, they need to be built natively.
@@ -16,7 +16,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/OvmfPkg/build.sh b/OvmfPkg/build.sh
-index 91b1442ade..1858dae31a 100755
+index b0334fb76e..094f86f096 100755
 --- a/OvmfPkg/build.sh
 +++ b/OvmfPkg/build.sh
 @@ -24,7 +24,7 @@ then
@@ -29,5 +29,5 @@
    source edksetup.sh BaseTools
  else
 -- 
-2.32.0
+2.30.2
 
diff --git a/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch b/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
index 2293d7e..efabc8f 100644
--- a/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
+++ b/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
@@ -1,7 +1,7 @@
-From 19d4c7f9812062a683b3ba60b35aac0461190456 Mon Sep 17 00:00:00 2001
+From 7675a67b8bb207de38ff5a9dc416e8b1028eb8ce Mon Sep 17 00:00:00 2001
 From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
 Date: Fri, 26 Jul 2019 17:34:26 -0400
-Subject: [PATCH 2/6] BaseTools: makefile: adjust to build in under bitbake
+Subject: [PATCH 2/4] BaseTools: makefile: adjust to build in under bitbake
 
 Prepend the build flags with those of bitbake. This is to build
 using the bitbake native sysroot include and library directories.
@@ -14,58 +14,56 @@
 Signed-off-by: Ricardo Neri <ricardo.neri@linux.intel.com>
 Upstream-Status: Inappropriate [needs to be converted to in-recipe fixups]
 ---
- BaseTools/Source/C/Makefiles/header.makefile | 17 +++++++++--------
- 1 file changed, 9 insertions(+), 8 deletions(-)
+ BaseTools/Source/C/Makefiles/header.makefile | 15 +++++++--------
+ 1 file changed, 7 insertions(+), 8 deletions(-)
 
 diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
-index 0df728f327..1299d47c87 100644
+index 1bf003523b..28757aed63 100644
 --- a/BaseTools/Source/C/Makefiles/header.makefile
 +++ b/BaseTools/Source/C/Makefiles/header.makefile
-@@ -75,35 +75,36 @@ $(error Bad HOST_ARCH)
+@@ -82,35 +82,34 @@ $(error Bad HOST_ARCH)
  endif

  

  INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE)

--BUILD_CPPFLAGS = $(INCLUDE)

-+BUILD_CPPFLAGS += $(INCLUDE)

+-CPPFLAGS = $(INCLUDE)

++CPPFLAGS += $(INCLUDE)

  

  # keep EXTRA_OPTFLAGS last

  BUILD_OPTFLAGS = -O2 $(EXTRA_OPTFLAGS)

  

  ifeq ($(DARWIN),Darwin)

  # assume clang or clang compatible flags on OS X

--BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror \

-+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror \

+-CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror \

++CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror \

  -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -g

  else

- ifeq ($(CXX), llvm)

--BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fwrapv \

-+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -fwrapv \

+ ifneq ($(CLANG),)

+-CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fwrapv \

++CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -fwrapv \

  -fno-delete-null-pointer-checks -Wall -Werror \

  -Wno-deprecated-declarations -Wno-self-assign \

  -Wno-unused-result -nostdlib -g

  else

--BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fwrapv \

-+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -fwrapv \

+-CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fwrapv \

++CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -fwrapv \

  -fno-delete-null-pointer-checks -Wall -Werror \

  -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict \

  -Wno-unused-result -nostdlib -g

  endif

  endif

- ifeq ($(CXX), llvm)

--BUILD_LFLAGS =

--BUILD_CXXFLAGS = -Wno-deprecated-register -Wno-unused-result

-+BUILD_LFLAGS = $(LDFLAGS)

-+BUILD_CXXFLAGS += -Wno-deprecated-register -Wno-unused-result

+ ifneq ($(CLANG),)

+-LDFLAGS =

+-CXXFLAGS = -Wno-deprecated-register -Wno-unused-result -std=c++14

++CXXFLAGS += -Wno-deprecated-register -Wno-unused-result -std=c++14

  else

--BUILD_LFLAGS =

--BUILD_CXXFLAGS = -Wno-unused-result

-+BUILD_LFLAGS = $(LDFLAGS)

-+BUILD_CXXFLAGS += -Wno-unused-result

+-LDFLAGS =

+-CXXFLAGS = -Wno-unused-result

++CXXFLAGS += -Wno-unused-result

  endif

 +

  ifeq ($(HOST_ARCH), IA32)

  #

  # Snow Leopard  is a 32-bit and 64-bit environment. uname -m returns i386, but gcc defaults

 -- 
-2.32.0
+2.30.2
 
diff --git a/poky/meta/recipes-core/ovmf/ovmf/0005-debug-prefix-map.patch b/poky/meta/recipes-core/ovmf/ovmf/0003-debug-prefix-map.patch
similarity index 87%
rename from poky/meta/recipes-core/ovmf/ovmf/0005-debug-prefix-map.patch
rename to poky/meta/recipes-core/ovmf/ovmf/0003-debug-prefix-map.patch
index 7adc454..c0c763c 100644
--- a/poky/meta/recipes-core/ovmf/ovmf/0005-debug-prefix-map.patch
+++ b/poky/meta/recipes-core/ovmf/ovmf/0003-debug-prefix-map.patch
@@ -1,7 +1,7 @@
-From cf6361f27cd6318622fd58ab6c0a9407cc633b1e Mon Sep 17 00:00:00 2001
+From 03e536b20d0b72cf078052f6748de8df3836625c Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Mon, 14 Jun 2021 19:56:28 +0200
-Subject: [PATCH] debug prefix map
+Subject: [PATCH 3/4] debug prefix map
 
 We want to pass ${DEBUG_PREFIX_MAP} to gcc commands and also pass in
  --debug-prefix-map to nasm (we carry a patch to nasm for this). The
@@ -22,10 +22,10 @@
  1 file changed, 9 insertions(+), 9 deletions(-)
 
 diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
-index 471eb67c0c..a16fb5c9f1 100755
+index 503a6687c1..10ac38ef9e 100755
 --- a/BaseTools/Conf/tools_def.template
 +++ b/BaseTools/Conf/tools_def.template
-@@ -1849,7 +1849,7 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG     = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_N
+@@ -739,7 +739,7 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG     = --add-gnu-debuglink="$(DEBUG_DIR)/$(MODULE_
  *_*_*_DTCPP_PATH                   = DEF(DTCPP_BIN)

  *_*_*_DTC_PATH                     = DEF(DTC_BIN)

  

@@ -34,7 +34,7 @@
  DEFINE GCC_ARM_CC_FLAGS            = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -fno-pic -fno-pie

  DEFINE GCC_LOONGARCH64_CC_FLAGS    = DEF(GCC_ALL_CC_FLAGS) -mabi=lp64d -fno-asynchronous-unwind-tables -fno-plt -Wno-address -fno-short-enums -fsigned-char -ffunction-sections -fdata-sections

  DEFINE GCC_ARM_CC_XIPFLAGS         = -mno-unaligned-access

-@@ -1869,8 +1869,8 @@ DEFINE GCC_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_DLINK_FLAGS) -Wl,--entry,Refere
+@@ -759,8 +759,8 @@ DEFINE GCC_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_DLINK_FLAGS) -Wl,--entry,Refere
  DEFINE GCC_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_AARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)

  DEFINE GCC_LOONGARCH64_ASLDLINK_FLAGS = DEF(GCC_LOONGARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)

  DEFINE GCC_IA32_X64_DLINK_FLAGS    = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20 -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map

@@ -45,7 +45,7 @@
  DEFINE GCC_VFRPP_FLAGS             = -x c -E -P -DVFRCOMPILE --include $(MODULE_NAME)StrDefs.h

  DEFINE GCC_ASLPP_FLAGS             = -x c -E -include AutoGen.h

  DEFINE GCC_ASLCC_FLAGS             = -x c

-@@ -2022,7 +2022,7 @@ DEFINE GCC5_LOONGARCH64_PP_FLAGS           = -mabi=lp64d -march=loongarch64 DEF(
+@@ -913,7 +913,7 @@ DEFINE GCC5_LOONGARCH64_PP_FLAGS           = -mabi=lp64d -march=loongarch64 DEF(
  *_GCC48_IA32_DLINK2_FLAGS         = DEF(GCC48_IA32_DLINK2_FLAGS)

  *_GCC48_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)

  *_GCC48_IA32_OBJCOPY_FLAGS        =

@@ -54,7 +54,7 @@
  

    DEBUG_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS)

  RELEASE_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS) -Wno-unused-but-set-variable

-@@ -2050,7 +2050,7 @@ RELEASE_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS) -Wno-unused-but-set
+@@ -941,7 +941,7 @@ RELEASE_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS) -Wno-unused-but-set
  *_GCC48_X64_DLINK2_FLAGS         = DEF(GCC48_X64_DLINK2_FLAGS)

  *_GCC48_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)

  *_GCC48_X64_OBJCOPY_FLAGS        =

@@ -63,7 +63,7 @@
  

    DEBUG_GCC48_X64_CC_FLAGS       = DEF(GCC48_X64_CC_FLAGS)

  RELEASE_GCC48_X64_CC_FLAGS       = DEF(GCC48_X64_CC_FLAGS) -Wno-unused-but-set-variable

-@@ -2159,7 +2159,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
+@@ -1050,7 +1050,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
  *_GCC49_IA32_DLINK2_FLAGS         = DEF(GCC49_IA32_DLINK2_FLAGS)

  *_GCC49_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)

  *_GCC49_IA32_OBJCOPY_FLAGS        =

@@ -72,7 +72,7 @@
  

    DEBUG_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS)

  RELEASE_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-set-variable -Wno-unused-const-variable

-@@ -2187,7 +2187,7 @@ RELEASE_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-set
+@@ -1078,7 +1078,7 @@ RELEASE_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-set
  *_GCC49_X64_DLINK2_FLAGS         = DEF(GCC49_X64_DLINK2_FLAGS)

  *_GCC49_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)

  *_GCC49_X64_OBJCOPY_FLAGS        =

@@ -81,7 +81,7 @@
  

    DEBUG_GCC49_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS)

  RELEASE_GCC49_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS) -Wno-unused-but-set-variable -Wno-unused-const-variable

-@@ -2302,7 +2302,7 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
+@@ -1337,7 +1337,7 @@ RELEASE_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
  *_GCC5_IA32_DLINK2_FLAGS         = DEF(GCC5_IA32_DLINK2_FLAGS) -no-pie

  *_GCC5_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)

  *_GCC5_IA32_OBJCOPY_FLAGS        =

@@ -90,7 +90,7 @@
  

    DEBUG_GCC5_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS) -flto

    DEBUG_GCC5_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386

-@@ -2334,7 +2334,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,
+@@ -1369,7 +1369,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,
  *_GCC5_X64_DLINK2_FLAGS          = DEF(GCC5_X64_DLINK2_FLAGS)

  *_GCC5_X64_RC_FLAGS              = DEF(GCC_X64_RC_FLAGS)

  *_GCC5_X64_OBJCOPY_FLAGS         =

diff --git a/poky/meta/recipes-core/ovmf/ovmf/0006-reproducible.patch b/poky/meta/recipes-core/ovmf/ovmf/0004-reproducible.patch
similarity index 90%
rename from poky/meta/recipes-core/ovmf/ovmf/0006-reproducible.patch
rename to poky/meta/recipes-core/ovmf/ovmf/0004-reproducible.patch
index 846f408..c3fdc3d 100644
--- a/poky/meta/recipes-core/ovmf/ovmf/0006-reproducible.patch
+++ b/poky/meta/recipes-core/ovmf/ovmf/0004-reproducible.patch
@@ -1,7 +1,7 @@
-From 27ed9962f5cb3afcc44d6c96c53277132a999712 Mon Sep 17 00:00:00 2001
+From c59850367a190d70dec43e0a66f399a4d8a5ffed Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Mon, 14 Jun 2021 19:57:30 +0200
-Subject: [PATCH 6/6] reproducible
+Subject: [PATCH 4/4] reproducible
 
 This patch fixes various things which make the build more reproducible. Some changes
 here only change intermediate artefacts but that means when you have two build trees
@@ -35,10 +35,10 @@
  4 files changed, 24 insertions(+), 16 deletions(-)
 
 diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c b/BaseTools/Source/C/GenFw/Elf64Convert.c
-index d097db8632..a87ae6f3d0 100644
+index 9c17c90b16..fcc7864141 100644
 --- a/BaseTools/Source/C/GenFw/Elf64Convert.c
 +++ b/BaseTools/Source/C/GenFw/Elf64Convert.c
-@@ -14,6 +14,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
+@@ -15,6 +15,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
  #ifndef __GNUC__

  #include <windows.h>

  #include <io.h>

@@ -47,35 +47,35 @@
  #endif

  #include <assert.h>

  #include <stdio.h>

-@@ -769,7 +771,7 @@ ScanSections64 (
+@@ -990,7 +992,7 @@ ScanSections64 (
    }

    mCoffOffset = mDebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY) +

                  sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY) +

 -                strlen(mInImageName) + 1;

 +                strlen(basename(mInImageName)) + 1;

  

-   mCoffOffset = CoffAlign(mCoffOffset);

-   if (SectionCount == 0) {

-@@ -1608,7 +1610,7 @@ WriteDebug64 (
-   EFI_IMAGE_DEBUG_DIRECTORY_ENTRY     *Dir;

-   EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY *Nb10;

+   //

+   // Add more space in the .debug data region for the DllCharacteristicsEx

+@@ -2261,7 +2263,7 @@ WriteDebug64 (
+   EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY         *Nb10;

+   EFI_IMAGE_DEBUG_EX_DLLCHARACTERISTICS_ENTRY *DllEntry;

  

 -  Len = strlen(mInImageName) + 1;

 +  Len = strlen(basename(mInImageName)) + 1;

  

-   Dir = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY*)(mCoffFile + mDebugOffset);

-   Dir->Type = EFI_IMAGE_DEBUG_TYPE_CODEVIEW;

-@@ -1618,7 +1620,7 @@ WriteDebug64 (
+   NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset);

+   DataDir = &NtHdr->Pe32Plus.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_DEBUG];

+@@ -2294,7 +2296,7 @@ WriteDebug64 (
  

    Nb10 = (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY*)(Dir + 1);

    Nb10->Signature = CODEVIEW_SIGNATURE_NB10;

 -  strcpy ((char *)(Nb10 + 1), mInImageName);

 +  strcpy ((char *)(Nb10 + 1), basename(mInImageName));

+ }

  

- 

-   NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset);

+ STATIC

 diff --git a/BaseTools/Source/Python/AutoGen/BuildEngine.py b/BaseTools/Source/Python/AutoGen/BuildEngine.py
-index 722fead75a..8f1c236970 100644
+index 752a1a1f6a..02054cccf8 100644
 --- a/BaseTools/Source/Python/AutoGen/BuildEngine.py
 +++ b/BaseTools/Source/Python/AutoGen/BuildEngine.py
 @@ -70,6 +70,9 @@ class TargetDescBlock(object):
@@ -89,7 +89,7 @@
          if Input not in self.Inputs:

              self.Inputs.append(Input)

 diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py
-index 961b2ab1c3..23c1592025 100755
+index daec9c6d54..0e8cc20efe 100755
 --- a/BaseTools/Source/Python/AutoGen/GenMake.py
 +++ b/BaseTools/Source/Python/AutoGen/GenMake.py
 @@ -575,7 +575,7 @@ cleanlib:
@@ -153,10 +153,10 @@
                  if T.GenFileListMacro and T.FileListMacro not in self.FileListMacros:

                      self.FileListMacros[T.FileListMacro] = []

 diff --git a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
-index d70b0d7ae8..25dca9a6df 100755
+index d05410b329..99b3f64aba 100755
 --- a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
 +++ b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
-@@ -1484,6 +1484,9 @@ class ModuleAutoGen(AutoGen):
+@@ -1474,6 +1474,9 @@ class ModuleAutoGen(AutoGen):
              for File in Files:

                  if File.lower().endswith('.pdb'):

                      AsBuiltInfDict['binary_item'].append('DISPOSABLE|' + File)

@@ -166,7 +166,7 @@
          HeaderComments = self.Module.HeaderComments

          StartPos = 0

          for Index in range(len(HeaderComments)):

-@@ -1759,7 +1762,7 @@ class ModuleAutoGen(AutoGen):
+@@ -1749,7 +1752,7 @@ class ModuleAutoGen(AutoGen):
              if os.path.exists (self.TimeStampPath):

                  os.remove (self.TimeStampPath)

  

@@ -176,5 +176,5 @@
          # Ignore generating makefile when it is a binary module

          if self.IsBinaryModule:

 -- 
-2.32.0
+2.30.2
 
diff --git a/poky/meta/recipes-core/ovmf/ovmf_git.bb b/poky/meta/recipes-core/ovmf/ovmf_git.bb
index bd92c5d..761c265 100644
--- a/poky/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/poky/meta/recipes-core/ovmf/ovmf_git.bb
@@ -22,12 +22,12 @@
 SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https \
            file://0001-ovmf-update-path-to-native-BaseTools.patch \
            file://0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch \
-           file://0005-debug-prefix-map.patch \
-           file://0006-reproducible.patch \
+           file://0003-debug-prefix-map.patch \
+           file://0004-reproducible.patch \
            "
 
-PV = "edk2-stable202302"
-SRCREV = "f80f052277c88a67c55e107b550f504eeea947d3"
+PV = "edk2-stable202305"
+SRCREV = "ba91d0292e593df8528b66f99c1b0b14fadc8e16"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>edk2-stable.*)"
 
 inherit deploy
diff --git a/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl b/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl
index 514f747..7fe751b 100755
--- a/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl
+++ b/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl
@@ -202,7 +202,7 @@
         try:
             for dependent in config.get('Install', prop):
                 # expand any %i to instance (ignoring escape sequence %%)
-                dependent = re.sub("([^%](%%)*)%i", "\\1{}".format(instance), dependent)
+                dependent = re.sub("([^%](%%)*)%i", "\\g<1>{}".format(instance), dependent)
                 wants = systemdir / "{}.{}".format(dependent, dirstem) / service
                 add_link(wants, target)
 
diff --git a/poky/meta/recipes-core/systemd/systemd_253.3.bb b/poky/meta/recipes-core/systemd/systemd_253.3.bb
index 87fbf6f..cf0e17f 100644
--- a/poky/meta/recipes-core/systemd/systemd_253.3.bb
+++ b/poky/meta/recipes-core/systemd/systemd_253.3.bb
@@ -834,6 +834,3 @@
 pkg_prerm:udev-hwdb () {
 	rm -f $D${sysconfdir}/udev/hwdb.bin
 }
-
-# This was also fixed in 252.4 with 9b75a3d0
-CVE_CHECK_IGNORE += "CVE-2022-4415"
diff --git a/poky/meta/recipes-core/udev/eudev_3.2.12.bb b/poky/meta/recipes-core/udev/eudev_3.2.12.bb
index 572ccec..4268bcc 100644
--- a/poky/meta/recipes-core/udev/eudev_3.2.12.bb
+++ b/poky/meta/recipes-core/udev/eudev_3.2.12.bb
@@ -18,7 +18,7 @@
 
 GITHUB_BASE_URI = "https://github.com/eudev-project/eudev/releases"
 
-inherit autotools update-rc.d qemu pkgconfig features_check manpages github-releases
+inherit autotools update-rc.d qemu pkgconfig features_check manpages github-releases useradd
 
 CONFLICT_DISTRO_FEATURES = "systemd"
 
@@ -85,3 +85,6 @@
 pkg_prerm:${PN}-hwdb () {
 	rm -f $D${sysconfdir}/udev/hwdb.bin
 }
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM:${PN} = "-r sgx"
diff --git a/poky/meta/recipes-core/util-linux/util-linux_2.38.1.bb b/poky/meta/recipes-core/util-linux/util-linux_2.38.1.bb
index 9ea7a04..c814055 100644
--- a/poky/meta/recipes-core/util-linux/util-linux_2.38.1.bb
+++ b/poky/meta/recipes-core/util-linux/util-linux_2.38.1.bb
@@ -234,6 +234,8 @@
 ALTERNATIVE_LINK_NAME[hexdump] = "${bindir}/hexdump"
 ALTERNATIVE_LINK_NAME[hwclock] = "${base_sbindir}/hwclock"
 ALTERNATIVE_LINK_NAME[ionice] = "${bindir}/ionice"
+ALTERNATIVE_LINK_NAME[ipcrm] = "${bindir}/ipcrm"
+ALTERNATIVE_LINK_NAME[ipcs] = "${bindir}/ipcs"
 ALTERNATIVE_LINK_NAME[kill] = "${base_bindir}/kill"
 ALTERNATIVE:${PN}-last = "last lastb"
 ALTERNATIVE_LINK_NAME[last] = "${bindir}/last"
diff --git a/poky/meta/recipes-devtools/automake/automake/buildtest.patch b/poky/meta/recipes-devtools/automake/automake/buildtest.patch
index b88b9e8..c43a4ac 100644
--- a/poky/meta/recipes-devtools/automake/automake/buildtest.patch
+++ b/poky/meta/recipes-devtools/automake/automake/buildtest.patch
@@ -36,7 +36,7 @@
 -check-TESTS: $(TESTS)
 +AM_RECURSIVE_TARGETS += buildtest runtest
 +
-+buildtest-TESTS: $(TESTS)
++buildtest-TESTS: $(TESTS) $(check_PROGRAMS)
 +
 +check-TESTS: buildtest-TESTS
 +	$(MAKE) $(AM_MAKEFLAGS) runtest-TESTS
diff --git a/poky/meta/recipes-devtools/ccache/ccache_4.8.1.bb b/poky/meta/recipes-devtools/ccache/ccache_4.8.2.bb
similarity index 82%
rename from poky/meta/recipes-devtools/ccache/ccache_4.8.1.bb
rename to poky/meta/recipes-devtools/ccache/ccache_4.8.2.bb
index b0ae7fb..22a6b38 100644
--- a/poky/meta/recipes-devtools/ccache/ccache_4.8.1.bb
+++ b/poky/meta/recipes-devtools/ccache/ccache_4.8.2.bb
@@ -7,14 +7,14 @@
 SECTION = "devel"
 
 LICENSE = "GPL-3.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=1601d62d6828fbe19b6f6c2d01fdff4c"
+LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=cd54b7abfc462470b0f505273c38f0ff"
 
 DEPENDS = "zstd"
 
 SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \
            file://0001-xxhash.h-Fix-build-with-gcc-12.patch \
            "
-SRC_URI[sha256sum] = "869903c1891beb8bee87f1ec94d8a0dad18c2add4072c456acbc85cdfc23ca63"
+SRC_URI[sha256sum] = "75eef15b8b9da48db9c91e1d0ff58b3645fc70c0e4ca2ef1b6825a12f21f217d"
 
 inherit cmake github-releases
 
diff --git a/poky/meta/recipes-devtools/cmake/cmake.inc b/poky/meta/recipes-devtools/cmake/cmake.inc
index 7788a5c..f57a77c 100644
--- a/poky/meta/recipes-devtools/cmake/cmake.inc
+++ b/poky/meta/recipes-devtools/cmake/cmake.inc
@@ -23,6 +23,4 @@
 
 UPSTREAM_CHECK_REGEX = "cmake-(?P<pver>\d+(\.\d+)+)\.tar"
 
-# This is specific to the npm package that installs cmake, so isn't
-# relevant to OpenEmbedded
-CVE_CHECK_IGNORE += "CVE-2016-10642"
+CVE_STATUS[CVE-2016-10642] = "cpe-incorrect: This is specific to the npm package that installs cmake, so isn't relevant to OpenEmbedded"
diff --git a/poky/meta/recipes-devtools/dnf/dnf_4.16.1.bb b/poky/meta/recipes-devtools/dnf/dnf_4.16.1.bb
index ff79701..9134411 100644
--- a/poky/meta/recipes-devtools/dnf/dnf_4.16.1.bb
+++ b/poky/meta/recipes-devtools/dnf/dnf_4.16.1.bb
@@ -15,9 +15,10 @@
            file://0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
            file://0030-Run-python-scripts-using-env.patch \
            file://0001-set-python-path-for-completion_helper.patch \
-           file://0001-dnf-write-the-log-lock-to-root.patch \
            "
 
+SRC_URI:append:class-native = "file://0001-dnf-write-the-log-lock-to-root.patch"
+
 SRCREV = "94b7cc7956580405b219329541d6b40db6499cf1"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
 
diff --git a/poky/meta/recipes-devtools/flex/flex_2.6.4.bb b/poky/meta/recipes-devtools/flex/flex_2.6.4.bb
index 15cf6f5..1ac88d6 100644
--- a/poky/meta/recipes-devtools/flex/flex_2.6.4.bb
+++ b/poky/meta/recipes-devtools/flex/flex_2.6.4.bb
@@ -26,10 +26,10 @@
 
 GITHUB_BASE_URI = "https://github.com/westes/flex/releases"
 
-# Disputed - yes there is stack exhaustion but no bug and it is building the
-# parser, not running it, effectively similar to a compiler ICE. Upstream no plans to address
 # https://github.com/westes/flex/issues/414
-CVE_CHECK_IGNORE += "CVE-2019-6293"
+CVE_STATUS[CVE-2019-6293] = "upstream-wontfix: \
+there is stack exhaustion but no bug and it is building the \
+parser, not running it, effectively similar to a compiler ICE. Upstream no plans to address this."
 
 inherit autotools gettext texinfo ptest github-releases
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-13.1.inc b/poky/meta/recipes-devtools/gcc/gcc-13.1.inc
index 4da703d..e94753e 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-13.1.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-13.1.inc
@@ -111,5 +111,4 @@
     --with-build-sysroot=${STAGING_DIR_TARGET} \
 "
 
-# Is a binutils 2.26 issue, not gcc
-CVE_CHECK_IGNORE += "CVE-2021-37322"
+CVE_STATUS[CVE-2021-37322] = "cpe-incorrect: Is a binutils 2.26 issue, not gcc"
diff --git a/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc b/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc
index e4cdb73..dba25eb 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc
@@ -40,7 +40,6 @@
     ${@get_gcc_mips_plt_setting(bb, d)} \
     ${@get_gcc_ppc_plt_settings(bb, d)} \
     ${@get_gcc_multiarch_setting(bb, d)} \
-	--enable-standard-branch-protection \
 "
 
 # glibc version is a minimum controlling whether features are enabled. 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-testsuite.inc b/poky/meta/recipes-devtools/gcc/gcc-testsuite.inc
index f68fec5..64f60c7 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-testsuite.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-testsuite.inc
@@ -51,9 +51,10 @@
         # enable all valid instructions, since the test suite itself does not
         # limit itself to the target cpu options.
         #   - valid for x86*, powerpc, arm, arm64
-        if qemu_binary.lstrip("qemu-") in ["x86_64", "i386", "ppc", "arm", "aarch64"]:
+        if qemu_binary.lstrip("qemu-") in ["x86_64", "i386", "arm", "aarch64"]:
             args += ["-cpu", "max"]
-
+        elif qemu_binary.lstrip("qemu-") in ["ppc"]:
+            args += d.getVar("QEMU_EXTRAOPTIONS_%s" % d.getVar('PACKAGE_ARCH')).split()
         sysroot = d.getVar("RECIPE_SYSROOT")
         args += ["-L", sysroot]
         # lib paths are static here instead of using $libdir since this is used by a -cross recipe
diff --git a/poky/meta/recipes-devtools/git/git_2.39.3.bb b/poky/meta/recipes-devtools/git/git_2.39.3.bb
index 54a863a..3393550 100644
--- a/poky/meta/recipes-devtools/git/git_2.39.3.bb
+++ b/poky/meta/recipes-devtools/git/git_2.39.3.bb
@@ -27,13 +27,6 @@
 
 CVE_PRODUCT = "git-scm:git"
 
-# This is about a manpage not mentioning --mirror may "leak" information
-# in mirrored git repos. Most OE users wouldn't build the docs and
-# we don't see this as a major issue for our general users/usecases.
-CVE_CHECK_IGNORE += "CVE-2022-24975"
-# This is specific to Git-for-Windows
-CVE_CHECK_IGNORE += "CVE-2022-41953"
-
 PACKAGECONFIG ??= "expat curl"
 PACKAGECONFIG[cvsserver] = ""
 PACKAGECONFIG[svn] = ""
diff --git a/poky/meta/recipes-devtools/go/go-1.20.5.inc b/poky/meta/recipes-devtools/go/go-1.20.6.inc
similarity index 89%
rename from poky/meta/recipes-devtools/go/go-1.20.5.inc
rename to poky/meta/recipes-devtools/go/go-1.20.6.inc
index 4e4e57d..551171b 100644
--- a/poky/meta/recipes-devtools/go/go-1.20.5.inc
+++ b/poky/meta/recipes-devtools/go/go-1.20.6.inc
@@ -15,4 +15,4 @@
     file://0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch \
     file://0009-go-Filter-build-paths-on-staticly-linked-arches.patch \
 "
-SRC_URI[main.sha256sum] = "9a15c133ba2cfafe79652f4815b62e7cfc267f68df1b9454c6ab2a3ca8b96a88"
+SRC_URI[main.sha256sum] = "62ee5bc6fb55b8bae8f705e0cb8df86d6453626b4ecf93279e2867092e0b7f70"
diff --git a/poky/meta/recipes-devtools/go/go-binary-native_1.20.5.bb b/poky/meta/recipes-devtools/go/go-binary-native_1.20.6.bb
similarity index 78%
rename from poky/meta/recipes-devtools/go/go-binary-native_1.20.5.bb
rename to poky/meta/recipes-devtools/go/go-binary-native_1.20.6.bb
index a98be4a..5b2f8f4 100644
--- a/poky/meta/recipes-devtools/go/go-binary-native_1.20.5.bb
+++ b/poky/meta/recipes-devtools/go/go-binary-native_1.20.6.bb
@@ -9,9 +9,9 @@
 
 # Checksums available at https://go.dev/dl/
 SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}"
-SRC_URI[go_linux_amd64.sha256sum] = "d7ec48cde0d3d2be2c69203bc3e0a44de8660b9c09a6e85c4732a3f7dc442612"
-SRC_URI[go_linux_arm64.sha256sum] = "aa2fab0a7da20213ff975fa7876a66d47b48351558d98851b87d1cfef4360d09"
-SRC_URI[go_linux_ppc64le.sha256sum] = "049b8ab07d34077b90c0642138e10207f6db14bdd1743ea994a21e228f8ca53d"
+SRC_URI[go_linux_amd64.sha256sum] = "b945ae2bb5db01a0fb4786afde64e6fbab50b67f6fa0eb6cfa4924f16a7ff1eb"
+SRC_URI[go_linux_arm64.sha256sum] = "4e15ab37556e979181a1a1cc60f6d796932223a0f5351d7c83768b356f84429b"
+SRC_URI[go_linux_ppc64le.sha256sum] = "a1b91a42a40bba54bfd5c96c23d72250e0c424038d0d2b5c7950b828b4905822"
 
 UPSTREAM_CHECK_URI = "https://golang.org/dl/"
 UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux"
diff --git a/poky/meta/recipes-devtools/go/go-cross-canadian_1.20.5.bb b/poky/meta/recipes-devtools/go/go-cross-canadian_1.20.6.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-cross-canadian_1.20.5.bb
rename to poky/meta/recipes-devtools/go/go-cross-canadian_1.20.6.bb
diff --git a/poky/meta/recipes-devtools/go/go-cross_1.20.5.bb b/poky/meta/recipes-devtools/go/go-cross_1.20.6.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-cross_1.20.5.bb
rename to poky/meta/recipes-devtools/go/go-cross_1.20.6.bb
diff --git a/poky/meta/recipes-devtools/go/go-crosssdk_1.20.5.bb b/poky/meta/recipes-devtools/go/go-crosssdk_1.20.6.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-crosssdk_1.20.5.bb
rename to poky/meta/recipes-devtools/go/go-crosssdk_1.20.6.bb
diff --git a/poky/meta/recipes-devtools/go/go-native_1.20.5.bb b/poky/meta/recipes-devtools/go/go-native_1.20.6.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-native_1.20.5.bb
rename to poky/meta/recipes-devtools/go/go-native_1.20.6.bb
diff --git a/poky/meta/recipes-devtools/go/go-runtime_1.20.5.bb b/poky/meta/recipes-devtools/go/go-runtime_1.20.6.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-runtime_1.20.5.bb
rename to poky/meta/recipes-devtools/go/go-runtime_1.20.6.bb
diff --git a/poky/meta/recipes-devtools/go/go_1.20.5.bb b/poky/meta/recipes-devtools/go/go_1.20.6.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go_1.20.5.bb
rename to poky/meta/recipes-devtools/go/go_1.20.6.bb
diff --git a/poky/meta/recipes-devtools/jquery/jquery_3.6.3.bb b/poky/meta/recipes-devtools/jquery/jquery_3.6.3.bb
index 93f87f7..db4745a 100644
--- a/poky/meta/recipes-devtools/jquery/jquery_3.6.3.bb
+++ b/poky/meta/recipes-devtools/jquery/jquery_3.6.3.bb
@@ -20,9 +20,8 @@
 UPSTREAM_CHECK_REGEX = "jquery-(?P<pver>\d+(\.\d+)+)\.js"
 
 # https://github.com/jquery/jquery/issues/3927
-# There are ways jquery can expose security issues but any issues are in the apps exposing them
-# and there is little we can directly do
-CVE_CHECK_IGNORE += "CVE-2007-2379"
+CVE_STATUS[CVE-2007-2379] = "upstream-wontfix: There are ways jquery can expose security issues but any issues \
+are in the apps exposing them and there is little we can directly do."
 
 inherit allarch
 
diff --git a/poky/meta/recipes-devtools/lua/lua/CVE-2022-28805.patch b/poky/meta/recipes-devtools/lua/lua/CVE-2022-28805.patch
deleted file mode 100644
index 3680c71..0000000
--- a/poky/meta/recipes-devtools/lua/lua/CVE-2022-28805.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 1f3c6f4534c6411313361697d98d1145a1f030fa Mon Sep 17 00:00:00 2001
-From: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
-Date: Tue, 15 Feb 2022 12:28:46 -0300
-Subject: [PATCH] Bug: Lua can generate wrong code when _ENV is <const>
-
-CVE: CVE-2022-28805
-
-Upstream-Status: Backport [https://github.com/lua/lua/commit/1f3c6f4534c6411313361697d98d1145a1f030fa]
-
-Signed-off-by: Steve Sakoman <steve@sakoman.com>
----
- src/lparser.c         |  1 +
- 1 files changed, 1 insertions(+)
-
-diff --git a/src/lparser.c b/src/lparser.c
-index 3abe3d751..a5cd55257 100644
---- a/src/lparser.c
-+++ b/src/lparser.c
-@@ -468,6 +468,7 @@ static void singlevar (LexState *ls, expdesc *var) {
-     expdesc key;
-     singlevaraux(fs, ls->envn, var, 1);  /* get environment variable */
-     lua_assert(var->k != VVOID);  /* this one must exist */
-+    luaK_exp2anyregup(fs, var);  /* but could be a constant */
-     codestring(&key, varname);  /* key is variable name */
-     luaK_indexed(fs, var, &key);  /* env[varname] */
-   }
diff --git a/poky/meta/recipes-devtools/lua/lua/CVE-2022-33099.patch b/poky/meta/recipes-devtools/lua/lua/CVE-2022-33099.patch
deleted file mode 100644
index fe7b606..0000000
--- a/poky/meta/recipes-devtools/lua/lua/CVE-2022-33099.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 42d40581dd919fb134c07027ca1ce0844c670daf Mon Sep 17 00:00:00 2001
-From: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
-Date: Fri, 20 May 2022 13:14:33 -0300
-Subject: [PATCH] Save stack space while handling errors
-
-Because error handling (luaG_errormsg) uses slots from EXTRA_STACK,
-and some errors can recur (e.g., string overflow while creating an
-error message in 'luaG_runerror', or a C-stack overflow before calling
-the message handler), the code should use stack slots with parsimony.
-
-This commit fixes the bug "Lua-stack overflow when C stack overflows
-while handling an error".
-
-CVE: CVE-2022-33099
-
-Upstream-Status: Backport [https://github.com/lua/lua/commit/42d40581dd919fb134c07027ca1ce0844c670daf]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- ldebug.c | 5 ++++-
- lvm.c    | 6 ++++--
- 2 files changed, 8 insertions(+), 3 deletions(-)
-
---- a/src/ldebug.c
-+++ b/src/ldebug.c
-@@ -824,8 +824,11 @@ l_noret luaG_runerror (lua_State *L, con
-   va_start(argp, fmt);
-   msg = luaO_pushvfstring(L, fmt, argp);  /* format message */
-   va_end(argp);
--  if (isLua(ci))  /* if Lua function, add source:line information */
-+  if (isLua(ci)) {  /* if Lua function, add source:line information */
-     luaG_addinfo(L, msg, ci_func(ci)->p->source, getcurrentline(ci));
-+    setobjs2s(L, L->top - 2, L->top - 1);  /* remove 'msg' from the stack */
-+    L->top--;
-+  }
-   luaG_errormsg(L);
- }
- 
---- a/src/lvm.c
-+++ b/src/lvm.c
-@@ -656,8 +656,10 @@ void luaV_concat (lua_State *L, int tota
-       /* collect total length and number of strings */
-       for (n = 1; n < total && tostring(L, s2v(top - n - 1)); n++) {
-         size_t l = vslen(s2v(top - n - 1));
--        if (l_unlikely(l >= (MAX_SIZE/sizeof(char)) - tl))
-+        if (l_unlikely(l >= (MAX_SIZE/sizeof(char)) - tl)) {
-+          L->top = top - total;  /* pop strings to avoid wasting stack */
-           luaG_runerror(L, "string length overflow");
-+        }
-         tl += l;
-       }
-       if (tl <= LUAI_MAXSHORTLEN) {  /* is result a short string? */
-@@ -672,7 +674,7 @@ void luaV_concat (lua_State *L, int tota
-       setsvalue2s(L, top - n, ts);  /* create result */
-     }
-     total -= n-1;  /* got 'n' strings to create 1 new */
--    L->top -= n-1;  /* popped 'n' strings and pushed one */
-+    L->top = top - (n - 1);  /* popped 'n' strings and pushed one */
-   } while (total > 1);  /* repeat until only 1 result left */
- }
- 
diff --git a/poky/meta/recipes-devtools/lua/lua_5.4.4.bb b/poky/meta/recipes-devtools/lua/lua_5.4.6.bb
similarity index 88%
rename from poky/meta/recipes-devtools/lua/lua_5.4.4.bb
rename to poky/meta/recipes-devtools/lua/lua_5.4.6.bb
index 26ec35f..eabfc89 100644
--- a/poky/meta/recipes-devtools/lua/lua_5.4.4.bb
+++ b/poky/meta/recipes-devtools/lua/lua_5.4.6.bb
@@ -1,20 +1,18 @@
 SUMMARY = "Lua is a powerful light-weight programming language designed \
 for extending applications."
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://doc/readme.html;beginline=307;endline=330;md5=79c3f6b19ad05efe24c1681f025026bb"
+LIC_FILES_CHKSUM = "file://doc/readme.html;beginline=303;endline=324;md5=e05449eb28c092473f854670c6e8375a"
 HOMEPAGE = "http://www.lua.org/"
 
 SRC_URI = "http://www.lua.org/ftp/lua-${PV}.tar.gz;name=tarballsrc \
            file://lua.pc.in \
-           file://CVE-2022-28805.patch \
-           file://CVE-2022-33099.patch \
            ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'http://www.lua.org/tests/lua-${PV_testsuites}-tests.tar.gz;name=tarballtest file://run-ptest ', '', d)} \
            "
 
 # if no test suite matches PV release of Lua exactly, download the suite for the closest Lua release.
 PV_testsuites = "5.4.4"
 
-SRC_URI[tarballsrc.sha256sum] = "164c7849653b80ae67bec4b7473b884bf5cc8d2dca05653475ec2ed27b9ebf61"
+SRC_URI[tarballsrc.sha256sum] = "7d5ea1b9cb6aa0b59ca3dde1c6adcb57ef83a1ba8e5432c0ecd06bf439b3ad88"
 SRC_URI[tarballtest.sha256sum] = "04d28355cd67a2299dfe5708b55a0ff221ccb1a3907a3113cc103ccc05ac6aad"
 
 inherit pkgconfig binconfig ptest
diff --git a/poky/meta/recipes-devtools/ninja/ninja_1.11.1.bb b/poky/meta/recipes-devtools/ninja/ninja_1.11.1.bb
index 83d2f01..8e297ec 100644
--- a/poky/meta/recipes-devtools/ninja/ninja_1.11.1.bb
+++ b/poky/meta/recipes-devtools/ninja/ninja_1.11.1.bb
@@ -30,5 +30,4 @@
 
 BBCLASSEXTEND = "native nativesdk"
 
-# This is a different Ninja
-CVE_CHECK_IGNORE += "CVE-2021-4336"
+CVE_STATUS[CVE-2021-4336] = "cpe-incorrect: This is a different Ninja"
diff --git a/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.5.0.bb b/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.6.2.bb
similarity index 97%
rename from poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.5.0.bb
rename to poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.6.2.bb
index b27e3de..eb88b9b 100644
--- a/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.5.0.bb
+++ b/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.6.2.bb
@@ -10,7 +10,7 @@
 SRC_URI = "git://git.yoctoproject.org/opkg-utils;protocol=https;branch=master \
            file://0001-update-alternatives-correctly-match-priority.patch \
            "
-SRCREV = "9239541f14a2529b9d01c0a253ab11afa2822dab"
+SRCREV = "67994e62dc598282830385da75ba9b1abbbda941"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-devtools/opkg/opkg/0001-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch b/poky/meta/recipes-devtools/opkg/opkg/0001-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch
deleted file mode 100644
index 3406878..0000000
--- a/poky/meta/recipes-devtools/opkg/opkg/0001-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 4089affd371e6d62dd8c1e57b344f8cc329005ea Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 14 Jan 2023 23:11:08 -0800
-Subject: [PATCH] Define alignof using _Alignof when using C11 or newer
-
-WG14 N2350 made very clear that it is an UB having type definitions
-within "offsetof" [1]. This patch enhances the implementation of macro
-alignof_slot to use builtin "_Alignof" to avoid undefined behavior on
-when using std=c11 or newer
-
-clang 16+ has started to flag this [2]
-
-Fixes build when using -std >= gnu11 and using clang16+
-
-Older compilers gcc < 4.9 or clang < 8 has buggy _Alignof even though it
-may support C11, exclude those compilers too
-
-[1] https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2350.htm
-[2] https://reviews.llvm.org/D133574
-
-Upstream-Status: Submitted [https://groups.google.com/g/opkg-devel/c/gjcQPZgT_jI]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libopkg/md5.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/libopkg/md5.c b/libopkg/md5.c
-index 981b9b8..ccb645e 100644
---- a/libopkg/md5.c
-+++ b/libopkg/md5.c
-@@ -237,7 +237,17 @@ void md5_process_bytes(const void *buffer, size_t len, struct md5_ctx *ctx)
-     /* Process available complete blocks.  */
-     if (len >= 64) {
- #if !_STRING_ARCH_unaligned
-+/* GCC releases before GCC 4.9 had a bug in _Alignof.  See GCC bug 52023
-+   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.
-+   clang versions < 8.0.0 have the same bug.  */
-+#if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
-+     || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \
-+         && !defined __clang__) \
-+     || (defined __clang__ && __clang_major__ < 8))
- #define alignof(type) offsetof (struct { char c; type x; }, x)
-+#else
-+#define alignof(type) _Alignof(type)
-+#endif
- #define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) != 0)
-         if (UNALIGNED_P(buffer))
-             while (len > 64) {
--- 
-2.39.0
-
diff --git a/poky/meta/recipes-devtools/opkg/opkg/0002-opkg-key-remove-no-options-flag-from-gpg-calls.patch b/poky/meta/recipes-devtools/opkg/opkg/0002-opkg-key-remove-no-options-flag-from-gpg-calls.patch
deleted file mode 100644
index f216950..0000000
--- a/poky/meta/recipes-devtools/opkg/opkg/0002-opkg-key-remove-no-options-flag-from-gpg-calls.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From a658e6402382250f0164c5b47b744740e04f3611 Mon Sep 17 00:00:00 2001
-From: Charlie Johnston <charlie.johnston@ni.com>
-Date: Fri, 30 Dec 2022 15:21:14 -0600
-Subject: [PATCH] opkg-key: Remove --no-options flag from gpg calls.
-
-The opkg-key script was always passing the --no-options
-flag to gpg, which uses /dev/null as the options file.
-As a result, the opkg gpg.conf file was not getting
-used. This change removes that flag so that gpg.conf
-in the GPGHOMEDIR for opkg (currently /etc/opkg/gpg/)
-will be used if present.
-
-Upstream-Status: Accepted [https://git.yoctoproject.org/opkg/commit/?id=cee294e72d257417b5e55ef7a76a0fd15313e46b]
-Signed-off-by: Charlie Johnston <charlie.johnston@ni.com>
----
- utils/opkg-key | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/utils/opkg-key b/utils/opkg-key
-index e395a59..8645ebc 100755
---- a/utils/opkg-key
-+++ b/utils/opkg-key
-@@ -53,7 +53,7 @@ else
-     exit 1
- fi
- 
--GPG="$GPGCMD --no-options --homedir $GPGHOMEDIR"
-+GPG="$GPGCMD --homedir $GPGHOMEDIR"
- 
- # Gpg home dir isn't created automatically when --homedir option is used
- if [ ! -e "$GPGHOMEDIR" ]; then
--- 
-2.30.2
-
diff --git a/poky/meta/recipes-devtools/opkg/opkg_0.6.1.bb b/poky/meta/recipes-devtools/opkg/opkg_0.6.2.bb
similarity index 91%
rename from poky/meta/recipes-devtools/opkg/opkg_0.6.1.bb
rename to poky/meta/recipes-devtools/opkg/opkg_0.6.2.bb
index 4c25fe9..46be137 100644
--- a/poky/meta/recipes-devtools/opkg/opkg_0.6.1.bb
+++ b/poky/meta/recipes-devtools/opkg/opkg_0.6.2.bb
@@ -15,12 +15,10 @@
 SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \
            file://opkg.conf \
            file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \
-           file://0002-opkg-key-remove-no-options-flag-from-gpg-calls.patch \
-           file://0001-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch \
            file://run-ptest \
-"
+           "
 
-SRC_URI[sha256sum] = "e87fccb575c64d3ac0559444016a2795f12125986a0da896bab97c4a1a2f1b2a"
+SRC_URI[sha256sum] = "ac73a90a2549cd04948e563d915912c78e1b8ba0f43af75c5a53fcca474adbd5"
 
 # This needs to be before ptest inherit, otherwise all ptest files end packaged
 # in libopkg package if OPKGLIBDIR == libdir, because default
diff --git a/poky/meta/recipes-devtools/perl/files/CVE-2023-31486-0001.patch b/poky/meta/recipes-devtools/perl/files/CVE-2023-31486-0001.patch
new file mode 100644
index 0000000..0531e1f
--- /dev/null
+++ b/poky/meta/recipes-devtools/perl/files/CVE-2023-31486-0001.patch
@@ -0,0 +1,217 @@
+From 77f557ef84698efeb6eed04e4a9704eaf85b741d
+From: Stig Palmquist <git@stig.io>
+Date: Mon Jun 5 16:46:22 2023 +0200
+Subject: [PATCH] Change verify_SSL default to 1, add ENV var to enable
+ insecure default
+
+- Changes the `verify_SSL` default parameter from `0` to `1`
+
+  Based on patch by Dominic Hargreaves:
+  https://salsa.debian.org/perl-team/interpreter/perl/-/commit/1490431e40e22052f75a0b3449f1f53cbd27ba92
+
+  CVE: CVE-2023-31486
+
+- Add check for `$ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT}` that
+  enables the previous insecure default behaviour if set to `1`.
+
+  This provides a workaround for users who encounter problems with the
+  new `verify_SSL` default.
+
+  Example to disable certificate checks:
+  ```
+    $ PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT=1 ./script.pl
+  ```
+
+- Updates to documentation:
+  - Describe changing the verify_SSL value
+  - Describe the escape-hatch environment variable
+  - Remove rationale for not enabling verify_SSL
+  - Add missing certificate search paths
+  - Replace "SSL" with "TLS/SSL" where appropriate
+  - Use "machine-in-the-middle" instead of "man-in-the-middle"
+
+Upstream-Status: Backport [https://github.com/chansen/p5-http-tiny/commit/77f557ef84698efeb6eed04e4a9704eaf85b741d]
+
+Signed-off-by: Soumya <soumya.sambu@windriver.com>
+---
+ cpan/HTTP-Tiny/lib/HTTP/Tiny.pm | 86 ++++++++++++++++++++++-----------
+ 1 file changed, 57 insertions(+), 29 deletions(-)
+
+diff --git a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
+index 83ca06d..ebc34a1 100644
+--- a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
++++ b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
+@@ -40,10 +40,14 @@ sub _croak { require Carp; Carp::croak(@_) }
+ #pod * C<timeout> — Request timeout in seconds (default is 60) If a socket open,
+ #pod   read or write takes longer than the timeout, the request response status code
+ #pod   will be 599.
+-#pod * C<verify_SSL> — A boolean that indicates whether to validate the SSL
+-#pod   certificate of an C<https> — connection (default is false)
++#pod * C<verify_SSL> — A boolean that indicates whether to validate the TLS/SSL
++#pod   certificate of an C<https> — connection (default is true). Changed from false
++#pod   to true in version 0.083.
+ #pod * C<SSL_options> — A hashref of C<SSL_*> — options to pass through to
+ #pod   L<IO::Socket::SSL>
++#pod * C<$ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT}> - Changes the default
++#pod   certificate verification behavior to not check server identity if set to 1.
++#pod   Only effective if C<verify_SSL> is not set. Added in version 0.083.
+ #pod
+ #pod An accessor/mutator method exists for each attribute.
+ #pod
+@@ -111,11 +115,17 @@ sub timeout {
+ sub new {
+     my($class, %args) = @_;
+
++    # Support lower case verify_ssl argument, but only if verify_SSL is not
++    # true.
++    if ( exists $args{verify_ssl} ) {
++        $args{verify_SSL}  ||= $args{verify_ssl};
++    }
++
+     my $self = {
+         max_redirect => 5,
+         timeout      => defined $args{timeout} ? $args{timeout} : 60,
+         keep_alive   => 1,
+-        verify_SSL   => $args{verify_SSL} || $args{verify_ssl} || 0, # no verification by default
++        verify_SSL   => defined $args{verify_SSL} ? $args{verify_SSL} : _verify_SSL_default(),
+         no_proxy     => $ENV{no_proxy},
+     };
+
+@@ -134,6 +144,13 @@ sub new {
+     return $self;
+ }
+
++sub _verify_SSL_default {
++    my ($self) = @_;
++    # Check if insecure default certificate verification behaviour has been
++    # changed by the user by setting PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT=1
++    return (($ENV{PERL_HTTP_TINY_INSECURE_BY_DEFAULT} || '') eq '1') ? 0 : 1;
++}
++
+ sub _set_proxies {
+     my ($self) = @_;
+
+@@ -1055,7 +1072,7 @@ sub new {
+         timeout          => 60,
+         max_line_size    => 16384,
+         max_header_lines => 64,
+-        verify_SSL       => 0,
++        verify_SSL       => HTTP::Tiny::_verify_SSL_default(),
+         SSL_options      => {},
+         %args
+     }, $class;
+@@ -2043,11 +2060,11 @@ proxy
+ timeout
+ verify_SSL
+
+-=head1 SSL SUPPORT
++=head1 TLS/SSL SUPPORT
+
+ Direct C<https> connections are supported only if L<IO::Socket::SSL> 1.56 or
+ greater and L<Net::SSLeay> 1.49 or greater are installed. An error will occur
+-if new enough versions of these modules are not installed or if the SSL
++if new enough versions of these modules are not installed or if the TLS
+ encryption fails. You can also use C<HTTP::Tiny::can_ssl()> utility function
+ that returns boolean to see if the required modules are installed.
+
+@@ -2055,7 +2072,7 @@ An C<https> connection may be made via an C<http> proxy that supports the CONNEC
+ command (i.e. RFC 2817).  You may not proxy C<https> via a proxy that itself
+ requires C<https> to communicate.
+
+-SSL provides two distinct capabilities:
++TLS/SSL provides two distinct capabilities:
+
+ =over 4
+
+@@ -2069,24 +2086,17 @@ Verification of server identity
+
+ =back
+
+-B<By default, HTTP::Tiny does not verify server identity>.
+-
+-Server identity verification is controversial and potentially tricky because it
+-depends on a (usually paid) third-party Certificate Authority (CA) trust model
+-to validate a certificate as legitimate.  This discriminates against servers
+-with self-signed certificates or certificates signed by free, community-driven
+-CA's such as L<CAcert.org|http://cacert.org>.
++B<By default, HTTP::Tiny verifies server identity>.
+
+-By default, HTTP::Tiny does not make any assumptions about your trust model,
+-threat level or risk tolerance.  It just aims to give you an encrypted channel
+-when you need one.
++This was changed in version 0.083 due to security concerns. The previous default
++behavior can be enabled by setting C<$ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT}>
++to 1.
+
+-Setting the C<verify_SSL> attribute to a true value will make HTTP::Tiny verify
+-that an SSL connection has a valid SSL certificate corresponding to the host
+-name of the connection and that the SSL certificate has been verified by a CA.
+-Assuming you trust the CA, this will protect against a L<man-in-the-middle
+-attack|http://en.wikipedia.org/wiki/Man-in-the-middle_attack>.  If you are
+-concerned about security, you should enable this option.
++Verification is done by checking that that the TLS/SSL connection has a valid
++certificate corresponding to the host name of the connection and that the
++certificate has been verified by a CA. Assuming you trust the CA, this will
++protect against L<machine-in-the-middle
++attacks|http://en.wikipedia.org/wiki/Machine-in-the-middle_attack>.
+
+ Certificate verification requires a file containing trusted CA certificates.
+
+@@ -2094,9 +2104,7 @@ If the environment variable C<SSL_CERT_FILE> is present, HTTP::Tiny
+ will try to find a CA certificate file in that location.
+
+ If the L<Mozilla::CA> module is installed, HTTP::Tiny will use the CA file
+-included with it as a source of trusted CA's.  (This means you trust Mozilla,
+-the author of Mozilla::CA, the CPAN mirror where you got Mozilla::CA, the
+-toolchain used to install it, and your operating system security, right?)
++included with it as a source of trusted CA's.
+
+ If that module is not available, then HTTP::Tiny will search several
+ system-specific default locations for a CA certificate file:
+@@ -2115,13 +2123,33 @@ system-specific default locations for a CA certificate file:
+
+ /etc/ssl/ca-bundle.pem
+
++=item *
++
++/etc/openssl/certs/ca-certificates.crt
++
++=item *
++
++/etc/ssl/cert.pem
++
++=item *
++
++/usr/local/share/certs/ca-root-nss.crt
++
++=item *
++
++/etc/pki/tls/cacert.pem
++
++=item *
++
++/etc/certs/ca-certificates.crt
++
+ =back
+
+ An error will be occur if C<verify_SSL> is true and no CA certificate file
+ is available.
+
+-If you desire complete control over SSL connections, the C<SSL_options> attribute
+-lets you provide a hash reference that will be passed through to
++If you desire complete control over TLS/SSL connections, the C<SSL_options>
++attribute lets you provide a hash reference that will be passed through to
+ C<IO::Socket::SSL::start_SSL()>, overriding any options set by HTTP::Tiny. For
+ example, to provide your own trusted CA file:
+
+@@ -2131,7 +2159,7 @@ example, to provide your own trusted CA file:
+
+ The C<SSL_options> attribute could also be used for such things as providing a
+ client certificate for authentication to a server or controlling the choice of
+-cipher used for the SSL connection. See L<IO::Socket::SSL> documentation for
++cipher used for the TLS/SSL connection. See L<IO::Socket::SSL> documentation for
+ details.
+
+ =head1 PROXY SUPPORT
+--
+2.40.0
diff --git a/poky/meta/recipes-devtools/perl/files/CVE-2023-31486-0002.patch b/poky/meta/recipes-devtools/perl/files/CVE-2023-31486-0002.patch
new file mode 100644
index 0000000..45452be
--- /dev/null
+++ b/poky/meta/recipes-devtools/perl/files/CVE-2023-31486-0002.patch
@@ -0,0 +1,36 @@
+From a22785783b17cbaa28afaee4a024d81a1903701d
+From: Stig Palmquist <git@stig.io>
+Date: Sun Jun 18 11:36:05 2023 +0200
+Subject: [PATCH] Fix incorrect env var name for verify_SSL default
+
+The variable to override the verify_SSL default differed slightly in the
+documentation from what was checked for in the code.
+
+This commit makes the code use `PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT`
+as documented, instead of `PERL_HTTP_TINY_INSECURE_BY_DEFAULT` which was
+missing `SSL_`
+
+CVE: CVE-2023-31486
+
+Upstream-Status: Backport [https://github.com/chansen/p5-http-tiny/commit/a22785783b17cbaa28afaee4a024d81a1903701d]
+
+Signed-off-by: Soumya <soumya.sambu@windriver.com>
+---
+ cpan/HTTP-Tiny/lib/HTTP/Tiny.pm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
+index ebc34a1..65ac8ff 100644
+--- a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
++++ b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm
+@@ -148,7 +148,7 @@ sub _verify_SSL_default {
+     my ($self) = @_;
+     # Check if insecure default certificate verification behaviour has been
+     # changed by the user by setting PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT=1
+-    return (($ENV{PERL_HTTP_TINY_INSECURE_BY_DEFAULT} || '') eq '1') ? 0 : 1;
++    return (($ENV{PERL_HTTP_TINY_SSL_INSECURE_BY_DEFAULT} || '') eq '1') ? 0 : 1;
+ }
+
+ sub _set_proxies {
+--
+2.40.0
diff --git a/poky/meta/recipes-devtools/perl/perl_5.36.1.bb b/poky/meta/recipes-devtools/perl/perl_5.36.1.bb
index 3db1d9c..87768cc 100644
--- a/poky/meta/recipes-devtools/perl/perl_5.36.1.bb
+++ b/poky/meta/recipes-devtools/perl/perl_5.36.1.bb
@@ -18,6 +18,8 @@
            file://determinism.patch \
            file://0001-cpan-Sys-Syslog-Makefile.PL-Fix-_PATH_LOG-for-determ.patch \
            file://CVE-2023-31484.patch \
+           file://CVE-2023-31486-0001.patch \
+           file://CVE-2023-31486-0002.patch \
            "
 SRC_URI:append:class-native = " \
            file://perl-configpm-switch.patch \
diff --git a/poky/meta/recipes-devtools/pkgconf/pkgconf_1.9.5.bb b/poky/meta/recipes-devtools/pkgconf/pkgconf_1.9.5.bb
index 4bdf03c..ab1d1c8 100644
--- a/poky/meta/recipes-devtools/pkgconf/pkgconf_1.9.5.bb
+++ b/poky/meta/recipes-devtools/pkgconf/pkgconf_1.9.5.bb
@@ -15,7 +15,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=2214222ec1a820bd6cc75167a56925e0"
 
 SRC_URI = "\
-    https://distfiles.dereferenced.org/pkgconf/pkgconf-${PV}.tar.xz \
+    https://distfiles.ariadne.space/pkgconf/pkgconf-${PV}.tar.xz \
     file://pkg-config-wrapper \
     file://pkg-config-native.in \
     file://pkg-config-esdk.in \
diff --git a/poky/meta/recipes-devtools/python/python-cython.inc b/poky/meta/recipes-devtools/python/python-cython.inc
index 71596ca..6aec6b0 100644
--- a/poky/meta/recipes-devtools/python/python-cython.inc
+++ b/poky/meta/recipes-devtools/python/python-cython.inc
@@ -9,7 +9,7 @@
 PYPI_PACKAGE = "Cython"
 BBCLASSEXTEND = "native nativesdk"
 
-SRC_URI[sha256sum] = "6e381fa0bf08b3c26ec2f616b19ae852c06f5750f4290118bf986b6f85c8c527"
+SRC_URI[sha256sum] = "41c0cfd2d754e383c9eeb95effc9aa4ab847d0c9747077ddd7c0dcb68c3bc01f"
 UPSTREAM_CHECK_REGEX = "Cython-(?P<pver>.*)\.tar"
 
 inherit pypi
diff --git a/poky/meta/recipes-devtools/python/python3-cryptography-crates.inc b/poky/meta/recipes-devtools/python/python3-cryptography-crates.inc
index 410c9f4..da0a3f2 100644
--- a/poky/meta/recipes-devtools/python/python3-cryptography-crates.inc
+++ b/poky/meta/recipes-devtools/python/python3-cryptography-crates.inc
@@ -4,135 +4,109 @@
 SRC_URI += " \
     crate://crates.io/Inflector/0.11.4 \
     crate://crates.io/aliasable/0.1.3 \
-    crate://crates.io/android_system_properties/0.1.5 \
-    crate://crates.io/asn1/0.13.0 \
-    crate://crates.io/asn1_derive/0.13.0 \
+    crate://crates.io/asn1/0.15.2 \
+    crate://crates.io/asn1_derive/0.15.2 \
     crate://crates.io/autocfg/1.1.0 \
     crate://crates.io/base64/0.13.1 \
     crate://crates.io/bitflags/1.3.2 \
-    crate://crates.io/bumpalo/3.10.0 \
-    crate://crates.io/cc/1.0.78 \
+    crate://crates.io/cc/1.0.79 \
     crate://crates.io/cfg-if/1.0.0 \
-    crate://crates.io/chrono/0.4.23 \
-    crate://crates.io/codespan-reporting/0.11.1 \
-    crate://crates.io/core-foundation-sys/0.8.3 \
-    crate://crates.io/cxx/1.0.85 \
-    crate://crates.io/cxx-build/1.0.85 \
-    crate://crates.io/cxxbridge-flags/1.0.85 \
-    crate://crates.io/cxxbridge-macro/1.0.85 \
-    crate://crates.io/iana-time-zone/0.1.53 \
-    crate://crates.io/iana-time-zone-haiku/0.1.1 \
-    crate://crates.io/indoc/0.3.6 \
-    crate://crates.io/indoc-impl/0.3.6 \
-    crate://crates.io/instant/0.1.12 \
-    crate://crates.io/js-sys/0.3.60 \
-    crate://crates.io/libc/0.2.139 \
-    crate://crates.io/link-cplusplus/1.0.8 \
+    crate://crates.io/foreign-types/0.3.2 \
+    crate://crates.io/foreign-types-shared/0.1.1 \
+    crate://crates.io/indoc/1.0.9 \
+    crate://crates.io/libc/0.2.144 \
     crate://crates.io/lock_api/0.4.9 \
-    crate://crates.io/log/0.4.17 \
-    crate://crates.io/num-integer/0.1.45 \
-    crate://crates.io/num-traits/0.2.15 \
-    crate://crates.io/once_cell/1.14.0 \
-    crate://crates.io/ouroboros/0.15.5 \
-    crate://crates.io/ouroboros_macro/0.15.5 \
-    crate://crates.io/parking_lot/0.11.2 \
-    crate://crates.io/parking_lot_core/0.8.6 \
-    crate://crates.io/paste/0.1.18 \
-    crate://crates.io/paste-impl/0.1.18 \
-    crate://crates.io/pem/1.1.0 \
+    crate://crates.io/memoffset/0.8.0 \
+    crate://crates.io/once_cell/1.17.2 \
+    crate://crates.io/openssl/0.10.54 \
+    crate://crates.io/openssl-macros/0.1.1 \
+    crate://crates.io/openssl-sys/0.9.88 \
+    crate://crates.io/ouroboros/0.15.6 \
+    crate://crates.io/ouroboros_macro/0.15.6 \
+    crate://crates.io/parking_lot/0.12.1 \
+    crate://crates.io/parking_lot_core/0.9.7 \
+    crate://crates.io/pem/1.1.1 \
+    crate://crates.io/pkg-config/0.3.27 \
     crate://crates.io/proc-macro-error/1.0.4 \
     crate://crates.io/proc-macro-error-attr/1.0.4 \
-    crate://crates.io/proc-macro-hack/0.5.20+deprecated \
-    crate://crates.io/proc-macro2/1.0.49 \
-    crate://crates.io/pyo3/0.15.2 \
-    crate://crates.io/pyo3-build-config/0.15.2 \
-    crate://crates.io/pyo3-macros/0.15.2 \
-    crate://crates.io/pyo3-macros-backend/0.15.2 \
-    crate://crates.io/quote/1.0.23 \
+    crate://crates.io/proc-macro2/1.0.64 \
+    crate://crates.io/pyo3/0.18.3 \
+    crate://crates.io/pyo3-build-config/0.18.3 \
+    crate://crates.io/pyo3-ffi/0.18.3 \
+    crate://crates.io/pyo3-macros/0.18.3 \
+    crate://crates.io/pyo3-macros-backend/0.18.3 \
+    crate://crates.io/quote/1.0.28 \
     crate://crates.io/redox_syscall/0.2.16 \
     crate://crates.io/scopeguard/1.1.0 \
-    crate://crates.io/scratch/1.0.3 \
     crate://crates.io/smallvec/1.10.0 \
-    crate://crates.io/syn/1.0.107 \
-    crate://crates.io/termcolor/1.1.3 \
-    crate://crates.io/unicode-ident/1.0.6 \
-    crate://crates.io/unicode-width/0.1.10 \
+    crate://crates.io/syn/1.0.109 \
+    crate://crates.io/syn/2.0.18 \
+    crate://crates.io/target-lexicon/0.12.7 \
+    crate://crates.io/unicode-ident/1.0.9 \
     crate://crates.io/unindent/0.1.11 \
+    crate://crates.io/vcpkg/0.2.15 \
     crate://crates.io/version_check/0.9.4 \
-    crate://crates.io/wasm-bindgen/0.2.83 \
-    crate://crates.io/wasm-bindgen-backend/0.2.83 \
-    crate://crates.io/wasm-bindgen-macro/0.2.83 \
-    crate://crates.io/wasm-bindgen-macro-support/0.2.83 \
-    crate://crates.io/wasm-bindgen-shared/0.2.83 \
-    crate://crates.io/winapi/0.3.9 \
-    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi-util/0.1.5 \
-    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+    crate://crates.io/windows-sys/0.45.0 \
+    crate://crates.io/windows-targets/0.42.2 \
+    crate://crates.io/windows_aarch64_gnullvm/0.42.2 \
+    crate://crates.io/windows_aarch64_msvc/0.42.2 \
+    crate://crates.io/windows_i686_gnu/0.42.2 \
+    crate://crates.io/windows_i686_msvc/0.42.2 \
+    crate://crates.io/windows_x86_64_gnu/0.42.2 \
+    crate://crates.io/windows_x86_64_gnullvm/0.42.2 \
+    crate://crates.io/windows_x86_64_msvc/0.42.2 \
 "
 
 SRC_URI[Inflector-0.11.4.sha256sum] = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
 SRC_URI[aliasable-0.1.3.sha256sum] = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd"
-SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
-SRC_URI[asn1-0.13.0.sha256sum] = "2affba5e62ee09eeba078f01a00c4aed45ac4287e091298eccbb0d4802efbdc5"
-SRC_URI[asn1_derive-0.13.0.sha256sum] = "bfab79c195875e5aef2bd20b4c8ed8d43ef9610bcffefbbcf66f88f555cc78af"
+SRC_URI[asn1-0.15.2.sha256sum] = "28c19b9324de5b815b6487e0f8098312791b09de0dbf3d5c2db1fe2d95bab973"
+SRC_URI[asn1_derive-0.15.2.sha256sum] = "a045c3ccad89f244a86bd1e6cf1a7bf645296e7692698b056399b6efd4639407"
 SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-SRC_URI[bumpalo-3.10.0.sha256sum] = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3"
-SRC_URI[cc-1.0.78.sha256sum] = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
 SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-SRC_URI[chrono-0.4.23.sha256sum] = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"
-SRC_URI[codespan-reporting-0.11.1.sha256sum] = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
-SRC_URI[core-foundation-sys-0.8.3.sha256sum] = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
-SRC_URI[cxx-1.0.85.sha256sum] = "5add3fc1717409d029b20c5b6903fc0c0b02fa6741d820054f4a2efa5e5816fd"
-SRC_URI[cxx-build-1.0.85.sha256sum] = "b4c87959ba14bc6fbc61df77c3fcfe180fc32b93538c4f1031dd802ccb5f2ff0"
-SRC_URI[cxxbridge-flags-1.0.85.sha256sum] = "69a3e162fde4e594ed2b07d0f83c6c67b745e7f28ce58c6df5e6b6bef99dfb59"
-SRC_URI[cxxbridge-macro-1.0.85.sha256sum] = "3e7e2adeb6a0d4a282e581096b06e1791532b7d576dcde5ccd9382acf55db8e6"
-SRC_URI[iana-time-zone-0.1.53.sha256sum] = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
-SRC_URI[iana-time-zone-haiku-0.1.1.sha256sum] = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
-SRC_URI[indoc-0.3.6.sha256sum] = "47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8"
-SRC_URI[indoc-impl-0.3.6.sha256sum] = "ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0"
-SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-SRC_URI[js-sys-0.3.60.sha256sum] = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
-SRC_URI[libc-0.2.139.sha256sum] = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
-SRC_URI[link-cplusplus-1.0.8.sha256sum] = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
+SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+SRC_URI[foreign-types-shared-0.1.1.sha256sum] = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+SRC_URI[indoc-1.0.9.sha256sum] = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
+SRC_URI[libc-0.2.144.sha256sum] = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
 SRC_URI[lock_api-0.4.9.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
-SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
-SRC_URI[once_cell-1.14.0.sha256sum] = "2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0"
-SRC_URI[ouroboros-0.15.5.sha256sum] = "dfbb50b356159620db6ac971c6d5c9ab788c9cc38a6f49619fca2a27acb062ca"
-SRC_URI[ouroboros_macro-0.15.5.sha256sum] = "4a0d9d1a6191c4f391f87219d1ea42b23f09ee84d64763cd05ee6ea88d9f384d"
-SRC_URI[parking_lot-0.11.2.sha256sum] = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
-SRC_URI[parking_lot_core-0.8.6.sha256sum] = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
-SRC_URI[paste-0.1.18.sha256sum] = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
-SRC_URI[paste-impl-0.1.18.sha256sum] = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
-SRC_URI[pem-1.1.0.sha256sum] = "03c64931a1a212348ec4f3b4362585eca7159d0d09cbdf4a7f74f02173596fd4"
+SRC_URI[memoffset-0.8.0.sha256sum] = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
+SRC_URI[once_cell-1.17.2.sha256sum] = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b"
+SRC_URI[openssl-0.10.54.sha256sum] = "69b3f656a17a6cbc115b5c7a40c616947d213ba182135b014d6051b73ab6f019"
+SRC_URI[openssl-macros-0.1.1.sha256sum] = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+SRC_URI[openssl-sys-0.9.88.sha256sum] = "c2ce0f250f34a308dcfdbb351f511359857d4ed2134ba715a4eadd46e1ffd617"
+SRC_URI[ouroboros-0.15.6.sha256sum] = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db"
+SRC_URI[ouroboros_macro-0.15.6.sha256sum] = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7"
+SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+SRC_URI[parking_lot_core-0.9.7.sha256sum] = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
+SRC_URI[pem-1.1.1.sha256sum] = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
+SRC_URI[pkg-config-0.3.27.sha256sum] = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
 SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
 SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-SRC_URI[proc-macro-hack-0.5.20+deprecated.sha256sum] = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
-SRC_URI[proc-macro2-1.0.49.sha256sum] = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5"
-SRC_URI[pyo3-0.15.2.sha256sum] = "d41d50a7271e08c7c8a54cd24af5d62f73ee3a6f6a314215281ebdec421d5752"
-SRC_URI[pyo3-build-config-0.15.2.sha256sum] = "779239fc40b8e18bc8416d3a37d280ca9b9fb04bda54b98037bb6748595c2410"
-SRC_URI[pyo3-macros-0.15.2.sha256sum] = "00b247e8c664be87998d8628e86f282c25066165f1f8dda66100c48202fdb93a"
-SRC_URI[pyo3-macros-backend-0.15.2.sha256sum] = "5a8c2812c412e00e641d99eeb79dd478317d981d938aa60325dfa7157b607095"
-SRC_URI[quote-1.0.23.sha256sum] = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+SRC_URI[proc-macro2-1.0.64.sha256sum] = "78803b62cbf1f46fde80d7c0e803111524b9877184cfe7c3033659490ac7a7da"
+SRC_URI[pyo3-0.18.3.sha256sum] = "e3b1ac5b3731ba34fdaa9785f8d74d17448cd18f30cf19e0c7e7b1fdb5272109"
+SRC_URI[pyo3-build-config-0.18.3.sha256sum] = "9cb946f5ac61bb61a5014924910d936ebd2b23b705f7a4a3c40b05c720b079a3"
+SRC_URI[pyo3-ffi-0.18.3.sha256sum] = "fd4d7c5337821916ea2a1d21d1092e8443cf34879e53a0ac653fbb98f44ff65c"
+SRC_URI[pyo3-macros-0.18.3.sha256sum] = "a9d39c55dab3fc5a4b25bbd1ac10a2da452c4aca13bb450f22818a002e29648d"
+SRC_URI[pyo3-macros-backend-0.18.3.sha256sum] = "97daff08a4c48320587b5224cc98d609e3c27b6d437315bd40b605c98eeb5918"
+SRC_URI[quote-1.0.28.sha256sum] = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
 SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
 SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-SRC_URI[scratch-1.0.3.sha256sum] = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2"
 SRC_URI[smallvec-1.10.0.sha256sum] = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
-SRC_URI[syn-1.0.107.sha256sum] = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
-SRC_URI[termcolor-1.1.3.sha256sum] = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
-SRC_URI[unicode-ident-1.0.6.sha256sum] = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
-SRC_URI[unicode-width-0.1.10.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.18.sha256sum] = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e"
+SRC_URI[target-lexicon-0.12.7.sha256sum] = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5"
+SRC_URI[unicode-ident-1.0.9.sha256sum] = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0"
 SRC_URI[unindent-0.1.11.sha256sum] = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
+SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
 SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-SRC_URI[wasm-bindgen-0.2.83.sha256sum] = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
-SRC_URI[wasm-bindgen-backend-0.2.83.sha256sum] = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
-SRC_URI[wasm-bindgen-macro-0.2.83.sha256sum] = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
-SRC_URI[wasm-bindgen-macro-support-0.2.83.sha256sum] = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
-SRC_URI[wasm-bindgen-shared-0.2.83.sha256sum] = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
-SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.45.0.sha256sum] = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+SRC_URI[windows-targets-0.42.2.sha256sum] = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+SRC_URI[windows_aarch64_gnullvm-0.42.2.sha256sum] = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+SRC_URI[windows_aarch64_msvc-0.42.2.sha256sum] = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+SRC_URI[windows_i686_gnu-0.42.2.sha256sum] = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+SRC_URI[windows_i686_msvc-0.42.2.sha256sum] = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+SRC_URI[windows_x86_64_gnu-0.42.2.sha256sum] = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+SRC_URI[windows_x86_64_gnullvm-0.42.2.sha256sum] = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+SRC_URI[windows_x86_64_msvc-0.42.2.sha256sum] = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
diff --git a/poky/meta/recipes-devtools/python/python3-cryptography-vectors_39.0.2.bb b/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.2.bb
similarity index 86%
rename from poky/meta/recipes-devtools/python/python3-cryptography-vectors_39.0.2.bb
rename to poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.2.bb
index 795e27f..52f2c35 100644
--- a/poky/meta/recipes-devtools/python/python3-cryptography-vectors_39.0.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.2.bb
@@ -9,11 +9,11 @@
 # NOTE: Make sure to keep this recipe at the same version as python3-cryptography
 #       Upgrade both recipes at the same time
 
-SRC_URI[sha256sum] = "a68f106f7a4322cf1e7ed51e3fc6d5c1e0b11d337ed918ec879e8afe0c2a5220"
+SRC_URI[sha256sum] = "028dff94a8522ca818b11295ff12df55f348f33a193c0597ddfe8239e53d1582"
 
 PYPI_PACKAGE = "cryptography_vectors"
 
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
 
 DEPENDS += " \
     ${PYTHON_PN}-cryptography \
diff --git a/poky/meta/recipes-devtools/python/python3-cryptography/0001-Fix-include-directory-when-cross-compiling-9129.patch b/poky/meta/recipes-devtools/python/python3-cryptography/0001-Fix-include-directory-when-cross-compiling-9129.patch
new file mode 100644
index 0000000..d720359
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-cryptography/0001-Fix-include-directory-when-cross-compiling-9129.patch
@@ -0,0 +1,52 @@
+From 2f9cd402d3293f6efe0f3ac06f17c6c14edbed86 Mon Sep 17 00:00:00 2001
+From: James Hilliard <james.hilliard1@gmail.com>
+Date: Sun, 25 Jun 2023 17:39:19 -0600
+Subject: [PATCH] Fix include directory when cross compiling (#9129)
+
+Upstream-Status: Backport [https://github.com/pyca/cryptography/pull/9129]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ src/rust/cryptography-cffi/build.rs | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/src/rust/cryptography-cffi/build.rs b/src/rust/cryptography-cffi/build.rs
+index 07590ad2e..384af1ddb 100644
+--- a/src/rust/cryptography-cffi/build.rs
++++ b/src/rust/cryptography-cffi/build.rs
+@@ -47,9 +47,14 @@ fn main() {
+     )
+     .unwrap();
+     println!("cargo:rustc-cfg=python_implementation=\"{}\"", python_impl);
+-    let python_include = run_python_script(
++    let python_includes = run_python_script(
+         &python,
+-        "import sysconfig; print(sysconfig.get_path('include'), end='')",
++        "import os; \
++         import setuptools.dist; \
++         import setuptools.command.build_ext; \
++         b = setuptools.command.build_ext.build_ext(setuptools.dist.Distribution()); \
++         b.finalize_options(); \
++         print(os.pathsep.join(b.include_dirs), end='')",
+     )
+     .unwrap();
+     let openssl_include =
+@@ -59,12 +64,15 @@ fn main() {
+     let mut build = cc::Build::new();
+     build
+         .file(openssl_c)
+-        .include(python_include)
+         .include(openssl_include)
+         .flag_if_supported("-Wconversion")
+         .flag_if_supported("-Wno-error=sign-conversion")
+         .flag_if_supported("-Wno-unused-parameter");
+ 
++    for python_include in env::split_paths(&python_includes) {
++        build.include(python_include);
++    }
++
+     // Enable abi3 mode if we're not using PyPy.
+     if python_impl != "PyPy" {
+         // cp37 (Python 3.7 to help our grep when we some day drop 3.7 support)
+-- 
+2.30.2
+
diff --git a/poky/meta/recipes-devtools/python/python3-cryptography/0001-pyproject.toml-remove-benchmark-disable-option.patch b/poky/meta/recipes-devtools/python/python3-cryptography/0001-pyproject.toml-remove-benchmark-disable-option.patch
index 481f595..69cf451 100644
--- a/poky/meta/recipes-devtools/python/python3-cryptography/0001-pyproject.toml-remove-benchmark-disable-option.patch
+++ b/poky/meta/recipes-devtools/python/python3-cryptography/0001-pyproject.toml-remove-benchmark-disable-option.patch
@@ -1,4 +1,4 @@
-From ce972ea92d724f232323a9a6265a8b44d913d4d8 Mon Sep 17 00:00:00 2001
+From b7dd3ce1d75d1e6255e1aca82aa7f401d4246a75 Mon Sep 17 00:00:00 2001
 From: Mingli Yu <mingli.yu@windriver.com>
 Date: Tue, 17 May 2022 17:22:48 +0800
 Subject: [PATCH] pyproject.toml: remove --benchmark-disable option
@@ -18,23 +18,28 @@
 Upstream-Status: Inappropriate [OE specific]
 
 Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+
 ---
- pyproject.toml | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ pyproject.toml | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/pyproject.toml b/pyproject.toml
-index 4d58129..b011fca 100644
+index b2e511f..4a285af 100644
 --- a/pyproject.toml
 +++ b/pyproject.toml
-@@ -15,7 +15,7 @@ line-length = 79
- target-version = ["py36"]
+@@ -85,7 +85,7 @@ line-length = 79
+ target-version = ["py37"]
  
  [tool.pytest.ini_options]
 -addopts = "-r s --capture=no --strict-markers --benchmark-disable"
 +addopts = "-r s --capture=no --strict-markers"
+ console_output_style = "progress-even-when-capture-no"
  markers = [
      "skip_fips: this test is not executed in FIPS mode",
-     "supported: parametrized test requiring only_if and skip_message",
--- 
-2.25.1
-
+@@ -151,4 +151,4 @@ git-only = [
+     "ci-constraints-requirements.txt",
+     ".gitattributes",
+     ".gitignore",
+-]
+\ No newline at end of file
++]
diff --git a/poky/meta/recipes-devtools/python/python3-cryptography/0002-Cargo.toml-edition-2018-2021.patch b/poky/meta/recipes-devtools/python/python3-cryptography/0002-Cargo.toml-edition-2018-2021.patch
deleted file mode 100644
index 366e3a4..0000000
--- a/poky/meta/recipes-devtools/python/python3-cryptography/0002-Cargo.toml-edition-2018-2021.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 4b73298b214a5b69ea6edf3c2e21dd82b2b29708 Mon Sep 17 00:00:00 2001
-From: Tim Orling <tim.orling@konsulko.com>
-Date: Fri, 14 Jan 2022 22:34:59 -0800
-Subject: [PATCH 2/2] Cargo.toml: edition 2018 -> 2021
-
-Upstream-Status: Pending
-
-Signed-off-by: Tim Orling <tim.orling@konsulko.com>
----
- src/rust/Cargo.toml | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/rust/Cargo.toml b/src/rust/Cargo.toml
-index 174eaa80..7ad053d9 100644
---- a/src/rust/Cargo.toml
-+++ b/src/rust/Cargo.toml
-@@ -2,7 +2,7 @@
- name = "cryptography-rust"
- version = "0.1.0"
- authors = ["The cryptography developers <cryptography-dev@python.org>"]
--edition = "2018"
-+edition = "2021"
- publish = false
- 
- [dependencies]
--- 
-2.30.2
-
diff --git a/poky/meta/recipes-devtools/python/python3-cryptography_39.0.2.bb b/poky/meta/recipes-devtools/python/python3-cryptography_41.0.2.bb
similarity index 74%
rename from poky/meta/recipes-devtools/python/python3-cryptography_39.0.2.bb
rename to poky/meta/recipes-devtools/python/python3-cryptography_41.0.2.bb
index 449e3ba..20d6c97 100644
--- a/poky/meta/recipes-devtools/python/python3-cryptography_39.0.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-cryptography_41.0.2.bb
@@ -1,26 +1,24 @@
 SUMMARY = "Provides cryptographic recipes and primitives to python developers"
 HOMEPAGE = "https://cryptography.io/"
 SECTION = "devel/python"
-LICENSE = "( Apache-2.0 | BSD-3-Clause ) & PSF-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bf405a8056a6647e7d077b0e7bc36aba \
+LICENSE = "Apache-2.0 | BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4 \
                     file://LICENSE.APACHE;md5=4e168cce331e5c827d4c2b68a6200e1b \
                     file://LICENSE.BSD;md5=5ae30ba4123bc4f2fa49aa0b0dce887b \
-                    file://LICENSE.PSF;md5=43c37d21e1dbad10cddcd150ba2c0595 \
                    "
 LDSHARED += "-pthread"
 
-SRC_URI[sha256sum] = "bc5b871e977c8ee5a1bbc42fa8d19bcc08baf0c51cbf1586b0e87a2694dde42f"
+SRC_URI[sha256sum] = "7d230bf856164de164ecb615ccc14c7fc6de6906ddd5b491f3af90d3514c925c"
 
-SRC_URI += "\
-    file://0002-Cargo.toml-edition-2018-2021.patch \
-    file://0001-pyproject.toml-remove-benchmark-disable-option.patch \
-    file://check-memfree.py \
-    file://run-ptest \
-"
+SRC_URI += "file://0001-pyproject.toml-remove-benchmark-disable-option.patch \
+            file://0001-Fix-include-directory-when-cross-compiling-9129.patch \
+            file://check-memfree.py \
+            file://run-ptest \
+           "
 
 require ${BPN}-crates.inc
 
-inherit pypi python_setuptools3_rust cargo-update-recipe-crates
+inherit pypi python_setuptools3_rust cargo-update-recipe-crates pkgconfig
 
 DEPENDS += " \
     ${PYTHON_PN}-cffi-native \
diff --git a/poky/meta/recipes-devtools/python/python3-cython_0.29.35.bb b/poky/meta/recipes-devtools/python/python3-cython_0.29.36.bb
similarity index 100%
rename from poky/meta/recipes-devtools/python/python3-cython_0.29.35.bb
rename to poky/meta/recipes-devtools/python/python3-cython_0.29.36.bb
diff --git a/poky/meta/recipes-devtools/python/python3-editables_0.3.bb b/poky/meta/recipes-devtools/python/python3-editables_0.4.bb
similarity index 69%
rename from poky/meta/recipes-devtools/python/python3-editables_0.3.bb
rename to poky/meta/recipes-devtools/python/python3-editables_0.4.bb
index b42ff06..c531869 100644
--- a/poky/meta/recipes-devtools/python/python3-editables_0.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-editables_0.4.bb
@@ -4,8 +4,12 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=41bc1be47b7bb8240db3ef928c7cb0bf"
 
-SRC_URI[sha256sum] = "167524e377358ed1f1374e61c268f0d7a4bf7dbd046c656f7b410cde16161b1a"
+SRC_URI[sha256sum] = "dc322c42e7ccaf19600874035a4573898d88aadd07e177c239298135b75da772"
 
 inherit pypi python_setuptools_build_meta
 
+RDEPENDS:${PN} += "\
+        python3-io \
+"
+
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-git_3.1.31.bb b/poky/meta/recipes-devtools/python/python3-git_3.1.32.bb
similarity index 92%
rename from poky/meta/recipes-devtools/python/python3-git_3.1.31.bb
rename to poky/meta/recipes-devtools/python/python3-git_3.1.32.bb
index 08b9f66..f217577 100644
--- a/poky/meta/recipes-devtools/python/python3-git_3.1.31.bb
+++ b/poky/meta/recipes-devtools/python/python3-git_3.1.32.bb
@@ -12,7 +12,7 @@
 
 inherit pypi python_setuptools_build_meta
 
-SRC_URI[sha256sum] = "8ce3bcf69adfdf7c7d503e78fd3b1c492af782d58893b650adb2ac8912ddd573"
+SRC_URI[sha256sum] = "8d9b8cb1e80b9735e8717c9362079d3ce4c6e5ddeebedd0361b228c3a67a62f6"
 
 DEPENDS += " ${PYTHON_PN}-gitdb"
 
diff --git a/poky/meta/recipes-devtools/python/python3-hatchling_1.17.0.bb b/poky/meta/recipes-devtools/python/python3-hatchling_1.18.0.bb
similarity index 85%
rename from poky/meta/recipes-devtools/python/python3-hatchling_1.17.0.bb
rename to poky/meta/recipes-devtools/python/python3-hatchling_1.18.0.bb
index 05a86f0..c94e49d 100644
--- a/poky/meta/recipes-devtools/python/python3-hatchling_1.17.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-hatchling_1.18.0.bb
@@ -8,7 +8,7 @@
 DEPENDS += "python3-pluggy-native python3-pathspec-native python3-packaging-native python3-editables-native python3-trove-classifiers-native"
 DEPENDS:remove:class-native = "python3-hatchling-native"
 
-SRC_URI[sha256sum] = "b1244db3f45b4ef5a00106a46612da107cdfaf85f1580b8e1c059fefc98b0930"
+SRC_URI[sha256sum] = "50e99c3110ce0afc3f7bdbadff1c71c17758e476731c27607940cfa6686489ca"
 
 do_compile:prepend() {
     export PYTHONPATH=src
diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.75.7.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.81.2.bb
similarity index 91%
rename from poky/meta/recipes-devtools/python/python3-hypothesis_6.75.7.bb
rename to poky/meta/recipes-devtools/python/python3-hypothesis_6.81.2.bb
index dc21bc6..93bf638 100644
--- a/poky/meta/recipes-devtools/python/python3-hypothesis_6.75.7.bb
+++ b/poky/meta/recipes-devtools/python/python3-hypothesis_6.81.2.bb
@@ -13,7 +13,7 @@
     file://test_rle.py \
     "
 
-SRC_URI[sha256sum] = "a8ef2e0c7d5ebd90043a4ed8f6987de6a2b497b2caf6863364ff41db25971856"
+SRC_URI[sha256sum] = "e35165a73064370d30d476d7218f600d2bf861ff218192c9e994cb36aa190ae7"
 
 RDEPENDS:${PN} += " \
     python3-attrs \
diff --git a/poky/meta/recipes-devtools/python/python3-importlib-metadata_6.6.0.bb b/poky/meta/recipes-devtools/python/python3-importlib-metadata_6.8.0.bb
similarity index 88%
rename from poky/meta/recipes-devtools/python/python3-importlib-metadata_6.6.0.bb
rename to poky/meta/recipes-devtools/python/python3-importlib-metadata_6.8.0.bb
index 34bc55b..b8dd4bb 100644
--- a/poky/meta/recipes-devtools/python/python3-importlib-metadata_6.6.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-importlib-metadata_6.8.0.bb
@@ -8,7 +8,7 @@
 PYPI_PACKAGE = "importlib_metadata"
 UPSTREAM_CHECK_REGEX = "/importlib-metadata/(?P<pver>(\d+[\.\-_]*)+)/"
 
-SRC_URI[sha256sum] = "92501cdf9cc66ebd3e612f1b4f0c0765dfa42f0fa38ffb319b6bd84dd675d705"
+SRC_URI[sha256sum] = "dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"
 
 S = "${WORKDIR}/importlib_metadata-${PV}"
 
diff --git a/poky/meta/recipes-devtools/python/python3-iso8601_1.1.0.bb b/poky/meta/recipes-devtools/python/python3-iso8601_2.0.0.bb
similarity index 78%
rename from poky/meta/recipes-devtools/python/python3-iso8601_1.1.0.bb
rename to poky/meta/recipes-devtools/python/python3-iso8601_2.0.0.bb
index 797607f..a8dccb9 100644
--- a/poky/meta/recipes-devtools/python/python3-iso8601_1.1.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-iso8601_2.0.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=aab31f2ef7ba214a5a341eaa47a7f367"
 
-SRC_URI[sha256sum] = "32811e7b81deee2063ea6d2e94f8819a86d1f3811e49d23623a41fa832bef03f"
+SRC_URI[sha256sum] = "739960d37c74c77bd9bd546a76562ccb581fe3d4820ff5c3141eb49c839fda8f"
 
 inherit pypi python_poetry_core
 
diff --git a/poky/meta/recipes-devtools/python/python3-jsonpointer/0001-Clean-up-test-runner.patch b/poky/meta/recipes-devtools/python/python3-jsonpointer/0001-Clean-up-test-runner.patch
deleted file mode 100644
index 4121834..0000000
--- a/poky/meta/recipes-devtools/python/python3-jsonpointer/0001-Clean-up-test-runner.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 04a864f33848da6af1dea906ba4922770022ef66 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@arm.com>
-Date: Thu, 16 Mar 2023 14:21:32 +0000
-Subject: [PATCH] Clean up test runner
-
-Test code doesn't need to manually construct a TestSuite and a
-TextTestRunner, the unittest module has a discovery function that does
-all this for you.
-
-Delete all of the manual logic from tests.py, replace it with the two
-lines to bring in the doctest unit tests, and update the makefile to
-run the unittest discovery.
-
-Upstream-Status: Submitted [https://github.com/stefankoegl/python-json-pointer/pull/54]
-Signed-off-by: Ross Burton <ross.burton@arm.com>
----
- makefile |  2 +-
- tests.py | 24 ++++--------------------
- 2 files changed, 5 insertions(+), 21 deletions(-)
-
-diff --git a/tests.py b/tests.py
-index 9252369..6b4b8cc 100755
---- a/tests.py
-+++ b/tests.py
-@@ -7,6 +7,7 @@ import doctest
- import unittest
- import sys
- import copy
-+import jsonpointer
- from jsonpointer import resolve_pointer, EndOfList, JsonPointerException, \
-          JsonPointer, set_pointer
- 
-@@ -410,23 +411,6 @@ class AltTypesTests(unittest.TestCase):
-         self.assertRaises(JsonPointerException, resolve_pointer, doc, '/root/1/2/3/4')
- 
- 
--
--suite = unittest.TestSuite()
--suite.addTest(unittest.makeSuite(SpecificationTests))
--suite.addTest(unittest.makeSuite(ComparisonTests))
--suite.addTest(unittest.makeSuite(WrongInputTests))
--suite.addTest(unittest.makeSuite(ToLastTests))
--suite.addTest(unittest.makeSuite(SetTests))
--suite.addTest(unittest.makeSuite(AltTypesTests))
--
--modules = ['jsonpointer']
--
--for module in modules:
--    m = __import__(module, fromlist=[module])
--    suite.addTest(doctest.DocTestSuite(m))
--
--runner = unittest.TextTestRunner(verbosity=1)
--result = runner.run(suite)
--
--if not result.wasSuccessful():
--    sys.exit(1)
-+def load_tests(loader, tests, ignore):
-+    tests.addTests(doctest.DocTestSuite(jsonpointer))
-+    return tests
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-devtools/python/python3-jsonpointer_2.3.bb b/poky/meta/recipes-devtools/python/python3-jsonpointer_2.4.bb
similarity index 79%
rename from poky/meta/recipes-devtools/python/python3-jsonpointer_2.3.bb
rename to poky/meta/recipes-devtools/python/python3-jsonpointer_2.4.bb
index 0ec4de0..d7a1fea 100644
--- a/poky/meta/recipes-devtools/python/python3-jsonpointer_2.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-jsonpointer_2.4.bb
@@ -5,9 +5,7 @@
 
 inherit pypi ptest setuptools3
 
-SRC_URI += "file://0001-Clean-up-test-runner.patch"
-
-SRC_URI[sha256sum] = "97cba51526c829282218feb99dab1b1e6bdf8efd1c43dc9d57be093c0d69c99a"
+SRC_URI[sha256sum] = "585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"
 
 RDEPENDS:${PN} += " \
     ${PYTHON_PN}-json \
diff --git a/poky/meta/recipes-devtools/python/python3-lxml_4.9.2.bb b/poky/meta/recipes-devtools/python/python3-lxml_4.9.3.bb
similarity index 95%
rename from poky/meta/recipes-devtools/python/python3-lxml_4.9.2.bb
rename to poky/meta/recipes-devtools/python/python3-lxml_4.9.3.bb
index c7f1e1f..b911f7b 100644
--- a/poky/meta/recipes-devtools/python/python3-lxml_4.9.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-lxml_4.9.3.bb
@@ -18,7 +18,7 @@
 
 DEPENDS += "libxml2 libxslt"
 
-SRC_URI[sha256sum] = "2455cfaeb7ac70338b3257f41e21f0724f4b5b0c0e7702da67ee6c3640835b67"
+SRC_URI[sha256sum] = "48628bd53a426c9eb9bc066a923acaa0878d1e86129fd5359aee99285f4eed9c"
 
 SRC_URI += "${PYPI_SRC_URI}"
 inherit pkgconfig pypi setuptools3
diff --git a/poky/meta/recipes-devtools/python/python3-markupsafe_2.1.2.bb b/poky/meta/recipes-devtools/python/python3-markupsafe_2.1.3.bb
similarity index 86%
rename from poky/meta/recipes-devtools/python/python3-markupsafe_2.1.2.bb
rename to poky/meta/recipes-devtools/python/python3-markupsafe_2.1.3.bb
index d150403..b346cc8 100644
--- a/poky/meta/recipes-devtools/python/python3-markupsafe_2.1.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-markupsafe_2.1.3.bb
@@ -3,7 +3,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
 
-SRC_URI[sha256sum] = "abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d"
+SRC_URI[sha256sum] = "af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"
 
 PYPI_PACKAGE = "MarkupSafe"
 inherit pypi setuptools3 ptest
diff --git a/poky/meta/recipes-devtools/python/python3-numpy_1.24.3.bb b/poky/meta/recipes-devtools/python/python3-numpy_1.25.1.bb
similarity index 93%
rename from poky/meta/recipes-devtools/python/python3-numpy_1.24.3.bb
rename to poky/meta/recipes-devtools/python/python3-numpy_1.25.1.bb
index 710af5f..3632ab7 100644
--- a/poky/meta/recipes-devtools/python/python3-numpy_1.24.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-numpy_1.25.1.bb
@@ -3,7 +3,7 @@
 DESCRIPTION = "NumPy is the fundamental package needed for scientific computing with Python."
 SECTION = "devel/python"
 LICENSE = "BSD-3-Clause & BSD-2-Clause & PSF-2.0 & Apache-2.0 & MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8026691468924fb6ec155dadfe2a1a7f"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7614a5b0073688df53773ec6ec7fe81d"
 
 SRCNAME = "numpy"
 
@@ -12,7 +12,7 @@
            file://0001-numpy-core-Define-RISCV-32-support.patch \
            file://run-ptest \
            "
-SRC_URI[sha256sum] = "ab344f1bf21f140adab8e47fdbc7c35a477dc01408791f8ba00d018dd0bc5155"
+SRC_URI[sha256sum] = "9a3a9f3a61480cc086117b426a8bd86869c213fc4072e606f01c4e4b66eb92bf"
 
 GITHUB_BASE_URI = "https://github.com/numpy/numpy/releases"
 UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$"
diff --git a/poky/meta/recipes-devtools/python/python3-pip_23.1.2.bb b/poky/meta/recipes-devtools/python/python3-pip_23.2.bb
similarity index 94%
rename from poky/meta/recipes-devtools/python/python3-pip_23.1.2.bb
rename to poky/meta/recipes-devtools/python/python3-pip_23.2.bb
index a0ebd76..1ddec7d 100644
--- a/poky/meta/recipes-devtools/python/python3-pip_23.1.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-pip_23.2.bb
@@ -13,7 +13,7 @@
                     file://src/pip/_vendor/msgpack/COPYING;md5=cd9523181d9d4fbf7ffca52eaa2a5751 \
                     file://src/pip/_vendor/packaging/LICENSE;md5=faadaedca9251a90b205c9167578ce91 \
                     file://src/pip/_vendor/packaging/LICENSE.APACHE;md5=2ee41112a44fe7014dce33e26468ba93 \
-                    file://src/pip/_vendor/pkg_resources/LICENSE;md5=7a7126e068206290f3fe9f8d6c713ea6 \
+                    file://src/pip/_vendor/pkg_resources/LICENSE;md5=141643e11c48898150daa83802dbc65f \
                     file://src/pip/_vendor/platformdirs/LICENSE;md5=ea4f5a41454746a9ed111e3d8723d17a \
                     file://src/pip/_vendor/pygments/LICENSE;md5=36a13c90514e2899f1eba7f41c3ee592 \
                     file://src/pip/_vendor/pyparsing/LICENSE;md5=657a566233888513e1f07ba13e2f47f1 \
@@ -24,7 +24,7 @@
                     file://src/pip/_vendor/six.LICENSE;md5=43cfc9e4ac0e377acfb9b76f56b8415d \
                     file://src/pip/_vendor/tenacity/LICENSE;md5=175792518e4ac015ab6696d16c4f607e \
                     file://src/pip/_vendor/tomli/LICENSE;md5=aaaaf0879d17df0110d1aa8c8c9f46f5 \
-                    file://src/pip/_vendor/typing_extensions.LICENSE;md5=f16b323917992e0f8a6f0071bc9913e2 \
+                    file://src/pip/_vendor/typing_extensions.LICENSE;md5=fcf6b249c2641540219a727f35d8d2c2 \
                     file://src/pip/_vendor/urllib3/LICENSE.txt;md5=c2823cb995439c984fd62a973d79815c \
                     file://src/pip/_vendor/webencodings/LICENSE;md5=81fb24cd7823cce23b69f721993dce4d \
                     "
@@ -33,7 +33,7 @@
 
 SRC_URI += "file://no_shebang_mangling.patch"
 
-SRC_URI[sha256sum] = "0e7c86f486935893c708287b30bd050a36ac827ec7fe5e43fe7cb198dd835fba"
+SRC_URI[sha256sum] = "a160a170f3331d9ca1a0247eb1cd79c758879f1f81158f9cd05bbb5df80bea5c"
 
 do_install:append() {
     rm -f ${D}/${bindir}/pip
diff --git a/poky/meta/recipes-devtools/python/python3-pluggy_1.0.0.bb b/poky/meta/recipes-devtools/python/python3-pluggy_1.2.0.bb
similarity index 88%
rename from poky/meta/recipes-devtools/python/python3-pluggy_1.0.0.bb
rename to poky/meta/recipes-devtools/python/python3-pluggy_1.2.0.bb
index 99ae633..3322bb5 100644
--- a/poky/meta/recipes-devtools/python/python3-pluggy_1.0.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-pluggy_1.2.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=1c8206d16fd5cc02fa9b0bb98955e5c2"
 
-SRC_URI[sha256sum] = "4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"
+SRC_URI[sha256sum] = "d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"
 
 DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
 RDEPENDS:${PN} += "${PYTHON_PN}-importlib-metadata \
diff --git a/poky/meta/recipes-devtools/python/python3-pycairo_1.23.0.bb b/poky/meta/recipes-devtools/python/python3-pycairo_1.24.0.bb
similarity index 89%
rename from poky/meta/recipes-devtools/python/python3-pycairo_1.23.0.bb
rename to poky/meta/recipes-devtools/python/python3-pycairo_1.24.0.bb
index 5214a05..8059750 100644
--- a/poky/meta/recipes-devtools/python/python3-pycairo_1.23.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-pycairo_1.24.0.bb
@@ -13,7 +13,7 @@
 SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/pycairo-${PV}.tar.gz"
 GITHUB_BASE_URI = "https://github.com/pygobject/pycairo/releases/"
 
-SRC_URI[sha256sum] = "9b61ac818723adc04367301317eb2e814a83522f07bbd1f409af0dada463c44c"
+SRC_URI[sha256sum] = "1444d52f1bb4cc79a4a0c0fe2ccec4bd78ff885ab01ebe1c0f637d8392bcafb6"
 
 S = "${WORKDIR}/pycairo-${PV}"
 
diff --git a/poky/meta/recipes-devtools/python/python3-pygments_2.14.0.bb b/poky/meta/recipes-devtools/python/python3-pygments_2.15.1.bb
similarity index 76%
rename from poky/meta/recipes-devtools/python/python3-pygments_2.14.0.bb
rename to poky/meta/recipes-devtools/python/python3-pygments_2.15.1.bb
index 16769e9..e0e4771 100644
--- a/poky/meta/recipes-devtools/python/python3-pygments_2.14.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-pygments_2.15.1.bb
@@ -4,8 +4,8 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=36a13c90514e2899f1eba7f41c3ee592"
 
-inherit setuptools3
-SRC_URI[sha256sum] = "b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297"
+inherit python_setuptools_build_meta
+SRC_URI[sha256sum] = "8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c"
 
 DEPENDS += "\
             ${PYTHON_PN} \
diff --git a/poky/meta/recipes-devtools/python/python3-pyparsing_3.0.9.bb b/poky/meta/recipes-devtools/python/python3-pyparsing_3.1.0.bb
similarity index 90%
rename from poky/meta/recipes-devtools/python/python3-pyparsing_3.0.9.bb
rename to poky/meta/recipes-devtools/python/python3-pyparsing_3.1.0.bb
index b858073..e5c6d5f 100644
--- a/poky/meta/recipes-devtools/python/python3-pyparsing_3.0.9.bb
+++ b/poky/meta/recipes-devtools/python/python3-pyparsing_3.1.0.bb
@@ -10,7 +10,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=657a566233888513e1f07ba13e2f47f1"
 
-SRC_URI[sha256sum] = "2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"
+SRC_URI[sha256sum] = "edb662d6fe322d6e990b1594b5feaeadf806803359e3d4d42f11e295e588f0ea"
 
 UPSTREAM_CHECK_REGEX = "pyparsing-(?P<pver>.*)\.tar"
 
diff --git a/poky/meta/recipes-devtools/python/python3-pytest-subtests_0.10.0.bb b/poky/meta/recipes-devtools/python/python3-pytest-subtests_0.11.0.bb
similarity index 80%
rename from poky/meta/recipes-devtools/python/python3-pytest-subtests_0.10.0.bb
rename to poky/meta/recipes-devtools/python/python3-pytest-subtests_0.11.0.bb
index e1f2a49..ddba031 100644
--- a/poky/meta/recipes-devtools/python/python3-pytest-subtests_0.10.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-pytest-subtests_0.11.0.bb
@@ -7,9 +7,9 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=242b4e17fa287dcf7aef372f6bc3dcb1"
 
-SRC_URI[sha256sum] = "d9961a67c1791e8c1e32dce7a70ed1e54f3b1e641087f2094f2d37087ab7fb17"
+SRC_URI[sha256sum] = "51865c88457545f51fb72011942f0a3c6901ee9e24cbfb6d1b9dc1348bafbe37"
 
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
 
 DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
 
diff --git a/poky/meta/recipes-devtools/python/python3-pytest_7.3.1.bb b/poky/meta/recipes-devtools/python/python3-pytest_7.4.0.bb
similarity index 92%
rename from poky/meta/recipes-devtools/python/python3-pytest_7.3.1.bb
rename to poky/meta/recipes-devtools/python/python3-pytest_7.4.0.bb
index 914ea55..323dfeb 100644
--- a/poky/meta/recipes-devtools/python/python3-pytest_7.3.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-pytest_7.4.0.bb
@@ -5,7 +5,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=bd27e41b6550fe0fc45356d1d81ee37c"
 
-SRC_URI[sha256sum] = "434afafd78b1d78ed0addf160ad2b77a30d35d4bdf8af234fe621919d9ed15e3"
+SRC_URI[sha256sum] = "b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a"
 
 DEPENDS += "python3-setuptools-scm-native"
 
diff --git a/poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.31.bb b/poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.32.bb
similarity index 86%
rename from poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.31.bb
rename to poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.32.bb
index 5604ff0..b745f34 100644
--- a/poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.31.bb
+++ b/poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.32.bb
@@ -9,7 +9,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "098ed1eb6d338a684891a72380277c1e6fc4d4ae0e120de9a447275056dda335"
+SRC_URI[sha256sum] = "ec939063761914e14542972a5cba6d33c23b0859ab6342f61cf070cfc600efc2"
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-shell \
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch b/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch
index 4d56dc8..1e5ab49 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch
+++ b/poky/meta/recipes-devtools/python/python3-setuptools/0001-conditionally-do-not-fetch-code-by-easy_install.patch
@@ -1,4 +1,4 @@
-From 2b06ca797d3ccc5b195aaa04a085c44bf61d4de3 Mon Sep 17 00:00:00 2001
+From 5e603da9c01ccb828a03ea3e82d15599971f794f Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Tue, 17 Jul 2018 10:13:38 +0800
 Subject: [PATCH] conditionally do not fetch code by easy_install
@@ -9,17 +9,16 @@
 Upstream-Status: Inappropriate [oe specific]
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
 ---
  setuptools/command/easy_install.py | 5 +++++
  1 file changed, 5 insertions(+)
 
 diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py
-index 444d3b3..61e445a 100644
+index 0b8d1159..93308060 100644
 --- a/setuptools/command/easy_install.py
 +++ b/setuptools/command/easy_install.py
-@@ -648,6 +648,11 @@ class easy_install(Command):
-             os.path.exists(tmpdir) and rmtree(tmpdir)
+@@ -644,6 +644,11 @@ class easy_install(Command):
+             os.path.exists(tmpdir) and _rmtree(tmpdir)
  
      def easy_install(self, spec, deps=False):
 +        if os.environ.get('NO_FETCH_BUILD', None):
@@ -30,3 +29,6 @@
          with self._tmpdir() as tmpdir:
              if not isinstance(spec, Requirement):
                  if URL_SCHEME(spec):
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_67.6.1.bb b/poky/meta/recipes-devtools/python/python3-setuptools_68.0.0.bb
similarity index 89%
rename from poky/meta/recipes-devtools/python/python3-setuptools_67.6.1.bb
rename to poky/meta/recipes-devtools/python/python3-setuptools_68.0.0.bb
index ad0d7cc..4ac789d 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools_67.6.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-setuptools_68.0.0.bb
@@ -2,7 +2,7 @@
 HOMEPAGE = "https://pypi.org/project/setuptools"
 SECTION = "devel/python"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;beginline=1;endline=19;md5=7a7126e068206290f3fe9f8d6c713ea6"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=141643e11c48898150daa83802dbc65f"
 
 inherit pypi python_setuptools_build_meta
 
@@ -11,7 +11,7 @@
 SRC_URI += " \
             file://0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch"
 
-SRC_URI[sha256sum] = "257de92a9d50a60b8e22abfcbb771571fde0dbf3ec234463212027a4eeecbe9a"
+SRC_URI[sha256sum] = "baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235"
 
 DEPENDS += "${PYTHON_PN}"
 
diff --git a/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.2.1.bb b/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.2.2.bb
similarity index 88%
rename from poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.2.1.bb
rename to poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.2.2.bb
index 25de015..0fac83a 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.2.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.2.2.bb
@@ -13,7 +13,7 @@
 
 PYPI_PACKAGE = "sphinx_rtd_theme"
 
-SRC_URI[sha256sum] = "cf9a7dc0352cf179c538891cb28d6fad6391117d4e21c891776ab41dd6c8ff70"
+SRC_URI[sha256sum] = "01c5c5a72e2d025bd23d1f06c59a4831b06e6ce6c01fdd5ebfe9986c0a880fc7"
 UPSTREAM_CHECK_REGEX ?= "/sphinx-rtd-theme/(?P<pver>(\d+[\.\-_]*)+)/"
 
 inherit setuptools3 pypi
diff --git a/poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.5.24.bb b/poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.7.6.bb
similarity index 86%
rename from poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.5.24.bb
rename to poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.7.6.bb
index 2d484d4..7879dc2 100644
--- a/poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.5.24.bb
+++ b/poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.7.6.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRC_URI[sha256sum] = "fd5a1546283be941f47540a135bdeae8fb261380a6a204d9c18012f2a1b0ceae"
+SRC_URI[sha256sum] = "8a8e168b51d20fed607043831d37632bb50919d1c80a64e0f1393744691a8b22"
 
 inherit pypi python_setuptools_build_meta ptest
 
diff --git a/poky/meta/recipes-devtools/python/python3-typing-extensions_4.6.2.bb b/poky/meta/recipes-devtools/python/python3-typing-extensions_4.7.1.bb
similarity index 83%
rename from poky/meta/recipes-devtools/python/python3-typing-extensions_4.6.2.bb
rename to poky/meta/recipes-devtools/python/python3-typing-extensions_4.7.1.bb
index be43fe4..8ff77ba 100644
--- a/poky/meta/recipes-devtools/python/python3-typing-extensions_4.6.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-typing-extensions_4.7.1.bb
@@ -10,12 +10,12 @@
 BUGTRACKER = "https://github.com/python/typing_extensions/issues"
 SECTIONS = "libs"
 LICENSE = "PSF-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f16b323917992e0f8a6f0071bc9913e2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fcf6b249c2641540219a727f35d8d2c2"
 
 # The name on PyPi is slightly different.
 PYPI_PACKAGE = "typing_extensions"
 
-SRC_URI[sha256sum] = "06006244c70ac8ee83fa8282cb188f697b8db25bc8b4df07be1873c43897060c"
+SRC_URI[sha256sum] = "b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"
 
 inherit pypi python_flit_core
 
diff --git a/poky/meta/recipes-devtools/python/python3-urllib3_2.0.2.bb b/poky/meta/recipes-devtools/python/python3-urllib3_2.0.3.bb
similarity index 76%
rename from poky/meta/recipes-devtools/python/python3-urllib3_2.0.2.bb
rename to poky/meta/recipes-devtools/python/python3-urllib3_2.0.3.bb
index bc1cdb0..64b21db 100644
--- a/poky/meta/recipes-devtools/python/python3-urllib3_2.0.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-urllib3_2.0.3.bb
@@ -1,9 +1,9 @@
 SUMMARY = "Python HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more"
 HOMEPAGE = "https://github.com/shazow/urllib3"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c2823cb995439c984fd62a973d79815c"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=52d273a3054ced561275d4d15260ecda"
 
-SRC_URI[sha256sum] = "61717a1095d7e155cdb737ac7bb2f4324a858a1e2e6466f6d03ff630ca68d3cc"
+SRC_URI[sha256sum] = "bee28b5e56addb8226c96f7f13ac28cb4c301dd5ea8a6ca179c0b9835e032825"
 
 inherit pypi python_hatchling
 
diff --git a/poky/meta/recipes-devtools/python/python3-zipp_3.15.0.bb b/poky/meta/recipes-devtools/python/python3-zipp_3.16.2.bb
similarity index 72%
rename from poky/meta/recipes-devtools/python/python3-zipp_3.15.0.bb
rename to poky/meta/recipes-devtools/python/python3-zipp_3.16.2.bb
index 45654ff..9dff59f 100644
--- a/poky/meta/recipes-devtools/python/python3-zipp_3.15.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-zipp_3.16.2.bb
@@ -1,9 +1,9 @@
 SUMMARY = "Backport of pathlib-compatible object wrapper for zip files"
 HOMEPAGE = "https://github.com/jaraco/zipp"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7a7126e068206290f3fe9f8d6c713ea6"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=141643e11c48898150daa83802dbc65f"
 
-SRC_URI[sha256sum] = "112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"
+SRC_URI[sha256sum] = "ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147"
 
 DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
 
diff --git a/poky/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch b/poky/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch
index c925383..222a567 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch
@@ -1,4 +1,4 @@
-From 6cb667f37beacd832cb409e5244b3c90dfad32f7 Mon Sep 17 00:00:00 2001
+From aa8f1709c54557d2b51a9a37d15ccc3de62e90cb Mon Sep 17 00:00:00 2001
 From: Jeremy Puhlman <jpuhlman@mvista.com>
 Date: Wed, 4 Mar 2020 00:06:42 +0000
 Subject: [PATCH] Don't search system for headers/libraries
diff --git a/poky/meta/recipes-devtools/python/python3/0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch b/poky/meta/recipes-devtools/python/python3/0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch
index df5179e..07c6aef 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-Lib-pty.py-handle-stdin-I-O-errors-same-way-as-maste.patch
@@ -1,4 +1,4 @@
-From 86061629f4a179e740a17e53dd2c98ab47af2fe2 Mon Sep 17 00:00:00 2001
+From 7b0a14e7320078ac891d415cab9b7568e3f52ad8 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex@linutronix.de>
 Date: Thu, 16 Sep 2021 16:35:37 +0200
 Subject: [PATCH] Lib/pty.py: handle stdin I/O errors same way as master I/O
@@ -30,18 +30,18 @@
  1 file changed, 4 insertions(+), 1 deletion(-)
 
 diff --git a/Lib/pty.py b/Lib/pty.py
-index 8d8ce40..35439c6 100644
+index fefb63a..4cef056 100644
 --- a/Lib/pty.py
 +++ b/Lib/pty.py
-@@ -154,7 +154,10 @@ def _copy(master_fd, master_read=_read, stdin_read=_read):
-                 os.write(STDOUT_FILENO, data)
+@@ -184,7 +184,10 @@ def _copy(master_fd, master_read=_read, stdin_read=_read):
+             i_buf = i_buf[n:]
  
-         if STDIN_FILENO in rfds:
+         if stdin_avail and STDIN_FILENO in rfds:
 -            data = stdin_read(STDIN_FILENO)
 +            try:
 +                data = stdin_read(STDIN_FILENO)
 +            except OSError:
 +                data = b""
              if not data:
-                 fds.remove(STDIN_FILENO)
+                 stdin_avail = False
              else:
diff --git a/poky/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch b/poky/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch
index d5b7ce2..a0f3d72 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-use-prefix-value-from-build-configu.patch
@@ -1,4 +1,4 @@
-From 4ed481f4928c361970e78f27c4d9be8700af176b Mon Sep 17 00:00:00 2001
+From 512c617bd00b74b30a80dd56a12391de46e2b6cf Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex@linutronix.de>
 Date: Fri, 10 Sep 2021 12:28:31 +0200
 Subject: [PATCH] Lib/sysconfig.py: use prefix value from build configuration
diff --git a/poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch b/poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch
index 5ee4e4f..bbdd8b5 100644
--- a/poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch
+++ b/poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch
@@ -1,4 +1,4 @@
-From 4c39252c71d8bca81fdc43753c83a59f8668c619 Mon Sep 17 00:00:00 2001
+From 843574d5a5b0818e83e20f8c0389d567bd4733fb Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 14 May 2013 15:00:26 -0700
 Subject: [PATCH] python3: Add target and native recipes
diff --git a/poky/meta/recipes-devtools/python/python3/get_module_deps3.py b/poky/meta/recipes-devtools/python/python3/get_module_deps3.py
index 0ca687d..8e432b4 100644
--- a/poky/meta/recipes-devtools/python/python3/get_module_deps3.py
+++ b/poky/meta/recipes-devtools/python/python3/get_module_deps3.py
@@ -32,7 +32,7 @@
     dep_path = dep_path[dep_path.find(pivot)+len(pivot):]
 
     if '/usr/bin' in dep_path:
-        dep_path = dep_path.replace('/usr/bin''${bindir}')
+        dep_path = dep_path.replace('/usr/bin','${bindir}')
 
     # Handle multilib, is there a better way?
     if '/usr/lib32' in dep_path:
diff --git a/poky/meta/recipes-devtools/python/python3/makerace.patch b/poky/meta/recipes-devtools/python/python3/makerace.patch
index 979fc9d..c71c1e1 100644
--- a/poky/meta/recipes-devtools/python/python3/makerace.patch
+++ b/poky/meta/recipes-devtools/python/python3/makerace.patch
@@ -1,4 +1,4 @@
-From 4f52aaf2a548b3356c6f1369c62b11335dc27464 Mon Sep 17 00:00:00 2001
+From dde5cb74f55b6dd39d25cff639d16940d9dad505 Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Tue, 13 Jul 2021 23:19:29 +0100
 Subject: [PATCH] python3: Fix make race
@@ -18,11 +18,11 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/Makefile.pre.in b/Makefile.pre.in
-index 7558f0c..8cec819 100644
+index c6d7e85..205af6c 100644
 --- a/Makefile.pre.in
 +++ b/Makefile.pre.in
-@@ -2005,7 +2005,7 @@ TESTSUBDIRS=	ctypes/test \
- 		unittest/test unittest/test/testmock
+@@ -2045,7 +2045,7 @@ TESTSUBDIRS=	ctypes/test \
+ 		unittest/test/testmock
  
  TEST_MODULES=@TEST_MODULES@
 -libinstall:	all $(srcdir)/Modules/xxmodule.c
diff --git a/poky/meta/recipes-devtools/python/python3/run-ptest b/poky/meta/recipes-devtools/python/python3/run-ptest
index 05396e9..efa8455 100644
--- a/poky/meta/recipes-devtools/python/python3/run-ptest
+++ b/poky/meta/recipes-devtools/python/python3/run-ptest
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-SETUPTOOLS_USE_DISTUTILS=nonlocal python3 -m test -v | sed -u -e '/\.\.\. ok/ s/^/PASS: /g' -r -e '/\.\.\. (ERROR|FAIL)/ s/^/FAIL: /g' -e '/\.\.\. skipped/ s/^/SKIP: /g' -e 's/ \.\.\. ok//g' -e 's/ \.\.\. ERROR//g' -e 's/ \.\.\. FAIL//g' -e 's/ \.\.\. skipped//g'
+{ SETUPTOOLS_USE_DISTUTILS=nonlocal python3 -m test -v -j 4 || echo "FAIL: python3" ; } | sed -u -e '/\.\.\. ok/ s/^/PASS: /g' -r -e '/\.\.\. (ERROR|FAIL)/ s/^/FAIL: /g' -e '/\.\.\. skipped/ s/^/SKIP: /g' -e 's/ \.\.\. ok//g' -e 's/ \.\.\. ERROR//g' -e 's/ \.\.\. FAIL//g' -e 's/ \.\.\. skipped//g'
diff --git a/poky/meta/recipes-devtools/python/python3_3.11.3.bb b/poky/meta/recipes-devtools/python/python3_3.11.4.bb
similarity index 95%
rename from poky/meta/recipes-devtools/python/python3_3.11.3.bb
rename to poky/meta/recipes-devtools/python/python3_3.11.4.bb
index c797484..b3534ad 100644
--- a/poky/meta/recipes-devtools/python/python3_3.11.3.bb
+++ b/poky/meta/recipes-devtools/python/python3_3.11.4.bb
@@ -39,7 +39,7 @@
            file://12-distutils-prefix-is-inside-staging-area.patch \
            file://0001-Don-t-search-system-for-headers-libraries.patch \
            "
-SRC_URI[sha256sum] = "8a5db99c961a7ecf27c75956189c9602c968751f11dbeae2b900dbff1c085b5e"
+SRC_URI[sha256sum] = "2f0e409df2ab57aa9fc4cbddfb976af44e4e55bf6f619eee6bc5c2297264a7f6"
 
 # exclude pre-releases for both python 2.x and 3.x
 UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
@@ -47,15 +47,13 @@
 
 CVE_PRODUCT = "python"
 
-# Upstream consider this expected behaviour
-CVE_CHECK_IGNORE += "CVE-2007-4559"
-# This is not exploitable when glibc has CVE-2016-10739 fixed.
-CVE_CHECK_IGNORE += "CVE-2019-18348"
-# These are specific to Microsoft Windows
-CVE_CHECK_IGNORE += "CVE-2020-15523 CVE-2022-26488"
-# The mailcap module is insecure by design, so this can't be fixed in a meaningful way.
+CVE_STATUS[CVE-2007-4559] = "disputed: Upstream consider this expected behaviour"
+CVE_STATUS[CVE-2019-18348] = "not-applicable-config: This is not exploitable when glibc has CVE-2016-10739 fixed"
+CVE_STATUS[CVE-2020-15523] = "not-applicable-platform: Issue only applies on Windows"
+CVE_STATUS[CVE-2022-26488] = "not-applicable-platform: Issue only applies on Windows"
 # The module will be removed in the future and flaws documented.
-CVE_CHECK_IGNORE += "CVE-2015-20107"
+CVE_STATUS[CVE-2015-20107] = "upstream-wontfix: The mailcap module is insecure by design, so this can't be fixed in a meaningful way"
+# CVE_STATUS[CVE-2023-36632] = "disputed: Not an issue, in fact expected behaviour"
 
 PYTHON_MAJMIN = "3.11"
 
@@ -406,13 +404,13 @@
 # catch all the rest (unsorted)
 PACKAGES += "${PN}-misc"
 RDEPENDS:${PN}-misc += "\
+  ${PN}-audio \
+  ${PN}-codecs \
   ${PN}-core \
   ${PN}-email \
-  ${PN}-codecs \
-  ${PN}-pydoc \
-  ${PN}-pickle \
-  ${PN}-audio \
   ${PN}-numbers \
+  ${PN}-pickle \
+  ${PN}-pydoc \
 "
 RDEPENDS:${PN}-modules:append:class-target = " ${MLPREFIX}python3-misc"
 RDEPENDS:${PN}-modules:append:class-nativesdk = " ${MLPREFIX}python3-misc"
@@ -426,7 +424,7 @@
 # See https://bugs.python.org/issue18748 and https://bugs.python.org/issue37395
 RDEPENDS:libpython3:append:libc-glibc = " libgcc"
 RDEPENDS:${PN}-ctypes:append:libc-glibc = " ${MLPREFIX}ldconfig"
-RDEPENDS:${PN}-ptest = "${PN}-modules ${PN}-tests ${PN}-dev unzip bzip2 libgcc tzdata coreutils sed"
+RDEPENDS:${PN}-ptest = "${PN}-modules ${PN}-tests ${PN}-dev ${PN}-cgitb ${PN}-zipapp unzip bzip2 libgcc tzdata coreutils sed gcc g++ binutils"
 RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-fr-fr locale-base-en-us locale-base-tr-tr locale-base-de-de"
 RDEPENDS:${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', '${MLPREFIX}tk ${MLPREFIX}tk-lib', '', d)}"
 RDEPENDS:${PN}-idle += "${@bb.utils.contains('PACKAGECONFIG', 'tk', '${PN}-tkinter ${MLPREFIX}tcl', '', d)}"
diff --git a/poky/meta/recipes-devtools/qemu/qemu-native_8.0.0.bb b/poky/meta/recipes-devtools/qemu/qemu-native_8.0.3.bb
similarity index 100%
rename from poky/meta/recipes-devtools/qemu/qemu-native_8.0.0.bb
rename to poky/meta/recipes-devtools/qemu/qemu-native_8.0.3.bb
diff --git a/poky/meta/recipes-devtools/qemu/qemu-system-native_8.0.0.bb b/poky/meta/recipes-devtools/qemu/qemu-system-native_8.0.3.bb
similarity index 100%
rename from poky/meta/recipes-devtools/qemu/qemu-system-native_8.0.0.bb
rename to poky/meta/recipes-devtools/qemu/qemu-system-native_8.0.3.bb
diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc
index 6acda61..64bade8 100644
--- a/poky/meta/recipes-devtools/qemu/qemu.inc
+++ b/poky/meta/recipes-devtools/qemu/qemu.inc
@@ -30,30 +30,24 @@
            file://0001-tracetool-use-relative-paths-for-line-preprocessor-d.patch \
            file://qemu-guest-agent.init \
            file://qemu-guest-agent.udev \
-           file://ppc.patch \
            "
 UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
 
-SRC_URI[sha256sum] = "bb60f0341531181d6cc3969dd19a013d0427a87f918193970d9adb91131e56d0"
+SRC_URI[sha256sum] = "ecf4d32cbef9d397bfc8cc50e4d1e92a1b30253bf32e8ee73c7a8dcf9a232b09"
 
 SRC_URI:append:class-target = " file://cross.patch"
 SRC_URI:append:class-nativesdk = " file://cross.patch"
 
-# Applies against virglrender < 0.6.0 and not qemu itself
-CVE_CHECK_IGNORE += "CVE-2017-5957"
+CVE_STATUS[CVE-2017-5957] = "cpe-incorrect: Applies against virglrender < 0.6.0 and not qemu itself"
 
-# The VNC server can expose host files uder some circumstances. We don't
-# enable it by default.
-CVE_CHECK_IGNORE += "CVE-2007-0998"
+CVE_STATUS[CVE-2007-0998] = "not-applicable-config: The VNC server can expose host files uder some circumstances. We don't enable it by default."
 
-# 'The issues identified by this CVE were determined to not constitute a vulnerability.'
 # https://bugzilla.redhat.com/show_bug.cgi?id=1609015#c11
-CVE_CHECK_IGNORE += "CVE-2018-18438"
+CVE_STATUS[CVE-2018-18438] = "disputed: The issues identified by this CVE were determined to not constitute a vulnerability."
 
 # As per https://nvd.nist.gov/vuln/detail/CVE-2023-0664
 # https://bugzilla.redhat.com/show_bug.cgi?id=2167423
-# this bug related to windows specific.
-CVE_CHECK_IGNORE += "CVE-2023-0664"
+CVE_STATUS[CVE-2023-0664] = "not-applicable-platform: Issue only applies on Windows"
 
 COMPATIBLE_HOST:mipsarchn32 = "null"
 COMPATIBLE_HOST:mipsarchn64 = "null"
@@ -215,7 +209,7 @@
 # libnfs is currently provided by meta-kodi
 PACKAGECONFIG[libnfs] = "--enable-libnfs,--disable-libnfs,libnfs"
 PACKAGECONFIG[pmem] = "--enable-libpmem,--disable-libpmem,pmdk"
-PACKAGECONFIG[pulsedio] = "--enable-pa,--disable-pa,pulseaudio"
+PACKAGECONFIG[pulseaudio] = "--enable-pa,--disable-pa,pulseaudio"
 PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux"
 PACKAGECONFIG[bpf] = "--enable-bpf,--disable-bpf,libbpf"
 PACKAGECONFIG[capstone] = "--enable-capstone,--disable-capstone"
@@ -236,6 +230,8 @@
 ALLOW_EMPTY:${PN}-system-all = "1"
 ALLOW_EMPTY:${PN}-user-all = "1"
 
+PACKAGES_DYNAMIC += "^${PN}-user-.*  ^${PN}-system-.*"
+
 PACKAGESPLITFUNCS =+ "split_qemu_packages"
 
 python split_qemu_packages () {
diff --git a/poky/meta/recipes-devtools/qemu/qemu/ppc.patch b/poky/meta/recipes-devtools/qemu/qemu/ppc.patch
deleted file mode 100644
index e14c48c..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/ppc.patch
+++ /dev/null
@@ -1,148 +0,0 @@
-From 31f02021ac17442c514593f7b9ed750ea87c21b1 Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Sat, 6 May 2023 07:42:35 +0100
-Cc: Víctor Colombo <victor.colombo@eldorado.org.br>
-Cc: Matheus Ferst <matheus.ferst@eldorado.org.br>
-Cc: Daniel Henrique Barboza <danielhb413@gmail.com>
-Cc: Richard Henderson <richard.henderson@linaro.org>
-Cc: Philippe Mathieu-Daudé <philmd@linaro.org>
-Subject: [PATCH v3] target/ppc: Fix fallback to MFSS for MFFS* instructions on
- pre 3.0 ISAs
-
-The following commits changed the code such that the fallback to MFSS for MFFSCRN,
-MFFSCRNI, MFFSCE and MFFSL on pre 3.0 ISAs was removed and became an illegal instruction:
-
-  bf8adfd88b547680aa857c46098f3a1e94373160 - target/ppc: Move mffscrn[i] to decodetree
-  394c2e2fda70da722f20fb60412d6c0ca4bfaa03 - target/ppc: Move mffsce to decodetree
-  3e5bce70efe6bd1f684efbb21fd2a316cbf0657e - target/ppc: Move mffsl to decodetree
-
-The hardware will handle them as a MFFS instruction as the code did previously.
-This means applications that were segfaulting under qemu when encountering these
-instructions which is used in glibc libm functions for example.
-
-The fallback for MFFSCDRN and MFFSCDRNI added in a later patch was also missing.
-
-This patch restores the fallback to MFSS for these instructions on pre 3.0s ISAs
-as the hardware decoder would, fixing the segfaulting libm code. It doesn't have
-the fallback for 3.0 onwards to match hardware behaviour.
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
----
- target/ppc/insn32.decode           | 20 +++++++++++++-------
- target/ppc/translate/fp-impl.c.inc | 22 ++++++++++++++++------
- 2 files changed, 29 insertions(+), 13 deletions(-)
-
-v3 - drop fallback to MFFS for 3.0 ISA to match hardware
-v2 - switch to use decodetree pattern groups per feedback
-
-Upstream-Status: Submitted [https://lore.kernel.org/qemu-devel/20230506065240.3177798-1-richard.purdie@linuxfoundation.org/]
-
-diff --git a/target/ppc/insn32.decode b/target/ppc/insn32.decode
-index f8f589e9fd..4fcf3af8d0 100644
---- a/target/ppc/insn32.decode
-+++ b/target/ppc/insn32.decode
-@@ -390,13 +390,19 @@ SETNBCR         011111 ..... ..... ----- 0111100000 -   @X_bi
- 
- ### Move To/From FPSCR
- 
--MFFS            111111 ..... 00000 ----- 1001000111 .   @X_t_rc
--MFFSCE          111111 ..... 00001 ----- 1001000111 -   @X_t
--MFFSCRN         111111 ..... 10110 ..... 1001000111 -   @X_tb
--MFFSCDRN        111111 ..... 10100 ..... 1001000111 -   @X_tb
--MFFSCRNI        111111 ..... 10111 ---.. 1001000111 -   @X_imm2
--MFFSCDRNI       111111 ..... 10101 --... 1001000111 -   @X_imm3
--MFFSL           111111 ..... 11000 ----- 1001000111 -   @X_t
-+{
-+  # Before Power ISA v3.0, MFFS bits 11~15 were reserved and should be ignored
-+  MFFS_ISA207     111111 ..... ----- ----- 1001000111 .   @X_t_rc
-+  [
-+    MFFS            111111 ..... 00000 ----- 1001000111 .   @X_t_rc
-+    MFFSCE          111111 ..... 00001 ----- 1001000111 -   @X_t
-+    MFFSCRN         111111 ..... 10110 ..... 1001000111 -   @X_tb
-+    MFFSCDRN        111111 ..... 10100 ..... 1001000111 -   @X_tb
-+    MFFSCRNI        111111 ..... 10111 ---.. 1001000111 -   @X_imm2
-+    MFFSCDRNI       111111 ..... 10101 --... 1001000111 -   @X_imm3
-+    MFFSL           111111 ..... 11000 ----- 1001000111 -   @X_t
-+  ]
-+}
- 
- ### Decimal Floating-Point Arithmetic Instructions
- 
-diff --git a/target/ppc/translate/fp-impl.c.inc b/target/ppc/translate/fp-impl.c.inc
-index 57d8437851..874774eade 100644
---- a/target/ppc/translate/fp-impl.c.inc
-+++ b/target/ppc/translate/fp-impl.c.inc
-@@ -568,6 +568,22 @@ static void store_fpscr_masked(TCGv_i64 fpscr, uint64_t clear_mask,
-     gen_helper_store_fpscr(cpu_env, fpscr_masked, st_mask);
- }
- 
-+static bool trans_MFFS_ISA207(DisasContext *ctx, arg_X_t_rc *a)
-+{
-+    if (!(ctx->insns_flags2 & PPC2_ISA300)) {
-+        /*
-+         * Before Power ISA v3.0, MFFS bits 11~15 were reserved, any instruction
-+         * with OPCD=63 and XO=583 should be decoded as MFFS.
-+         */
-+        return trans_MFFS(ctx, a);
-+    }
-+    /*
-+     * For Power ISA v3.0+, return false and let the pattern group
-+     * select the correct instruction.
-+     */
-+    return false;
-+}
-+
- static bool trans_MFFS(DisasContext *ctx, arg_X_t_rc *a)
- {
-     REQUIRE_FPU(ctx);
-@@ -584,7 +600,6 @@ static bool trans_MFFSCE(DisasContext *ctx, arg_X_t *a)
- {
-     TCGv_i64 fpscr;
- 
--    REQUIRE_INSNS_FLAGS2(ctx, ISA300);
-     REQUIRE_FPU(ctx);
- 
-     gen_reset_fpstatus();
-@@ -597,7 +612,6 @@ static bool trans_MFFSCRN(DisasContext *ctx, arg_X_tb *a)
- {
-     TCGv_i64 t1, fpscr;
- 
--    REQUIRE_INSNS_FLAGS2(ctx, ISA300);
-     REQUIRE_FPU(ctx);
- 
-     t1 = tcg_temp_new_i64();
-@@ -614,7 +628,6 @@ static bool trans_MFFSCDRN(DisasContext *ctx, arg_X_tb *a)
- {
-     TCGv_i64 t1, fpscr;
- 
--    REQUIRE_INSNS_FLAGS2(ctx, ISA300);
-     REQUIRE_FPU(ctx);
- 
-     t1 = tcg_temp_new_i64();
-@@ -631,7 +644,6 @@ static bool trans_MFFSCRNI(DisasContext *ctx, arg_X_imm2 *a)
- {
-     TCGv_i64 t1, fpscr;
- 
--    REQUIRE_INSNS_FLAGS2(ctx, ISA300);
-     REQUIRE_FPU(ctx);
- 
-     t1 = tcg_temp_new_i64();
-@@ -647,7 +659,6 @@ static bool trans_MFFSCDRNI(DisasContext *ctx, arg_X_imm3 *a)
- {
-     TCGv_i64 t1, fpscr;
- 
--    REQUIRE_INSNS_FLAGS2(ctx, ISA300);
-     REQUIRE_FPU(ctx);
- 
-     t1 = tcg_temp_new_i64();
-@@ -661,7 +672,6 @@ static bool trans_MFFSCDRNI(DisasContext *ctx, arg_X_imm3 *a)
- 
- static bool trans_MFFSL(DisasContext *ctx, arg_X_t *a)
- {
--    REQUIRE_INSNS_FLAGS2(ctx, ISA300);
-     REQUIRE_FPU(ctx);
- 
-     gen_reset_fpstatus();
--- 
-2.39.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu_8.0.0.bb b/poky/meta/recipes-devtools/qemu/qemu_8.0.3.bb
similarity index 100%
rename from poky/meta/recipes-devtools/qemu/qemu_8.0.0.bb
rename to poky/meta/recipes-devtools/qemu/qemu_8.0.3.bb
diff --git a/poky/meta/recipes-devtools/repo/repo_2.34.1.bb b/poky/meta/recipes-devtools/repo/repo_2.35.bb
similarity index 94%
rename from poky/meta/recipes-devtools/repo/repo_2.34.1.bb
rename to poky/meta/recipes-devtools/repo/repo_2.35.bb
index 1c5d1a0..d34c3db 100644
--- a/poky/meta/recipes-devtools/repo/repo_2.34.1.bb
+++ b/poky/meta/recipes-devtools/repo/repo_2.35.bb
@@ -12,7 +12,7 @@
 SRC_URI = "git://gerrit.googlesource.com/git-repo.git;protocol=https;branch=main \
            file://0001-python3-shebang.patch \
            "
-SRCREV = "945c006f406550add8a3cad32ada0791f5a15c53"
+SRCREV = "c657844efe40b97700c3654989bdbe3a33e409d7"
 
 MIRRORS += "git://gerrit.googlesource.com/git-repo.git git://github.com/GerritCodeReview/git-repo.git"
 
diff --git a/poky/meta/recipes-devtools/rpm/files/ea3187cfcf9cac87e5bc5e7db79b0338da9e355e.patch b/poky/meta/recipes-devtools/rpm/files/ea3187cfcf9cac87e5bc5e7db79b0338da9e355e.patch
new file mode 100644
index 0000000..470dda1
--- /dev/null
+++ b/poky/meta/recipes-devtools/rpm/files/ea3187cfcf9cac87e5bc5e7db79b0338da9e355e.patch
@@ -0,0 +1,51 @@
+From ea3187cfcf9cac87e5bc5e7db79b0338da9e355e Mon Sep 17 00:00:00 2001
+From: Panu Matilainen <pmatilai@redhat.com>
+Date: Mon, 26 Jun 2023 12:45:09 +0300
+Subject: [PATCH] Don't muck with per-process global sqlite configuration from
+ the db backend
+
+sqlite3_config() affects all in-process uses of sqlite. librpm being a
+low-level library, it has no business whatsoever making such decisions
+for the applications running on top of it. Besides that, the callback can
+easily end up pointing to an already closed database, causing an
+innocent API user to crash in librpm on an entirely unrelated error on
+some other database. "Oops."
+
+The sqlite API doesn't seem to provide any per-db or non-global context
+for logging errors, thus we can only remove the call and let sqlite output
+errors the way it pleases (print through stderr, presumably).
+
+Thanks to Jan Palus for spotting and reporting!
+
+Upstream-Status: Backport [https://github.com/rpm-software-management/rpm/commit/ea3187cfcf9cac87e5bc5e7db79b0338da9e355e]
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ lib/backend/sqlite.c | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/lib/backend/sqlite.c b/lib/backend/sqlite.c
+index 5a029d575a..b612732267 100644
+--- a/lib/backend/sqlite.c
++++ b/lib/backend/sqlite.c
+@@ -44,13 +44,6 @@ static void rpm_match3(sqlite3_context *sctx, int argc, sqlite3_value **argv)
+     sqlite3_result_int(sctx, match);
+ }
+ 
+-static void errCb(void *data, int err, const char *msg)
+-{
+-    rpmdb rdb = data;
+-    rpmlog(RPMLOG_WARNING, "%s: %s: %s\n",
+-		rdb->db_descr, sqlite3_errstr(err), msg);
+-}
+-
+ static int dbiCursorReset(dbiCursor dbc)
+ {
+     if (dbc->stmt) {
+@@ -170,7 +163,6 @@ static int sqlite_init(rpmdb rdb, const char * dbhome)
+ 	 * the "database is locked" errors at every cost
+ 	 */
+ 	sqlite3_busy_timeout(sdb, 10000);
+-	sqlite3_config(SQLITE_CONFIG_LOG, errCb, rdb);
+ 
+ 	sqlexec(sdb, "PRAGMA secure_delete = OFF");
+ 	sqlexec(sdb, "PRAGMA case_sensitive_like = ON");
diff --git a/poky/meta/recipes-devtools/rpm/rpm_4.18.1.bb b/poky/meta/recipes-devtools/rpm/rpm_4.18.1.bb
index 83537d4..95a9e92 100644
--- a/poky/meta/recipes-devtools/rpm/rpm_4.18.1.bb
+++ b/poky/meta/recipes-devtools/rpm/rpm_4.18.1.bb
@@ -39,6 +39,7 @@
            file://0001-configure.ac-add-linux-gnux32-variant-to-triplet-han.patch \
            file://0001-python-Use-Py_hash_t-instead-of-long-in-hdr_hash.patch \
            file://fix-declaration.patch \
+           file://ea3187cfcf9cac87e5bc5e7db79b0338da9e355e.patch \
            "
 
 PE = "1"
diff --git a/poky/meta/recipes-devtools/rsync/rsync_3.2.7.bb b/poky/meta/recipes-devtools/rsync/rsync_3.2.7.bb
index 19574bc..130581a 100644
--- a/poky/meta/recipes-devtools/rsync/rsync_3.2.7.bb
+++ b/poky/meta/recipes-devtools/rsync/rsync_3.2.7.bb
@@ -18,9 +18,6 @@
            "
 SRC_URI[sha256sum] = "4e7d9d3f6ed10878c58c5fb724a67dacf4b6aac7340b13e488fb2dc41346f2bb"
 
-# -16548 required for v3.1.3pre1. Already in v3.1.3.
-CVE_CHECK_IGNORE += " CVE-2017-16548 "
-
 inherit autotools-brokensep
 
 PACKAGECONFIG ??= "acl attr \
diff --git a/poky/meta/recipes-devtools/rust/files/rust-oe-selftest.patch b/poky/meta/recipes-devtools/rust/files/rust-oe-selftest.patch
new file mode 100644
index 0000000..8e9da47
--- /dev/null
+++ b/poky/meta/recipes-devtools/rust/files/rust-oe-selftest.patch
@@ -0,0 +1,2324 @@
+Rust testsuite outputs error even on a single testcase failure.
+Hence, some test runs are ignored as they fail with error messages.
+
+Upstream-Status: Inappropriate [Ignore the testcase that errors out]
+Signed-off-by: Pgowda <pgowda.cve@gmail.com>
+---
+
+diff --git a/compiler/rustc_interface/src/tests.rs b/compiler/rustc_interface/src/tests.rs
+index eb8e65a6d..6e65e8787 100644
+--- a/compiler/rustc_interface/src/tests.rs
++++ b/compiler/rustc_interface/src/tests.rs
+@@ -103,6 +103,7 @@ fn assert_non_crate_hash_different(x: &Options, y: &Options) {
+
+ // When the user supplies --test we should implicitly supply --cfg test
+ #[test]
++#[ignore]
+ fn test_switch_implies_cfg_test() {
+     rustc_span::create_default_session_globals_then(|| {
+         let matches = optgroups().parse(&["--test".to_string()]).unwrap();
+@@ -114,6 +115,7 @@ fn test_switch_implies_cfg_test() {
+
+ // When the user supplies --test and --cfg test, don't implicitly add another --cfg test
+ #[test]
++#[ignore]
+ fn test_switch_implies_cfg_test_unless_cfg_test() {
+     rustc_span::create_default_session_globals_then(|| {
+         let matches = optgroups().parse(&["--test".to_string(), "--cfg=test".to_string()]).unwrap();
+@@ -126,6 +128,7 @@ fn test_switch_implies_cfg_test_unless_cfg_test() {
+ }
+
+ #[test]
++#[ignore]
+ fn test_can_print_warnings() {
+     rustc_span::create_default_session_globals_then(|| {
+         let matches = optgroups().parse(&["-Awarnings".to_string()]).unwrap();
+diff --git a/library/test/src/stats/tests.rs b/library/test/src/stats/tests.rs
+index 3a6e8401b..8442a6b39 100644
+--- a/library/test/src/stats/tests.rs
++++ b/library/test/src/stats/tests.rs
+@@ -40,6 +40,7 @@ fn check(samples: &[f64], summ: &Summary) {
+ }
+
+ #[test]
++#[ignore]
+ fn test_min_max_nan() {
+     let xs = &[1.0, 2.0, f64::NAN, 3.0, 4.0];
+     let summary = Summary::new(xs);
+diff --git a/tests/assembly/asm/aarch64-outline-atomics.rs b/tests/assembly/asm/aarch64-outline-atomics.rs
+index c2ec4e911..150d23004 100644
+--- a/tests/assembly/asm/aarch64-outline-atomics.rs
++++ b/tests/assembly/asm/aarch64-outline-atomics.rs
+@@ -4,6 +4,7 @@
+ // needs-llvm-components: aarch64
+ // only-aarch64
+ // only-linux
++// ignore-stage1
+
+ #![crate_type = "rlib"]
+
+diff --git a/tests/codegen/abi-main-signature-32bit-c-int.rs b/tests/codegen/abi-main-signature-32bit-c-int.rs
+index 7f22ddcfc..ec84b72aa 100644
+--- a/tests/codegen/abi-main-signature-32bit-c-int.rs
++++ b/tests/codegen/abi-main-signature-32bit-c-int.rs
+@@ -3,6 +3,7 @@
+
+ // This test is for targets with 32bit c_int only.
+ // ignore-msp430
++// ignore-stage1
+
+ fn main() {
+ }
+diff --git a/tests/codegen/sse42-implies-crc32.rs b/tests/codegen/sse42-implies-crc32.rs
+index 47b1a8993..71e2d5ef7 100644
+--- a/tests/codegen/sse42-implies-crc32.rs
++++ b/tests/codegen/sse42-implies-crc32.rs
+@@ -1,5 +1,6 @@
+ // only-x86_64
+ // compile-flags: -Copt-level=3
++// ignore-stage1
+
+ #![crate_type = "lib"]
+
+diff --git a/tests/codegen/thread-local.rs b/tests/codegen/thread-local.rs
+index 0f1b29ca7..b2b4fd2ff 100644
+--- a/tests/codegen/thread-local.rs
++++ b/tests/codegen/thread-local.rs
+@@ -5,6 +5,7 @@
+ // ignore-emscripten globals are used instead of thread locals
+ // ignore-android does not use #[thread_local]
+ // ignore-nto does not use #[thread_local]
++// ignore-stage1
+
+ #![crate_type = "lib"]
+
+diff --git a/tests/codegen/uninit-consts.rs b/tests/codegen/uninit-consts.rs
+index 4c07740b3..dac5da866 100644
+--- a/tests/codegen/uninit-consts.rs
++++ b/tests/codegen/uninit-consts.rs
+@@ -1,4 +1,5 @@
+ // compile-flags: -C no-prepopulate-passes
++// ignore-stage1
+
+ // Check that we use undef (and not zero) for uninitialized bytes in constants.
+
+diff --git a/tests/pretty/raw-str-nonexpr.rs b/tests/pretty/raw-str-nonexpr.rs
+index 12440b5ae..5b62d45ff 100644
+--- a/tests/pretty/raw-str-nonexpr.rs
++++ b/tests/pretty/raw-str-nonexpr.rs
+@@ -1,5 +1,6 @@
+ // needs-asm-support
+ // pp-exact
++// ignore-stage1
+
+ #[cfg(foo = r#"just parse this"#)]
+ extern crate blah as blah;
+diff --git a/tests/run-make/issue-36710/Makefile b/tests/run-make/issue-36710/Makefile
+index 7b91107a234..e404fcc3996 100644
+--- a/tests/run-make/issue-36710/Makefile
++++ b/tests/run-make/issue-36710/Makefile
+@@ -6,6 +6,7 @@
+ # ignore-musl FIXME: this makefile needs teaching how to use a musl toolchain
+ #                    (see dist-i586-gnu-i586-i686-musl Dockerfile)
+ # ignore-sgx
++# ignore-stage1
+ 
+ include ../tools.mk
+
+diff --git a/tests/rustdoc-ui/cfg-test.rs b/tests/rustdoc-ui/cfg-test.rs
+index d4ca92585..fceb2968d 100644
+--- a/tests/rustdoc-ui/cfg-test.rs
++++ b/tests/rustdoc-ui/cfg-test.rs
+@@ -5,6 +5,7 @@
+
+ // Crates like core have doctests gated on `cfg(not(test))` so we need to make
+ // sure `cfg(test)` is not active when running `rustdoc --test`.
++// ignore-stage1
+
+ /// this doctest will be ignored:
+ ///
+diff --git a/tests/rustdoc-ui/check-cfg-test.rs b/tests/rustdoc-ui/check-cfg-test.rs
+index 626cc8387..b0f9a1948 100644
+--- a/tests/rustdoc-ui/check-cfg-test.rs
++++ b/tests/rustdoc-ui/check-cfg-test.rs
+@@ -3,6 +3,7 @@
+ // normalize-stderr-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
++// ignore-stage1
+
+ /// The doctest will produce a warning because feature invalid is unexpected
+ /// ```
+diff --git a/tests/rustdoc-ui/display-output.rs b/tests/rustdoc-ui/display-output.rs
+index ec27a9f6b..61655fa6e 100644
+--- a/tests/rustdoc-ui/display-output.rs
++++ b/tests/rustdoc-ui/display-output.rs
+@@ -5,6 +5,7 @@
+ // compile-flags:--test --test-args=--show-output
+ // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
++// ignore-stage1
+
+ /// ```
+ /// #![warn(unused)]
+diff --git a/tests/rustdoc-ui/doc-comment-multi-line-attr.rs b/tests/rustdoc-ui/doc-comment-multi-line-attr.rs
+index 97259f782..50a155fba 100644
+--- a/tests/rustdoc-ui/doc-comment-multi-line-attr.rs
++++ b/tests/rustdoc-ui/doc-comment-multi-line-attr.rs
+@@ -3,6 +3,7 @@
+ // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
+ // check-pass
++// ignore-stage1
+
+ //! ```rust
+ //! #![deny(
+diff --git a/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs b/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs
+index b2a8133c9..ea064ba85 100644
+--- a/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs
++++ b/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs
+@@ -2,6 +2,7 @@
+ // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
+ // check-pass
++// ignore-stage1
+
+ /// ```
+ /// # #![cfg_attr(not(dox), deny(missing_abi,
+diff --git a/tests/rustdoc-ui/doc-test-doctest-feature.rs b/tests/rustdoc-ui/doc-test-doctest-feature.rs
+index 0b79aaece..8cef6d974 100644
+--- a/tests/rustdoc-ui/doc-test-doctest-feature.rs
++++ b/tests/rustdoc-ui/doc-test-doctest-feature.rs
+@@ -5,6 +5,7 @@
+
+ // Make sure `cfg(doctest)` is set when finding doctests but not inside
+ // the doctests.
++// ignore-stage1
+
+ /// ```
+ /// assert!(!cfg!(doctest));
+diff --git a/tests/rustdoc-ui/doc-test-rustdoc-feature.rs b/tests/rustdoc-ui/doc-test-rustdoc-feature.rs
+index bf334c67e..c372097bd 100644
+--- a/tests/rustdoc-ui/doc-test-rustdoc-feature.rs
++++ b/tests/rustdoc-ui/doc-test-rustdoc-feature.rs
+@@ -2,6 +2,7 @@
+ // compile-flags:--test
+ // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
++// ignore-stage1
+
+ #![feature(doc_cfg)]
+
+diff --git a/tests/rustdoc-ui/doctest-output.rs b/tests/rustdoc-ui/doctest-output.rs
+index 2670fa572..b4b612916 100644
+--- a/tests/rustdoc-ui/doctest-output.rs
++++ b/tests/rustdoc-ui/doctest-output.rs
+@@ -4,6 +4,7 @@
+ // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
+ // check-pass
++// ignore-stage1
+
+ //! ```
+ //! assert_eq!(1 + 1, 2);
+diff --git a/tests/rustdoc-ui/failed-doctest-compile-fail.rs b/tests/rustdoc-ui/failed-doctest-compile-fail.rs
+index 6f2ff5d70..2561ffdc3 100644
+--- a/tests/rustdoc-ui/failed-doctest-compile-fail.rs
++++ b/tests/rustdoc-ui/failed-doctest-compile-fail.rs
+@@ -5,6 +5,7 @@
+ // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
+ // failure-status: 101
++// ignore-stage1
+
+ /// ```compile_fail
+ /// println!("Hello");
+diff --git a/tests/rustdoc-ui/issue-91134.rs b/tests/rustdoc-ui/issue-91134.rs
+index d2ff3a252..90e0816d2 100644
+--- a/tests/rustdoc-ui/issue-91134.rs
++++ b/tests/rustdoc-ui/issue-91134.rs
+@@ -4,6 +4,7 @@
+ // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
+ // edition:2021
++// ignore-stage1
+
+ /// <https://github.com/rust-lang/rust/issues/91134>
+ ///
+diff --git a/tests/rustdoc-ui/nocapture.rs b/tests/rustdoc-ui/nocapture.rs
+index 321f5ca08..463751e48 100644
+--- a/tests/rustdoc-ui/nocapture.rs
++++ b/tests/rustdoc-ui/nocapture.rs
+@@ -2,6 +2,7 @@
+ // compile-flags:--test -Zunstable-options --nocapture
+ // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
++// ignore-stage1
+
+ /// ```
+ /// println!("hello!");
+diff --git a/tests/rustdoc-ui/run-directory.rs b/tests/rustdoc-ui/run-directory.rs
+index 0d432c1e6..357e3ccc3 100644
+--- a/tests/rustdoc-ui/run-directory.rs
++++ b/tests/rustdoc-ui/run-directory.rs
+@@ -6,6 +6,7 @@
+ // [incorrect]compile-flags:--test --test-run-directory={{src-base}}/coverage
+ // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
++// ignore-stage1
+
+ /// ```
+ /// assert_eq!(
+diff --git a/tests/rustdoc-ui/test-no_std.rs b/tests/rustdoc-ui/test-no_std.rs
+index ee919985e..3e479bf6f 100644
+--- a/tests/rustdoc-ui/test-no_std.rs
++++ b/tests/rustdoc-ui/test-no_std.rs
+@@ -2,6 +2,7 @@
+ // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
+ // check-pass
++// ignore-stage1
+
+ #![no_std]
+
+diff --git a/tests/rustdoc-ui/test-type.rs b/tests/rustdoc-ui/test-type.rs
+index 882da5c25..bc8e8e30f 100644
+--- a/tests/rustdoc-ui/test-type.rs
++++ b/tests/rustdoc-ui/test-type.rs
+@@ -2,6 +2,7 @@
+ // check-pass
+ // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
++// ignore-stage1
+
+ /// ```
+ /// let a = true;
+diff --git a/tests/ui-fulldeps/internal-lints/default_hash_types.rs b/tests/ui-fulldeps/internal-lints/default_hash_types.rs
+index 795c7d2dc..dc6b4f53f 100644
+--- a/tests/ui-fulldeps/internal-lints/default_hash_types.rs
++++ b/tests/ui-fulldeps/internal-lints/default_hash_types.rs
+@@ -1,4 +1,5 @@
+ // compile-flags: -Z unstable-options
++// ignore-stage1
+
+ #![feature(rustc_private)]
+ #![deny(rustc::default_hash_types)]
+diff --git a/tests/ui-fulldeps/internal-lints/diagnostics.rs b/tests/ui-fulldeps/internal-lints/diagnostics.rs
+index 643e81d99..2433228ef 100644
+--- a/tests/ui-fulldeps/internal-lints/diagnostics.rs
++++ b/tests/ui-fulldeps/internal-lints/diagnostics.rs
+@@ -1,4 +1,5 @@
+ // compile-flags: -Z unstable-options
++// ignore-stage1
+
+ #![crate_type = "lib"]
+ #![feature(rustc_attrs)]
+diff --git a/tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs b/tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs
+index f6f0c0385..4523e2a6d 100644
+--- a/tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs
++++ b/tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs
+@@ -1,4 +1,5 @@
+ // compile-flags: -Z unstable-options
++// ignore-stage1
+
+ #![feature(rustc_private)]
+ #![deny(rustc::lint_pass_impl_without_macro)]
+diff --git a/tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs b/tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs
+index 32b987338..6187e2370 100644
+--- a/tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs
++++ b/tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs
+@@ -1,4 +1,5 @@
+ // compile-flags: -Z unstable-options
++// ignore-stage1
+
+ #![feature(rustc_private)]
+ #![deny(rustc::usage_of_qualified_ty)]
+diff --git a/tests/ui-fulldeps/internal-lints/query_stability.rs b/tests/ui-fulldeps/internal-lints/query_stability.rs
+index 560675b44..e7d5ba583 100644
+--- a/tests/ui-fulldeps/internal-lints/query_stability.rs
++++ b/tests/ui-fulldeps/internal-lints/query_stability.rs
+@@ -1,4 +1,5 @@
+ // compile-flags: -Z unstable-options
++// ignore-stage1
+
+ #![feature(rustc_private)]
+ #![deny(rustc::potential_query_instability)]
+diff --git a/tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs b/tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs
+index 10bab2d88..8e72c8b38 100644
+--- a/tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs
++++ b/tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs
+@@ -1,4 +1,5 @@
+ // compile-flags: -Z unstable-options
++// ignore-stage1
+
+ #![feature(rustc_attrs)]
+ #![feature(rustc_private)]
+diff --git a/tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs b/tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs
+index 2cb1ed6fc..31b5a2131 100644
+--- a/tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs
++++ b/tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs
+@@ -1,4 +1,5 @@
+ // compile-flags: -Z unstable-options
++// ignore-stage1
+
+ #![feature(rustc_private)]
+
+diff --git a/tests/ui-fulldeps/lint-group-denied-lint-allowed.rs b/tests/ui-fulldeps/lint-group-denied-lint-allowed.rs
+index 7498745f2..28c00f2f8 100644
+--- a/tests/ui-fulldeps/lint-group-denied-lint-allowed.rs
++++ b/tests/ui-fulldeps/lint-group-denied-lint-allowed.rs
+@@ -1,6 +1,7 @@
+ // aux-build:lint-group-plugin-test.rs
+ // check-pass
+ // compile-flags: -D unused -A unused-variables
++// ignore-stage1
+
+ fn main() {
+     let x = 1;
+diff --git a/tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs b/tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs
+index fc19bc039..9563e9930 100644
+--- a/tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs
++++ b/tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs
+@@ -1,5 +1,6 @@
+ // aux-build:lint-group-plugin-test.rs
+ // compile-flags: -F unused -A unused
++// ignore-stage1
+
+ fn main() {
+     let x = 1;
+diff --git a/tests/ui-fulldeps/lint-pass-macros.rs b/tests/ui-fulldeps/lint-pass-macros.rs
+index b3c2a5427..9ed711a34 100644
+--- a/tests/ui-fulldeps/lint-pass-macros.rs
++++ b/tests/ui-fulldeps/lint-pass-macros.rs
+@@ -1,5 +1,6 @@
+ // compile-flags: -Z unstable-options
+ // check-pass
++// ignore-stage1
+
+ #![feature(rustc_private)]
+
+diff --git a/tests/ui/empty_global_asm.rs b/tests/ui/empty_global_asm.rs
+index af13762d1..e9a5433ff 100644
+--- a/tests/ui/empty_global_asm.rs
++++ b/tests/ui/empty_global_asm.rs
+@@ -1,5 +1,6 @@
+ // needs-asm-support
+ // run-pass
++// ignore-stage1
+
+ use std::arch::global_asm;
+
+diff --git a/tests/ui/linkage-attr/issue-10755.rs b/tests/ui/linkage-attr/issue-10755.rs
+index afd2dc46c..f0d4705e4 100644
+--- a/tests/ui/linkage-attr/issue-10755.rs
++++ b/tests/ui/linkage-attr/issue-10755.rs
+@@ -2,6 +2,7 @@
+ // dont-check-compiler-stderr
+ // compile-flags: -C linker=llllll -C linker-flavor=ld
+ // error-pattern: `llllll`
++// ignore-stage1
+
+ // Before, the error-pattern checked for "not found". On WSL with appendWindowsPath=true, running
+ // in invalid command returns a PermissionDenied instead.
+diff --git a/tests/ui/macros/restricted-shadowing-legacy.rs b/tests/ui/macros/restricted-shadowing-legacy.rs
+index f5cac2dfb..d84f8efd6 100644
+--- a/tests/ui/macros/restricted-shadowing-legacy.rs
++++ b/tests/ui/macros/restricted-shadowing-legacy.rs
+@@ -74,6 +74,7 @@
+ // 62 |   Unordered   |   Unordered   |       =       |    +?    |
+ // 63 |   Unordered   |   Unordered   |       >       |    +?    |
+ // 64 |   Unordered   |   Unordered   |   Unordered   |    +     |
++// ignore-stage1
+
+ #![feature(decl_macro, rustc_attrs)]
+
+diff --git a/tests/ui/process/nofile-limit.rs b/tests/ui/process/nofile-limit.rs
+index 3ddf8d6ef..316823fcc 100644
+--- a/tests/ui/process/nofile-limit.rs
++++ b/tests/ui/process/nofile-limit.rs
+@@ -3,6 +3,7 @@
+ // test for issue #96621.
+ //
+ // run-pass
++// ignore-stage1
+ // dont-check-compiler-stderr
+ // only-linux
+ // no-prefer-dynamic
+diff --git a/tests/ui/process/process-panic-after-fork.rs b/tests/ui/process/process-panic-after-fork.rs
+index 6d4d24922..f681526bd 100644
+--- a/tests/ui/process/process-panic-after-fork.rs
++++ b/tests/ui/process/process-panic-after-fork.rs
+@@ -6,6 +6,7 @@
+ // ignore-emscripten no processes
+ // ignore-sgx no processes
+ // ignore-fuchsia no fork
++// ignore-stage1
+
+ #![feature(rustc_private)]
+ #![feature(never_type)]
+diff --git a/tests/ui/simd/target-feature-mixup.rs b/tests/ui/simd/target-feature-mixup.rs
+index 5dd163715..ab8b02f23 100644
+--- a/tests/ui/simd/target-feature-mixup.rs
++++ b/tests/ui/simd/target-feature-mixup.rs
+@@ -1,4 +1,6 @@
+ // run-pass
++// ignore-stage1
++
+ #![allow(unused_variables)]
+ #![allow(stable_features)]
+ #![allow(overflowing_literals)]
+diff --git a/tests/ui-fulldeps/internal-lints/bad_opt_access.rs b/tests/ui-fulldeps/internal-lints/bad_opt_access.rs
+index d6bd6945e15..a5794e3636a 100644
+--- a/tests/ui-fulldeps/internal-lints/bad_opt_access.rs
++++ b/tests/ui-fulldeps/internal-lints/bad_opt_access.rs
+@@ -3,6 +3,7 @@
+ // Test that accessing command line options by field access triggers a lint for those fields
+ // that have wrapper functions which should be used.
+ 
++// ignore-stage1
+ #![crate_type = "lib"]
+ #![feature(rustc_private)]
+ #![deny(rustc::bad_opt_access)]
+diff --git a/tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs b/tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs
+index a0a8114e0c5..29faed24e13 100644
+--- a/tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs
++++ b/tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs
+@@ -1,5 +1,6 @@
+ // rustc-env:CARGO_CRATE_NAME=rustc_dummy
+ 
++// ignore-stage1
+ #![feature(rustc_private)]
+ #![crate_type = "lib"]
+ 
+diff --git a/tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs b/tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs
+index ff764015dc7..8d0184b40f5 100644
+--- a/tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs
++++ b/tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs
+@@ -5,4 +5,5 @@
+ //
+ // Make sure that we don't explode with an error if we don't actually end up emitting any `dwo`s,
+ // as would be the case if we don't actually codegen anything.
++// ignore-stage1
+ #![crate_type="rlib"]
+diff --git a/tests/ui/drop/dynamic-drop.rs b/tests/ui/drop/dynamic-drop.rs
+index 9e51d3adaaa..296032acebb 100644
+--- a/tests/ui/drop/dynamic-drop.rs
++++ b/tests/ui/drop/dynamic-drop.rs
+@@ -1,6 +1,7 @@
+ // run-pass
+ // needs-unwind
+ 
++// ignore-stage1
+ #![feature(generators, generator_trait)]
+ 
+ #![allow(unused_assignments)]
+diff --git a/src/bootstrap/builder/tests.rs b/src/bootstrap/builder/tests.rs
+index 3574f11189e..4f4698a25bd 100644
+--- a/src/bootstrap/builder/tests.rs
++++ b/src/bootstrap/builder/tests.rs
+@@ -76,6 +76,7 @@ macro_rules! rustc {
+ }
+ 
+ #[test]
++#[ignore]
+ fn test_valid() {
+     // make sure multi suite paths are accepted
+     check_cli(["test", "tests/ui/attr-start.rs", "tests/ui/attr-shebang.rs"]);
+@@ -104,6 +105,7 @@ fn test_intersection() {
+ }
+ 
+ #[test]
++#[ignore]
+ fn test_exclude() {
+     let mut config = configure("test", &["A"], &["A"]);
+     config.exclude = vec![TaskPath::parse("src/tools/tidy")];
+@@ -117,6 +119,7 @@ fn test_exclude() {
+ }
+ 
+ #[test]
++#[ignore]
+ fn test_exclude_kind() {
+     let path = PathBuf::from("src/tools/cargotest");
+     let exclude = TaskPath::parse("test::src/tools/cargotest");
+@@ -137,6 +140,7 @@ fn test_exclude_kind() {
+ 
+ /// Ensure that if someone passes both a single crate and `library`, all library crates get built.
+ #[test]
++#[ignore]
+ fn alias_and_path_for_library() {
+     let mut cache =
+         run_build(&["library".into(), "core".into()], configure("build", &["A"], &["A"]));
+@@ -153,6 +157,7 @@ mod defaults {
+     use pretty_assertions::assert_eq;
+ 
+     #[test]
++    #[ignore]
+     fn build_default() {
+         let mut cache = run_build(&[], configure("build", &["A"], &["A"]));
+ 
+@@ -173,6 +178,7 @@ fn build_default() {
+     }
+ 
+     #[test]
++    #[ignore]
+     fn build_stage_0() {
+         let config = Config { stage: 0, ..configure("build", &["A"], &["A"]) };
+         let mut cache = run_build(&[], config);
+@@ -190,6 +196,7 @@ fn build_stage_0() {
+     }
+ 
+     #[test]
++    #[ignore]
+     fn build_cross_compile() {
+         let config = Config { stage: 1, ..configure("build", &["A", "B"], &["A", "B"]) };
+         let mut cache = run_build(&[], config);
+@@ -233,6 +240,7 @@ fn build_cross_compile() {
+     }
+ 
+     #[test]
++    #[ignore]
+     fn doc_default() {
+         let mut config = configure("doc", &["A"], &["A"]);
+         config.compiler_docs = true;
+@@ -267,6 +275,7 @@ fn configure(host: &[&str], target: &[&str]) -> Config {
+     }
+ 
+     #[test]
++    #[ignore]
+     fn dist_baseline() {
+         let mut cache = run_build(&[], configure(&["A"], &["A"]));
+ 
+@@ -291,6 +300,7 @@ fn dist_baseline() {
+     }
+ 
+     #[test]
++    #[ignore]
+     fn dist_with_targets() {
+         let mut cache = run_build(&[], configure(&["A"], &["A", "B"]));
+ 
+@@ -320,6 +330,7 @@ fn dist_with_targets() {
+     }
+ 
+     #[test]
++    #[ignore]
+     fn dist_with_hosts() {
+         let mut cache = run_build(&[], configure(&["A", "B"], &["A", "B"]));
+ 
+@@ -362,6 +373,7 @@ fn dist_with_hosts() {
+     }
+ 
+     #[test]
++    #[ignore]
+     fn dist_only_cross_host() {
+         let b = TargetSelection::from_user("B");
+         let mut config = configure(&["A", "B"], &["A", "B"]);
+@@ -381,6 +393,7 @@ fn dist_only_cross_host() {
+     }
+ 
+     #[test]
++    #[ignore]
+     fn dist_with_targets_and_hosts() {
+         let mut cache = run_build(&[], configure(&["A", "B"], &["A", "B", "C"]));
+ 
+@@ -415,6 +428,7 @@ fn dist_with_targets_and_hosts() {
+     }
+ 
+     #[test]
++    #[ignore]
+     fn dist_with_empty_host() {
+         let config = configure(&[], &["C"]);
+         let mut cache = run_build(&[], config);
+@@ -431,6 +445,7 @@ fn dist_with_empty_host() {
+     }
+ 
+     #[test]
++    #[ignore]
+     fn dist_with_same_targets_and_hosts() {
+         let mut cache = run_build(&[], configure(&["A", "B"], &["A", "B"]));
+ 
+@@ -482,6 +497,7 @@ fn dist_with_same_targets_and_hosts() {
+     }
+ 
+     #[test]
++    #[ignore]
+     fn build_all() {
+         let build = Build::new(configure(&["A", "B"], &["A", "B", "C"]));
+         let mut builder = Builder::new(&build);
+@@ -515,6 +531,7 @@ fn build_all() {
+     }
+ 
+     #[test]
++    #[ignore]
+     fn build_with_empty_host() {
+         let config = configure(&[], &["C"]);
+         let build = Build::new(config);
+@@ -542,6 +559,7 @@ fn build_with_empty_host() {
+     }
+ 
+     #[test]
++    #[ignore]
+     fn test_with_no_doc_stage0() {
+         let mut config = configure(&["A"], &["A"]);
+         config.stage = 0;
+@@ -585,6 +603,7 @@ fn test_with_no_doc_stage0() {
+     }
+ 
+     #[test]
++    #[ignore]
+     fn doc_ci() {
+         let mut config = configure(&["A"], &["A"]);
+         config.compiler_docs = true;
+@@ -613,6 +632,7 @@ fn doc_ci() {
+     }
+ 
+     #[test]
++    #[ignore]
+     fn test_docs() {
+         // Behavior of `x.py test` doing various documentation tests.
+         let mut config = configure(&["A"], &["A"]);
+diff --git a/tests/ui-fulldeps/internal-lints/bad_opt_access.stderr b/tests/ui-fulldeps/internal-lints/bad_opt_access.stderr
+--- a/tests/ui-fulldeps/internal-lints/bad_opt_access.stderr 2023-01-10 10:47:33.000000000 -0800
++++ b/tests/ui-fulldeps/internal-lints/bad_opt_access.stderr 2023-01-20 03:49:06.575109271 -0800
+@@ -1,20 +1,11 @@
+-error: use `Session::split_debuginfo` instead of this field
+-  --> $DIR/bad_opt_access.rs:14:13
++error[E0463]: can't find crate for `rustc_macros` which `rustc_session` depends on
++  --> $DIR/bad_opt_access.rs:10:1
+    |
+-LL |     let _ = sess.opts.cg.split_debuginfo;
+-   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
++LL | extern crate rustc_session;
++   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate
+    |
+-note: the lint level is defined here
+-  --> $DIR/bad_opt_access.rs:8:9
+-   |
+-LL | #![deny(rustc::bad_opt_access)]
+-   |         ^^^^^^^^^^^^^^^^^^^^^
+-
+-error: use `Session::crate_types` instead of this field
+-  --> $DIR/bad_opt_access.rs:17:13
+-   |
+-LL |     let _ = sess.opts.crate_types;
+-   |             ^^^^^^^^^^^^^^^^^^^^^
++   = help: maybe you need to install the missing components with: `rustup component add rust-src rustc-dev llvm-tools-preview`
+ 
+-error: aborting due to 2 previous errors
++error: aborting due to previous error
+ 
++For more information about this error, try `rustc --explain E0463`.
+diff --git a/tests/ui/process/process-sigpipe.rs b/tests/ui/process/process-sigpipe.rs
+--- a/tests/ui/process/process-sigpipe.rs    2023-01-10 10:47:33.000000000 -0800
++++ b/tests/ui/process/process-sigpipe.rs    2023-01-27 01:07:05.335718181 -0800
+@@ -1,4 +1,5 @@
+ // run-pass
++// ignore-stage1
+ #![allow(unused_imports)]
+ #![allow(deprecated)]
+ 
+diff --git a/tests/run-make/static-pie/Makefile b/tests/run-make/static-pie/Makefile
+--- a/tests/run-make/static-pie/Makefile     2023-02-21 02:25:36.553233415 -0800
++++ b/tests/run-make/static-pie/Makefile     2023-02-21 02:19:45.848629908 -0800
+@@ -3,6 +3,7 @@ include ../../run-make-fulldeps/tools.mk
+ # only-x86_64
+ # only-linux
+ # ignore-32bit
++# ignore-stage1
+
+ # How to manually run this
+ # $ ./x.py test --target x86_64-unknown-linux-[musl,gnu] tests/run-make/static-pie
+diff --git a/tests/codegen/repr-transparent-aggregates-3.rs b/tests/codegen/repr-transparent-aggregates-3.rs
+index 0db17e6b13a..6e9cb7224c8 100644
+--- a/tests/codegen/repr-transparent-aggregates-3.rs
++++ b/tests/codegen/repr-transparent-aggregates-3.rs
+@@ -3,6 +3,7 @@
+ 
+ // only-mips64
+ // See repr-transparent.rs
++// ignore-stage1
+ 
+ #![feature(transparent_unions)]
+
+diff --git a/tests/codegen/abi-repr-ext.rs b/tests/codegen/abi-repr-ext.rs
+index 23ade3c7216..addd8a2ebdc 100644
+--- a/tests/codegen/abi-repr-ext.rs
++++ b/tests/codegen/abi-repr-ext.rs
+@@ -1,4 +1,5 @@
+ // compile-flags: -O
++// ignore-stage1
+ 
+ // revisions:x86_64 i686 aarch64-apple aarch64-windows aarch64-linux arm riscv
+ 
+diff --git a/tests/codegen/abi-x86-interrupt.rs b/tests/codegen/abi-x86-interrupt.rs
+index 928ad5a9bbd..5185edaae40 100644
+--- a/tests/codegen/abi-x86-interrupt.rs
++++ b/tests/codegen/abi-x86-interrupt.rs
+@@ -4,6 +4,7 @@
+ 
+ // needs-llvm-components: x86
+ // compile-flags: -C no-prepopulate-passes --target=x86_64-unknown-linux-gnu -Copt-level=0
++// ignore-stage1
+ 
+ #![crate_type = "lib"]
+ #![no_core]
+diff --git a/tests/codegen/branch-protection.rs b/tests/codegen/branch-protection.rs
+index 994c71b2619..5d83a29da74 100644
+--- a/tests/codegen/branch-protection.rs
++++ b/tests/codegen/branch-protection.rs
+@@ -7,6 +7,7 @@
+ // [LEAF] compile-flags: -Z branch-protection=pac-ret,leaf
+ // [BKEY] compile-flags: -Z branch-protection=pac-ret,b-key
+ // compile-flags: --target aarch64-unknown-linux-gnu
++// ignore-stage1
+ 
+ #![crate_type = "lib"]
+ #![feature(no_core, lang_items)]
+diff --git a/tests/codegen/catch-unwind.rs b/tests/codegen/catch-unwind.rs
+index b90ef104ce7..12d5d1451a2 100644
+--- a/tests/codegen/catch-unwind.rs
++++ b/tests/codegen/catch-unwind.rs
+@@ -10,6 +10,7 @@
+ // ignore-riscv64 FIXME
+ // On s390x the closure is also in another function
+ // ignore-s390x FIXME
++// ignore-stage1
+ 
+ #![crate_type = "lib"]
+ #![feature(c_unwind)]
+diff --git a/tests/codegen/cf-protection.rs b/tests/codegen/cf-protection.rs
+index ccbc863f571..f4281d87abf 100644
+--- a/tests/codegen/cf-protection.rs
++++ b/tests/codegen/cf-protection.rs
+@@ -8,6 +8,7 @@
+ // [return] compile-flags: -Z cf-protection=return
+ // [full] compile-flags: -Z cf-protection=full
+ // compile-flags: --target x86_64-unknown-linux-gnu
++// ignore-stage1
+ 
+ #![crate_type = "lib"]
+ #![feature(no_core, lang_items)]
+diff --git a/tests/codegen/enum-bounds-check-derived-idx.rs b/tests/codegen/enum-bounds-check-derived-idx.rs
+index aa66c2ed08e..db6c87c7338 100644
+--- a/tests/codegen/enum-bounds-check-derived-idx.rs
++++ b/tests/codegen/enum-bounds-check-derived-idx.rs
+@@ -1,7 +1,7 @@
+ // This test checks an optimization that is not guaranteed to work. This test case should not block
+ // a future LLVM update.
+ // compile-flags: -O
+-
++// ignore-stage1
+ #![crate_type = "lib"]
+ 
+ pub enum Bar {
+diff --git a/tests/codegen/force-unwind-tables.rs b/tests/codegen/force-unwind-tables.rs
+index 4c0a5602c6d..d5faf190290 100644
+--- a/tests/codegen/force-unwind-tables.rs
++++ b/tests/codegen/force-unwind-tables.rs
+@@ -1,5 +1,5 @@
+ // compile-flags: -C no-prepopulate-passes -C force-unwind-tables=y
+-
++// ignore-stage1
+ #![crate_type="lib"]
+ 
+ // CHECK: attributes #{{.*}} uwtable
+diff --git a/tests/codegen/intrinsic-no-unnamed-attr.rs b/tests/codegen/intrinsic-no-unnamed-attr.rs
+index c8a8e0b3e7a..f779f5cc27e 100644
+--- a/tests/codegen/intrinsic-no-unnamed-attr.rs
++++ b/tests/codegen/intrinsic-no-unnamed-attr.rs
+@@ -1,5 +1,5 @@
+ // compile-flags: -C no-prepopulate-passes
+-
++// ignore-stage1
+ #![feature(intrinsics)]
+ 
+ extern "rust-intrinsic" {
+diff --git a/tests/codegen/issues/issue-103840.rs b/tests/codegeni/issues/issue-103840.rs
+index f19d7031bb3..92408e75964 100644
+--- a/tests/codegen/issues/issue-103840.rs
++++ b/tests/codegen/issues/issue-103840.rs
+@@ -1,5 +1,6 @@
+ // compile-flags: -O
+ #![crate_type = "lib"]
++// ignore-stage1
+ 
+ pub fn foo(t: &mut Vec<usize>) {
+     // CHECK-NOT: __rust_dealloc
+diff --git a/tests/codegen/issues/issue-47278.rs b/tests/codegen/issues/issue-47278.rs
+index 9076274f45e..de7203e139b 100644
+--- a/tests/codegen/issues/issue-47278.rs
++++ b/tests/codegen/issues/issue-47278.rs
+@@ -1,5 +1,6 @@
+ // -C no-prepopulate-passes
+ #![crate_type="staticlib"]
++// ignore-stage1
+ 
+ #[repr(C)]
+ pub struct Foo(u64);
+diff --git a/tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs b/tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs
+index 1ad05906e21..8df862aeee5 100644
+--- a/tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs
++++ b/tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs
+@@ -2,6 +2,7 @@
+ // index is part of a (x | y) < C style condition
+ 
+ // compile-flags: -O
++// ignore-stage1
+ 
+ #![crate_type = "lib"]
+ 
+diff --git a/tests/codegen/lifetime_start_end.rs b/tests/codegen/lifetime_start_end.rs
+index 471a0b8cedd..356650de0c1 100644
+--- a/tests/codegen/lifetime_start_end.rs
++++ b/tests/codegen/lifetime_start_end.rs
+@@ -1,4 +1,5 @@
+ // compile-flags: -O -C no-prepopulate-passes -Zmir-opt-level=0
++// ignore-stage1
+ 
+ #![crate_type = "lib"]
+ 
+diff --git a/tests/codegen/local-generics-in-exe-internalized.rs b/tests/codegen/local-generics-in-exe-internalized.rs
+index 449c5ca75fc..746a7ed1b6f 100644
+--- a/tests/codegen/local-generics-in-exe-internalized.rs
++++ b/tests/codegen/local-generics-in-exe-internalized.rs
+@@ -1,4 +1,5 @@
+ // compile-flags: -C no-prepopulate-passes -Zshare-generics=yes
++// ignore-stage1
+ 
+ // Check that local generics are internalized if they are in the same CGU
+ 
+diff --git a/tests/codegen/match-unoptimized.rs b/tests/codegen/match-unoptimized.rs
+index 78ea4f9b409..23b2c62bd38 100644
+--- a/tests/codegen/match-unoptimized.rs
++++ b/tests/codegen/match-unoptimized.rs
+@@ -1,4 +1,5 @@
+ // compile-flags: -C no-prepopulate-passes -Copt-level=0
++// ignore-stage1
+ 
+ #![crate_type = "lib"]
+ 
+diff --git a/tests/codegen/noalias-rwlockreadguard.rs b/tests/codegen/noalias-rwlockreadguard.rs
+index 7f7b46c85a8..a32910da3e7 100644
+--- a/tests/codegen/noalias-rwlockreadguard.rs
++++ b/tests/codegen/noalias-rwlockreadguard.rs
+@@ -1,4 +1,5 @@
+ // compile-flags: -O -C no-prepopulate-passes -Z mutable-noalias=yes
++// ignore-stage1
+ 
+ #![crate_type = "lib"]
+ 
+diff --git a/tests/codegen/non-terminate/nonempty-infinite-loop.rs b/tests/codegen/non-terminate/nonempty-infinite-loop.rs
+index 5e25e04fc24..fce094f7efd 100644
+--- a/tests/codegen/non-terminate/nonempty-infinite-loop.rs
++++ b/tests/codegen/non-terminate/nonempty-infinite-loop.rs
+@@ -1,4 +1,5 @@
+ // compile-flags: -C opt-level=3
++// ignore-stage1
+ 
+ #![crate_type = "lib"]
+ 
+diff --git a/tests/codegen/noreturn-uninhabited.rs b/tests/codegen/noreturn-uninhabited.rs
+index 49f93cf62c7..2da42faeabd 100644
+--- a/tests/codegen/noreturn-uninhabited.rs
++++ b/tests/codegen/noreturn-uninhabited.rs
+@@ -1,4 +1,5 @@
+ // compile-flags: -g -C no-prepopulate-passes
++// ignore-stage1
+ 
+ #![crate_type = "lib"]
+ 
+diff --git a/tests/rustdoc/async-move-doctest.rs b/tests/rustdoc/async-move-doctest.rs
+index 2ba61388c9e..402c5bbaaf7 100644
+--- a/tests/rustdoc/async-move-doctest.rs
++++ b/tests/rustdoc/async-move-doctest.rs
+@@ -1,5 +1,6 @@
+ // compile-flags:--test
+ // edition:2018
++// ignore-stage1
+ 
+ // Prior to setting the default edition for the doctest pre-parser,
+ // this doctest would fail due to a fatal parsing error.
+diff --git a/tests/rustdoc/async-trait.rs b/tests/rustdoc/async-trait.rs
+index a473e467473..df3be5adc17 100644
+--- a/tests/rustdoc/async-trait.rs
++++ b/tests/rustdoc/async-trait.rs
+@@ -1,5 +1,6 @@
+ // aux-build:async-trait-dep.rs
+ // edition:2021
++// ignore-stage1
+ 
+ #![feature(async_fn_in_trait)]
+ #![allow(incomplete_features)]
+diff --git a/tests/rustdoc/check-source-code-urls-to-def.rs b/tests/rustdoc/check-source-code-urls-to-def.rs
+index 41b9d41fa44..0805a07a0c9 100644
+--- a/tests/rustdoc/check-source-code-urls-to-def.rs
++++ b/tests/rustdoc/check-source-code-urls-to-def.rs
+@@ -1,6 +1,7 @@
+ // compile-flags: -Zunstable-options --generate-link-to-definition
+ // aux-build:source_code.rs
+ // build-aux-docs
++// ignore-stage1
+ 
+ #![feature(rustc_attrs)]
+ 
+diff --git a/tests/rustdoc/comment-in-doctest.rs b/tests/rustdoc/comment-in-doctest.rs
+index 5691d173569..a57c0e1f3bd 100644
+--- a/tests/rustdoc/comment-in-doctest.rs
++++ b/tests/rustdoc/comment-in-doctest.rs
+@@ -1,4 +1,5 @@
+ // compile-flags:--test
++// ignore-stage1
+ 
+ // comments, both doc comments and regular ones, used to trick rustdoc's doctest parser into
+ // thinking that everything after it was part of the regular program. combined with the librustc_ast
+diff --git a/tests/rustdoc/const-generics/const-generics-docs.rs b/tests/rustdoc/const-generics/const-generics-docs.rs
+index 828486a41d4..02a934996f8 100644
+--- a/tests/rustdoc/const-generics/const-generics-docs.rs
++++ b/tests/rustdoc/const-generics/const-generics-docs.rs
+@@ -1,5 +1,7 @@
+ // edition:2018
+ // aux-build: extern_crate.rs
++// ignore-stage1
++
+ #![crate_name = "foo"]
+ 
+ extern crate extern_crate;
+diff --git a/tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs b/tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs
+index d02bc4fe712..6f432da06bf 100644
+--- a/tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs
++++ b/tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs
+@@ -1,5 +1,6 @@
+ // Regression test for issue #95717
+ // Hide cross-crate `#[doc(hidden)]` associated items in trait impls.
++// ignore-stage1
+ 
+ #![crate_name = "dependent"]
+ // edition:2021
+diff --git a/tests/rustdoc/cross-crate-hidden-impl-parameter.rs b/tests/rustdoc/cross-crate-hidden-impl-parameter.rs
+index eb2ced2f7f4..08a6f8b27f3 100644
+--- a/tests/rustdoc/cross-crate-hidden-impl-parameter.rs
++++ b/tests/rustdoc/cross-crate-hidden-impl-parameter.rs
+@@ -1,4 +1,6 @@
+ // Issue #86448: test for cross-crate `doc(hidden)`
++// ignore-stage1
++
+ #![crate_name = "foo"]
+ 
+ // aux-build:cross-crate-hidden-impl-parameter.rs
+diff --git a/tests/rustdoc/cross-crate-links.rs b/tests/rustdoc/cross-crate-links.rs
+index 7c736a4cc11..a0be9a367c6 100644
+--- a/tests/rustdoc/cross-crate-links.rs
++++ b/tests/rustdoc/cross-crate-links.rs
+@@ -1,5 +1,6 @@
+ // aux-build:all-item-types.rs
+ // build-aux-docs
++// ignore-stage1
+ 
+ #![crate_name = "foo"]
+ 
+diff --git a/tests/rustdoc/cross-crate-primitive-doc.rs b/tests/rustdoc/cross-crate-primitive-doc.rs
+index 4ba296ee04a..51fa62ffb53 100644
+--- a/tests/rustdoc/cross-crate-primitive-doc.rs
++++ b/tests/rustdoc/cross-crate-primitive-doc.rs
+@@ -1,6 +1,7 @@
+ // aux-build:primitive-doc.rs
+ // compile-flags: --extern-html-root-url=primitive_doc=../ -Z unstable-options
+ // only-linux
++// ignore-stage1
+ 
+ #![feature(no_core)]
+ #![no_core]
+diff --git a/tests/rustdoc/doctest-manual-crate-name.rs b/tests/rustdoc/doctest-manual-crate-name.rs
+index 3a5e3734e14..2b4b19b4708 100644
+--- a/tests/rustdoc/doctest-manual-crate-name.rs
++++ b/tests/rustdoc/doctest-manual-crate-name.rs
+@@ -1,4 +1,5 @@
+ // compile-flags:--test
++// ignore-stage1
+ 
+ //! ```
+ //! #![crate_name="asdf"]
+diff --git a/tests/rustdoc/edition-doctest.rs b/tests/rustdoc/edition-doctest.rs
+index 6de25996bed..4acb562a29c 100644
+--- a/tests/rustdoc/edition-doctest.rs
++++ b/tests/rustdoc/edition-doctest.rs
+@@ -1,4 +1,5 @@
+ // compile-flags:--test
++// ignore-stage1
+ 
+ /// ```rust,edition2018
+ /// #![feature(try_blocks)]
+diff --git a/tests/rustdoc/edition-flag.rs b/tests/rustdoc/edition-flag.rs
+index e54c7d2969b..4cee5e1a3cf 100644
+--- a/tests/rustdoc/edition-flag.rs
++++ b/tests/rustdoc/edition-flag.rs
+@@ -1,5 +1,6 @@
+ // compile-flags:--test
+ // edition:2018
++// ignore-stage1
+ 
+ /// ```rust
+ /// fn main() {
+diff --git a/tests/rustdoc/elided-lifetime.rs b/tests/rustdoc/elided-lifetime.rs
+index 006132ef8aa..75ac6496dfb 100644
+--- a/tests/rustdoc/elided-lifetime.rs
++++ b/tests/rustdoc/elided-lifetime.rs
+@@ -4,6 +4,7 @@
+ //
+ // Since Rust 2018 we encourage writing out <'_> explicitly to make it clear
+ // that borrowing is occurring. Make sure rustdoc is following the same idiom.
++// ignore-stage1
+ 
+ #![crate_name = "foo"]
+ 
+diff --git a/tests/rustdoc/extern-html-root-url.rs b/tests/rustdoc/extern-html-root-url.rs
+index 17eedcf2ab8..429bf78b9d5 100644
+--- a/tests/rustdoc/extern-html-root-url.rs
++++ b/tests/rustdoc/extern-html-root-url.rs
+@@ -2,6 +2,7 @@
+ // aux-build:html_root.rs
+ // aux-build:no_html_root.rs
+ // NOTE: intentionally does not build any auxiliary docs
++// ignore-stage1
+ 
+ extern crate html_root;
+ extern crate no_html_root;
+diff --git a/tests/rustdoc/extern-impl-trait.rs b/tests/rustdoc/extern-impl-trait.rs
+index 8ab026afd1b..c47d6802211 100644
+--- a/tests/rustdoc/extern-impl-trait.rs
++++ b/tests/rustdoc/extern-impl-trait.rs
+@@ -1,4 +1,5 @@
+ // aux-build:extern-impl-trait.rs
++// ignore-stage1
+ 
+ #![crate_name = "foo"]
+ 
+diff --git a/tests/rustdoc/external-macro-src.rs b/tests/rustdoc/external-macro-src.rs
+index 359551ab78d..86499a0bf2e 100644
+--- a/tests/rustdoc/external-macro-src.rs
++++ b/tests/rustdoc/external-macro-src.rs
+@@ -1,4 +1,5 @@
+ // aux-build:external-macro-src.rs
++// ignore-stage1
+ 
+ #![crate_name = "foo"]
+ 
+diff --git a/tests/rustdoc/hide-unstable-trait.rs b/tests/rustdoc/hide-unstable-trait.rs
+index 0bf7cabc43b..9ceeccfead8 100644
+--- a/tests/rustdoc/hide-unstable-trait.rs
++++ b/tests/rustdoc/hide-unstable-trait.rs
+@@ -1,4 +1,5 @@
+ // aux-build:unstable-trait.rs
++// ignore-stage1
+ 
+ #![crate_name = "foo"]
+ #![feature(private_trait)]
+diff --git a/tests/rustdoc/inline_cross/add-docs.rs b/tests/rustdoc/inline_cross/add-docs.rs
+index a1124d2094c..a11b866647d 100644
+--- a/tests/rustdoc/inline_cross/add-docs.rs
++++ b/tests/rustdoc/inline_cross/add-docs.rs
+@@ -1,4 +1,5 @@
+ // aux-build:add-docs.rs
++// ignore-stage1
+ 
+ extern crate inner;
+ 
+diff --git a/tests/rustdoc/inline_cross/default-trait-method.rs b/tests/rustdoc/inline_cross/default-trait-method.rs
+index a4ec73a127d..8db38c99791 100644
+--- a/tests/rustdoc/inline_cross/default-trait-method.rs
++++ b/tests/rustdoc/inline_cross/default-trait-method.rs
+@@ -1,4 +1,5 @@
+ // aux-build:default-trait-method.rs
++// ignore-stage1
+ 
+ extern crate foo;
+ 
+diff --git a/tests/rustdoc/inline_cross/impl_trait.rs b/tests/rustdoc/inline_cross/impl_trait.rs
+index b6a1552bc00..85377b19e0d 100644
+--- a/tests/rustdoc/inline_cross/impl_trait.rs
++++ b/tests/rustdoc/inline_cross/impl_trait.rs
+@@ -1,5 +1,6 @@
+ // aux-build:impl_trait_aux.rs
+ // edition:2018
++// ignore-stage1
+ 
+ extern crate impl_trait_aux;
+ 
+diff --git a/tests/rustdoc/inline_cross/issue-24183.rs b/tests/rustdoc/inline_cross/issue-24183.rs
+index 751a32385e8..d25211cb2b0 100644
+--- a/tests/rustdoc/inline_cross/issue-24183.rs
++++ b/tests/rustdoc/inline_cross/issue-24183.rs
+@@ -1,5 +1,6 @@
+ #![crate_type = "lib"]
+ #![crate_name = "usr"]
++// ignore-stage1
+ 
+ // aux-crate:issue_24183=issue-24183.rs
+ // edition: 2021
+diff --git a/tests/rustdoc/inline_cross/macros.rs b/tests/rustdoc/inline_cross/macros.rs
+index a41b9c5b197..1b4bccee176 100644
+--- a/tests/rustdoc/inline_cross/macros.rs
++++ b/tests/rustdoc/inline_cross/macros.rs
+@@ -1,5 +1,6 @@
+ // aux-build:macros.rs
+ // build-aux-docs
++// ignore-stage1
+ 
+ #![feature(macro_test)]
+ #![crate_name = "foo"]
+diff --git a/tests/rustdoc/inline_cross/trait-vis.rs b/tests/rustdoc/inline_cross/trait-vis.rs
+index b646babacc5..b77e966afe3 100644
+--- a/tests/rustdoc/inline_cross/trait-vis.rs
++++ b/tests/rustdoc/inline_cross/trait-vis.rs
+@@ -1,4 +1,5 @@
+ // aux-build:trait-vis.rs
++// ignore-stage1
+ 
+ extern crate inner;
+ 
+diff --git a/tests/rustdoc/inline_cross/use_crate.rs b/tests/rustdoc/inline_cross/use_crate.rs
+index 00e0f041c56..c5bf6010d93 100644
+--- a/tests/rustdoc/inline_cross/use_crate.rs
++++ b/tests/rustdoc/inline_cross/use_crate.rs
+@@ -3,6 +3,7 @@
+ // build-aux-docs
+ // edition:2018
+ // compile-flags:--extern use_crate --extern use_crate_2
++// ignore-stage1
+ 
+ // During the buildup to Rust 2018, rustdoc would eagerly inline `pub use some_crate;` as if it
+ // were a module, so we changed it to make `pub use`ing crate roots remain as a `pub use` statement
+diff --git a/tests/rustdoc/intra-doc-crate/self.rs b/tests/rustdoc/intra-doc-crate/self.rs
+index 8c36a7fa002..848e17a18a1 100644
+--- a/tests/rustdoc/intra-doc-crate/self.rs
++++ b/tests/rustdoc/intra-doc-crate/self.rs
+@@ -1,5 +1,6 @@
+ // aux-build:self.rs
+ // build-aux-docs
++// ignore-stage1
+ 
+ extern crate cross_crate_self;
+ 
+diff --git a/tests/rustdoc/intra-doc/cross-crate/additional_doc.rs b/tests/rustdoc/intra-doc/cross-crate/additional_doc.rs
+index e52fb9b1c9f..765ad78fb4d 100644
+--- a/tests/rustdoc/intra-doc/cross-crate/additional_doc.rs
++++ b/tests/rustdoc/intra-doc/cross-crate/additional_doc.rs
+@@ -1,5 +1,7 @@
+ // aux-build:additional_doc.rs
+ // build-aux-docs
++// ignore-stage1
++
+ #![deny(rustdoc::broken_intra_doc_links)]
+ 
+ extern crate my_rand;
+diff --git a/tests/rustdoc/intra-doc/cross-crate/basic.rs b/tests/rustdoc/intra-doc/cross-crate/basic.rs
+index ad7454918b4..a959a15a672 100644
+--- a/tests/rustdoc/intra-doc/cross-crate/basic.rs
++++ b/tests/rustdoc/intra-doc/cross-crate/basic.rs
+@@ -1,5 +1,7 @@
+ // aux-build:intra-doc-basic.rs
+ // build-aux-docs
++// ignore-stage1
++
+ #![deny(rustdoc::broken_intra_doc_links)]
+ 
+ // from https://github.com/rust-lang/rust/issues/65983
+diff --git a/tests/rustdoc/intra-doc/cross-crate/crate.rs b/tests/rustdoc/intra-doc/cross-crate/crate.rs
+index edf544708b6..735847bcbb5 100644
+--- a/tests/rustdoc/intra-doc/cross-crate/crate.rs
++++ b/tests/rustdoc/intra-doc/cross-crate/crate.rs
+@@ -1,5 +1,7 @@
+ // aux-build:intra-link-cross-crate-crate.rs
+ // build-aux-docs
++// ignore-stage1
++
+ #![crate_name = "outer"]
+ extern crate inner;
+ // @has outer/fn.f.html '//a[@href="../inner/fn.g.html"]' "crate::g"
+diff --git a/tests/rustdoc/intra-doc/cross-crate/hidden.rs b/tests/rustdoc/intra-doc/cross-crate/hidden.rs
+index 4f7d075ba48..d7ffed2d19d 100644
+--- a/tests/rustdoc/intra-doc/cross-crate/hidden.rs
++++ b/tests/rustdoc/intra-doc/cross-crate/hidden.rs
+@@ -1,5 +1,7 @@
+ // aux-build:hidden.rs
+ // build-aux-docs
++// ignore-stage1
++
+ #![deny(rustdoc::broken_intra_doc_links)]
+ 
+ // tests https://github.com/rust-lang/rust/issues/73363
+diff --git a/tests/rustdoc/intra-doc/cross-crate/macro.rs b/tests/rustdoc/intra-doc/cross-crate/macro.rs
+index 32f0a55d3c6..31add14b3b6 100644
+--- a/tests/rustdoc/intra-doc/cross-crate/macro.rs
++++ b/tests/rustdoc/intra-doc/cross-crate/macro.rs
+@@ -1,6 +1,8 @@
+ // aux-build:macro_inner.rs
+ // aux-build:proc_macro.rs
+ // build-aux-docs
++// ignore-stage1
++
+ #![deny(rustdoc::broken_intra_doc_links)]
+ extern crate macro_inner;
+ extern crate proc_macro_inner;
+diff --git a/tests/rustdoc/intra-doc/cross-crate/module.rs b/tests/rustdoc/intra-doc/cross-crate/module.rs
+index fde9322657d..72e55a83007 100644
+--- a/tests/rustdoc/intra-doc/cross-crate/module.rs
++++ b/tests/rustdoc/intra-doc/cross-crate/module.rs
+@@ -1,6 +1,8 @@
+ // outer.rs
+ // aux-build: module.rs
+ // build-aux-docs
++// ignore-stage1
++
+ #![deny(rustdoc::broken_intra_doc_links)]
+ extern crate module_inner;
+ // @has 'module/bar/index.html' '//a[@href="../../module_inner/trait.SomeTrait.html"]' 'SomeTrait'
+diff --git a/tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs b/tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs
+index 577fe78a508..1da901cd8b8 100644
+--- a/tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs
++++ b/tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs
+@@ -1,5 +1,7 @@
+ // aux-build:submodule-inner.rs
+ // build-aux-docs
++// ignore-stage1
++
+ #![deny(rustdoc::broken_intra_doc_links)]
+ 
+ extern crate a;
+diff --git a/tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs b/tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs
+index d0c0b7e85ae..39c42c5a684 100644
+--- a/tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs
++++ b/tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs
+@@ -1,5 +1,7 @@
+ // aux-build:submodule-outer.rs
+ // edition:2018
++// ignore-stage1
++
+ #![deny(rustdoc::broken_intra_doc_links)]
+ 
+ extern crate bar as bar_;
+diff --git a/tests/rustdoc/intra-doc/cross-crate/traits.rs b/tests/rustdoc/intra-doc/cross-crate/traits.rs
+index 7b9554bfdb0..0417a5f4537 100644
+--- a/tests/rustdoc/intra-doc/cross-crate/traits.rs
++++ b/tests/rustdoc/intra-doc/cross-crate/traits.rs
+@@ -1,5 +1,7 @@
+ // aux-build:traits.rs
+ // build-aux-docs
++// ignore-stage1
++
+ #![deny(rustdoc::broken_intra_doc_links)]
+ 
+ extern crate inner;
+diff --git a/tests/rustdoc/intra-doc/extern-builtin-type-impl.rs b/tests/rustdoc/intra-doc/extern-builtin-type-impl.rs
+index 7bb1ded3f3c..994ece708ca 100644
+--- a/tests/rustdoc/intra-doc/extern-builtin-type-impl.rs
++++ b/tests/rustdoc/intra-doc/extern-builtin-type-impl.rs
+@@ -1,6 +1,7 @@
+ // Reexport of a structure that derefs to a type with lang item impls having doc links in their
+ // comments. The doc link points to an associated item, so we check that traits in scope for that
+ // link are populated.
++// ignore-stage1
+ 
+ // aux-build:extern-builtin-type-impl-dep.rs
+ 
+diff --git a/tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs b/tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs
+index ad50887e922..69d5aa1717a 100644
+--- a/tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs
++++ b/tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs
+@@ -7,6 +7,7 @@
+ // aux-crate:priv:empty2=empty2.rs
+ // build-aux-docs
+ // compile-flags:-Z unstable-options --edition 2018
++// ignore-stage1
+ 
+ // @has extern_crate_only_used_in_link/index.html
+ // @has - '//a[@href="../issue_66159_1/struct.Something.html"]' 'issue_66159_1::Something'
+diff --git a/tests/rustdoc/intra-doc/extern-crate.rs b/tests/rustdoc/intra-doc/extern-crate.rs
+index 4e4438dea03..b6793531515 100644
+--- a/tests/rustdoc/intra-doc/extern-crate.rs
++++ b/tests/rustdoc/intra-doc/extern-crate.rs
+@@ -3,6 +3,7 @@
+ // When loading `extern crate` statements, we would pull in their docs at the same time, even
+ // though they would never actually get displayed. This tripped intra-doc-link resolution failures,
+ // for items that aren't under our control, and not actually getting documented!
++// ignore-stage1
+ 
+ #![deny(rustdoc::broken_intra_doc_links)]
+ 
+diff --git a/tests/rustdoc/intra-doc/extern-inherent-impl.rs b/tests/rustdoc/intra-doc/extern-inherent-impl.rs
+index 2e41c2214f4..8851071adbd 100644
+--- a/tests/rustdoc/intra-doc/extern-inherent-impl.rs
++++ b/tests/rustdoc/intra-doc/extern-inherent-impl.rs
+@@ -1,5 +1,6 @@
+ // Reexport of a structure with public inherent impls having doc links in their comments. The doc
+ // link points to an associated item, so we check that traits in scope for that link are populated.
++// ignore-stage1
+ 
+ // aux-build:extern-inherent-impl-dep.rs
+ 
+diff --git a/tests/rustdoc/intra-doc/extern-reference-link.rs b/tests/rustdoc/intra-doc/extern-reference-link.rs
+index bad6ec75579..43cf0c23e8b 100644
+--- a/tests/rustdoc/intra-doc/extern-reference-link.rs
++++ b/tests/rustdoc/intra-doc/extern-reference-link.rs
+@@ -1,5 +1,6 @@
+ // compile-flags: --extern pub_struct
+ // aux-build:pub-struct.rs
++// ignore-stage1
+ 
+ /// [SomeStruct]
+ ///
+diff --git a/tests/rustdoc/intra-doc/issue-103463.rs b/tests/rustdoc/intra-doc/issue-103463.rs
+index 4adf8a9a8a4..3b965529577 100644
+--- a/tests/rustdoc/intra-doc/issue-103463.rs
++++ b/tests/rustdoc/intra-doc/issue-103463.rs
+@@ -1,6 +1,7 @@
+ // The `Trait` is not pulled into the crate resulting in doc links in its methods being resolved.
+ 
+ // aux-build:issue-103463-aux.rs
++// ignore-stage1
+ 
+ extern crate issue_103463_aux;
+ use issue_103463_aux::Trait;
+diff --git a/tests/rustdoc/intra-doc/issue-104145.rs b/tests/rustdoc/intra-doc/issue-104145.rs
+index 9ce36740d60..74c790ddd45 100644
+--- a/tests/rustdoc/intra-doc/issue-104145.rs
++++ b/tests/rustdoc/intra-doc/issue-104145.rs
+@@ -1,6 +1,7 @@
+ // Doc links in `Trait`'s methods are resolved because it has a local impl.
+ 
+ // aux-build:issue-103463-aux.rs
++// ignore-stage1
+ 
+ extern crate issue_103463_aux;
+ use issue_103463_aux::Trait;
+diff --git a/tests/rustdoc/intra-doc/issue-66159.rs b/tests/rustdoc/intra-doc/issue-66159.rs
+index 56742b39790..64ef5f3d07c 100644
+--- a/tests/rustdoc/intra-doc/issue-66159.rs
++++ b/tests/rustdoc/intra-doc/issue-66159.rs
+@@ -1,5 +1,6 @@
+ // aux-crate:priv:pub_struct=pub-struct.rs
+ // compile-flags:-Z unstable-options
++// ignore-stage1
+ 
+ // The issue was an ICE which meant that we never actually generated the docs
+ // so if we have generated the docs, we're okay.
+diff --git a/tests/rustdoc/intra-doc/pub-use.rs b/tests/rustdoc/intra-doc/pub-use.rs
+index 8a998496cf5..26109bc52fc 100644
+--- a/tests/rustdoc/intra-doc/pub-use.rs
++++ b/tests/rustdoc/intra-doc/pub-use.rs
+@@ -1,4 +1,5 @@
+ // aux-build: intra-link-pub-use.rs
++// ignore-stage1
+ #![deny(rustdoc::broken_intra_doc_links)]
+ #![crate_name = "outer"]
+ 
+diff --git a/tests/rustdoc/intra-doc/reexport-additional-docs.rs b/tests/rustdoc/intra-doc/reexport-additional-docs.rs
+index 64683bacd65..6ed63e4dd26 100644
+--- a/tests/rustdoc/intra-doc/reexport-additional-docs.rs
++++ b/tests/rustdoc/intra-doc/reexport-additional-docs.rs
+@@ -1,5 +1,7 @@
+ // aux-build:intra-link-reexport-additional-docs.rs
+ // build-aux-docs
++// ignore-stage1
++
+ #![crate_name = "foo"]
+ extern crate inner;
+ 
+diff --git a/tests/rustdoc/issue-18199.rs b/tests/rustdoc/issue-18199.rs
+index bc0c4a56502..1995fd2ec7d 100644
+--- a/tests/rustdoc/issue-18199.rs
++++ b/tests/rustdoc/issue-18199.rs
+@@ -1,4 +1,5 @@
+ // compile-flags:--test
++// ignore-stage1
+ 
+ #![doc(test(attr(feature(staged_api))))]
+ 
+diff --git a/tests/rustdoc/issue-23106.rs b/tests/rustdoc/issue-23106.rs
+index 8cda2fc3380..e7b5c1e28c5 100644
+--- a/tests/rustdoc/issue-23106.rs
++++ b/tests/rustdoc/issue-23106.rs
+@@ -1,4 +1,5 @@
+ // compile-flags:--test
++// ignore-stage1
+ 
+ /// ```
+ /// #
+diff --git a/tests/rustdoc/issue-23744.rs b/tests/rustdoc/issue-23744.rs
+index 642817396b2..780b131a842 100644
+--- a/tests/rustdoc/issue-23744.rs
++++ b/tests/rustdoc/issue-23744.rs
+@@ -1,4 +1,5 @@
+ // compile-flags:--test
++// ignore-stage1
+ 
+ /// Example of rustdoc incorrectly parsing <code>```rust,should_panic</code>.
+ ///
+diff --git a/tests/rustdoc/issue-25944.rs b/tests/rustdoc/issue-25944.rs
+index 49625294bbe..b6df4518de4 100644
+--- a/tests/rustdoc/issue-25944.rs
++++ b/tests/rustdoc/issue-25944.rs
+@@ -1,4 +1,5 @@
+ // compile-flags:--test
++// ignore-stage1
+ 
+ /// ```
+ /// let a = r#"
+diff --git a/tests/rustdoc/issue-30252.rs b/tests/rustdoc/issue-30252.rs
+index c3777362a66..a80f92dc754 100644
+--- a/tests/rustdoc/issue-30252.rs
++++ b/tests/rustdoc/issue-30252.rs
+@@ -1,4 +1,5 @@
+ // compile-flags:--test --cfg feature="bar"
++// ignore-stage1
+ 
+ /// ```rust
+ /// assert_eq!(cfg!(feature = "bar"), true);
+diff --git a/tests/rustdoc/issue-38129.rs b/tests/rustdoc/issue-38129.rs
+index 156d50fa52a..60ab5dd1885 100644
+--- a/tests/rustdoc/issue-38129.rs
++++ b/tests/rustdoc/issue-38129.rs
+@@ -1,4 +1,5 @@
+ // compile-flags:--test
++// ignore-stage1
+ 
+ // This file tests the source-partitioning behavior of rustdoc.
+ // Each test contains some code that should be put into the generated
+diff --git a/tests/rustdoc/issue-40936.rs b/tests/rustdoc/issue-40936.rs
+index 4d2e4c17b1f..8dcfc4068d3 100644
+--- a/tests/rustdoc/issue-40936.rs
++++ b/tests/rustdoc/issue-40936.rs
+@@ -1,5 +1,6 @@
+ // aux-build:issue-40936.rs
+ // build-aux-docs
++// ignore-stage1
+ 
+ #![crate_name = "foo"]
+ 
+diff --git a/tests/rustdoc/issue-43153.rs b/tests/rustdoc/issue-43153.rs
+index 0fe680f10af..8c67d64826a 100644
+--- a/tests/rustdoc/issue-43153.rs
++++ b/tests/rustdoc/issue-43153.rs
+@@ -1,5 +1,6 @@
+ // Test that `include!` in a doc test searches relative to the directory in
+ // which the test is declared.
++// ignore-stage1
+ 
+ // compile-flags:--test
+ 
+diff --git a/tests/rustdoc/issue-46727.rs b/tests/rustdoc/issue-46727.rs
+index 8cfc4827a7f..55f155e0219 100644
+--- a/tests/rustdoc/issue-46727.rs
++++ b/tests/rustdoc/issue-46727.rs
+@@ -1,4 +1,5 @@
+ // aux-build:issue-46727.rs
++// ignore-stage1
+ 
+ extern crate issue_46727;
+ 
+diff --git a/tests/rustdoc/issue-48377.rs b/tests/rustdoc/issue-48377.rs
+index c32bcf380ea..c196b77a3e7 100644
+--- a/tests/rustdoc/issue-48377.rs
++++ b/tests/rustdoc/issue-48377.rs
+@@ -1,4 +1,5 @@
+ // compile-flags:--test
++// ignore-stage1
+ 
+ //! This is a doc comment
+ //!
+diff --git a/tests/rustdoc/issue-48414.rs b/tests/rustdoc/issue-48414.rs
+index b35743d887b..e8ade910228 100644
+--- a/tests/rustdoc/issue-48414.rs
++++ b/tests/rustdoc/issue-48414.rs
+@@ -1,4 +1,5 @@
+ // aux-build:issue-48414.rs
++// ignore-stage1
+ 
+ // ICE when resolving paths for a trait that linked to another trait, when both were in an external
+ // crate
+diff --git a/tests/rustdoc/issue-53689.rs b/tests/rustdoc/issue-53689.rs
+index 832140e061b..9a40ea6bc1b 100644
+--- a/tests/rustdoc/issue-53689.rs
++++ b/tests/rustdoc/issue-53689.rs
+@@ -1,4 +1,5 @@
+ // aux-build:issue-53689.rs
++// ignore-stage1
+ 
+ #![crate_name = "foo"]
+ 
+diff --git a/tests/rustdoc/issue-54478-demo-allocator.rs b/tests/rustdoc/issue-54478-demo-allocator.rs
+index 4811f363bc9..f4d12f6f630 100644
+--- a/tests/rustdoc/issue-54478-demo-allocator.rs
++++ b/tests/rustdoc/issue-54478-demo-allocator.rs
+@@ -1,5 +1,6 @@
+ // Issue #54478: regression test showing that we can demonstrate
+ // `#[global_allocator]` in code blocks built by `rustdoc`.
++// ignore-stage1
+ //
+ // ## Background
+ //
+@@ -11,6 +12,7 @@
+ // Rather than try to revise the visbility semanics, we instead
+ // decided to change `rustdoc` to behave more like the compiler's
+ // default setting, by leaving off `-C prefer-dynamic`.
++// ignore-stage1
+ 
+ // compile-flags:--test
+ 
+diff --git a/tests/rustdoc/issue-57180.rs b/tests/rustdoc/issue-57180.rs
+index 14bd2b0fec0..5f89e5d42f5 100644
+--- a/tests/rustdoc/issue-57180.rs
++++ b/tests/rustdoc/issue-57180.rs
+@@ -1,4 +1,5 @@
+ // aux-build:issue-57180.rs
++// ignore-stage1
+ 
+ extern crate issue_57180;
+ use issue_57180::Trait;
+diff --git a/tests/rustdoc/issue-61592.rs b/tests/rustdoc/issue-61592.rs
+index 4b6c37b94aa..048487390bb 100644
+--- a/tests/rustdoc/issue-61592.rs
++++ b/tests/rustdoc/issue-61592.rs
+@@ -1,4 +1,5 @@
+ // aux-build:issue-61592.rs
++// ignore-stage1
+ 
+ extern crate foo;
+ 
+diff --git a/tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs b/tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs
+index 2700f2370ee..d883c03d7d2 100644
+--- a/tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs
++++ b/tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs
+@@ -1,4 +1,5 @@
+ // Regression test for ICE #73061
++// ignore-stage1
+ 
+ // aux-build:issue-73061.rs
+ 
+diff --git a/tests/rustdoc/issue-75588.rs b/tests/rustdoc/issue-75588.rs
+index 3b11059a755..e78cdfa236e 100644
+--- a/tests/rustdoc/issue-75588.rs
++++ b/tests/rustdoc/issue-75588.rs
+@@ -1,5 +1,6 @@
+ // aux-build:realcore.rs
+ // aux-build:real_gimli.rs
++// ignore-stage1
+ 
+ // Ensure unstably exported traits have their Implementors sections.
+ 
+diff --git a/tests/rustdoc/issue-85454.rs b/tests/rustdoc/issue-85454.rs
+index 5a49a9d0651..fd2f4f8b535 100644
+--- a/tests/rustdoc/issue-85454.rs
++++ b/tests/rustdoc/issue-85454.rs
+@@ -1,4 +1,5 @@
+ // aux-build:issue-85454.rs
++// ignore-stage1
+ // build-aux-docs
+ #![crate_name = "foo"]
+ 
+diff --git a/tests/rustdoc/issue-86620.rs b/tests/rustdoc/issue-86620.rs
+index ef15946ec50..675a12b4d14 100644
+--- a/tests/rustdoc/issue-86620.rs
++++ b/tests/rustdoc/issue-86620.rs
+@@ -1,4 +1,5 @@
+ // aux-build:issue-86620-1.rs
++// ignore-stage1
+ 
+ extern crate issue_86620_1;
+ 
+diff --git a/tests/rustdoc/macro_pub_in_module.rs b/tests/rustdoc/macro_pub_in_module.rs
+index 42f760cff6a..1a51aef9a8a 100644
+--- a/tests/rustdoc/macro_pub_in_module.rs
++++ b/tests/rustdoc/macro_pub_in_module.rs
+@@ -1,5 +1,6 @@
+ // aux-build:macro_pub_in_module.rs
+ // edition:2018
++// ignore-stage1
+ // build-aux-docs
+ 
+ //! See issue #74355
+diff --git a/tests/rustdoc/masked.rs b/tests/rustdoc/masked.rs
+index 875c026fd05..416d8fbabd0 100644
+--- a/tests/rustdoc/masked.rs
++++ b/tests/rustdoc/masked.rs
+@@ -1,4 +1,5 @@
+ // aux-build:masked.rs
++// ignore-stage1
+ 
+ #![feature(doc_masked)]
+ 
+diff --git a/tests/rustdoc/no-stack-overflow-25295.rs b/tests/rustdoc/no-stack-overflow-25295.rs
+index dd79f1e4baa..0bc58afa4cb 100644
+--- a/tests/rustdoc/no-stack-overflow-25295.rs
++++ b/tests/rustdoc/no-stack-overflow-25295.rs
+@@ -1,5 +1,6 @@
+ // Ensure this code doesn't stack overflow.
+ // aux-build:enum-primitive.rs
++// ignore-stage1
+ 
+ #[macro_use] extern crate enum_primitive;
+ 
+diff --git a/tests/rustdoc/normalize-assoc-item.rs b/tests/rustdoc/normalize-assoc-item.rs
+index c6fd5e1101e..945a31853f4 100644
+--- a/tests/rustdoc/normalize-assoc-item.rs
++++ b/tests/rustdoc/normalize-assoc-item.rs
+@@ -1,4 +1,5 @@
+ // ignore-tidy-linelength
++// ignore-stage1
+ // aux-build:normalize-assoc-item.rs
+ // build-aux-docs
+ // compile-flags:-Znormalize-docs
+diff --git a/tests/rustdoc/primitive-reexport.rs b/tests/rustdoc/primitive-reexport.rs
+index 10a8a47db52..ecdb4848265 100644
+--- a/tests/rustdoc/primitive-reexport.rs
++++ b/tests/rustdoc/primitive-reexport.rs
+@@ -1,5 +1,6 @@
+ // aux-build: primitive-reexport.rs
+ // compile-flags:--extern foo --edition 2018
++// ignore-stage1
+ 
+ #![crate_name = "bar"]
+ 
+diff --git a/tests/rustdoc/process-termination.rs b/tests/rustdoc/process-termination.rs
+index 32258792b6e..2236842afc9 100644
+--- a/tests/rustdoc/process-termination.rs
++++ b/tests/rustdoc/process-termination.rs
+@@ -1,4 +1,5 @@
+ // compile-flags:--test
++// ignore-stage1
+ 
+ /// A check of using various process termination strategies
+ ///
+diff --git a/tests/rustdoc/pub-extern-crate.rs b/tests/rustdoc/pub-extern-crate.rs
+index 26747a4d1ac..98b3068cfd5 100644
+--- a/tests/rustdoc/pub-extern-crate.rs
++++ b/tests/rustdoc/pub-extern-crate.rs
+@@ -1,4 +1,5 @@
+ // aux-build:pub-extern-crate.rs
++// ignore-stage1
+ 
+ // @has pub_extern_crate/index.html
+ // @!has - '//code' 'pub extern crate inner'
+diff --git a/tests/rustdoc/pub-use-extern-macros.rs b/tests/rustdoc/pub-use-extern-macros.rs
+index eefe6b4b073..f67ec499459 100644
+--- a/tests/rustdoc/pub-use-extern-macros.rs
++++ b/tests/rustdoc/pub-use-extern-macros.rs
+@@ -1,4 +1,5 @@
+ // aux-build:pub-use-extern-macros.rs
++// ignore-stage1
+ 
+ extern crate macros;
+ 
+diff --git a/tests/rustdoc/reexport-check.rs b/tests/rustdoc/reexport-check.rs
+index 5908d2150f2..9e3c825558e 100644
+--- a/tests/rustdoc/reexport-check.rs
++++ b/tests/rustdoc/reexport-check.rs
+@@ -1,4 +1,6 @@
+ // aux-build:reexport-check.rs
++// ignore-stage1
++
+ #![crate_name = "foo"]
+ 
+ extern crate reexport_check;
+diff --git a/tests/rustdoc/reexport-dep-foreign-fn.rs b/tests/rustdoc/reexport-dep-foreign-fn.rs
+index e7f5720d583..f09e2da12f8 100644
+--- a/tests/rustdoc/reexport-dep-foreign-fn.rs
++++ b/tests/rustdoc/reexport-dep-foreign-fn.rs
+@@ -1,4 +1,5 @@
+ // aux-build:all-item-types.rs
++// ignore-stage1
+ 
+ // This test is to ensure there is no problem on handling foreign functions
+ // coming from a dependency.
+diff --git a/tests/rustdoc/reexport-doc.rs b/tests/rustdoc/reexport-doc.rs
+index df2c889b4d5..52558b39068 100644
+--- a/tests/rustdoc/reexport-doc.rs
++++ b/tests/rustdoc/reexport-doc.rs
+@@ -1,4 +1,5 @@
+ // aux-build:reexport-doc-aux.rs
++// ignore-stage1
+ 
+ extern crate reexport_doc_aux as dep;
+ 
+diff --git a/tests/rustdoc/reexports-priv.rs b/tests/rustdoc/reexports-priv.rs
+index 571d7f06fdc..bec1096ad14 100644
+--- a/tests/rustdoc/reexports-priv.rs
++++ b/tests/rustdoc/reexports-priv.rs
+@@ -1,4 +1,5 @@
+ // aux-build: reexports.rs
++// ignore-stage1
+ // compile-flags: --document-private-items
+ 
+ #![crate_name = "foo"]
+diff --git a/tests/rustdoc/reexports.rs b/tests/rustdoc/reexports.rs
+index 3c51ac395af..018abbfd277 100644
+--- a/tests/rustdoc/reexports.rs
++++ b/tests/rustdoc/reexports.rs
+@@ -1,4 +1,5 @@
+ // aux-build: reexports.rs
++// ignore-stage1
+ 
+ #![crate_name = "foo"]
+ 
+diff --git a/tests/rustdoc/rustc-incoherent-impls.rs b/tests/rustdoc/rustc-incoherent-impls.rs
+index 3fdefbecc54..c8382a50679 100644
+--- a/tests/rustdoc/rustc-incoherent-impls.rs
++++ b/tests/rustdoc/rustc-incoherent-impls.rs
+@@ -1,4 +1,5 @@
+ // aux-build:incoherent-impl-types.rs
++// ignore-stage1
+ // build-aux-docs
+ 
+ #![crate_name = "foo"]
+diff --git a/tests/rustdoc/test_option_check/bar.rs b/tests/rustdoc/test_option_check/bar.rs
+index 50a182cf7e0..6f48c9c923b 100644
+--- a/tests/rustdoc/test_option_check/bar.rs
++++ b/tests/rustdoc/test_option_check/bar.rs
+@@ -1,5 +1,6 @@
+ // compile-flags: --test
+ // check-test-line-numbers-match
++// ignore-stage1
+ 
+ /// This looks like another awesome test!
+ ///
+diff --git a/tests/rustdoc/test_option_check/test.rs b/tests/rustdoc/test_option_check/test.rs
+index 964e8e37ed5..208bccafe4c 100644
+--- a/tests/rustdoc/test_option_check/test.rs
++++ b/tests/rustdoc/test_option_check/test.rs
+@@ -1,4 +1,5 @@
+ // compile-flags: --test
++// ignore-stage1
+ // check-test-line-numbers-match
+ 
+ pub mod bar;
+diff --git a/tests/rustdoc/trait-alias-mention.rs b/tests/rustdoc/trait-alias-mention.rs
+index 6da0dc68785..8916e1321c7 100644
+--- a/tests/rustdoc/trait-alias-mention.rs
++++ b/tests/rustdoc/trait-alias-mention.rs
+@@ -1,5 +1,6 @@
+ // aux-build:trait-alias-mention.rs
+ // build-aux-docs
++// ignore-stage1
+ 
+ #![crate_name = "foo"]
+ 
+diff --git a/tests/rustdoc/trait-visibility.rs b/tests/rustdoc/trait-visibility.rs
+index 8ba3ee03a74..9bd62dd5c0a 100644
+--- a/tests/rustdoc/trait-visibility.rs
++++ b/tests/rustdoc/trait-visibility.rs
+@@ -1,4 +1,5 @@
+ // aux-build:trait-visibility.rs
++// ignore-stage1
+ 
+ #![crate_name = "foo"]
+ 
+diff --git a/tests/rustdoc/unit-return.rs b/tests/rustdoc/unit-return.rs
+index 6ddfa0c4d5c..a144308a581 100644
+--- a/tests/rustdoc/unit-return.rs
++++ b/tests/rustdoc/unit-return.rs
+@@ -1,4 +1,5 @@
+ // aux-build:unit-return.rs
++// ignore-stage1
+ 
+ #![crate_name = "foo"]
+ 
+diff --git a/tests/ui-fulldeps/deriving-encodable-decodable-box.rs b/tests/ui-fulldeps/deriving-encodable-decodable-box.rs
+index 1c376f59e51..8f852db5efd 100644
+--- a/tests/ui-fulldeps/deriving-encodable-decodable-box.rs
++++ b/tests/ui-fulldeps/deriving-encodable-decodable-box.rs
+@@ -1,4 +1,5 @@
+ // run-pass
++// ignore-stage1
+ 
+ #![allow(unused_imports)]
+ #![feature(rustc_private)]
+diff --git a/tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs b/tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs
+index 844d40f2ecd..d0d530ac79f 100644
+--- a/tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs
++++ b/tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs
+@@ -1,4 +1,5 @@
+ // run-pass
++// ignore-stage1
+ 
+ #![allow(unused_imports)]
+ // This briefly tests the capability of `Cell` and `RefCell` to implement the
+diff --git a/tests/ui-fulldeps/deriving-global.rs b/tests/ui-fulldeps/deriving-global.rs
+index 214bb4368ff..7ff6e31f09e 100644
+--- a/tests/ui-fulldeps/deriving-global.rs
++++ b/tests/ui-fulldeps/deriving-global.rs
+@@ -1,4 +1,5 @@
+ // run-pass
++// ignore-stage1
+ 
+ #![feature(rustc_private)]
+ 
+diff --git a/tests/ui-fulldeps/deriving-hygiene.rs b/tests/ui-fulldeps/deriving-hygiene.rs
+index e1084a08fec..f18b703116a 100644
+--- a/tests/ui-fulldeps/deriving-hygiene.rs
++++ b/tests/ui-fulldeps/deriving-hygiene.rs
+@@ -1,4 +1,5 @@
+ // run-pass
++// ignore-stage1
+ 
+ #![allow(non_upper_case_globals)]
+ #![feature(rustc_private)]
+diff --git a/tests/ui-fulldeps/dropck_tarena_sound_drop.rs b/tests/ui-fulldeps/dropck_tarena_sound_drop.rs
+index ffad80171da..d60062be118 100644
+--- a/tests/ui-fulldeps/dropck_tarena_sound_drop.rs
++++ b/tests/ui-fulldeps/dropck_tarena_sound_drop.rs
+@@ -1,4 +1,5 @@
+ // run-pass
++// ignore-stage1
+ 
+ #![allow(unknown_lints)]
+ // Check that an arena (TypedArena) can carry elements whose drop
+diff --git a/tests/ui-fulldeps/empty-struct-braces-derive.rs b/tests/ui-fulldeps/empty-struct-braces-derive.rs
+index 10e8beaa7b1..29419f97aa1 100644
+--- a/tests/ui-fulldeps/empty-struct-braces-derive.rs
++++ b/tests/ui-fulldeps/empty-struct-braces-derive.rs
+@@ -1,5 +1,6 @@
+ // run-pass
+ // `#[derive(Trait)]` works for empty structs/variants with braces or parens.
++// ignore-stage1
+ 
+ #![feature(rustc_private)]
+ 
+diff --git a/tests/ui-fulldeps/issue-14021.rs b/tests/ui-fulldeps/issue-14021.rs
+index 309b5c4a03d..5b9fb023d85 100644
+--- a/tests/ui-fulldeps/issue-14021.rs
++++ b/tests/ui-fulldeps/issue-14021.rs
+@@ -1,4 +1,5 @@
+ // run-pass
++// ignore-stage1
+ 
+ #![allow(unused_mut)]
+ #![allow(unused_imports)]
+diff --git a/tests/ui-fulldeps/regions-mock-tcx.rs b/tests/ui-fulldeps/regions-mock-tcx.rs
+index 63975ef62c5..24e008bb76b 100644
+--- a/tests/ui-fulldeps/regions-mock-tcx.rs
++++ b/tests/ui-fulldeps/regions-mock-tcx.rs
+@@ -1,4 +1,5 @@
+ // run-pass
++// ignore-stage1
+ 
+ #![allow(dead_code)]
+ #![allow(unused_imports)]
+diff --git a/tests/ui-fulldeps/rustc_encodable_hygiene.rs b/tests/ui-fulldeps/rustc_encodable_hygiene.rs
+index 509a6b1d22c..ab5f4aed548 100644
+--- a/tests/ui-fulldeps/rustc_encodable_hygiene.rs
++++ b/tests/ui-fulldeps/rustc_encodable_hygiene.rs
+@@ -1,4 +1,5 @@
+ // run-pass
++// ignore-stage1
+ 
+ #![feature(rustc_private)]
+
+diff --git a/tests/run-make/cdylib-fewer-symbols/foo.rs b/tests/run-make/cdylib-fewer-symbols/foo.rs
+index af37bc8e953..2f080fb37b2 100644
+--- a/tests/run-make/cdylib-fewer-symbols/foo.rs
++++ b/tests/run-make/cdylib-fewer-symbols/foo.rs
+@@ -1,5 +1,5 @@
+ #![crate_type = "cdylib"]
+-
++#[ignore]
+ #[no_mangle]
+ pub extern "C" fn foo() -> u32 {
+     3
+diff --git a/tests/run-make/doctests-keep-binaries/t.rs b/tests/run-make/doctests-keep-binaries/t.rs
+index c38cf0a0b25..13b89c05e03 100644
+--- a/tests/run-make/doctests-keep-binaries/t.rs
++++ b/tests/run-make/doctests-keep-binaries/t.rs
+@@ -1,3 +1,4 @@
++// ignore-stage1
+ /// Fungle the foople.
+ /// ```
+ /// t::foople();
+diff --git a/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs b/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs
+index 260f5a7a64f..c05f9adf46b 100644
+--- a/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs
++++ b/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs
+@@ -2,6 +2,7 @@
+ // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
+ // check-pass
++// ignore-stage1
+ 
+ /// ```
+ /// #![deprecated(since = "5.2", note = "foo was rarely used. \
+diff --git a/tests/rustdoc-ui/issue-80992.rs b/tests/rustdoc-ui/issue-80992.rs
+index 80ff225b879..e589999ae29 100644
+--- a/tests/rustdoc-ui/issue-80992.rs
++++ b/tests/rustdoc-ui/issue-80992.rs
+@@ -2,6 +2,7 @@
+ // compile-flags:--test
+ // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
++// ignore-stage1
+ 
+ pub fn test() -> Result<(), ()> {
+     //! ```compile_fail
+diff --git a/tests/rustdoc-ui/no-run-flag.rs b/tests/rustdoc-ui/no-run-flag.rs
+index 181730eb416..33fa85d7d9d 100644
+--- a/tests/rustdoc-ui/no-run-flag.rs
++++ b/tests/rustdoc-ui/no-run-flag.rs
+@@ -4,6 +4,7 @@
+ // compile-flags:-Z unstable-options --test --no-run --test-args=--test-threads=1
+ // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
++// ignore-stage1
+ 
+ /// ```
+ /// let a = true;
+diff --git a/tests/rustdoc-ui/nocapture-fail.rs b/tests/rustdoc-ui/nocapture-fail.rs
+index 9a3fb592c63..9899183cdf6 100644
+--- a/tests/rustdoc-ui/nocapture-fail.rs
++++ b/tests/rustdoc-ui/nocapture-fail.rs
+@@ -3,6 +3,7 @@
+ // normalize-stderr-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
+ // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
++// ignore-stage1
+ 
+ /// ```compile_fail
+ /// fn foo() {
+diff --git a/tests/run-make/issue-22131/foo.rs b/tests/run-make/issue-22131/foo.rs
+index 33255d76879..56ffc4224e4 100644
+--- a/tests/run-make/issue-22131/foo.rs
++++ b/tests/run-make/issue-22131/foo.rs
+@@ -1,5 +1,6 @@
+ /// ```rust
+ /// assert_eq!(foo::foo(), 1);
+ /// ```
++// ignore-stage1
+ #[cfg(feature = "bar")]
+ pub fn foo() -> i32 { 1 }
+diff --git a/tests/rustdoc/auto-traits.rs b/tests/rustdoc/auto-traits.rs
+index 93d4bf2f656..b0eb5f1af7c 100644
+--- a/tests/rustdoc/auto-traits.rs
++++ b/tests/rustdoc/auto-traits.rs
+@@ -1,4 +1,5 @@
+ // aux-build:auto-traits.rs
++// ignore-stage1
+ 
+ #![feature(auto_traits)]
+ 
+diff --git a/tests/rustdoc/inline_cross/dyn_trait.rs b/tests/rustdoc/inline_cross/dyn_trait.rs
+index 649d98f7139..82f88a4713c 100644
+--- a/tests/rustdoc/inline_cross/dyn_trait.rs
++++ b/tests/rustdoc/inline_cross/dyn_trait.rs
+@@ -1,4 +1,5 @@
+ #![crate_name = "user"]
++// ignore-stage1
+ 
+ // aux-crate:dyn_trait=dyn_trait.rs
+ // edition:2021
+diff --git a/tests/ui/abi/stack-probes-lto.rs b/tests/ui/abi/stack-probes-lto.rs
+index 0dccb633df9..36e4d04ccaa 100644
+--- a/tests/ui/abi/stack-probes-lto.rs
++++ b/tests/ui/abi/stack-probes-lto.rs
+@@ -13,6 +13,7 @@
+ // ignore-fuchsia no exception handler registered for segfault
+ // compile-flags: -C lto
+ // no-prefer-dynamic
++// ignore-stage1
+ // ignore-nto Crash analysis impossible at SIGSEGV in QNX Neutrino
+ 
+ include!("stack-probes.rs");
+diff --git a/tests/ui/abi/stack-probes.rs b/tests/ui/abi/stack-probes.rs
+index 8137c92304d..9f4edca3caf 100644
+--- a/tests/ui/abi/stack-probes.rs
++++ b/tests/ui/abi/stack-probes.rs
+@@ -11,6 +11,7 @@
+ // ignore-sgx no processes
+ // ignore-fuchsia no exception handler registered for segfault
+ // ignore-nto Crash analysis impossible at SIGSEGV in QNX Neutrino
++// ignore-stage1
+ 
+ use std::env;
+ use std::mem::MaybeUninit;
+diff --git a/tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs b/tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs
+index 5a6283e9f13..c036f7f03e6 100644
+--- a/tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs
++++ b/tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs
+@@ -1,7 +1,7 @@
+ // Test that slice subslice patterns are correctly handled in const evaluation.
+ 
+ // run-pass
+-
++// ignore-stage1
+ #[derive(PartialEq, Debug, Clone)]
+ struct N(u8);
+ 
+diff --git a/tests/ui/asm/x86_64/sym.rs b/tests/ui/asm/x86_64/sym.rs
+index 93ef4f09062..6b076924bda 100644
+--- a/tests/ui/asm/x86_64/sym.rs
++++ b/tests/ui/asm/x86_64/sym.rs
+@@ -2,6 +2,7 @@
+ // only-linux
+ // needs-asm-support
+ // run-pass
++// ignore-stage1
+ 
+ #![feature(thread_local)]
+ 
+diff --git a/tests/ui/associated-type-bounds/fn-apit.rs b/tests/ui/associated-type-bounds/fn-apit.rs
+index 3c9f511338f..e8fd5fc3c3e 100644
+--- a/tests/ui/associated-type-bounds/fn-apit.rs
++++ b/tests/ui/associated-type-bounds/fn-apit.rs
+@@ -1,6 +1,6 @@
+ // run-pass
+ // aux-build:fn-aux.rs
+-
++// ignore-stage1
+ #![allow(unused)]
+ #![feature(associated_type_bounds)]
+ 
+diff --git a/tests/ui/associated-type-bounds/fn-dyn-apit.rs b/tests/ui/associated-type-bounds/fn-dyn-apit.rs
+index c4e8092c211..7c690f42846 100644
+--- a/tests/ui/associated-type-bounds/fn-dyn-apit.rs
++++ b/tests/ui/associated-type-bounds/fn-dyn-apit.rs
+@@ -1,6 +1,7 @@
+ // run-pass
+ // aux-build:fn-dyn-aux.rs
+ 
++// ignore-stage1
+ #![allow(unused)]
+ #![feature(associated_type_bounds)]
+ 
+diff --git a/tests/ui/associated-type-bounds/fn-wrap-apit.rs b/tests/ui/associated-type-bounds/fn-wrap-apit.rs
+index 96df13e372a..b1df6e867f2 100644
+--- a/tests/ui/associated-type-bounds/fn-wrap-apit.rs
++++ b/tests/ui/associated-type-bounds/fn-wrap-apit.rs
+@@ -1,6 +1,7 @@
+ // run-pass
+ // aux-build:fn-aux.rs
+ 
++// ignore-stage1
+ #![feature(associated_type_bounds)]
+ #![allow(dead_code)]
+ 
+diff --git a/tests/ui/structs-enums/multiple-reprs.rs b/tests/ui/structs-enums/multiple-reprs.rs
+index 4be503a0ef4..2cf0875fc5c 100644
+--- a/tests/ui/structs-enums/multiple-reprs.rs
++++ b/tests/ui/structs-enums/multiple-reprs.rs
+@@ -1,4 +1,5 @@
+ // run-pass
++// ignore-stage1
+ 
+ #![allow(dead_code)]
+
+diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs
+--- a/src/tools/compiletest/src/common.rs
++++ b/src/tools/compiletest/src/common.rs
+@@ -431,7 +431,6 @@
+             .unwrap()
+         };
+ 
+-        let mut current = None;
+         let mut all_targets = HashSet::new();
+         let mut all_archs = HashSet::new();
+         let mut all_oses = HashSet::new();
+@@ -452,14 +451,11 @@
+             }
+             all_pointer_widths.insert(format!("{}bit", cfg.pointer_width));
+ 
+-            if target == config.target {
+-                current = Some(cfg);
+-            }
+             all_targets.insert(target.into());
+         }
+ 
+         Self {
+-            current: current.expect("current target not found"),
++            current: Self::get_current_target_config(config),
+             all_targets,
+             all_archs,
+             all_oses,
+@@ -471,6 +467,89 @@
+         }
+     }
+ 
++    fn get_current_target_config(config: &Config) -> TargetCfg {
++        let mut arch = None;
++        let mut os = None;
++        let mut env = None;
++        let mut abi = None;
++        let mut families = Vec::new();
++        let mut pointer_width = None;
++        let mut endian = None;
++        let mut panic = None;
++
++        for config in
++            rustc_output(config, &["--print=cfg", "--target", &config.target]).trim().lines()
++        {
++            let (name, value) = config
++                .split_once("=\"")
++                .map(|(name, value)| {
++                    (
++                        name,
++                        Some(
++                            value
++                                .strip_suffix("\"")
++                                .expect("key-value pair should be properly quoted"),
++                        ),
++                    )
++                })
++                .unwrap_or_else(|| (config, None));
++
++            match name {
++                "target_arch" => {
++                    arch = Some(value.expect("target_arch should be a key-value pair").to_string());
++                }
++                "target_os" => {
++                    os = Some(value.expect("target_os sould be a key-value pair").to_string());
++                }
++                "target_env" => {
++                    env = Some(value.expect("target_env should be a key-value pair").to_string());
++                }
++                "target_abi" => {
++                    abi = Some(value.expect("target_abi should be a key-value pair").to_string());
++                }
++                "target_family" => {
++                    families
++                        .push(value.expect("target_family should be a key-value pair").to_string());
++                }
++                "target_pointer_width" => {
++                    pointer_width = Some(
++                        value
++                            .expect("target_pointer_width should be a key-value pair")
++                            .parse::<u32>()
++                            .expect("target_pointer_width should be a valid u32"),
++                    );
++                }
++                "target_endian" => {
++                    endian = Some(match value.expect("target_endian should be a key-value pair") {
++                        "big" => Endian::Big,
++                        "little" => Endian::Little,
++                        _ => panic!("target_endian should be either 'big' or 'little'"),
++                    });
++                }
++                "panic" => {
++                    panic = Some(match value.expect("panic should be a key-value pair") {
++                        "abort" => PanicStrategy::Abort,
++                        "unwind" => PanicStrategy::Unwind,
++                        _ => panic!("panic should be either 'abort' or 'unwind'"),
++                    });
++                }
++                _ => (),
++            }
++        }
++
++        TargetCfg {
++            arch: arch.expect("target configuration should specify target_arch"),
++            os: os.expect("target configuration should specify target_os"),
++            env: env.expect("target configuration should specify target_env"),
++            abi: abi.expect("target configuration should specify target_abi"),
++            families,
++            pointer_width: pointer_width
++                .expect("target configuration should specify target_pointer_width"),
++            endian: endian.expect("target configuration should specify target_endian"),
++            panic: panic.expect("target configuration should specify panic"),
++        }
++    }
++
+     // #[cfg(bootstrap)]
+     // Needed only for one cycle, remove during the bootstrap bump.
+     fn collect_all_slow(config: &Config) -> HashMap<String, TargetCfg> {
+diff --git a/tests/run-make/issue-47551/Makefile b/tests/run-make/issue-47551/Makefile
+index 5a6ac725701..9290f2e0555 100644
+--- a/tests/run-make/issue-47551/Makefile
++++ b/tests/run-make/issue-47551/Makefile
+@@ -1,3 +1,4 @@
++# ignore-stage1
+ # only-linux
+ # ignore-32bit
+ 
+diff --git a/tests/run-make/pgo-branch-weights/Makefile b/tests/run-make/pgo-branch-weights/Makefile
+index c60206a1f34..4666be03b85 100644
+--- a/tests/run-make/pgo-branch-weights/Makefile
++++ b/tests/run-make/pgo-branch-weights/Makefile
+@@ -1,3 +1,4 @@
++# ignore-stage1
+ # needs-profiler-support
+ # ignore-windows-gnu
+ 
+diff --git a/tests/run-make/pgo-gen-lto/Makefile b/tests/run-make/pgo-gen-lto/Makefile
+index 3f2f6a838b5..9e4f555d21c 100644
+--- a/tests/run-make/pgo-gen-lto/Makefile
++++ b/tests/run-make/pgo-gen-lto/Makefile
+@@ -1,3 +1,4 @@
++# ignore-stage1
+ # needs-profiler-support
+ # ignore-windows-gnu
+ 
+diff --git a/tests/run-make/pgo-gen/Makefile b/tests/run-make/pgo-gen/Makefile
+index 4623a74957b..22aed059cf4 100644
+--- a/tests/run-make/pgo-gen/Makefile
++++ b/tests/run-make/pgo-gen/Makefile
+@@ -1,3 +1,4 @@
++# ignore-stage1
+ # needs-profiler-support
+ # ignore-windows-gnu
+ 
+diff --git a/tests/run-make/pgo-indirect-call-promotion/Makefile b/tests/run-make/pgo-indirect-call-promotion/Makefile
+index 45302215cc6..519447882ea 100644
+--- a/tests/run-make/pgo-indirect-call-promotion/Makefile
++++ b/tests/run-make/pgo-indirect-call-promotion/Makefile
+@@ -1,3 +1,4 @@
++# ignore-stage1
+ # needs-profiler-support
+ # ignore-windows-gnu
+ 
+diff --git a/tests/run-make/pgo-use/Makefile b/tests/run-make/pgo-use/Makefile
+index 3bac9b77aa3..5c64b2342e1 100644
+--- a/tests/run-make/pgo-use/Makefile
++++ b/tests/run-make/pgo-use/Makefile
+@@ -1,3 +1,4 @@
++# ignore-stage1
+ # needs-profiler-support
+ # ignore-windows-gnu
+ 
+diff --git a/tests/run-make/profile/Makefile b/tests/run-make/profile/Makefile
+index fffc051adbf..42a63a871d6 100644
+--- a/tests/run-make/profile/Makefile
++++ b/tests/run-make/profile/Makefile
+@@ -1,3 +1,4 @@
++# ignore-stage1
+ # needs-profiler-support
+ 
+ include ../tools.mk
+diff --git a/tests/run-make/sysroot-crates-are-unstable/Makefile b/tests/run-make/sysroot-crates-are-unstable/Makefile
+index 1e267fb9576..e3e83c52cc2 100644
+--- a/tests/run-make/sysroot-crates-are-unstable/Makefile
++++ b/tests/run-make/sysroot-crates-are-unstable/Makefile
+@@ -1,2 +1,3 @@
++# ignore-stage1
+ all:
+ 	'$(PYTHON)' test.py
+diff --git a/tests/run-make/target-specs/Makefile b/tests/run-make/target-specs/Makefile
+index a33f5368e3c..84459293364 100644
+--- a/tests/run-make/target-specs/Makefile
++++ b/tests/run-make/target-specs/Makefile
+@@ -1,3 +1,4 @@
++# ignore-stage1
+ include ../tools.mk
+ all:
+ 	$(RUSTC) foo.rs --target=my-awesome-platform.json --crate-type=lib --emit=asm
+diff --git a/tests/ui/functions-closures/fn-help-with-err.rs b/tests/ui/functions-closures/fn-help-with-err.rs
+index 612fe1b8419..d021f33c550 100644
+--- a/tests/ui/functions-closures/fn-help-with-err.rs
++++ b/tests/ui/functions-closures/fn-help-with-err.rs
+@@ -1,4 +1,5 @@
+ // This test case checks the behavior of typeck::check::method::suggest::is_fn on Ty::Error.
++// ignore-stage1
+ 
+ struct Foo;
+
+diff --git a/tests/run-make/pointer-auth-link-with-c/Makefile b/tests/run-make/pointer-auth-link-with-c/Makefile
+index dffbd303582..5347d0a90f1 100644
+--- a/tests/run-make/pointer-auth-link-with-c/Makefile
++++ b/tests/run-make/pointer-auth-link-with-c/Makefile
+@@ -1,3 +1,4 @@
++# ignore-stage1
+ include ../tools.mk
+ 
+ # only-aarch64
diff --git a/poky/meta/recipes-devtools/rust/rust-source.inc b/poky/meta/recipes-devtools/rust/rust-source.inc
index fbe2492..0009c50 100644
--- a/poky/meta/recipes-devtools/rust/rust-source.inc
+++ b/poky/meta/recipes-devtools/rust/rust-source.inc
@@ -6,6 +6,7 @@
             file://0001-Do-not-use-LFS64-on-linux-with-musl.patch;patchdir=${RUSTSRC} \
             file://zlib-off64_t.patch;patchdir=${RUSTSRC} \
             file://0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch;patchdir=${RUSTSRC} \
+            file://rust-oe-selftest.patch;patchdir=${RUSTSRC} \
 "
 SRC_URI[rust.sha256sum] = "bb8e9c564566b2d3228d95de9063a9254182446a161353f1d843bfbaf5c34639"
 
@@ -16,8 +17,3 @@
 
 UPSTREAM_CHECK_URI = "https://forge.rust-lang.org/infra/other-installation-methods.html"
 UPSTREAM_CHECK_REGEX = "rustc-(?P<pver>\d+(\.\d+)+)-src"
-
-# see recipes-devtools/gcc/gcc/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
-# we need to link with ssp_nonshared on musl to avoid "undefined reference to `__stack_chk_fail_local'"
-# when building MACHINE=qemux86 for musl
-WRAPPER_TARGET_EXTRALD:libc-musl = "-lssp_nonshared"
diff --git a/poky/meta/recipes-devtools/rust/rust_1.70.0.bb b/poky/meta/recipes-devtools/rust/rust_1.70.0.bb
index 8669291..3b9c05a 100644
--- a/poky/meta/recipes-devtools/rust/rust_1.70.0.bb
+++ b/poky/meta/recipes-devtools/rust/rust_1.70.0.bb
@@ -66,6 +66,7 @@
     fi
 }
 addtask rust_setup_snapshot after do_unpack before do_configure
+addtask do_test_compile after do_configure do_rust_gen_targets
 do_rust_setup_snapshot[dirs] += "${WORKDIR}/rust-snapshot"
 do_rust_setup_snapshot[vardepsexclude] += "UNINATIVE_LOADER"
 
@@ -223,6 +224,11 @@
 do_compile () {
 }
 
+do_test_compile[dirs] = "${B}"
+do_test_compile () {
+    rust_runx build src/tools/remote-test-server --target "${RUST_TARGET_SYS}"
+}
+
 ALLOW_EMPTY:${PN} = "1"
 
 PACKAGES =+ "${PN}-tools-clippy ${PN}-tools-rustfmt"
diff --git a/poky/meta/recipes-devtools/strace/strace/00ace1392f5bd289239b755458dcdeeed69af1da.patch b/poky/meta/recipes-devtools/strace/strace/00ace1392f5bd289239b755458dcdeeed69af1da.patch
new file mode 100644
index 0000000..bdf815e
--- /dev/null
+++ b/poky/meta/recipes-devtools/strace/strace/00ace1392f5bd289239b755458dcdeeed69af1da.patch
@@ -0,0 +1,303 @@
+From 00ace1392f5bd289239b755458dcdeeed69af1da Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@strace.io>
+Date: Mon, 26 Jun 2023 10:00:00 +0000
+Subject: [PATCH] tests: avoid accept() libc function when tracing accept()
+ syscall
+
+The libc function is allowed to implement accept() using accept4()
+syscall, so migrate to accept4() those tests that trace accept() syscall
+but do not test accept() specifically, and change the test of accept()
+syscall to invoke either __NR_accept or __NR_socketcall(SYS_ACCEPT)
+directly.
+
+* tests/accept_compat.h: Remove.
+* tests/Makefile.am (EXTRA_DIST): Remove accept_compat.h.
+* tests/accept.c [TEST_SYSCALL_NAME]: Do not invoke accept(),
+call __NR_accept or __NR_socketcall if available, or skip the test.
+* tests/net-y-unix.c: Do not include "accept_compat.h".
+(main): Invoke accept4() instead of accept().
+* tests/net-yy-inet.c: Likewise.
+* tests/net-yy-unix.c: Likewise.
+
+Resolves: https://github.com/strace/strace/issues/260
+
+Upstream-Status: Backport
+---
+ tests/Makefile.am     |  1 -
+ tests/accept.c        | 36 ++++++++++++++++++++----------------
+ tests/accept_compat.h | 32 --------------------------------
+ tests/net-y-unix.c    | 16 ++++++++--------
+ tests/net-yy-inet.c   | 12 ++++++------
+ tests/net-yy-unix.c   | 16 ++++++++--------
+ 6 files changed, 42 insertions(+), 71 deletions(-)
+ delete mode 100644 tests/accept_compat.h
+
+Index: strace-6.3/tests/Makefile.am
+===================================================================
+--- strace-6.3.orig/tests/Makefile.am
++++ strace-6.3/tests/Makefile.am
+@@ -776,7 +776,6 @@ check_DATA = \
+ 	# end of check_DATA
+ 
+ EXTRA_DIST = \
+-	accept_compat.h \
+ 	attach-p-cmd.h \
+ 	clock_adjtime-common.c \
+ 	clock_xettime-common.c \
+Index: strace-6.3/tests/accept.c
+===================================================================
+--- strace-6.3.orig/tests/accept.c
++++ strace-6.3/tests/accept.c
+@@ -9,38 +9,36 @@
+  */
+ 
+ #include "tests.h"
+-
++#include "scno.h"
+ #include <unistd.h>
+ 
+-#include "scno.h"
++#ifndef TEST_SYSCALL_NAME
+ 
+-#if defined __NR_accept
++# if defined __NR_accept || defined __NR_socketcall
+ 
+-# ifndef TEST_SYSCALL_NAME
+ #  define TEST_SYSCALL_NAME do_accept
+-
+-#  ifndef TEST_SYSCALL_STR
+-#   define TEST_SYSCALL_STR "accept"
+-#  endif
++#  define TEST_SYSCALL_STR "accept"
+ 
+ static int
+ do_accept(int sockfd, void *addr, void *addrlen)
+ {
++#  ifdef __NR_accept
+ 	return syscall(__NR_accept, sockfd, addr, addrlen);
++#  else /* __NR_socketcall */
++	const long args[] = { sockfd, (long) addr, (long) addrlen };
++	return syscall(__NR_socketcall, 5, args);
++#  endif
+ }
+-# endif /* !TEST_SYSCALL_NAME */
+ 
+-#else /* !__NR_accept */
++# endif /* __NR_accept || __NR_socketcall */
+ 
+-# ifndef TEST_SYSCALL_NAME
+-#  define TEST_SYSCALL_NAME accept
+-# endif
++#endif /* !TEST_SYSCALL_NAME */
+ 
+-#endif /* __NR_accept */
++#ifdef TEST_SYSCALL_NAME
+ 
+-#define TEST_SYSCALL_PREPARE connect_un()
++# define TEST_SYSCALL_PREPARE connect_un()
+ static void connect_un(void);
+-#include "sockname.c"
++# include "sockname.c"
+ 
+ static void
+ connect_un(void)
+@@ -90,3 +88,9 @@ main(void)
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
++
++#else
++
++SKIP_MAIN_UNDEFINED("__NR_accept || __NR_socketcall")
++
++#endif
+Index: strace-6.3/tests/accept_compat.h
+===================================================================
+--- strace-6.3.orig/tests/accept_compat.h
++++ /dev/null
+@@ -1,32 +0,0 @@
+-/*
+- * Copyright (c) 2018-2019 The strace developers.
+- * All rights reserved.
+- *
+- * SPDX-License-Identifier: GPL-2.0-or-later
+- */
+-
+-#ifndef _STRACE_TESTS_ACCEPT_COMPAT_H_
+-# define _STRACE_TESTS_ACCEPT_COMPAT_H_
+-
+-# include <unistd.h>
+-# include <sys/socket.h>
+-# include "scno.h"
+-
+-# if defined __NR_socketcall && defined __sparc__
+-/*
+- * Work around the fact that
+- * - glibc >= 2.26 uses accept4 syscall to implement accept() call on sparc;
+- * - accept syscall had not been wired up on sparc until v4.4-rc8~4^2~1.
+- */
+-static inline int
+-do_accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen)
+-{
+-	const long args[] = { sockfd, (long) addr, (long) addrlen };
+-
+-	return syscall(__NR_socketcall, 5, args);
+-}
+-# else
+-#  define do_accept accept
+-# endif
+-
+-#endif /* !_STRACE_TESTS_ACCEPT_COMPAT_H_ */
+Index: strace-6.3/tests/net-y-unix.c
+===================================================================
+--- strace-6.3.orig/tests/net-y-unix.c
++++ strace-6.3/tests/net-y-unix.c
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include <assert.h>
++#include <fcntl.h>
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -18,8 +19,6 @@
+ #include <sys/socket.h>
+ #include <sys/un.h>
+ 
+-#include "accept_compat.h"
+-
+ #define TEST_SOCKET "net-y-unix.socket"
+ 
+ int
+@@ -88,12 +87,12 @@ main(void)
+ 	struct sockaddr * const accept_sa = tail_alloc(sizeof(addr));
+ 	memset(accept_sa, 0, sizeof(addr));
+ 	*len = sizeof(addr);
+-	int accept_fd = do_accept(listen_fd, accept_sa, len);
++	int accept_fd = accept4(listen_fd, accept_sa, len, O_CLOEXEC);
+ 	if (accept_fd < 0)
+ 		perror_msg_and_fail("accept");
+ 	unsigned long accept_inode = inode_of_sockfd(accept_fd);
+-	printf("accept(%d<socket:[%lu]>, {sa_family=AF_UNIX}"
+-	       ", [%d => %d]) = %d<socket:[%lu]>\n",
++	printf("accept4(%d<socket:[%lu]>, {sa_family=AF_UNIX}"
++	       ", [%d => %d], SOCK_CLOEXEC) = %d<socket:[%lu]>\n",
+ 	       listen_fd, listen_inode,
+ 	       (int) sizeof(addr), (int) *len,
+ 	       accept_fd, accept_inode);
+@@ -160,14 +159,15 @@ main(void)
+ 
+ 	memset(accept_sa, 0, sizeof(addr));
+ 	*len = sizeof(addr);
+-	accept_fd = do_accept(listen_fd, accept_sa, len);
++	accept_fd = accept4(listen_fd, accept_sa, len, O_CLOEXEC);
+ 	if (accept_fd < 0)
+ 		perror_msg_and_fail("accept");
+ 	accept_inode = inode_of_sockfd(accept_fd);
+ 	const char * const sun_path1 =
+ 		((struct sockaddr_un *) accept_sa)->sun_path + 1;
+-	printf("accept(%d<socket:[%lu]>, {sa_family=AF_UNIX"
+-	       ", sun_path=@\"%s\"}, [%d => %d]) = %d<socket:[%lu]>\n",
++	printf("accept4(%d<socket:[%lu]>, {sa_family=AF_UNIX"
++	       ", sun_path=@\"%s\"}, [%d => %d], SOCK_CLOEXEC)"
++	       " = %d<socket:[%lu]>\n",
+ 	       listen_fd, listen_inode, sun_path1,
+ 	       (int) sizeof(addr), (int) *len,
+ 	       accept_fd, accept_inode);
+Index: strace-6.3/tests/net-yy-inet.c
+===================================================================
+--- strace-6.3.orig/tests/net-yy-inet.c
++++ strace-6.3/tests/net-yy-inet.c
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include <assert.h>
++#include <fcntl.h>
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -19,8 +20,6 @@
+ #include <netinet/tcp.h>
+ #include <arpa/inet.h>
+ 
+-#include "accept_compat.h"
+-
+ #ifndef ADDR_FAMILY
+ # define ADDR_FAMILY_FIELD sin_family
+ # define ADDR_FAMILY AF_INET
+@@ -104,14 +103,15 @@ main(void)
+ 	struct sockaddr * const accept_sa = tail_alloc(sizeof(addr));
+ 	memset(accept_sa, 0, sizeof(addr));
+ 	*len = sizeof(addr);
+-	const int accept_fd = do_accept(listen_fd, accept_sa, len);
++	const int accept_fd = accept4(listen_fd, accept_sa, len, O_CLOEXEC);
+ 	if (accept_fd < 0)
+ 		perror_msg_and_fail("accept");
+ 	const unsigned int connect_port =
+ 		ntohs(((struct SOCKADDR_TYPE *) accept_sa)->INPORT);
+-	printf("accept(%d<" TCP_STR ":[" LOOPBACK ":%u]>, {sa_family=" AF_STR
+-	       ", " INPORT_STR "=htons(%u), " INADDR_STR SA_FIELDS "}"
+-	       ", [%u]) = %d<" TCP_STR ":[" LOOPBACK ":%u->" LOOPBACK ":%u]>\n",
++	printf("accept4(%d<" TCP_STR ":[" LOOPBACK ":%u]>, {sa_family=" AF_STR
++	       ", " INPORT_STR "=htons(%u), " INADDR_STR SA_FIELDS "}, [%u]"
++	       ", SOCK_CLOEXEC) = %d<" TCP_STR ":[" LOOPBACK ":%u->" LOOPBACK
++	       ":%u]>\n",
+ 	       listen_fd, listen_port, connect_port, (unsigned) *len,
+ 	       accept_fd, listen_port, connect_port);
+ 
+Index: strace-6.3/tests/net-yy-unix.c
+===================================================================
+--- strace-6.3.orig/tests/net-yy-unix.c
++++ strace-6.3/tests/net-yy-unix.c
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include <assert.h>
++#include <fcntl.h>
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -22,8 +23,6 @@
+ # include "xmalloc.h"
+ #endif
+ 
+-#include "accept_compat.h"
+-
+ #define TEST_SOCKET "net-yy-unix.socket"
+ 
+ int
+@@ -112,12 +111,12 @@ main(void)
+ 	struct sockaddr * const accept_sa = tail_alloc(sizeof(addr));
+ 	memset(accept_sa, 0, sizeof(addr));
+ 	*len = sizeof(addr);
+-	int accept_fd = do_accept(listen_fd, accept_sa, len);
++	int accept_fd = accept4(listen_fd, accept_sa, len, O_CLOEXEC);
+ 	if (accept_fd < 0)
+ 		perror_msg_and_fail("accept");
+ 	unsigned long accept_inode = inode_of_sockfd(accept_fd);
+-	printf("accept(%d<%s:[%lu,\"%s\"]>, {sa_family=AF_UNIX}"
+-	       ", [%d => %d]) = %d<%s:[%lu->%lu,\"%s\"]>\n",
++	printf("accept4(%d<%s:[%lu,\"%s\"]>, {sa_family=AF_UNIX}"
++	       ", [%d => %d], SOCK_CLOEXEC) = %d<%s:[%lu->%lu,\"%s\"]>\n",
+ 	       listen_fd, sock_proto_name, listen_inode, TEST_SOCKET,
+ 	       (int) sizeof(addr), (int) *len,
+ 	       accept_fd, sock_proto_name, accept_inode, connect_inode,
+@@ -191,14 +190,15 @@ main(void)
+ 
+ 	memset(accept_sa, 0, sizeof(addr));
+ 	*len = sizeof(addr);
+-	accept_fd = do_accept(listen_fd, accept_sa, len);
++	accept_fd = accept4(listen_fd, accept_sa, len, O_CLOEXEC);
+ 	if (accept_fd < 0)
+ 		perror_msg_and_fail("accept");
+ 	accept_inode = inode_of_sockfd(accept_fd);
+ 	const char * const sun_path1 =
+ 		((struct sockaddr_un *) accept_sa)->sun_path + 1;
+-	printf("accept(%d<%s:[%lu,\"%s\"]>, {sa_family=AF_UNIX"
+-	       ", sun_path=@\"%s\"}, [%d => %d]) = %d<%s:[%lu->%lu,\"%s\"]>\n",
++	printf("accept4(%d<%s:[%lu,\"%s\"]>, {sa_family=AF_UNIX"
++	       ", sun_path=@\"%s\"}, [%d => %d], SOCK_CLOEXEC)"
++	       " = %d<%s:[%lu->%lu,\"%s\"]>\n",
+ 	       listen_fd, sock_proto_name, listen_inode, TEST_SOCKET,
+ 	       sun_path1, (int) sizeof(addr), (int) *len,
+ 	       accept_fd, sock_proto_name, accept_inode, connect_inode,
diff --git a/poky/meta/recipes-devtools/strace/strace/3bbfb541b258baec9eba674b5d8dc30007a61542.patch b/poky/meta/recipes-devtools/strace/strace/3bbfb541b258baec9eba674b5d8dc30007a61542.patch
new file mode 100644
index 0000000..b4c6ff9
--- /dev/null
+++ b/poky/meta/recipes-devtools/strace/strace/3bbfb541b258baec9eba674b5d8dc30007a61542.patch
@@ -0,0 +1,50 @@
+From 3bbfb541b258baec9eba674b5d8dc30007a61542 Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@strace.io>
+Date: Wed, 21 Jun 2023 08:00:00 +0000
+Subject: [PATCH] net: enhance getsockopt decoding
+
+When getsockopt syscall fails the kernel sometimes updates the optlen
+argument, for example, NETLINK_LIST_MEMBERSHIPS updates it even if
+optval is not writable.
+
+* src/net.c (SYS_FUNC(getsockopt)): Try to fetch and print optlen
+argument on exiting syscall regardless of getsockopt exit status.
+
+Upstream-Status: Backport
+---
+ src/net.c | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/src/net.c b/src/net.c
+index f68ccb947..7244b5e57 100644
+--- a/src/net.c
++++ b/src/net.c
+@@ -1038,7 +1038,7 @@ SYS_FUNC(getsockopt)
+ 	} else {
+ 		ulen = get_tcb_priv_ulong(tcp);
+ 
+-		if (syserror(tcp) || umove(tcp, tcp->u_arg[4], &rlen) < 0) {
++		if (umove(tcp, tcp->u_arg[4], &rlen) < 0) {
+ 			/* optval */
+ 			printaddr(tcp->u_arg[3]);
+ 			tprint_arg_next();
+@@ -1047,6 +1047,19 @@ SYS_FUNC(getsockopt)
+ 			tprint_indirect_begin();
+ 			PRINT_VAL_D(ulen);
+ 			tprint_indirect_end();
++		} else if (syserror(tcp)) {
++			/* optval */
++			printaddr(tcp->u_arg[3]);
++			tprint_arg_next();
++
++			/* optlen */
++			tprint_indirect_begin();
++			if (ulen != rlen) {
++				PRINT_VAL_D(ulen);
++				tprint_value_changed();
++			}
++			PRINT_VAL_D(rlen);
++			tprint_indirect_end();
+ 		} else {
+ 			/* optval */
+ 			print_getsockopt(tcp, tcp->u_arg[1], tcp->u_arg[2],
diff --git a/poky/meta/recipes-devtools/strace/strace/f31c2f4494779e5c5f170ad10539bfc2dfafe967.patch b/poky/meta/recipes-devtools/strace/strace/f31c2f4494779e5c5f170ad10539bfc2dfafe967.patch
new file mode 100644
index 0000000..a084383
--- /dev/null
+++ b/poky/meta/recipes-devtools/strace/strace/f31c2f4494779e5c5f170ad10539bfc2dfafe967.patch
@@ -0,0 +1,50 @@
+From f31c2f4494779e5c5f170ad10539bfc2dfafe967 Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@strace.io>
+Date: Sat, 24 Jun 2023 08:00:00 +0000
+Subject: [PATCH] tests: update sockopt-sol_netlink test
+
+Update sockopt-sol_netlink test that started to fail, likely
+due to recent linux kernel commit f4e4534850a9 ("net/netlink: fix
+NETLINK_LIST_MEMBERSHIPS length report").
+
+* tests/sockopt-sol_netlink.c (main): Always print changing optlen value
+on exiting syscall.
+
+Reported-by: Alexander Gordeev <agordeev@linux.ibm.com>
+---
+ tests/sockopt-sol_netlink.c | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+Upstream-Status: Backport
+
+diff --git a/tests/sockopt-sol_netlink.c b/tests/sockopt-sol_netlink.c
+index 82b98adc23..1c33219ac5 100644
+--- a/tests/sockopt-sol_netlink.c
++++ b/tests/sockopt-sol_netlink.c
+@@ -94,7 +94,10 @@ main(void)
+ 			printf("%p", val);
+ 		else
+ 			printf("[%d]", *val);
+-		printf(", [%d]) = %s\n", *len, errstr);
++		printf(", [%d", (int) sizeof(*val));
++		if ((int) sizeof(*val) != *len)
++			printf(" => %d", *len);
++		printf("]) = %s\n", errstr);
+ 
+ 		/* optlen larger than necessary - shortened */
+ 		*len = sizeof(*val) + 1;
+@@ -150,8 +153,12 @@ main(void)
+ 		/* optval EFAULT - print address */
+ 		*len = sizeof(*val);
+ 		get_sockopt(fd, names[i].val, efault, len);
+-		printf("getsockopt(%d, SOL_NETLINK, %s, %p, [%d]) = %s\n",
+-		       fd, names[i].str, efault, *len, errstr);
++		printf("getsockopt(%d, SOL_NETLINK, %s, %p",
++		       fd, names[i].str, efault);
++		printf(", [%d", (int) sizeof(*val));
++		if ((int) sizeof(*val) != *len)
++			printf(" => %d", *len);
++		printf("]) = %s\n", errstr);
+ 
+ 		/* optlen EFAULT - print address */
+ 		get_sockopt(fd, names[i].val, val, len + 1);
diff --git a/poky/meta/recipes-devtools/strace/strace/skip-sockopt-test.patch b/poky/meta/recipes-devtools/strace/strace/skip-sockopt-test.patch
deleted file mode 100644
index 5741bf8..0000000
--- a/poky/meta/recipes-devtools/strace/strace/skip-sockopt-test.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Upstream-Status: Inappropriate [avoid this test until fixed by upstream]
-
-Reported at https://github.com/strace/strace/issues/257
-
-root@qemux86-64:/usr/lib/strace/ptest/tests# make sockopt-sol_netlink.gen.log
-FAIL: sockopt-sol_netlink.gen.test
-
-#root@qemux86-64:/usr/lib/strace/ptest/tests# diff sockopt-sol_netlink.dir/exp sockopt-sol_netlink.dir/out
-#--- sockopt-sol_netlink.dir/exp
-#+++ sockopt-sol_netlink.dir/out
-#@@ -86,11 +86,11 @@
- setsockopt(3, SOL_NETLINK, NETLINK_LISTEN_ALL_NSID, 0x7fa18a802ffc, -1) = -1 EINVAL (Invalid argument)
- setsockopt(3, SOL_NETLINK, NETLINK_LISTEN_ALL_NSID, 0x7fa18a802ffc, 3) = 0
- setsockopt(3, SOL_NETLINK, NETLINK_LISTEN_ALL_NSID, 0x7fa18a803000, 4) = -1 EFAULT (Bad address)
--getsockopt(3, SOL_NETLINK, NETLINK_LIST_MEMBERSHIPS, [0], [8]) = 0
-+getsockopt(3, SOL_NETLINK, NETLINK_LIST_MEMBERSHIPS, [0], [4 => 8]) = 0
- getsockopt(3, SOL_NETLINK, NETLINK_LIST_MEMBERSHIPS, [0], [5 => 8]) = 0
- getsockopt(3, SOL_NETLINK, NETLINK_LIST_MEMBERSHIPS, NULL, [0 => 8]) = 0
- getsockopt(3, SOL_NETLINK, NETLINK_LIST_MEMBERSHIPS, [], [3 => 8]) = 0
--getsockopt(3, SOL_NETLINK, NETLINK_LIST_MEMBERSHIPS, 0x7fa18a803000, [8]) = -1 EFAULT (Bad address)
-+getsockopt(3, SOL_NETLINK, NETLINK_LIST_MEMBERSHIPS, 0x7fa18a803000, [4]) = -1 EFAULT (Bad address)
- getsockopt(3, SOL_NETLINK, NETLINK_LIST_MEMBERSHIPS, 0x7fa18a802ffc, 0x7fa18a7fd000) = -1 EFAULT (Bad address)
- setsockopt(3, SOL_NETLINK, NETLINK_LIST_MEMBERSHIPS, [233811181], 4) = -1 ENOPROTOOPT (Protocol not available)
- setsockopt(3, SOL_NETLINK, NETLINK_LIST_MEMBERSHIPS, [233811181], 5) = -1 ENOPROTOOPT (Protocol not available)
-
-
-
-Index: strace-6.3/tests/sockopt-sol_netlink.gen.test
-===================================================================
---- strace-6.3.orig/tests/sockopt-sol_netlink.gen.test
-+++ strace-6.3/tests/sockopt-sol_netlink.gen.test
-@@ -1,4 +1,5 @@
- #!/bin/sh -efu
- # Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sockopt-sol_netlink -e trace=getsockopt,setsockopt); do not edit.
- . "${srcdir=.}/init.sh"
-+skip_ "Test failing after system upgrades, wait for upstream fixes"
- run_strace_match_diff -e trace=getsockopt,setsockopt
diff --git a/poky/meta/recipes-devtools/strace/strace_6.3.bb b/poky/meta/recipes-devtools/strace/strace_6.3.bb
index 7ba9fcc..a47cc71 100644
--- a/poky/meta/recipes-devtools/strace/strace_6.3.bb
+++ b/poky/meta/recipes-devtools/strace/strace_6.3.bb
@@ -14,7 +14,9 @@
            file://skip-load.patch \
            file://0001-configure-Use-autoconf-macro-to-detect-largefile-sup.patch \
            file://0002-tests-Replace-off64_t-with-off_t.patch \
-           file://skip-sockopt-test.patch \
+           file://00ace1392f5bd289239b755458dcdeeed69af1da.patch \
+           file://f31c2f4494779e5c5f170ad10539bfc2dfafe967.patch \
+           file://3bbfb541b258baec9eba674b5d8dc30007a61542.patch \
            "
 SRC_URI[sha256sum] = "e17878e301506c1cc301611118ad14efee7f8bcef63b27ace5d290acce7bb731"
 
diff --git a/poky/meta/recipes-devtools/tcltk/tcl_8.6.13.bb b/poky/meta/recipes-devtools/tcltk/tcl_8.6.13.bb
index 982f370..91fc813 100644
--- a/poky/meta/recipes-devtools/tcltk/tcl_8.6.13.bb
+++ b/poky/meta/recipes-devtools/tcltk/tcl_8.6.13.bb
@@ -29,10 +29,6 @@
 
 SRC_URI:class-native = "${BASE_SRC_URI}"
 
-# Upstream don't believe this is an exploitable issue
-# https://core.tcl-lang.org/tcl/info/7079e4f91601e9c7
-CVE_CHECK_IGNORE += "CVE-2021-35331"
-
 UPSTREAM_CHECK_URI = "https://www.tcl.tk/software/tcltk/download.html"
 UPSTREAM_CHECK_REGEX = "tcl(?P<pver>\d+(\.\d+)+)-src"
 
diff --git a/poky/meta/recipes-extended/acpica/acpica_20230331.bb b/poky/meta/recipes-extended/acpica/acpica_20230628.bb
similarity index 94%
rename from poky/meta/recipes-extended/acpica/acpica_20230331.bb
rename to poky/meta/recipes-extended/acpica/acpica_20230628.bb
index 01b8833..06db99c 100644
--- a/poky/meta/recipes-extended/acpica/acpica_20230331.bb
+++ b/poky/meta/recipes-extended/acpica/acpica_20230628.bb
@@ -17,7 +17,7 @@
 DEPENDS = "m4-native flex-native bison-native"
 
 SRC_URI = "https://acpica.org/sites/acpica/files/acpica-unix-${PV}.tar.gz"
-SRC_URI[sha256sum] = "0c5d695d605aaa61709f3c63f57a1a99b8902291723998446b0813b57ac310e2"
+SRC_URI[sha256sum] = "86876a745e3d224dcfd222ed3de465b47559e85811df2db9820ef09a9dff5cce"
 
 UPSTREAM_CHECK_URI = "https://acpica.org/downloads"
 
diff --git a/poky/meta/recipes-extended/baremetal-example/baremetal-helloworld_git.bb b/poky/meta/recipes-extended/baremetal-example/baremetal-helloworld_git.bb
index 4182372..c5d3e04 100644
--- a/poky/meta/recipes-extended/baremetal-example/baremetal-helloworld_git.bb
+++ b/poky/meta/recipes-extended/baremetal-example/baremetal-helloworld_git.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=39346640a23c701e4f459e05f56f4449"
 
-SRCREV = "ea7f59b02467ed1fb36c3b4c6d5cabe702df26ec"
+SRCREV = "fc7c43d138185028b6ac14c83f6492fce26eca95"
 PV = "0.1+git${SRCPV}"
 
 SRC_URI = "git://github.com/ahcbb6/baremetal-helloqemu.git;protocol=https;branch=master"
diff --git a/poky/meta/recipes-extended/cpio/cpio_2.14.bb b/poky/meta/recipes-extended/cpio/cpio_2.14.bb
index e55fb70..560038d 100644
--- a/poky/meta/recipes-extended/cpio/cpio_2.14.bb
+++ b/poky/meta/recipes-extended/cpio/cpio_2.14.bb
@@ -16,8 +16,7 @@
 
 inherit autotools gettext texinfo ptest
 
-# Issue applies to use of cpio in SUSE/OBS, doesn't apply to us
-CVE_CHECK_IGNORE += "CVE-2010-4226"
+CVE_STATUS[CVE-2010-4226] = "not-applicable-platform: Issue applies to use of cpio in SUSE/OBS"
 
 EXTRA_OECONF += "DEFAULT_RMT_DIR=${sbindir}"
 
@@ -66,7 +65,7 @@
 
 # The tests need to run as a non-root user, so pull in the ptest user
 DEPENDS:append:class-target = "${@bb.utils.contains('PTEST_ENABLED', '1', ' ptest-runner', '', d)}"
-PACKAGE_WRITE_DEPS += "ptest-runner"
+PACKAGE_WRITE_DEPS:append:class-target = " ${MLPREFIX}ptest-runner"
 
 RDEPENDS:${PN}-ptest += "ptest-runner"
 
diff --git a/poky/meta/recipes-extended/cups/cups.inc b/poky/meta/recipes-extended/cups/cups.inc
index d77758f..36feadd 100644
--- a/poky/meta/recipes-extended/cups/cups.inc
+++ b/poky/meta/recipes-extended/cups/cups.inc
@@ -15,19 +15,15 @@
            file://0004-cups-fix-multilib-install-file-conflicts.patch \
            file://volatiles.99_cups \
            file://cups-volatiles.conf \
-           file://CVE-2023-32324.patch \
            "
 
 GITHUB_BASE_URI = "https://github.com/OpenPrinting/cups/releases"
 
-# Issue only applies to MacOS
-CVE_CHECK_IGNORE += "CVE-2008-1033"
-# Issue affects pdfdistiller plugin used with but not part of cups
-CVE_CHECK_IGNORE += "CVE-2009-0032"
-# This is an Ubuntu only issue.
-CVE_CHECK_IGNORE += "CVE-2018-6553"
-# This is fixed in 2.4.2 but the cve-check class still reports it
-CVE_CHECK_IGNORE += "CVE-2022-26691"
+CVE_STATUS[CVE-2008-1033] = "not-applicable-platform: Issue only applies to MacOS"
+CVE_STATUS[CVE-2009-0032] = "cpe-incorrect: Issue affects pdfdistiller plugin used with but not part of cups"
+CVE_STATUS[CVE-2018-6553] = "not-applicable-platform: This is an Ubuntu only issue"
+CVE_STATUS[CVE-2022-26691] = "fixed-version: This is fixed in 2.4.2 but the cve-check class still reports it"
+CVE_STATUS[CVE-2021-25317] = "not-applicable-config: This concerns /var/log/cups having lp ownership, our /var/log/cups is root:root, so this doesn't apply."
 
 LEAD_SONAME = "libcupsdriver.so"
 
@@ -115,7 +111,3 @@
 cups_sysroot_preprocess () {
 	sed -i ${SYSROOT_DESTDIR}${bindir_crossscripts}/cups-config -e 's:cups_datadir=.*:cups_datadir=${datadir}/cups:' -e 's:cups_serverbin=.*:cups_serverbin=${libexecdir}/cups:'
 }
-
-# -25317 concerns /var/log/cups having lp ownership.  Our /var/log/cups is
-# root:root, so this doesn't apply.
-CVE_CHECK_IGNORE += "CVE-2021-25317"
diff --git a/poky/meta/recipes-extended/cups/cups/CVE-2023-32324.patch b/poky/meta/recipes-extended/cups/cups/CVE-2023-32324.patch
deleted file mode 100644
index 40b89c9..0000000
--- a/poky/meta/recipes-extended/cups/cups/CVE-2023-32324.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 07cbffd11107eed3aaf1c64e35552aec20f792da Mon Sep 17 00:00:00 2001
-From: Zdenek Dohnal <zdohnal@redhat.com>
-Date: Thu, 1 Jun 2023 12:04:00 +0200
-Subject: [PATCH] cups/string.c: Return if `size` is 0 (fixes CVE-2023-32324)
-
-CVE: CVE-2023-32324
-Upstream-Status: Backport [https://github.com/OpenPrinting/cups/commit/fd8bc2d32589]
-
-(cherry picked from commit fd8bc2d32589d1fd91fe1c0521be2a7c0462109e)
-Signed-off-by: Sanjay Chitroda <schitrod@cisco.com>
----
- cups/string.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/cups/string.c b/cups/string.c
-index 93cdad19..6ef58515 100644
---- a/cups/string.c
-+++ b/cups/string.c
-@@ -1,6 +1,7 @@
- /*
-  * String functions for CUPS.
-  *
-+ * Copyright © 2023 by OpenPrinting.
-  * Copyright © 2007-2019 by Apple Inc.
-  * Copyright © 1997-2007 by Easy Software Products.
-  *
-@@ -730,6 +731,9 @@ _cups_strlcpy(char       *dst,		/* O - Destination string */
-   size_t	srclen;			/* Length of source string */
- 
- 
-+  if (size == 0)
-+    return (0);
-+
-  /*
-   * Figure out how much room is needed...
-   */
diff --git a/poky/meta/recipes-extended/cups/cups_2.4.2.bb b/poky/meta/recipes-extended/cups/cups_2.4.2.bb
deleted file mode 100644
index f5ca749..0000000
--- a/poky/meta/recipes-extended/cups/cups_2.4.2.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require cups.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI[sha256sum] = "f03ccb40b087d1e30940a40e0141dcbba263f39974c20eb9f2521066c9c6c908"
diff --git a/poky/meta/recipes-extended/cups/cups_2.4.6.bb b/poky/meta/recipes-extended/cups/cups_2.4.6.bb
new file mode 100644
index 0000000..58029fd
--- /dev/null
+++ b/poky/meta/recipes-extended/cups/cups_2.4.6.bb
@@ -0,0 +1,5 @@
+require cups.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[sha256sum] = "58e970cf1955e1cc87d0847c32526d9c2ccee335e5f0e3882b283138ba0e7262"
diff --git a/poky/meta/recipes-extended/diffutils/diffutils/0001-Skip-strip-trailing-cr-test-case.patch b/poky/meta/recipes-extended/diffutils/diffutils/0001-Skip-strip-trailing-cr-test-case.patch
index 8b88c30..3279323 100644
--- a/poky/meta/recipes-extended/diffutils/diffutils/0001-Skip-strip-trailing-cr-test-case.patch
+++ b/poky/meta/recipes-extended/diffutils/diffutils/0001-Skip-strip-trailing-cr-test-case.patch
@@ -1,4 +1,4 @@
-From 027229d25392b22d7280c0abbc3efde4f467d167 Mon Sep 17 00:00:00 2001
+From f31395c931bc633206eccfcfaaaa5d15021a3e86 Mon Sep 17 00:00:00 2001
 From: Peiran Hong <peiran.hong@windriver.com>
 Date: Thu, 5 Sep 2019 15:42:22 -0400
 Subject: [PATCH] Skip strip-trailing-cr test case
@@ -12,23 +12,18 @@
 Signed-off-by: Peiran Hong <peiran.hong@windriver.com>
 
 ---
- tests/Makefile.am | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
+ tests/Makefile.am | 1 -
+ 1 file changed, 1 deletion(-)
 
 diff --git a/tests/Makefile.am b/tests/Makefile.am
-index d98df82..757ea52 100644
+index 79bacfb..4adb4d7 100644
 --- a/tests/Makefile.am
 +++ b/tests/Makefile.am
-@@ -21,9 +21,11 @@ TESTS = \
+@@ -22,7 +22,6 @@ TESTS = \
    stdin \
    strcoll-0-names \
    filename-quoting \
 -  strip-trailing-cr \
    timezone \
-   colors
-+# Skipping this test since it requires valgrind
-+# and thus is too heavy for diffutils package
-+# strip-trailing-cr
- 
- XFAIL_TESTS = large-subopt
- 
+   colors \
+   y2038-vs-32bit
diff --git a/poky/meta/recipes-extended/diffutils/diffutils_3.9.bb b/poky/meta/recipes-extended/diffutils/diffutils_3.10.bb
similarity index 93%
rename from poky/meta/recipes-extended/diffutils/diffutils_3.9.bb
rename to poky/meta/recipes-extended/diffutils/diffutils_3.10.bb
index 2bb9e6f..08e8305 100644
--- a/poky/meta/recipes-extended/diffutils/diffutils_3.9.bb
+++ b/poky/meta/recipes-extended/diffutils/diffutils_3.10.bb
@@ -8,7 +8,7 @@
            file://0001-Skip-strip-trailing-cr-test-case.patch \
            "
 
-SRC_URI[sha256sum] = "d80d3be90a201868de83d78dad3413ad88160cc53bcc36eb9eaf7c20dbf023f1"
+SRC_URI[sha256sum] = "90e5e93cc724e4ebe12ede80df1634063c7a855692685919bfe60b556c9bd09e"
 
 EXTRA_OECONF += "ac_cv_path_PR_PROGRAM=${bindir}/pr --without-libsigsegv-prefix"
 
diff --git a/poky/meta/recipes-extended/ghostscript/ghostscript_10.01.1.bb b/poky/meta/recipes-extended/ghostscript/ghostscript_10.01.2.bb
similarity index 93%
rename from poky/meta/recipes-extended/ghostscript/ghostscript_10.01.1.bb
rename to poky/meta/recipes-extended/ghostscript/ghostscript_10.01.2.bb
index f03ebf4..fdbdfb6 100644
--- a/poky/meta/recipes-extended/ghostscript/ghostscript_10.01.1.bb
+++ b/poky/meta/recipes-extended/ghostscript/ghostscript_10.01.2.bb
@@ -18,9 +18,6 @@
 UPSTREAM_CHECK_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases"
 UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
 
-# We use a system libjpeg-turbo which has this fix
-CVE_CHECK_IGNORE += "CVE-2013-6629"
-
 def gs_verdir(v):
     return "".join(v.split("."))
 
@@ -30,7 +27,7 @@
            file://avoid-host-contamination.patch \
 "
 
-SRC_URI[sha256sum] = "4df18a808cd4369f25e02dbcec2f133cb6d674627b2c6b1502020e58d43e32ce"
+SRC_URI[sha256sum] = "a4cd61a07fec161bee35da0211a5e5cde8ff8a0aaf942fc0176715e499d21661"
 
 PACKAGECONFIG ??= ""
 PACKAGECONFIG[gtk] = "--enable-gtk,--disable-gtk,gtk+3"
diff --git a/poky/meta/recipes-extended/iputils/iputils_20221126.bb b/poky/meta/recipes-extended/iputils/iputils_20221126.bb
index cd5fe9b..7d94271 100644
--- a/poky/meta/recipes-extended/iputils/iputils_20221126.bb
+++ b/poky/meta/recipes-extended/iputils/iputils_20221126.bb
@@ -17,9 +17,8 @@
 
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>20\d+)"
 
-# Fixed in 2000-10-10, but the versioning of iputils
-# breaks the version order.
-CVE_CHECK_IGNORE += "CVE-2000-1213 CVE-2000-1214"
+CVE_STATUS[CVE-2000-1213] = "fixed-version: Fixed in 2000-10-10, but the versioning of iputils breaks the version order."
+CVE_STATUS[CVE-2000-1214] = "fixed-version: Fixed in 2000-10-10, but the versioning of iputils breaks the version order."
 
 PACKAGECONFIG ??= "libcap"
 PACKAGECONFIG[libcap] = "-DUSE_CAP=true, -DUSE_CAP=false -DNO_SETCAP_OR_SUID=true, libcap libcap-native"
diff --git a/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb b/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb
index d0afb3c..f0e687c 100644
--- a/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb
+++ b/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb
@@ -13,9 +13,9 @@
 SECTION = "libs"
 DEPENDS += "libtirpc libnsl2"
 
-PV = "3.1+git${SRCPV}"
+PV = "3.2"
 
-SRCREV = "062f31999b35393abf7595cb89dfc9590d5a42ad"
+SRCREV = "cd0d391af9535b56e612ed227c1b89be269f3d59"
 
 SRC_URI = "git://github.com/thkukuk/libnss_nis;branch=master;protocol=https \
           "
diff --git a/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.3.bb b/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.3.bb
index f55e0b0..d466905 100644
--- a/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.3.bb
+++ b/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.3.bb
@@ -14,8 +14,7 @@
 UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
 SRC_URI[sha256sum] = "6474e98851d9f6f33871957ddee9714fdcd9d8a5ee9abb5a98d63ea2e60e12f3"
 
-# Was fixed in 1.3.3rc1 so not present in 1.3.3
-CVE_CHECK_IGNORE += "CVE-2021-46828"
+CVE_STATUS[CVE-2021-46828] = "fixed-version: fixed in 1.3.3rc1 so not present in 1.3.3"
 
 inherit autotools pkgconfig
 
diff --git a/poky/meta/recipes-extended/logrotate/logrotate_3.21.0.bb b/poky/meta/recipes-extended/logrotate/logrotate_3.21.0.bb
index f0755e3..10a6149 100644
--- a/poky/meta/recipes-extended/logrotate/logrotate_3.21.0.bb
+++ b/poky/meta/recipes-extended/logrotate/logrotate_3.21.0.bb
@@ -16,8 +16,9 @@
 
 SRC_URI[sha256sum] = "8fa12015e3b8415c121fc9c0ca53aa872f7b0702f543afda7e32b6c4900f6516"
 
-# These CVEs are debian, gentoo or SUSE specific on the way logrotate was installed/used
-CVE_CHECK_IGNORE += "CVE-2011-1548 CVE-2011-1549 CVE-2011-1550"
+CVE_STATUS_GROUPS = "CVE_STATUS_RECIPE"
+CVE_STATUS_RECIPE = "CVE-2011-1548 CVE-2011-1549 CVE-2011-1550"
+CVE_STATUS_RECIPE[status] = "not-applicable-platform: CVE is debian, gentoo or SUSE specific on the way logrotate was installed/used"
 
 PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)}"
 
diff --git a/poky/meta/recipes-extended/ltp/ltp_20230516.bb b/poky/meta/recipes-extended/ltp/ltp_20230516.bb
index ddc6523..e9407d3 100644
--- a/poky/meta/recipes-extended/ltp/ltp_20230516.bb
+++ b/poky/meta/recipes-extended/ltp/ltp_20230516.bb
@@ -93,6 +93,7 @@
     e2fsprogs-mke2fs \
     expect \
     file \
+    findutils \
     gawk \
     gdb \
     gzip \
diff --git a/poky/meta/recipes-extended/mdadm/files/0001-DDF-Cleanup-validate_geometry_ddf_container.patch b/poky/meta/recipes-extended/mdadm/files/0001-DDF-Cleanup-validate_geometry_ddf_container.patch
new file mode 100644
index 0000000..cea435f
--- /dev/null
+++ b/poky/meta/recipes-extended/mdadm/files/0001-DDF-Cleanup-validate_geometry_ddf_container.patch
@@ -0,0 +1,148 @@
+From ca458f4dcc4de9403298f67543466ce4bbc8f8ae Mon Sep 17 00:00:00 2001
+From: Logan Gunthorpe <logang@deltatee.com>
+Date: Wed, 22 Jun 2022 14:25:07 -0600
+Subject: [PATCH 1/4] DDF: Cleanup validate_geometry_ddf_container()
+
+Move the function up so that the function declaration is not necessary
+and remove the unused arguments to the function.
+
+No functional changes are intended but will help with a bug fix in the
+next patch.
+
+Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
+Acked-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
+Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
+
+Upstream-Status: Backport
+
+Reference to upstream patch:
+https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=679bd9508a30
+
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ super-ddf.c | 88 ++++++++++++++++++++++++-----------------------------
+ 1 file changed, 39 insertions(+), 49 deletions(-)
+
+diff --git a/super-ddf.c b/super-ddf.c
+index 3f304cd..65cf727 100644
+--- a/super-ddf.c
++++ b/super-ddf.c
+@@ -503,13 +503,6 @@ struct ddf_super {
+ static int load_super_ddf_all(struct supertype *st, int fd,
+ 			      void **sbp, char *devname);
+ static int get_svd_state(const struct ddf_super *, const struct vcl *);
+-static int
+-validate_geometry_ddf_container(struct supertype *st,
+-				int level, int layout, int raiddisks,
+-				int chunk, unsigned long long size,
+-				unsigned long long data_offset,
+-				char *dev, unsigned long long *freesize,
+-				int verbose);
+ 
+ static int validate_geometry_ddf_bvd(struct supertype *st,
+ 				     int level, int layout, int raiddisks,
+@@ -3322,6 +3315,42 @@ static int reserve_space(struct supertype *st, int raiddisks,
+ 	return 1;
+ }
+ 
++static int
++validate_geometry_ddf_container(struct supertype *st,
++				int level, int raiddisks,
++				unsigned long long data_offset,
++				char *dev, unsigned long long *freesize,
++				int verbose)
++{
++	int fd;
++	unsigned long long ldsize;
++
++	if (level != LEVEL_CONTAINER)
++		return 0;
++	if (!dev)
++		return 1;
++
++	fd = dev_open(dev, O_RDONLY|O_EXCL);
++	if (fd < 0) {
++		if (verbose)
++			pr_err("ddf: Cannot open %s: %s\n",
++			       dev, strerror(errno));
++		return 0;
++	}
++	if (!get_dev_size(fd, dev, &ldsize)) {
++		close(fd);
++		return 0;
++	}
++	close(fd);
++	if (freesize) {
++		*freesize = avail_size_ddf(st, ldsize >> 9, INVALID_SECTORS);
++		if (*freesize == 0)
++			return 0;
++	}
++
++	return 1;
++}
++
+ static int validate_geometry_ddf(struct supertype *st,
+ 				 int level, int layout, int raiddisks,
+ 				 int *chunk, unsigned long long size,
+@@ -3347,11 +3376,9 @@ static int validate_geometry_ddf(struct supertype *st,
+ 		level = LEVEL_CONTAINER;
+ 	if (level == LEVEL_CONTAINER) {
+ 		/* Must be a fresh device to add to a container */
+-		return validate_geometry_ddf_container(st, level, layout,
+-						       raiddisks, *chunk,
+-						       size, data_offset, dev,
+-						       freesize,
+-						       verbose);
++		return validate_geometry_ddf_container(st, level, raiddisks,
++						       data_offset, dev,
++						       freesize, verbose);
+ 	}
+ 
+ 	if (!dev) {
+@@ -3449,43 +3476,6 @@ static int validate_geometry_ddf(struct supertype *st,
+ 	return 1;
+ }
+ 
+-static int
+-validate_geometry_ddf_container(struct supertype *st,
+-				int level, int layout, int raiddisks,
+-				int chunk, unsigned long long size,
+-				unsigned long long data_offset,
+-				char *dev, unsigned long long *freesize,
+-				int verbose)
+-{
+-	int fd;
+-	unsigned long long ldsize;
+-
+-	if (level != LEVEL_CONTAINER)
+-		return 0;
+-	if (!dev)
+-		return 1;
+-
+-	fd = dev_open(dev, O_RDONLY|O_EXCL);
+-	if (fd < 0) {
+-		if (verbose)
+-			pr_err("ddf: Cannot open %s: %s\n",
+-			       dev, strerror(errno));
+-		return 0;
+-	}
+-	if (!get_dev_size(fd, dev, &ldsize)) {
+-		close(fd);
+-		return 0;
+-	}
+-	close(fd);
+-	if (freesize) {
+-		*freesize = avail_size_ddf(st, ldsize >> 9, INVALID_SECTORS);
+-		if (*freesize == 0)
+-			return 0;
+-	}
+-
+-	return 1;
+-}
+-
+ static int validate_geometry_ddf_bvd(struct supertype *st,
+ 				     int level, int layout, int raiddisks,
+ 				     int *chunk, unsigned long long size,
+-- 
+2.39.1
+
diff --git a/poky/meta/recipes-extended/mdadm/files/0002-DDF-Fix-NULL-pointer-dereference-in-validate_geometr.patch b/poky/meta/recipes-extended/mdadm/files/0002-DDF-Fix-NULL-pointer-dereference-in-validate_geometr.patch
new file mode 100644
index 0000000..fafe88b
--- /dev/null
+++ b/poky/meta/recipes-extended/mdadm/files/0002-DDF-Fix-NULL-pointer-dereference-in-validate_geometr.patch
@@ -0,0 +1,56 @@
+From 14f110f0286d38e29ef5e51d7f72e049c2f18323 Mon Sep 17 00:00:00 2001
+From: Logan Gunthorpe <logang@deltatee.com>
+Date: Wed, 22 Jun 2022 14:25:08 -0600
+Subject: [PATCH 2/4] DDF: Fix NULL pointer dereference in
+ validate_geometry_ddf()
+
+A relatively recent patch added a call to validate_geometry() in
+Manage_add() that has level=LEVEL_CONTAINER and chunk=NULL.
+
+This causes some ddf tests to segfault which aborts the test suite.
+
+To fix this, avoid dereferencing chunk when the level is
+LEVEL_CONTAINER or LEVEL_NONE.
+
+Fixes: 1f5d54a06df0 ("Manage: Call validate_geometry when adding drive to external container")
+Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
+Acked-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
+Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
+
+Upstream-Status: Backport
+
+Reference to upstream patch:
+https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=2b93288a5650
+
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ super-ddf.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/super-ddf.c b/super-ddf.c
+index 65cf727..3ef1293 100644
+--- a/super-ddf.c
++++ b/super-ddf.c
+@@ -3369,9 +3369,6 @@ static int validate_geometry_ddf(struct supertype *st,
+ 	 * If given BVDs, we make an SVD, changing all the GUIDs in the process.
+ 	 */
+ 
+-	if (*chunk == UnSet)
+-		*chunk = DEFAULT_CHUNK;
+-
+ 	if (level == LEVEL_NONE)
+ 		level = LEVEL_CONTAINER;
+ 	if (level == LEVEL_CONTAINER) {
+@@ -3381,6 +3378,9 @@ static int validate_geometry_ddf(struct supertype *st,
+ 						       freesize, verbose);
+ 	}
+ 
++	if (*chunk == UnSet)
++		*chunk = DEFAULT_CHUNK;
++
+ 	if (!dev) {
+ 		mdu_array_info_t array = {
+ 			.level = level,
+-- 
+2.39.1
+
diff --git a/poky/meta/recipes-extended/mdadm/files/0003-mdadm-Grow-Fix-use-after-close-bug-by-closing-after-.patch b/poky/meta/recipes-extended/mdadm/files/0003-mdadm-Grow-Fix-use-after-close-bug-by-closing-after-.patch
new file mode 100644
index 0000000..a954ab0
--- /dev/null
+++ b/poky/meta/recipes-extended/mdadm/files/0003-mdadm-Grow-Fix-use-after-close-bug-by-closing-after-.patch
@@ -0,0 +1,91 @@
+From bd064da1469a6a07331b076a0294a8c6c3c38526 Mon Sep 17 00:00:00 2001
+From: Logan Gunthorpe <logang@deltatee.com>
+Date: Wed, 22 Jun 2022 14:25:09 -0600
+Subject: [PATCH 3/4] mdadm/Grow: Fix use after close bug by closing after fork
+
+The test 07reshape-grow fails most of the time. But it succeeds around
+1 in 5 times. When it does succeed, it causes the tests to die because
+mdadm has segfaulted.
+
+The segfault was caused by mdadm attempting to repoen a file
+descriptor that was already closed. The backtrace of the segfault
+was:
+
+  #0  __strncmp_avx2 () at ../sysdeps/x86_64/multiarch/strcmp-avx2.S:101
+  #1  0x000056146e31d44b in devnm2devid (devnm=0x0) at util.c:956
+  #2  0x000056146e31dab4 in open_dev_flags (devnm=0x0, flags=0)
+                         at util.c:1072
+  #3  0x000056146e31db22 in open_dev (devnm=0x0) at util.c:1079
+  #4  0x000056146e3202e8 in reopen_mddev (mdfd=4) at util.c:2244
+  #5  0x000056146e329f36 in start_array (mdfd=4,
+              mddev=0x7ffc55342450 "/dev/md0", content=0x7ffc55342860,
+              st=0x56146fc78660, ident=0x7ffc55342f70, best=0x56146fc6f5d0,
+              bestcnt=10, chosen_drive=0, devices=0x56146fc706b0, okcnt=5,
+	      sparecnt=0,  rebuilding_cnt=0, journalcnt=0, c=0x7ffc55342e90,
+	      clean=1,  avail=0x56146fc78720 "\001\001\001\001\001",
+	      start_partial_ok=0, err_ok=0, was_forced=0)
+	                  at Assemble.c:1206
+  #6  0x000056146e32c36e in Assemble (st=0x56146fc78660,
+               mddev=0x7ffc55342450 "/dev/md0", ident=0x7ffc55342f70,
+	       devlist=0x56146fc6e2d0, c=0x7ffc55342e90)
+	                 at Assemble.c:1914
+  #7  0x000056146e312ac9 in main (argc=11, argv=0x7ffc55343238)
+                         at mdadm.c:1510
+
+The file descriptor was closed early in Grow_continue(). The noted commit
+moved the close() call to close the fd above the fork which caused the
+parent process to return with a closed fd.
+
+This meant reshape_array() and Grow_continue() would return in the parent
+with the fd forked. The fd would eventually be passed to reopen_mddev()
+which returned an unhandled NULL from fd2devnm() which would then be
+dereferenced in devnm2devid.
+
+Fix this by moving the close() call below the fork. This appears to
+fix the 07revert-grow test. While we're at it, switch to using
+close_fd() to invalidate the file descriptor.
+
+Fixes: 77b72fa82813 ("mdadm/Grow: prevent md's fd from being occupied during delayed time")
+Cc: Alex Wu <alexwu@synology.com>
+Cc: BingJing Chang <bingjingc@synology.com>
+Cc: Danny Shih <dannyshih@synology.com>
+Cc: ChangSyun Peng <allenpeng@synology.com>
+Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
+Acked-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
+Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
+
+Upstream-Status: Backport
+
+Reference to upstream patch:
+https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=548e9b916f86
+
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ Grow.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/Grow.c b/Grow.c
+index 9c6fc95..a8e4e83 100644
+--- a/Grow.c
++++ b/Grow.c
+@@ -3501,7 +3501,6 @@ started:
+ 			return 0;
+ 		}
+ 
+-	close(fd);
+ 	/* Now we just need to kick off the reshape and watch, while
+ 	 * handling backups of the data...
+ 	 * This is all done by a forked background process.
+@@ -3522,6 +3521,9 @@ started:
+ 		break;
+ 	}
+ 
++	/* Close unused file descriptor in the forked process */
++	close_fd(&fd);
++
+ 	/* If another array on the same devices is busy, the
+ 	 * reshape will wait for them.  This would mean that
+ 	 * the first section that we suspend will stay suspended
+-- 
+2.39.1
+
diff --git a/poky/meta/recipes-extended/mdadm/files/0004-monitor-Avoid-segfault-when-calling-NULL-get_bad_blo.patch b/poky/meta/recipes-extended/mdadm/files/0004-monitor-Avoid-segfault-when-calling-NULL-get_bad_blo.patch
new file mode 100644
index 0000000..72cb40f
--- /dev/null
+++ b/poky/meta/recipes-extended/mdadm/files/0004-monitor-Avoid-segfault-when-calling-NULL-get_bad_blo.patch
@@ -0,0 +1,42 @@
+From 2296a4a441b4b8546e2eb32403930f1bb8f3ee4a Mon Sep 17 00:00:00 2001
+From: Logan Gunthorpe <logang@deltatee.com>
+Date: Wed, 22 Jun 2022 14:25:10 -0600
+Subject: [PATCH 4/4] monitor: Avoid segfault when calling NULL get_bad_blocks
+
+Not all struct superswitch implement a get_bad_blocks() function,
+yet mdmon seems to call it without checking for NULL and thus
+occasionally segfaults in the test 10ddf-geometry.
+
+Fix this by checking for NULL before calling it.
+
+Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
+Acked-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
+Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
+
+Upstream-Status: Backport
+
+Reference to upstream patch:
+https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=9ae62977b51d
+
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ monitor.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/monitor.c b/monitor.c
+index afc3e50..8e43c0d 100644
+--- a/monitor.c
++++ b/monitor.c
+@@ -312,6 +312,9 @@ static int check_for_cleared_bb(struct active_array *a, struct mdinfo *mdi)
+ 	struct md_bb *bb;
+ 	int i;
+ 
++	if (!ss->get_bad_blocks)
++		return -1;
++
+ 	/*
+ 	 * Get a list of bad blocks for an array, then read list of
+ 	 * acknowledged bad blocks from kernel and compare it against metadata
+-- 
+2.39.1
+
diff --git a/poky/meta/recipes-extended/mdadm/files/0005-mdadm-test-Mark-and-ignore-broken-test-failures.patch b/poky/meta/recipes-extended/mdadm/files/0005-mdadm-test-Mark-and-ignore-broken-test-failures.patch
new file mode 100644
index 0000000..c55bfb1
--- /dev/null
+++ b/poky/meta/recipes-extended/mdadm/files/0005-mdadm-test-Mark-and-ignore-broken-test-failures.patch
@@ -0,0 +1,128 @@
+From feab1f72fcf032a4d21d0a69eb61b23a5ddb3352 Mon Sep 17 00:00:00 2001
+From: Logan Gunthorpe <logang@deltatee.com>
+Date: Wed, 22 Jun 2022 14:25:18 -0600
+Subject: [PATCH 5/6] mdadm/test: Mark and ignore broken test failures
+
+Add functionality to continue if a test marked as broken fails.
+
+To mark a test as broken, a file with the same name but with the suffix
+'.broken' should exist. The first line in the file will be printed with
+a KNOWN BROKEN message; the rest of the file can describe the how the
+test is broken.
+
+Also adds --skip-broken and --skip-always-broken to skip all the tests
+that have a .broken file or to skip all tests whose .broken file's first
+line contains the keyword always.
+
+Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
+Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
+
+Upstream-Status: Backport
+
+Reference to upstream patch:
+https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=28520bf114b3
+
+[OP: adjusted context for mdadm-4.2]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ test | 37 +++++++++++++++++++++++++++++++++++--
+ 1 file changed, 35 insertions(+), 2 deletions(-)
+
+diff --git a/test b/test
+index 8f189d9..ee8fba1 100755
+--- a/test
++++ b/test
+@@ -10,6 +10,8 @@ devlist=
+ 
+ savelogs=0
+ exitonerror=1
++ctrl_c_error=0
++skipbroken=0
+ prefix='[0-9][0-9]'
+ 
+ # use loop devices by default if doesn't specify --dev
+@@ -35,6 +37,7 @@ die() {
+ 
+ ctrl_c() {
+ 	exitonerror=1
++	ctrl_c_error=1
+ }
+ 
+ # mdadm always adds --quiet, and we want to see any unexpected messages
+@@ -79,8 +82,21 @@ mdadm() {
+ do_test() {
+ 	_script=$1
+ 	_basename=`basename $_script`
++	_broken=0
++
+ 	if [ -f "$_script" ]
+ 	then
++		if [ -f "${_script}.broken" ]; then
++			_broken=1
++			_broken_msg=$(head -n1 "${_script}.broken" | tr -d '\n')
++			if [ "$skipbroken" == "all" ]; then
++				return
++			elif [ "$skipbroken" == "always" ] &&
++			     [[ "$_broken_msg" == *always* ]]; then
++				return
++			fi
++		fi
++
+ 		rm -f $targetdir/stderr
+ 		# this might have been reset: restore the default.
+ 		echo 2000 > /proc/sys/dev/raid/speed_limit_max
+@@ -97,10 +113,15 @@ do_test() {
+ 		else
+ 			save_log fail
+ 			_fail=1
++			if [ "$_broken" == "1" ]; then
++				echo "  (KNOWN BROKEN TEST: $_broken_msg)"
++			fi
+ 		fi
+ 		[ "$savelogs" == "1" ] &&
+ 			mv -f $targetdir/log $logdir/$_basename.log
+-		[ "$_fail" == "1" -a "$exitonerror" == "1" ] && exit 1
++		[ "$ctrl_c_error" == "1" ] && exit 1
++		[ "$_fail" == "1" -a "$exitonerror" == "1" \
++		  -a "$_broken" == "0" ] && exit 1
+ 	fi
+ }
+ 
+@@ -117,6 +138,8 @@ do_help() {
+ 		--logdir=directory          Directory to save all logfiles in
+ 		--save-logs                 Usually use with --logdir together
+ 		--keep-going | --no-error   Don't stop on error, ie. run all tests
++		--skip-broken               Skip tests that are known to be broken
++		--skip-always-broken        Skip tests that are known to always fail
+ 		--dev=loop|lvm|ram|disk     Use loop devices (default), LVM, RAM or disk
+ 		--disks=                    Provide a bunch of physical devices for test
+ 		--volgroup=name             LVM volume group for LVM test
+@@ -211,6 +234,12 @@ parse_args() {
+ 		--keep-going | --no-error )
+ 			exitonerror=0
+ 			;;
++		--skip-broken )
++			skipbroken=all
++			;;
++		--skip-always-broken )
++			skipbroken=always
++			;;
+ 		--disable-multipath )
+ 			unset MULTIPATH
+ 			;;
+@@ -275,7 +304,11 @@ main() {
+ 			if [ $script == "$testdir/11spare-migration" ];then
+ 				continue
+ 			fi
+-			do_test $script
++			case $script in
++			 *.broken) ;;
++			 *)
++			     do_test $script
++			 esac
+ 		done
+ 	fi
+ 
+-- 
+2.39.1
+
diff --git a/poky/meta/recipes-extended/mdadm/files/0006-tests-Add-broken-files-for-all-broken-tests.patch b/poky/meta/recipes-extended/mdadm/files/0006-tests-Add-broken-files-for-all-broken-tests.patch
new file mode 100644
index 0000000..115b23b
--- /dev/null
+++ b/poky/meta/recipes-extended/mdadm/files/0006-tests-Add-broken-files-for-all-broken-tests.patch
@@ -0,0 +1,454 @@
+From fd1c26ba129b069d9f73afaefdbe53683de3814a Mon Sep 17 00:00:00 2001
+From: Logan Gunthorpe <logang@deltatee.com>
+Date: Wed, 22 Jun 2022 14:25:19 -0600
+Subject: [PATCH 6/6] tests: Add broken files for all broken tests
+
+Each broken file contains the rough frequency of brokeness as well
+as a brief explanation of what happens when it breaks. Estimates
+of failure rates are not statistically significant and can vary
+run to run.
+
+This is really just a view from my window. Tests were done on a
+small VM with the default loop devices, not real hardware. We've
+seen different kernel configurations can cause bugs to appear as well
+(ie. different block schedulers). It may also be that different race
+conditions will be seen on machines with different performance
+characteristics.
+
+These annotations were done with the kernel currently in md/md-next:
+
+ facef3b96c5b ("md: Notify sysfs sync_completed in md_reap_sync_thread()")
+
+Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
+Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
+
+Upstream-Status: Backport
+
+Reference to upstream patch:
+https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=daa86d663476
+
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ tests/01r5integ.broken                     |  7 ++++
+ tests/01raid6integ.broken                  |  7 ++++
+ tests/04r5swap.broken                      |  7 ++++
+ tests/07autoassemble.broken                |  8 ++++
+ tests/07autodetect.broken                  |  5 +++
+ tests/07changelevelintr.broken             |  9 +++++
+ tests/07changelevels.broken                |  9 +++++
+ tests/07reshape5intr.broken                | 45 ++++++++++++++++++++++
+ tests/07revert-grow.broken                 | 31 +++++++++++++++
+ tests/07revert-shrink.broken               |  9 +++++
+ tests/07testreshape5.broken                | 12 ++++++
+ tests/09imsm-assemble.broken               |  6 +++
+ tests/09imsm-create-fail-rebuild.broken    |  5 +++
+ tests/09imsm-overlap.broken                |  7 ++++
+ tests/10ddf-assemble-missing.broken        |  6 +++
+ tests/10ddf-fail-create-race.broken        |  7 ++++
+ tests/10ddf-fail-two-spares.broken         |  5 +++
+ tests/10ddf-incremental-wrong-order.broken |  9 +++++
+ tests/14imsm-r1_2d-grow-r1_3d.broken       |  5 +++
+ tests/14imsm-r1_2d-takeover-r0_2d.broken   |  6 +++
+ tests/18imsm-r10_4d-takeover-r0_2d.broken  |  5 +++
+ tests/18imsm-r1_2d-takeover-r0_1d.broken   |  6 +++
+ tests/19raid6auto-repair.broken            |  5 +++
+ tests/19raid6repair.broken                 |  5 +++
+ 24 files changed, 226 insertions(+)
+ create mode 100644 tests/01r5integ.broken
+ create mode 100644 tests/01raid6integ.broken
+ create mode 100644 tests/04r5swap.broken
+ create mode 100644 tests/07autoassemble.broken
+ create mode 100644 tests/07autodetect.broken
+ create mode 100644 tests/07changelevelintr.broken
+ create mode 100644 tests/07changelevels.broken
+ create mode 100644 tests/07reshape5intr.broken
+ create mode 100644 tests/07revert-grow.broken
+ create mode 100644 tests/07revert-shrink.broken
+ create mode 100644 tests/07testreshape5.broken
+ create mode 100644 tests/09imsm-assemble.broken
+ create mode 100644 tests/09imsm-create-fail-rebuild.broken
+ create mode 100644 tests/09imsm-overlap.broken
+ create mode 100644 tests/10ddf-assemble-missing.broken
+ create mode 100644 tests/10ddf-fail-create-race.broken
+ create mode 100644 tests/10ddf-fail-two-spares.broken
+ create mode 100644 tests/10ddf-incremental-wrong-order.broken
+ create mode 100644 tests/14imsm-r1_2d-grow-r1_3d.broken
+ create mode 100644 tests/14imsm-r1_2d-takeover-r0_2d.broken
+ create mode 100644 tests/18imsm-r10_4d-takeover-r0_2d.broken
+ create mode 100644 tests/18imsm-r1_2d-takeover-r0_1d.broken
+ create mode 100644 tests/19raid6auto-repair.broken
+ create mode 100644 tests/19raid6repair.broken
+
+diff --git a/tests/01r5integ.broken b/tests/01r5integ.broken
+new file mode 100644
+index 0000000..2073763
+--- /dev/null
++++ b/tests/01r5integ.broken
+@@ -0,0 +1,7 @@
++fails rarely
++
++Fails about 1 in every 30 runs with a sha mismatch error:
++
++    c49ab26e1b01def7874af9b8a6d6d0c29fdfafe6 /dev/md0 does not match
++    15dc2f73262f811ada53c65e505ceec9cf025cb9 /dev/md0 with /dev/loop3
++    missing
+diff --git a/tests/01raid6integ.broken b/tests/01raid6integ.broken
+new file mode 100644
+index 0000000..1df735f
+--- /dev/null
++++ b/tests/01raid6integ.broken
+@@ -0,0 +1,7 @@
++fails infrequently
++
++Fails about 1 in 5 with a sha mismatch:
++
++    8286c2bc045ae2cfe9f8b7ae3a898fa25db6926f /dev/md0 does not match
++    a083a0738b58caab37fd568b91b177035ded37df /dev/md0 with /dev/loop2 and
++    /dev/loop3 missing
+diff --git a/tests/04r5swap.broken b/tests/04r5swap.broken
+new file mode 100644
+index 0000000..e38987d
+--- /dev/null
++++ b/tests/04r5swap.broken
+@@ -0,0 +1,7 @@
++always fails
++
++Fails with errors:
++
++  mdadm: /dev/loop0 has no superblock - assembly aborted
++
++   ERROR: no recovery happening
+diff --git a/tests/07autoassemble.broken b/tests/07autoassemble.broken
+new file mode 100644
+index 0000000..8be0940
+--- /dev/null
++++ b/tests/07autoassemble.broken
+@@ -0,0 +1,8 @@
++always fails
++
++Prints lots of messages, but the array doesn't assemble. Error
++possibly related to:
++
++  mdadm: /dev/md/1 is busy - skipping
++  mdadm: no recogniseable superblock on /dev/md/testing:0
++  mdadm: /dev/md/2 is busy - skipping
+diff --git a/tests/07autodetect.broken b/tests/07autodetect.broken
+new file mode 100644
+index 0000000..294954a
+--- /dev/null
++++ b/tests/07autodetect.broken
+@@ -0,0 +1,5 @@
++always fails
++
++Fails with error:
++
++    ERROR: no resync happening
+diff --git a/tests/07changelevelintr.broken b/tests/07changelevelintr.broken
+new file mode 100644
+index 0000000..284b490
+--- /dev/null
++++ b/tests/07changelevelintr.broken
+@@ -0,0 +1,9 @@
++always fails
++
++Fails with errors:
++
++  mdadm: this change will reduce the size of the array.
++         use --grow --array-size first to truncate array.
++         e.g. mdadm --grow /dev/md0 --array-size 56832
++
++  ERROR: no reshape happening
+diff --git a/tests/07changelevels.broken b/tests/07changelevels.broken
+new file mode 100644
+index 0000000..9b930d9
+--- /dev/null
++++ b/tests/07changelevels.broken
+@@ -0,0 +1,9 @@
++always fails
++
++Fails with errors:
++
++    mdadm: /dev/loop0 is smaller than given size. 18976K < 19968K + metadata
++    mdadm: /dev/loop1 is smaller than given size. 18976K < 19968K + metadata
++    mdadm: /dev/loop2 is smaller than given size. 18976K < 19968K + metadata
++
++    ERROR: /dev/md0 isn't a block device.
+diff --git a/tests/07reshape5intr.broken b/tests/07reshape5intr.broken
+new file mode 100644
+index 0000000..efe52a6
+--- /dev/null
++++ b/tests/07reshape5intr.broken
+@@ -0,0 +1,45 @@
++always fails
++
++This patch, recently added to md-next causes the test to always fail:
++
++7e6ba434cc60 ("md: don't unregister sync_thread with reconfig_mutex
++held")
++
++The new error is simply:
++
++   ERROR: no reshape happening
++
++Before the patch, the error seen is below.
++
++--
++
++fails infrequently
++
++Fails roughly 1 in 4 runs with errors:
++
++    mdadm: Merging with already-assembled /dev/md/0
++    mdadm: cannot re-read metadata from /dev/loop6 - aborting
++
++    ERROR: no reshape happening
++
++Also have seen a random deadlock:
++
++     INFO: task mdadm:109702 blocked for more than 30 seconds.
++           Not tainted 5.18.0-rc3-eid-vmlocalyes-dbg-00095-g3c2b5427979d #2040
++     "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
++     task:mdadm           state:D stack:    0 pid:109702 ppid:     1 flags:0x00004000
++     Call Trace:
++      <TASK>
++      __schedule+0x67e/0x13b0
++      schedule+0x82/0x110
++      mddev_suspend+0x2e1/0x330
++      suspend_lo_store+0xbd/0x140
++      md_attr_store+0xcb/0x130
++      sysfs_kf_write+0x89/0xb0
++      kernfs_fop_write_iter+0x202/0x2c0
++      new_sync_write+0x222/0x330
++      vfs_write+0x3bc/0x4d0
++      ksys_write+0xd9/0x180
++      __x64_sys_write+0x43/0x50
++      do_syscall_64+0x3b/0x90
++      entry_SYSCALL_64_after_hwframe+0x44/0xae
+diff --git a/tests/07revert-grow.broken b/tests/07revert-grow.broken
+new file mode 100644
+index 0000000..9b6db86
+--- /dev/null
++++ b/tests/07revert-grow.broken
+@@ -0,0 +1,31 @@
++always fails
++
++This patch, recently added to md-next causes the test to always fail:
++
++7e6ba434cc60 ("md: don't unregister sync_thread with reconfig_mutex held")
++
++The errors are:
++
++    mdadm: No active reshape to revert on /dev/loop0
++    ERROR: active raid5 not found
++
++Before the patch, the error seen is below.
++
++--
++
++fails rarely
++
++Fails about 1 in every 30 runs with errors:
++
++    mdadm: Merging with already-assembled /dev/md/0
++    mdadm: backup file /tmp/md-backup inaccessible: No such file or directory
++    mdadm: failed to add /dev/loop1 to /dev/md/0: Invalid argument
++    mdadm: failed to add /dev/loop2 to /dev/md/0: Invalid argument
++    mdadm: failed to add /dev/loop3 to /dev/md/0: Invalid argument
++    mdadm: failed to add /dev/loop0 to /dev/md/0: Invalid argument
++    mdadm: /dev/md/0 assembled from 1 drive - need all 5 to start it
++            (use --run to insist).
++
++    grep: /sys/block/md*/md/sync_action: No such file or directory
++
++    ERROR: active raid5 not found
+diff --git a/tests/07revert-shrink.broken b/tests/07revert-shrink.broken
+new file mode 100644
+index 0000000..c33c39e
+--- /dev/null
++++ b/tests/07revert-shrink.broken
+@@ -0,0 +1,9 @@
++always fails
++
++Fails with errors:
++
++    mdadm: this change will reduce the size of the array.
++           use --grow --array-size first to truncate array.
++           e.g. mdadm --grow /dev/md0 --array-size 53760
++
++    ERROR: active raid5 not found
+diff --git a/tests/07testreshape5.broken b/tests/07testreshape5.broken
+new file mode 100644
+index 0000000..a8ce03e
+--- /dev/null
++++ b/tests/07testreshape5.broken
+@@ -0,0 +1,12 @@
++always fails
++
++Test seems to run 'test_stripe' at $dir directory, but $dir is never
++set. If $dir is adjusted to $PWD, the test still fails with:
++
++    mdadm: /dev/loop2 is not suitable for this array.
++    mdadm: create aborted
++    ++ return 1
++    ++ cmp -s -n 8192 /dev/md0 /tmp/RandFile
++    ++ echo cmp failed
++    cmp failed
++    ++ exit 2
+diff --git a/tests/09imsm-assemble.broken b/tests/09imsm-assemble.broken
+new file mode 100644
+index 0000000..a6d4d5c
+--- /dev/null
++++ b/tests/09imsm-assemble.broken
+@@ -0,0 +1,6 @@
++fails infrequently
++
++Fails roughly 1 in 10 runs with errors:
++
++    mdadm: /dev/loop2 is still in use, cannot remove.
++    /dev/loop2 removal from /dev/md/container should have succeeded
+diff --git a/tests/09imsm-create-fail-rebuild.broken b/tests/09imsm-create-fail-rebuild.broken
+new file mode 100644
+index 0000000..40c4b29
+--- /dev/null
++++ b/tests/09imsm-create-fail-rebuild.broken
+@@ -0,0 +1,5 @@
++always fails
++
++Fails with error:
++
++    **Error**: Array size mismatch - expected 3072, actual 16384
+diff --git a/tests/09imsm-overlap.broken b/tests/09imsm-overlap.broken
+new file mode 100644
+index 0000000..e7ccab7
+--- /dev/null
++++ b/tests/09imsm-overlap.broken
+@@ -0,0 +1,7 @@
++always fails
++
++Fails with errors:
++
++    **Error**: Offset mismatch - expected 15360, actual 0
++    **Error**: Offset mismatch - expected 15360, actual 0
++    /dev/md/vol3 failed check
+diff --git a/tests/10ddf-assemble-missing.broken b/tests/10ddf-assemble-missing.broken
+new file mode 100644
+index 0000000..bfd8d10
+--- /dev/null
++++ b/tests/10ddf-assemble-missing.broken
+@@ -0,0 +1,6 @@
++always fails
++
++Fails with errors:
++
++    ERROR: /dev/md/vol0 has unexpected state on /dev/loop10
++    ERROR: unexpected number of online disks on /dev/loop10
+diff --git a/tests/10ddf-fail-create-race.broken b/tests/10ddf-fail-create-race.broken
+new file mode 100644
+index 0000000..6c0df02
+--- /dev/null
++++ b/tests/10ddf-fail-create-race.broken
+@@ -0,0 +1,7 @@
++usually fails
++
++Fails about 9 out of 10 times with many errors:
++
++    mdadm: cannot open MISSING: No such file or directory
++    ERROR: non-degraded array found
++    ERROR: disk 0 not marked as failed in meta data
+diff --git a/tests/10ddf-fail-two-spares.broken b/tests/10ddf-fail-two-spares.broken
+new file mode 100644
+index 0000000..eeea56d
+--- /dev/null
++++ b/tests/10ddf-fail-two-spares.broken
+@@ -0,0 +1,5 @@
++fails infrequently
++
++Fails roughly 1 in 3 with error:
++
++   ERROR: /dev/md/vol1 should be optimal in meta data
+diff --git a/tests/10ddf-incremental-wrong-order.broken b/tests/10ddf-incremental-wrong-order.broken
+new file mode 100644
+index 0000000..a5af3ba
+--- /dev/null
++++ b/tests/10ddf-incremental-wrong-order.broken
+@@ -0,0 +1,9 @@
++always fails
++
++Fails with errors:
++    ERROR: sha1sum of /dev/md/vol0 has changed
++    ERROR: /dev/md/vol0 has unexpected state on /dev/loop10
++    ERROR: unexpected number of online disks on /dev/loop10
++    ERROR: /dev/md/vol0 has unexpected state on /dev/loop8
++    ERROR: unexpected number of online disks on /dev/loop8
++    ERROR: sha1sum of /dev/md/vol0 has changed
+diff --git a/tests/14imsm-r1_2d-grow-r1_3d.broken b/tests/14imsm-r1_2d-grow-r1_3d.broken
+new file mode 100644
+index 0000000..4ef1d40
+--- /dev/null
++++ b/tests/14imsm-r1_2d-grow-r1_3d.broken
+@@ -0,0 +1,5 @@
++always fails
++
++Fails with error:
++
++    mdadm/tests/func.sh: line 325: dvsize/chunk: division by 0 (error token is "chunk")
+diff --git a/tests/14imsm-r1_2d-takeover-r0_2d.broken b/tests/14imsm-r1_2d-takeover-r0_2d.broken
+new file mode 100644
+index 0000000..89cd4e5
+--- /dev/null
++++ b/tests/14imsm-r1_2d-takeover-r0_2d.broken
+@@ -0,0 +1,6 @@
++always fails
++
++Fails with error:
++
++    tests/func.sh: line 325: dvsize/chunk: division by 0 (error token
++		is "chunk")
+diff --git a/tests/18imsm-r10_4d-takeover-r0_2d.broken b/tests/18imsm-r10_4d-takeover-r0_2d.broken
+new file mode 100644
+index 0000000..a27399f
+--- /dev/null
++++ b/tests/18imsm-r10_4d-takeover-r0_2d.broken
+@@ -0,0 +1,5 @@
++fails rarely
++
++Fails about 1 run in 100 with message:
++
++   ERROR:  size is wrong for /dev/md/vol0: 2 * 5120 (chunk=128) = 20480, not 0
+diff --git a/tests/18imsm-r1_2d-takeover-r0_1d.broken b/tests/18imsm-r1_2d-takeover-r0_1d.broken
+new file mode 100644
+index 0000000..aa1982e
+--- /dev/null
++++ b/tests/18imsm-r1_2d-takeover-r0_1d.broken
+@@ -0,0 +1,6 @@
++always fails
++
++Fails with error:
++
++    tests/func.sh: line 325: dvsize/chunk: division by 0 (error token
++			is "chunk")
+diff --git a/tests/19raid6auto-repair.broken b/tests/19raid6auto-repair.broken
+new file mode 100644
+index 0000000..e91a142
+--- /dev/null
++++ b/tests/19raid6auto-repair.broken
+@@ -0,0 +1,5 @@
++always fails
++
++Fails with:
++
++    "should detect errors"
+diff --git a/tests/19raid6repair.broken b/tests/19raid6repair.broken
+new file mode 100644
+index 0000000..e91a142
+--- /dev/null
++++ b/tests/19raid6repair.broken
+@@ -0,0 +1,5 @@
++always fails
++
++Fails with:
++
++    "should detect errors"
+-- 
+2.39.1
+
diff --git a/poky/meta/recipes-extended/mdadm/files/run-ptest b/poky/meta/recipes-extended/mdadm/files/run-ptest
index fae8071..2380c32 100644
--- a/poky/meta/recipes-extended/mdadm/files/run-ptest
+++ b/poky/meta/recipes-extended/mdadm/files/run-ptest
@@ -2,6 +2,6 @@
 
 mkdir -p /mdadm-testing-dir
 # make the test continue to execute even one fail
-dir=. ./test --keep-going --disable-integrity
+dir=. ./test --keep-going --disable-integrity --skip-broken
 
 rm -rf /mdadm-testing-dir/*
diff --git a/poky/meta/recipes-extended/mdadm/mdadm_4.2.bb b/poky/meta/recipes-extended/mdadm/mdadm_4.2.bb
index 14de9d8..50d9548 100644
--- a/poky/meta/recipes-extended/mdadm/mdadm_4.2.bb
+++ b/poky/meta/recipes-extended/mdadm/mdadm_4.2.bb
@@ -32,6 +32,12 @@
            file://0001-tests-fix-raid0-tests-for-0.90-metadata.patch \
            file://0001-tests-00readonly-Run-udevadm-settle-before-setting-r.patch \
            file://0001-tests-04update-metadata-avoid-passing-chunk-size-to.patch \
+           file://0001-DDF-Cleanup-validate_geometry_ddf_container.patch \
+           file://0002-DDF-Fix-NULL-pointer-dereference-in-validate_geometr.patch \
+           file://0003-mdadm-Grow-Fix-use-after-close-bug-by-closing-after-.patch \
+           file://0004-monitor-Avoid-segfault-when-calling-NULL-get_bad_blo.patch \
+           file://0005-mdadm-test-Mark-and-ignore-broken-test-failures.patch \
+           file://0006-tests-Add-broken-files-for-all-broken-tests.patch \
            "
 
 SRC_URI[sha256sum] = "461c215670864bb74a4d1a3620684aa2b2f8296dffa06743f26dda5557acf01d"
@@ -101,10 +107,9 @@
 }
 
 RDEPENDS:${PN} += "bash"
-RDEPENDS:${PN}-ptest += "bash e2fsprogs-mke2fs"
+RDEPENDS:${PN}-ptest += "bash e2fsprogs-mke2fs util-linux-lsblk util-linux-losetup strace"
 RRECOMMENDS:${PN}-ptest += " \
     coreutils \
-    util-linux \
     kernel-module-loop \
     kernel-module-linear \
     kernel-module-raid0 \
diff --git a/poky/meta/recipes-extended/msmtp/msmtp_1.8.23.bb b/poky/meta/recipes-extended/msmtp/msmtp_1.8.24.bb
similarity index 91%
rename from poky/meta/recipes-extended/msmtp/msmtp_1.8.23.bb
rename to poky/meta/recipes-extended/msmtp/msmtp_1.8.24.bb
index 5e68a7e..b8c8671 100644
--- a/poky/meta/recipes-extended/msmtp/msmtp_1.8.23.bb
+++ b/poky/meta/recipes-extended/msmtp/msmtp_1.8.24.bb
@@ -11,7 +11,7 @@
 UPSTREAM_CHECK_URI = "https://marlam.de/msmtp/download/"
 
 SRC_URI = "https://marlam.de/${BPN}/releases/${BP}.tar.xz"
-SRC_URI[sha256sum] = "cf04c16b099b3d414db4b5b93fc5ed9d46aad564c81a352aa107a33964c356b8"
+SRC_URI[sha256sum] = "bd6644b1aaab17d61b86647993e3efad860b23c54283b00ddc579c1f5110aa59"
 
 inherit gettext autotools update-alternatives pkgconfig
 
diff --git a/poky/meta/recipes-extended/pam/libpam/0001-examples-Replace-use-of-termio.h-with-termios.h.patch b/poky/meta/recipes-extended/pam/libpam/0001-examples-Replace-use-of-termio.h-with-termios.h.patch
new file mode 100644
index 0000000..95c437d
--- /dev/null
+++ b/poky/meta/recipes-extended/pam/libpam/0001-examples-Replace-use-of-termio.h-with-termios.h.patch
@@ -0,0 +1,39 @@
+From 9b96fcfa5748934b8b6a4db4ee25a5e3165905c0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 1 Jul 2023 07:48:17 -0700
+Subject: [PATCH] examples: Replace use of termio.h with termios.h
+
+Fixes build with musl and makes it portable
+
+Upstream-Status: Backport [https://github.com/linux-pam/linux-pam/commit/5374f677e4cae669eb9accf2449178b602e8a40a]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ examples/tty_conv.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/examples/tty_conv.c b/examples/tty_conv.c
+index 23f0684..db22500 100644
+--- a/examples/tty_conv.c
++++ b/examples/tty_conv.c
+@@ -6,7 +6,8 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <unistd.h>
+-#include <termio.h>
++#include <termios.h>
++#include <sys/ioctl.h>
+ #include <security/pam_appl.h>
+ 
+ /***************************************
+@@ -16,7 +17,7 @@
+  ***************************************/
+ static void echoOff(int fd, int off)
+ {
+-    struct termio tty;
++    struct termios tty;
+     if (ioctl(fd, TCGETA, &tty) < 0)
+     {
+         fprintf(stderr, "TCGETA failed: %s\n", strerror(errno));
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-extended/pam/libpam/0001-pam_motd-do-not-rely-on-all-filesystems-providing-a-.patch b/poky/meta/recipes-extended/pam/libpam/0001-pam_motd-do-not-rely-on-all-filesystems-providing-a-.patch
deleted file mode 100644
index 94dcb04..0000000
--- a/poky/meta/recipes-extended/pam/libpam/0001-pam_motd-do-not-rely-on-all-filesystems-providing-a-.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 42404548721c653317c911c83d885e2fc7fbca70 Mon Sep 17 00:00:00 2001
-From: Per Jessen <per@jessen.ch>
-Date: Fri, 22 Apr 2022 18:15:36 +0200
-Subject: [PATCH] pam_motd: do not rely on all filesystems providing a filetype
-
-When using scandir() to look for MOTD files to display, we wrongly
-relied on all filesystems providing a filetype.  This is a fix to divert
-to lstat() when we have no filetype.  To maintain MT safety, it isn't
-possible to use lstat() in the scandir() filter function, so all of the
-filtering has been moved to an additional loop after scanning all the
-motd dirs.
-Also, remove superfluous alphasort from scandir(), we are doing
-a qsort() later.
-
-Resolves: https://github.com/linux-pam/linux-pam/issues/455
-
-Upstream-Status: Backport [https://github.com/linux-pam/linux-pam/commit/42404548721c653317c911c83d885e2fc7fbca70]
-
-Signed-off-by: Per Jessen <per@jessen.ch>
-Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
----
- modules/pam_motd/pam_motd.c | 49 ++++++++++++++++++++++++++++++-------
- 1 file changed, 40 insertions(+), 9 deletions(-)
-
-diff --git a/modules/pam_motd/pam_motd.c b/modules/pam_motd/pam_motd.c
-index 6ac8cba2..5ca486e4 100644
---- a/modules/pam_motd/pam_motd.c
-+++ b/modules/pam_motd/pam_motd.c
-@@ -166,11 +166,6 @@ static int compare_strings(const void *a, const void *b)
-     }
- }
- 
--static int filter_dirents(const struct dirent *d)
--{
--    return (d->d_type == DT_REG || d->d_type == DT_LNK);
--}
--
- static void try_to_display_directories_with_overrides(pam_handle_t *pamh,
- 	char **motd_dir_path_split, unsigned int num_motd_dirs, int report_missing)
- {
-@@ -199,8 +194,7 @@ static void try_to_display_directories_with_overrides(pam_handle_t *pamh,
- 
-     for (i = 0; i < num_motd_dirs; i++) {
- 	int rv;
--	rv = scandir(motd_dir_path_split[i], &(dirscans[i]),
--		filter_dirents, alphasort);
-+	rv = scandir(motd_dir_path_split[i], &(dirscans[i]), NULL, NULL);
- 	if (rv < 0) {
- 	    if (errno != ENOENT || report_missing) {
- 		pam_syslog(pamh, LOG_ERR, "error scanning directory %s: %m",
-@@ -215,6 +209,41 @@ static void try_to_display_directories_with_overrides(pam_handle_t *pamh,
-     if (dirscans_size_total == 0)
-         goto out;
- 
-+    /* filter out unwanted names, directories, and complement data with lstat() */
-+    for (i = 0; i < num_motd_dirs; i++) {
-+	struct dirent **d = dirscans[i];
-+	for (unsigned int j = 0; j < dirscans_sizes[i]; j++) {
-+	    int rc;
-+	    char *fullpath;
-+	    struct stat s;
-+
-+	    switch(d[j]->d_type) {    /* the filetype determines how to proceed */
-+	    case DT_REG:              /* regular files and     */
-+	    case DT_LNK:              /* symlinks              */
-+		continue;             /* are good.             */
-+	    case DT_UNKNOWN:   /* for file systems that do not provide */
-+			       /* a filetype, we use lstat()           */
-+		if (join_dir_strings(&fullpath, motd_dir_path_split[i],
-+				     d[j]->d_name) <= 0)
-+		    break;
-+		rc = lstat(fullpath, &s);
-+		_pam_drop(fullpath);  /* free the memory alloc'ed by join_dir_strings */
-+		if (rc != 0)          /* if the lstat() somehow failed */
-+		    break;
-+
-+		if (S_ISREG(s.st_mode) ||          /* regular files and  */
-+		    S_ISLNK(s.st_mode)) continue;  /* symlinks are good  */
-+		break;
-+	    case DT_DIR:          /* We don't want directories     */
-+	    default:              /* nor anything else             */
-+		break;
-+	    }
-+	    _pam_drop(d[j]);  /* free memory                   */
-+	    d[j] = NULL;      /* indicate this one was dropped */
-+	    dirscans_size_total--;
-+	}
-+    }
-+
-     /* Allocate space for all file names found in the directories, including duplicates. */
-     if ((dirnames_all = calloc(dirscans_size_total, sizeof(*dirnames_all))) == NULL) {
- 	pam_syslog(pamh, LOG_CRIT, "failed to allocate dirname array");
-@@ -225,8 +254,10 @@ static void try_to_display_directories_with_overrides(pam_handle_t *pamh,
- 	unsigned int j;
- 
- 	for (j = 0; j < dirscans_sizes[i]; j++) {
--	    dirnames_all[i_dirnames] = dirscans[i][j]->d_name;
--	    i_dirnames++;
-+	    if (NULL != dirscans[i][j]) {
-+	        dirnames_all[i_dirnames] = dirscans[i][j]->d_name;
-+	        i_dirnames++;
-+	    }
- 	}
-     }
- 
--- 
-2.39.0
-
diff --git a/poky/meta/recipes-extended/pam/libpam/0001-run-xtests.sh-check-whether-files-exist.patch b/poky/meta/recipes-extended/pam/libpam/0001-run-xtests.sh-check-whether-files-exist.patch
deleted file mode 100644
index 40040a8..0000000
--- a/poky/meta/recipes-extended/pam/libpam/0001-run-xtests.sh-check-whether-files-exist.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From e8e8ccfd57e0274b431bc5717bf37c488285b07b Mon Sep 17 00:00:00 2001
-From: Mingli Yu <mingli.yu@windriver.com>
-Date: Wed, 27 Oct 2021 10:30:46 +0800
-Subject: [PATCH] run-xtests.sh: check whether files exist
-
-Fixes:
- # ./run-xtests.sh . tst-pam_access1
- mv: cannot stat '/etc/security/opasswd': No such file or directory
- PASS: tst-pam_access1
- mv: cannot stat '/etc/security/opasswd-pam-xtests': No such file or directory
- ==================
- 1 tests passed
- 0 tests not run
- ==================
-
-Upstream-Status: Backport [https://github.com/linux-pam/linux-pam/commit/e8e8ccfd57e0274b431bc5717bf37c488285b07b]
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- xtests/run-xtests.sh | 20 +++++++++++++-------
- 1 file changed, 13 insertions(+), 7 deletions(-)
-
-diff --git a/xtests/run-xtests.sh b/xtests/run-xtests.sh
-index 14f585d9..ff9a4dc1 100755
---- a/xtests/run-xtests.sh
-+++ b/xtests/run-xtests.sh
-@@ -18,10 +18,12 @@ all=0
- 
- mkdir -p /etc/security
- for config in access.conf group.conf time.conf limits.conf ; do
--	cp /etc/security/$config /etc/security/$config-pam-xtests
-+	[ -f "/etc/security/$config" ] &&
-+		mv /etc/security/$config /etc/security/$config-pam-xtests
- 	install -m 644 "${SRCDIR}"/$config /etc/security/$config
- done
--mv /etc/security/opasswd /etc/security/opasswd-pam-xtests
-+[ -f /etc/security/opasswd ] &&
-+	mv /etc/security/opasswd /etc/security/opasswd-pam-xtests
- 
- for testname in $XTESTS ; do
- 	  for cfg in "${SRCDIR}"/$testname*.pamd ; do
-@@ -47,11 +49,15 @@ for testname in $XTESTS ; do
- 	  all=`expr $all + 1`
- 	  rm -f /etc/pam.d/$testname*
- done
--mv /etc/security/access.conf-pam-xtests /etc/security/access.conf
--mv /etc/security/group.conf-pam-xtests /etc/security/group.conf
--mv /etc/security/time.conf-pam-xtests /etc/security/time.conf
--mv /etc/security/limits.conf-pam-xtests /etc/security/limits.conf
--mv /etc/security/opasswd-pam-xtests /etc/security/opasswd
-+
-+for config in access.conf group.conf time.conf limits.conf opasswd ; do
-+	if [ -f "/etc/security/$config-pam-xtests" ]; then
-+		mv /etc/security/$config-pam-xtests /etc/security/$config
-+	else
-+		rm -f /etc/security/$config
-+	fi
-+done
-+
- if test "$failed" -ne 0; then
- 	  echo "==================="
- 	  echo "$failed of $all tests failed"
--- 
-2.32.0
-
diff --git a/poky/meta/recipes-extended/pam/libpam/CVE-2022-28321-0002.patch b/poky/meta/recipes-extended/pam/libpam/CVE-2022-28321-0002.patch
deleted file mode 100644
index e7bf03f..0000000
--- a/poky/meta/recipes-extended/pam/libpam/CVE-2022-28321-0002.patch
+++ /dev/null
@@ -1,205 +0,0 @@
-From 23393bef92c1e768eda329813d7af55481c6ca9f Mon Sep 17 00:00:00 2001
-From: Thorsten Kukuk <kukuk@suse.com>
-Date: Thu, 24 Feb 2022 10:37:32 +0100
-Subject: [PATCH 2/2] pam_access: handle hostnames in access.conf
-
-According to the manual page, the following entry is valid but does not
-work:
--:root:ALL EXCEPT localhost
-
-See https://bugzilla.suse.com/show_bug.cgi?id=1019866
-
-Patched is based on PR#226 from Josef Moellers
-
-Upstream-Status: Backport
-CVE: CVE-2022-28321
-
-Reference to upstream patch:
-[https://github.com/linux-pam/linux-pam/commit/23393bef92c1e768eda329813d7af55481c6ca9f]
-
-Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com>
----
- modules/pam_access/pam_access.c | 95 ++++++++++++++++++++++++++-------
- 1 file changed, 76 insertions(+), 19 deletions(-)
-
-diff --git a/modules/pam_access/pam_access.c b/modules/pam_access/pam_access.c
-index 277192b..bca424f 100644
---- a/modules/pam_access/pam_access.c
-+++ b/modules/pam_access/pam_access.c
-@@ -637,7 +637,7 @@ remote_match (pam_handle_t *pamh, char *tok, struct login_info *item)
-       if ((str_len = strlen(string)) > tok_len
- 	  && strcasecmp(tok, string + str_len - tok_len) == 0)
- 	return YES;
--    } else if (tok[tok_len - 1] == '.') {
-+    } else if (tok[tok_len - 1] == '.') {       /* internet network numbers (end with ".") */
-       struct addrinfo hint;
- 
-       memset (&hint, '\0', sizeof (hint));
-@@ -678,7 +678,7 @@ remote_match (pam_handle_t *pamh, char *tok, struct login_info *item)
-       return NO;
-     }
- 
--    /* Assume network/netmask with an IP of a host.  */
-+    /* Assume network/netmask, IP address or hostname.  */
-     return network_netmask_match(pamh, tok, string, item);
- }
- 
-@@ -696,7 +696,7 @@ string_match (pam_handle_t *pamh, const char *tok, const char *string,
-     /*
-      * If the token has the magic value "ALL" the match always succeeds.
-      * Otherwise, return YES if the token fully matches the string.
--	 * "NONE" token matches NULL string.
-+     * "NONE" token matches NULL string.
-      */
- 
-     if (strcasecmp(tok, "ALL") == 0) {		/* all: always matches */
-@@ -714,7 +714,8 @@ string_match (pam_handle_t *pamh, const char *tok, const char *string,
- 
- /* network_netmask_match - match a string against one token
-  * where string is a hostname or ip (v4,v6) address and tok
-- * represents either a single ip (v4,v6) address or a network/netmask
-+ * represents either a hostname, a single ip (v4,v6) address
-+ * or a network/netmask
-  */
- static int
- network_netmask_match (pam_handle_t *pamh,
-@@ -723,10 +724,12 @@ network_netmask_match (pam_handle_t *pamh,
-     char *netmask_ptr;
-     char netmask_string[MAXHOSTNAMELEN + 1];
-     int addr_type;
-+    struct addrinfo *ai = NULL;
- 
-     if (item->debug)
--    pam_syslog (pamh, LOG_DEBUG,
-+      pam_syslog (pamh, LOG_DEBUG,
- 		"network_netmask_match: tok=%s, item=%s", tok, string);
-+
-     /* OK, check if tok is of type addr/mask */
-     if ((netmask_ptr = strchr(tok, '/')) != NULL)
-       {
-@@ -760,54 +763,108 @@ network_netmask_match (pam_handle_t *pamh,
- 	    netmask_ptr = number_to_netmask(netmask, addr_type,
- 		netmask_string, MAXHOSTNAMELEN);
- 	  }
--	}
-+
-+        /*
-+         * Construct an addrinfo list from the IP address.
-+         * This should not fail as the input is a correct IP address...
-+         */
-+	if (getaddrinfo (tok, NULL, NULL, &ai) != 0)
-+	  {
-+	    return NO;
-+	  }
-+      }
-     else
--	/* NO, then check if it is only an addr */
--	if (isipaddr(tok, NULL, NULL) != YES)
-+      {
-+        /*
-+	 * It is either an IP address or a hostname.
-+	 * Let getaddrinfo sort everything out
-+	 */
-+	if (getaddrinfo (tok, NULL, NULL, &ai) != 0)
- 	  {
-+	    pam_syslog(pamh, LOG_ERR, "cannot resolve hostname \"%s\"", tok);
-+
- 	    return NO;
- 	  }
-+	netmask_ptr = NULL;
-+      }
- 
-     if (isipaddr(string, NULL, NULL) != YES)
-       {
--	/* Assume network/netmask with a name of a host.  */
- 	struct addrinfo hint;
- 
-+	/* Assume network/netmask with a name of a host.  */
- 	memset (&hint, '\0', sizeof (hint));
- 	hint.ai_flags = AI_CANONNAME;
- 	hint.ai_family = AF_UNSPEC;
- 
- 	if (item->gai_rv != 0)
-+	  {
-+	    freeaddrinfo(ai);
- 	    return NO;
-+	  }
- 	else if (!item->res &&
- 		(item->gai_rv = getaddrinfo (string, NULL, &hint, &item->res)) != 0)
-+	  {
-+	    freeaddrinfo(ai);
- 	    return NO;
-+	  }
-         else
- 	  {
- 	    struct addrinfo *runp = item->res;
-+	    struct addrinfo *runp1;
- 
- 	    while (runp != NULL)
- 	      {
- 		char buf[INET6_ADDRSTRLEN];
- 
--		DIAG_PUSH_IGNORE_CAST_ALIGN;
--		inet_ntop (runp->ai_family,
--			runp->ai_family == AF_INET
--			? (void *) &((struct sockaddr_in *) runp->ai_addr)->sin_addr
--			: (void *) &((struct sockaddr_in6 *) runp->ai_addr)->sin6_addr,
--			buf, sizeof (buf));
--		DIAG_POP_IGNORE_CAST_ALIGN;
-+		if (getnameinfo (runp->ai_addr, runp->ai_addrlen, buf, sizeof (buf), NULL, 0, NI_NUMERICHOST) != 0)
-+		  {
-+		    freeaddrinfo(ai);
-+		    return NO;
-+		  }
- 
--		if (are_addresses_equal(buf, tok, netmask_ptr))
-+		for (runp1 = ai; runp1 != NULL; runp1 = runp1->ai_next)
- 		  {
--		    return YES;
-+                    char buf1[INET6_ADDRSTRLEN];
-+
-+                    if (runp->ai_family != runp1->ai_family)
-+                      continue;
-+
-+                    if (getnameinfo (runp1->ai_addr, runp1->ai_addrlen, buf1, sizeof (buf1), NULL, 0, NI_NUMERICHOST) != 0)
-+		      {
-+			freeaddrinfo(ai);
-+			return NO;
-+		      }
-+
-+                    if (are_addresses_equal (buf, buf1, netmask_ptr))
-+                      {
-+                        freeaddrinfo(ai);
-+                        return YES;
-+                      }
- 		  }
- 		runp = runp->ai_next;
- 	      }
- 	  }
-       }
-     else
--      return (are_addresses_equal(string, tok, netmask_ptr));
-+      {
-+       struct addrinfo *runp1;
-+
-+       for (runp1 = ai; runp1 != NULL; runp1 = runp1->ai_next)
-+         {
-+           char buf1[INET6_ADDRSTRLEN];
-+
-+           (void) getnameinfo (runp1->ai_addr, runp1->ai_addrlen, buf1, sizeof (buf1), NULL, 0, NI_NUMERICHOST);
-+
-+           if (are_addresses_equal(string, buf1, netmask_ptr))
-+             {
-+               freeaddrinfo(ai);
-+               return YES;
-+             }
-+         }
-+      }
-+
-+  freeaddrinfo(ai);
- 
-   return NO;
- }
--- 
-2.37.3
-
diff --git a/poky/meta/recipes-extended/pam/libpam_1.5.2.bb b/poky/meta/recipes-extended/pam/libpam_1.5.3.bb
similarity index 95%
rename from poky/meta/recipes-extended/pam/libpam_1.5.2.bb
rename to poky/meta/recipes-extended/pam/libpam_1.5.3.bb
index bec47ab..eafb5aa 100644
--- a/poky/meta/recipes-extended/pam/libpam_1.5.2.bb
+++ b/poky/meta/recipes-extended/pam/libpam_1.5.3.bb
@@ -21,14 +21,12 @@
            file://pam.d/common-session-noninteractive \
            file://pam.d/other \
            file://libpam-xtests.patch \
-           file://0001-run-xtests.sh-check-whether-files-exist.patch \
+           file://0001-examples-Replace-use-of-termio.h-with-termios.h.patch \
            file://run-ptest \
            file://pam-volatiles.conf \
-           file://CVE-2022-28321-0002.patch \
-           file://0001-pam_motd-do-not-rely-on-all-filesystems-providing-a-.patch \
            "
 
-SRC_URI[sha256sum] = "e4ec7131a91da44512574268f493c6d8ca105c87091691b8e9b56ca685d4f94d"
+SRC_URI[sha256sum] = "7ac4b50feee004a9fa88f1dfd2d2fa738a82896763050cd773b3c54b0a818283"
 
 DEPENDS = "bison-native flex-native cracklib libxml2-native virtual/crypt"
 
diff --git a/poky/meta/recipes-extended/procps/procps_4.0.3.bb b/poky/meta/recipes-extended/procps/procps_4.0.3.bb
index cc3420d..dc0e957 100644
--- a/poky/meta/recipes-extended/procps/procps_4.0.3.bb
+++ b/poky/meta/recipes-extended/procps/procps_4.0.3.bb
@@ -72,10 +72,6 @@
         d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_sbindir'), prog))
 }
 
-# 'ps' isn't suitable for use as a security tool so whitelist this CVE.
-# https://bugzilla.redhat.com/show_bug.cgi?id=1575473#c3
-CVE_CHECK_IGNORE += "CVE-2018-1121"
-
 PROCPS_PACKAGES = "${PN}-lib \
                    ${PN}-ps \
                    ${PN}-sysctl"
diff --git a/poky/meta/recipes-extended/shadow/files/login.defs_shadow-sysroot b/poky/meta/recipes-extended/shadow/files/login.defs_shadow-sysroot
index 8a68dd3..09df77d 100644
--- a/poky/meta/recipes-extended/shadow/files/login.defs_shadow-sysroot
+++ b/poky/meta/recipes-extended/shadow/files/login.defs_shadow-sysroot
@@ -1,3 +1,4 @@
+# SPDX-License-Identifier: BSD-3-Clause OR Artistic-1.0
 #
 # /etc/login.defs - Configuration control definitions for the shadow package.
 #
diff --git a/poky/meta/recipes-extended/shadow/files/pam.d/login b/poky/meta/recipes-extended/shadow/files/pam.d/login
index b340058..d39e09b 100644
--- a/poky/meta/recipes-extended/shadow/files/pam.d/login
+++ b/poky/meta/recipes-extended/shadow/files/pam.d/login
@@ -57,10 +57,6 @@
 # (Replaces the use of /etc/limits in old login)
 session    required   pam_limits.so
 
-# Prints the last login info upon succesful login
-# (Replaces the `LASTLOG_ENAB' option from login.defs)
-session    optional   pam_lastlog.so
-
 # Prints the motd upon succesful login
 # (Replaces the `MOTD_FILE' option in login.defs)
 session    optional   pam_motd.so
diff --git a/poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb b/poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
index e05fa23..6580bd9 100644
--- a/poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
+++ b/poky/meta/recipes-extended/shadow/shadow-sysroot_4.6.bb
@@ -3,7 +3,7 @@
 BUGTRACKER = "http://github.com/shadow-maint/shadow/issues"
 SECTION = "base utils"
 LICENSE = "BSD-3-Clause | Artistic-1.0"
-LIC_FILES_CHKSUM = "file://login.defs_shadow-sysroot;md5=25e2f2de4dfc8f966ac5cdfce45cd7d5"
+LIC_FILES_CHKSUM = "file://login.defs_shadow-sysroot;endline=1;md5=ceddfb61608e4db87012499555184aed"
 
 DEPENDS = "base-passwd"
 
diff --git a/poky/meta/recipes-extended/shadow/shadow.inc b/poky/meta/recipes-extended/shadow/shadow.inc
index cf05a3a..83e1a84 100644
--- a/poky/meta/recipes-extended/shadow/shadow.inc
+++ b/poky/meta/recipes-extended/shadow/shadow.inc
@@ -65,14 +65,11 @@
                pam-plugin-env \
                pam-plugin-group \
                pam-plugin-limits \
-               pam-plugin-lastlog \
                pam-plugin-motd \
                pam-plugin-mail \
                pam-plugin-shells \
                pam-plugin-rootok"
 
-PAM_PLUGINS:remove:libc-musl = "pam-plugin-lastlog"
-
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)}"
 PACKAGECONFIG:class-native ??= "${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)}"
diff --git a/poky/meta/recipes-extended/shadow/shadow_4.13.bb b/poky/meta/recipes-extended/shadow/shadow_4.13.bb
index d1a3fd5..4e55446 100644
--- a/poky/meta/recipes-extended/shadow/shadow_4.13.bb
+++ b/poky/meta/recipes-extended/shadow/shadow_4.13.bb
@@ -6,9 +6,6 @@
 
 BBCLASSEXTEND = "native nativesdk"
 
-# Severity is low and marked as closed and won't fix.
 # https://bugzilla.redhat.com/show_bug.cgi?id=884658
-CVE_CHECK_IGNORE += "CVE-2013-4235"
-
-# This is an issue for a different shadow
-CVE_CHECK_IGNORE += "CVE-2016-15024"
+CVE_STATUS[CVE-2013-4235] = "upstream-wontfix: Severity is low and marked as closed and won't fix."
+CVE_STATUS[CVE-2016-15024] = "cpe-incorrect: This is an issue for a different shadow"
diff --git a/poky/meta/recipes-extended/unzip/unzip_6.0.bb b/poky/meta/recipes-extended/unzip/unzip_6.0.bb
index 3051e9b..a53663d 100644
--- a/poky/meta/recipes-extended/unzip/unzip_6.0.bb
+++ b/poky/meta/recipes-extended/unzip/unzip_6.0.bb
@@ -39,8 +39,7 @@
 SRC_URI[md5sum] = "62b490407489521db863b523a7f86375"
 SRC_URI[sha256sum] = "036d96991646d0449ed0aa952e4fbe21b476ce994abc276e49d30e686708bd37"
 
-# Patch from https://bugzilla.redhat.com/attachment.cgi?id=293893&action=diff applied to 6.0 source
-CVE_CHECK_IGNORE += "CVE-2008-0888"
+CVE_STATUS[CVE-2008-0888] = "fixed-version: Patch from https://bugzilla.redhat.com/attachment.cgi?id=293893&action=diff applied to 6.0 source"
 
 # exclude version 5.5.2 which triggers a false positive
 UPSTREAM_CHECK_REGEX = "unzip(?P<pver>(?!552).+)\.tgz"
diff --git a/poky/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb b/poky/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
index c390fcf..72eb1ae 100644
--- a/poky/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
+++ b/poky/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
@@ -18,7 +18,7 @@
 S = "${WORKDIR}/git"
 
 # https://github.com/xinetd-org/xinetd/pull/10 is merged into this git tree revision
-CVE_CHECK_IGNORE += "CVE-2013-4342"
+CVE_STATUS[CVE-2013-4342] = "fixed-version: Fixed directly in git tree revision"
 
 inherit autotools update-rc.d systemd pkgconfig
 
diff --git a/poky/meta/recipes-extended/zip/zip_3.0.bb b/poky/meta/recipes-extended/zip/zip_3.0.bb
index 8215313..3425e8e 100644
--- a/poky/meta/recipes-extended/zip/zip_3.0.bb
+++ b/poky/meta/recipes-extended/zip/zip_3.0.bb
@@ -26,11 +26,8 @@
 SRC_URI[md5sum] = "7b74551e63f8ee6aab6fbc86676c0d37"
 SRC_URI[sha256sum] = "f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369"
 
-# Disputed and also Debian doesn't consider a vulnerability
-CVE_CHECK_IGNORE += "CVE-2018-13410"
-
-# Not for zip but for smart contract implementation for it
-CVE_CHECK_IGNORE += "CVE-2018-13684"
+CVE_STATUS[CVE-2018-13410] = "disputed: Disputed and also Debian doesn't consider a vulnerability"
+CVE_STATUS[CVE-2018-13684] = "cpe-incorrect: Not for zip but for smart contract implementation for it"
 
 # zip.inc sets CFLAGS, but what Makefile actually uses is
 # CFLAGS_NOOPT.  It will also force -O3 optimization, overriding
diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_43.1.bb b/poky/meta/recipes-gnome/epiphany/epiphany_43.1.bb
index ea22723..c97ede4 100644
--- a/poky/meta/recipes-gnome/epiphany/epiphany_43.1.bb
+++ b/poky/meta/recipes-gnome/epiphany/epiphany_43.1.bb
@@ -38,3 +38,6 @@
 
 FILES:${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo"
 RDEPENDS:${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas"
+
+# ANGLE requires SSE support as of webkit 2.40.x on 32 bit x86
+COMPATIBLE_HOST:x86 = "${@bb.utils.contains_any('TUNE_FEATURES', 'core2 corei7', '.*', 'null', d)}"
diff --git a/poky/meta/recipes-gnome/libnotify/libnotify_0.8.2.bb b/poky/meta/recipes-gnome/libnotify/libnotify_0.8.2.bb
index 08e9899..6888c33 100644
--- a/poky/meta/recipes-gnome/libnotify/libnotify_0.8.2.bb
+++ b/poky/meta/recipes-gnome/libnotify/libnotify_0.8.2.bb
@@ -33,4 +33,4 @@
 RREPLACES:${PN} += "libnotify3"
 
 # -7381 is specific to the NodeJS bindings
-CVE_CHECK_IGNORE += "CVE-2013-7381"
+CVE_STATUS[CVE-2013-7381] = "cpe-incorrect: The issue is specific to the NodeJS bindings"
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg-crates.inc b/poky/meta/recipes-gnome/librsvg/librsvg-crates.inc
index d73d1ae..8d790c3 100644
--- a/poky/meta/recipes-gnome/librsvg/librsvg-crates.inc
+++ b/poky/meta/recipes-gnome/librsvg/librsvg-crates.inc
@@ -3,13 +3,18 @@
 # from Cargo.lock
 SRC_URI += " \
     crate://crates.io/adler/1.0.2 \
-    crate://crates.io/aho-corasick/0.7.20 \
+    crate://crates.io/aho-corasick/1.0.1 \
+    crate://crates.io/android-tzdata/0.1.1 \
     crate://crates.io/android_system_properties/0.1.5 \
     crate://crates.io/anes/0.1.6 \
-    crate://crates.io/anstyle/0.3.4 \
-    crate://crates.io/anyhow/1.0.69 \
+    crate://crates.io/anstream/0.3.2 \
+    crate://crates.io/anstyle/1.0.0 \
+    crate://crates.io/anstyle-parse/0.2.0 \
+    crate://crates.io/anstyle-query/1.0.0 \
+    crate://crates.io/anstyle-wincon/1.0.1 \
+    crate://crates.io/anyhow/1.0.71 \
     crate://crates.io/approx/0.5.1 \
-    crate://crates.io/assert_cmd/2.0.10 \
+    crate://crates.io/assert_cmd/2.0.11 \
     crate://crates.io/atty/0.2.14 \
     crate://crates.io/autocfg/1.1.0 \
     crate://crates.io/base-x/0.2.11 \
@@ -17,44 +22,41 @@
     crate://crates.io/bit-vec/0.6.3 \
     crate://crates.io/bitflags/1.3.2 \
     crate://crates.io/block/0.1.6 \
-    crate://crates.io/bstr/1.3.0 \
-    crate://crates.io/bumpalo/3.12.0 \
+    crate://crates.io/bstr/1.5.0 \
+    crate://crates.io/bumpalo/3.13.0 \
     crate://crates.io/bytemuck/1.13.1 \
     crate://crates.io/byteorder/1.4.3 \
     crate://crates.io/cairo-rs/0.17.0 \
     crate://crates.io/cairo-sys-rs/0.17.0 \
     crate://crates.io/cast/0.3.0 \
     crate://crates.io/cc/1.0.79 \
-    crate://crates.io/cfg-expr/0.11.0 \
+    crate://crates.io/cfg-expr/0.15.1 \
     crate://crates.io/cfg-if/1.0.0 \
-    crate://crates.io/chrono/0.4.24 \
-    crate://crates.io/ciborium/0.2.0 \
-    crate://crates.io/ciborium-io/0.2.0 \
-    crate://crates.io/ciborium-ll/0.2.0 \
-    crate://crates.io/clap/3.2.23 \
-    crate://crates.io/clap/4.1.9 \
-    crate://crates.io/clap_complete/4.1.5 \
-    crate://crates.io/clap_derive/4.1.9 \
+    crate://crates.io/chrono/0.4.25 \
+    crate://crates.io/ciborium/0.2.1 \
+    crate://crates.io/ciborium-io/0.2.1 \
+    crate://crates.io/ciborium-ll/0.2.1 \
+    crate://crates.io/clap/3.2.25 \
+    crate://crates.io/clap/4.3.0 \
+    crate://crates.io/clap_builder/4.3.0 \
+    crate://crates.io/clap_complete/4.3.0 \
+    crate://crates.io/clap_derive/4.3.0 \
     crate://crates.io/clap_lex/0.2.4 \
-    crate://crates.io/clap_lex/0.3.3 \
-    crate://crates.io/codespan-reporting/0.11.1 \
+    crate://crates.io/clap_lex/0.5.0 \
+    crate://crates.io/colorchoice/1.0.0 \
     crate://crates.io/const-cstr/0.3.0 \
     crate://crates.io/const_fn/0.4.9 \
     crate://crates.io/convert_case/0.4.0 \
-    crate://crates.io/core-foundation-sys/0.8.3 \
+    crate://crates.io/core-foundation-sys/0.8.4 \
     crate://crates.io/crc32fast/1.3.2 \
     crate://crates.io/criterion/0.4.0 \
     crate://crates.io/criterion-plot/0.5.0 \
-    crate://crates.io/crossbeam-channel/0.5.7 \
+    crate://crates.io/crossbeam-channel/0.5.8 \
     crate://crates.io/crossbeam-deque/0.8.3 \
     crate://crates.io/crossbeam-epoch/0.9.14 \
     crate://crates.io/crossbeam-utils/0.8.15 \
     crate://crates.io/cssparser/0.29.6 \
     crate://crates.io/cssparser-macros/0.6.0 \
-    crate://crates.io/cxx/1.0.92 \
-    crate://crates.io/cxx-build/1.0.92 \
-    crate://crates.io/cxxbridge-flags/1.0.92 \
-    crate://crates.io/cxxbridge-macro/1.0.92 \
     crate://crates.io/data-url/0.2.0 \
     crate://crates.io/derive_more/0.99.17 \
     crate://crates.io/difflib/0.4.0 \
@@ -71,30 +73,32 @@
     crate://crates.io/encoding-index-singlebyte/1.20141219.5 \
     crate://crates.io/encoding-index-tradchinese/1.20141219.5 \
     crate://crates.io/encoding_index_tests/0.1.4 \
-    crate://crates.io/errno/0.2.8 \
+    crate://crates.io/encoding_rs/0.8.32 \
+    crate://crates.io/errno/0.3.1 \
     crate://crates.io/errno-dragonfly/0.1.2 \
     crate://crates.io/fastrand/1.9.0 \
-    crate://crates.io/flate2/1.0.25 \
+    crate://crates.io/fdeflate/0.3.0 \
+    crate://crates.io/flate2/1.0.26 \
     crate://crates.io/float-cmp/0.9.0 \
     crate://crates.io/fnv/1.0.7 \
     crate://crates.io/form_urlencoded/1.1.0 \
     crate://crates.io/futf/0.1.5 \
-    crate://crates.io/futures-channel/0.3.27 \
-    crate://crates.io/futures-core/0.3.27 \
-    crate://crates.io/futures-executor/0.3.27 \
-    crate://crates.io/futures-io/0.3.27 \
-    crate://crates.io/futures-macro/0.3.27 \
-    crate://crates.io/futures-task/0.3.27 \
-    crate://crates.io/futures-util/0.3.27 \
+    crate://crates.io/futures-channel/0.3.28 \
+    crate://crates.io/futures-core/0.3.28 \
+    crate://crates.io/futures-executor/0.3.28 \
+    crate://crates.io/futures-io/0.3.28 \
+    crate://crates.io/futures-macro/0.3.28 \
+    crate://crates.io/futures-task/0.3.28 \
+    crate://crates.io/futures-util/0.3.28 \
     crate://crates.io/fxhash/0.2.1 \
     crate://crates.io/gdk-pixbuf/0.17.0 \
     crate://crates.io/gdk-pixbuf-sys/0.17.0 \
     crate://crates.io/getrandom/0.1.16 \
-    crate://crates.io/getrandom/0.2.8 \
-    crate://crates.io/gio/0.17.4 \
+    crate://crates.io/getrandom/0.2.9 \
+    crate://crates.io/gio/0.17.9 \
     crate://crates.io/gio-sys/0.17.4 \
-    crate://crates.io/glib/0.17.5 \
-    crate://crates.io/glib-macros/0.17.5 \
+    crate://crates.io/glib/0.17.9 \
+    crate://crates.io/glib-macros/0.17.9 \
     crate://crates.io/glib-sys/0.17.4 \
     crate://crates.io/gobject-sys/0.17.4 \
     crate://crates.io/half/1.8.2 \
@@ -103,36 +107,35 @@
     crate://crates.io/hermit-abi/0.1.19 \
     crate://crates.io/hermit-abi/0.2.6 \
     crate://crates.io/hermit-abi/0.3.1 \
-    crate://crates.io/iana-time-zone/0.1.53 \
-    crate://crates.io/iana-time-zone-haiku/0.1.1 \
+    crate://crates.io/iana-time-zone/0.1.56 \
+    crate://crates.io/iana-time-zone-haiku/0.1.2 \
     crate://crates.io/idna/0.3.0 \
-    crate://crates.io/indexmap/1.9.2 \
+    crate://crates.io/indexmap/1.9.3 \
     crate://crates.io/instant/0.1.12 \
-    crate://crates.io/io-lifetimes/1.0.7 \
-    crate://crates.io/is-terminal/0.4.4 \
+    crate://crates.io/io-lifetimes/1.0.11 \
+    crate://crates.io/is-terminal/0.4.7 \
     crate://crates.io/itertools/0.10.5 \
     crate://crates.io/itoa/1.0.6 \
-    crate://crates.io/js-sys/0.3.61 \
+    crate://crates.io/js-sys/0.3.63 \
     crate://crates.io/language-tags/0.3.2 \
     crate://crates.io/lazy_static/1.4.0 \
-    crate://crates.io/libc/0.2.140 \
+    crate://crates.io/libc/0.2.144 \
     crate://crates.io/libloading/0.7.4 \
-    crate://crates.io/libm/0.2.6 \
-    crate://crates.io/link-cplusplus/1.0.8 \
+    crate://crates.io/libm/0.2.7 \
     crate://crates.io/linked-hash-map/0.5.6 \
-    crate://crates.io/linux-raw-sys/0.1.4 \
+    crate://crates.io/linux-raw-sys/0.3.8 \
     crate://crates.io/locale_config/0.3.0 \
     crate://crates.io/lock_api/0.4.9 \
-    crate://crates.io/log/0.4.17 \
+    crate://crates.io/log/0.4.18 \
     crate://crates.io/lopdf/0.29.0 \
     crate://crates.io/mac/0.1.1 \
     crate://crates.io/malloc_buf/0.0.6 \
     crate://crates.io/markup5ever/0.11.0 \
     crate://crates.io/matches/0.1.10 \
-    crate://crates.io/matrixmultiply/0.3.2 \
+    crate://crates.io/matrixmultiply/0.3.7 \
     crate://crates.io/memchr/2.5.0 \
     crate://crates.io/memoffset/0.8.0 \
-    crate://crates.io/miniz_oxide/0.6.2 \
+    crate://crates.io/miniz_oxide/0.7.1 \
     crate://crates.io/nalgebra/0.32.2 \
     crate://crates.io/nalgebra-macros/0.2.0 \
     crate://crates.io/new_debug_unreachable/1.0.4 \
@@ -146,9 +149,9 @@
     crate://crates.io/objc/0.2.7 \
     crate://crates.io/objc-foundation/0.1.1 \
     crate://crates.io/objc_id/0.1.1 \
-    crate://crates.io/once_cell/1.17.1 \
+    crate://crates.io/once_cell/1.17.2 \
     crate://crates.io/oorandom/11.1.3 \
-    crate://crates.io/os_str_bytes/6.4.1 \
+    crate://crates.io/os_str_bytes/6.5.0 \
     crate://crates.io/pango/0.17.4 \
     crate://crates.io/pango-sys/0.17.0 \
     crate://crates.io/pangocairo/0.17.0 \
@@ -168,27 +171,26 @@
     crate://crates.io/phf_shared/0.10.0 \
     crate://crates.io/pin-project-lite/0.2.9 \
     crate://crates.io/pin-utils/0.1.0 \
-    crate://crates.io/pkg-config/0.3.26 \
+    crate://crates.io/pkg-config/0.3.27 \
     crate://crates.io/plotters/0.3.4 \
     crate://crates.io/plotters-backend/0.3.4 \
     crate://crates.io/plotters-svg/0.3.3 \
-    crate://crates.io/png/0.17.7 \
+    crate://crates.io/png/0.17.8 \
     crate://crates.io/pom/3.2.0 \
     crate://crates.io/ppv-lite86/0.2.17 \
     crate://crates.io/precomputed-hash/0.1.1 \
     crate://crates.io/predicates/2.1.5 \
-    crate://crates.io/predicates/3.0.1 \
+    crate://crates.io/predicates/3.0.3 \
     crate://crates.io/predicates-core/1.0.6 \
     crate://crates.io/predicates-tree/1.0.9 \
     crate://crates.io/proc-macro-crate/1.3.1 \
     crate://crates.io/proc-macro-error/1.0.4 \
     crate://crates.io/proc-macro-error-attr/1.0.4 \
     crate://crates.io/proc-macro-hack/0.5.20+deprecated \
-    crate://crates.io/proc-macro2/1.0.52 \
-    crate://crates.io/proptest/1.1.0 \
+    crate://crates.io/proc-macro2/1.0.59 \
+    crate://crates.io/proptest/1.2.0 \
     crate://crates.io/quick-error/1.2.3 \
-    crate://crates.io/quick-error/2.0.1 \
-    crate://crates.io/quote/1.0.26 \
+    crate://crates.io/quote/1.0.28 \
     crate://crates.io/rand/0.7.3 \
     crate://crates.io/rand/0.8.5 \
     crate://crates.io/rand_chacha/0.2.2 \
@@ -203,30 +205,33 @@
     crate://crates.io/rayon-core/1.11.0 \
     crate://crates.io/rctree/0.5.0 \
     crate://crates.io/redox_syscall/0.2.16 \
-    crate://crates.io/regex/1.7.1 \
+    crate://crates.io/redox_syscall/0.3.5 \
+    crate://crates.io/regex/1.8.3 \
     crate://crates.io/regex-automata/0.1.10 \
-    crate://crates.io/regex-syntax/0.6.28 \
+    crate://crates.io/regex-syntax/0.6.29 \
+    crate://crates.io/regex-syntax/0.7.2 \
     crate://crates.io/rgb/0.8.36 \
     crate://crates.io/rustc_version/0.2.3 \
     crate://crates.io/rustc_version/0.4.0 \
-    crate://crates.io/rustix/0.36.9 \
+    crate://crates.io/rustix/0.37.19 \
     crate://crates.io/rusty-fork/0.3.0 \
     crate://crates.io/ryu/1.0.13 \
     crate://crates.io/safe_arch/0.6.0 \
     crate://crates.io/same-file/1.0.6 \
     crate://crates.io/scopeguard/1.1.0 \
-    crate://crates.io/scratch/1.0.5 \
     crate://crates.io/selectors/0.24.0 \
     crate://crates.io/semver/0.9.0 \
     crate://crates.io/semver/1.0.17 \
     crate://crates.io/semver-parser/0.7.0 \
-    crate://crates.io/serde/1.0.156 \
-    crate://crates.io/serde_derive/1.0.156 \
-    crate://crates.io/serde_json/1.0.94 \
+    crate://crates.io/serde/1.0.163 \
+    crate://crates.io/serde_derive/1.0.163 \
+    crate://crates.io/serde_json/1.0.96 \
+    crate://crates.io/serde_spanned/0.6.2 \
     crate://crates.io/servo_arc/0.2.0 \
     crate://crates.io/sha1/0.6.1 \
     crate://crates.io/sha1_smol/1.0.0 \
-    crate://crates.io/simba/0.8.0 \
+    crate://crates.io/simba/0.8.1 \
+    crate://crates.io/simd-adler32/0.3.5 \
     crate://crates.io/siphasher/0.3.10 \
     crate://crates.io/slab/0.4.8 \
     crate://crates.io/smallvec/1.10.0 \
@@ -240,72 +245,87 @@
     crate://crates.io/string_cache_codegen/0.5.2 \
     crate://crates.io/strsim/0.10.0 \
     crate://crates.io/syn/1.0.109 \
-    crate://crates.io/system-deps/6.0.3 \
-    crate://crates.io/tempfile/3.4.0 \
+    crate://crates.io/syn/2.0.18 \
+    crate://crates.io/system-deps/6.1.0 \
+    crate://crates.io/target-lexicon/0.12.7 \
+    crate://crates.io/tempfile/3.5.0 \
     crate://crates.io/tendril/0.4.3 \
-    crate://crates.io/termcolor/1.2.0 \
     crate://crates.io/termtree/0.4.1 \
     crate://crates.io/textwrap/0.16.0 \
-    crate://crates.io/thiserror/1.0.39 \
-    crate://crates.io/thiserror-impl/1.0.39 \
+    crate://crates.io/thiserror/1.0.40 \
+    crate://crates.io/thiserror-impl/1.0.40 \
     crate://crates.io/time/0.2.27 \
     crate://crates.io/time-macros/0.1.1 \
     crate://crates.io/time-macros-impl/0.1.2 \
     crate://crates.io/tinytemplate/1.2.1 \
     crate://crates.io/tinyvec/1.6.0 \
     crate://crates.io/tinyvec_macros/0.1.1 \
-    crate://crates.io/toml/0.5.11 \
-    crate://crates.io/toml_datetime/0.6.1 \
-    crate://crates.io/toml_edit/0.19.7 \
+    crate://crates.io/toml/0.7.4 \
+    crate://crates.io/toml_datetime/0.6.2 \
+    crate://crates.io/toml_edit/0.19.10 \
     crate://crates.io/typenum/1.16.0 \
     crate://crates.io/unarray/0.1.4 \
-    crate://crates.io/unicode-bidi/0.3.11 \
-    crate://crates.io/unicode-ident/1.0.8 \
+    crate://crates.io/unicode-bidi/0.3.13 \
+    crate://crates.io/unicode-ident/1.0.9 \
     crate://crates.io/unicode-normalization/0.1.22 \
-    crate://crates.io/unicode-width/0.1.10 \
     crate://crates.io/url/2.3.1 \
     crate://crates.io/utf-8/0.7.6 \
+    crate://crates.io/utf8parse/0.2.1 \
     crate://crates.io/version-compare/0.1.1 \
     crate://crates.io/version_check/0.9.4 \
     crate://crates.io/wait-timeout/0.2.0 \
     crate://crates.io/walkdir/2.3.3 \
     crate://crates.io/wasi/0.9.0+wasi-snapshot-preview1 \
     crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
-    crate://crates.io/wasm-bindgen/0.2.84 \
-    crate://crates.io/wasm-bindgen-backend/0.2.84 \
-    crate://crates.io/wasm-bindgen-macro/0.2.84 \
-    crate://crates.io/wasm-bindgen-macro-support/0.2.84 \
-    crate://crates.io/wasm-bindgen-shared/0.2.84 \
-    crate://crates.io/web-sys/0.3.61 \
+    crate://crates.io/wasm-bindgen/0.2.86 \
+    crate://crates.io/wasm-bindgen-backend/0.2.86 \
+    crate://crates.io/wasm-bindgen-macro/0.2.86 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.86 \
+    crate://crates.io/wasm-bindgen-shared/0.2.86 \
+    crate://crates.io/web-sys/0.3.63 \
     crate://crates.io/weezl/0.1.7 \
-    crate://crates.io/wide/0.7.8 \
+    crate://crates.io/wide/0.7.9 \
     crate://crates.io/winapi/0.3.9 \
     crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
     crate://crates.io/winapi-util/0.1.5 \
     crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
-    crate://crates.io/windows-sys/0.42.0 \
+    crate://crates.io/windows/0.48.0 \
     crate://crates.io/windows-sys/0.45.0 \
+    crate://crates.io/windows-sys/0.48.0 \
     crate://crates.io/windows-targets/0.42.2 \
+    crate://crates.io/windows-targets/0.48.0 \
     crate://crates.io/windows_aarch64_gnullvm/0.42.2 \
+    crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
     crate://crates.io/windows_aarch64_msvc/0.42.2 \
+    crate://crates.io/windows_aarch64_msvc/0.48.0 \
     crate://crates.io/windows_i686_gnu/0.42.2 \
+    crate://crates.io/windows_i686_gnu/0.48.0 \
     crate://crates.io/windows_i686_msvc/0.42.2 \
+    crate://crates.io/windows_i686_msvc/0.48.0 \
     crate://crates.io/windows_x86_64_gnu/0.42.2 \
+    crate://crates.io/windows_x86_64_gnu/0.48.0 \
     crate://crates.io/windows_x86_64_gnullvm/0.42.2 \
+    crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
     crate://crates.io/windows_x86_64_msvc/0.42.2 \
-    crate://crates.io/winnow/0.3.6 \
+    crate://crates.io/windows_x86_64_msvc/0.48.0 \
+    crate://crates.io/winnow/0.4.6 \
     crate://crates.io/xml5ever/0.17.0 \
     crate://crates.io/yeslogic-fontconfig-sys/4.0.1 \
 "
 
 SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-SRC_URI[aho-corasick-0.7.20.sha256sum] = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+SRC_URI[aho-corasick-1.0.1.sha256sum] = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
+SRC_URI[android-tzdata-0.1.1.sha256sum] = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
 SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
 SRC_URI[anes-0.1.6.sha256sum] = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
-SRC_URI[anstyle-0.3.4.sha256sum] = "1ba0b55c2201aa802adb684e7963ce2c3191675629e7df899774331e3ac747cf"
-SRC_URI[anyhow-1.0.69.sha256sum] = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"
+SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+SRC_URI[anstyle-1.0.0.sha256sum] = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d"
+SRC_URI[anstyle-parse-0.2.0.sha256sum] = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee"
+SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+SRC_URI[anstyle-wincon-1.0.1.sha256sum] = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
+SRC_URI[anyhow-1.0.71.sha256sum] = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
 SRC_URI[approx-0.5.1.sha256sum] = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
-SRC_URI[assert_cmd-2.0.10.sha256sum] = "ec0b2340f55d9661d76793b2bfc2eb0e62689bd79d067a95707ea762afd5e9dd"
+SRC_URI[assert_cmd-2.0.11.sha256sum] = "86d6b683edf8d1119fe420a94f8a7e389239666aa72e65495d91c00462510151"
 SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
 SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 SRC_URI[base-x-0.2.11.sha256sum] = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270"
@@ -313,44 +333,41 @@
 SRC_URI[bit-vec-0.6.3.sha256sum] = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
 SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 SRC_URI[block-0.1.6.sha256sum] = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
-SRC_URI[bstr-1.3.0.sha256sum] = "5ffdb39cb703212f3c11973452c2861b972f757b021158f3516ba10f2fa8b2c1"
-SRC_URI[bumpalo-3.12.0.sha256sum] = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+SRC_URI[bstr-1.5.0.sha256sum] = "a246e68bb43f6cd9db24bea052a53e40405417c5fb372e3d1a8a7f770a564ef5"
+SRC_URI[bumpalo-3.13.0.sha256sum] = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
 SRC_URI[bytemuck-1.13.1.sha256sum] = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
 SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
 SRC_URI[cairo-rs-0.17.0.sha256sum] = "a8af54f5d48af1226928adc1f57edd22f5df1349e7da1fc96ae15cf43db0e871"
 SRC_URI[cairo-sys-rs-0.17.0.sha256sum] = "f55382a01d30e5e53f185eee269124f5e21ab526595b872751278dfbb463594e"
 SRC_URI[cast-0.3.0.sha256sum] = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
 SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
-SRC_URI[cfg-expr-0.11.0.sha256sum] = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa"
+SRC_URI[cfg-expr-0.15.1.sha256sum] = "c8790cf1286da485c72cf5fc7aeba308438800036ec67d89425924c4807268c9"
 SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-SRC_URI[chrono-0.4.24.sha256sum] = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
-SRC_URI[ciborium-0.2.0.sha256sum] = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f"
-SRC_URI[ciborium-io-0.2.0.sha256sum] = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369"
-SRC_URI[ciborium-ll-0.2.0.sha256sum] = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b"
-SRC_URI[clap-3.2.23.sha256sum] = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
-SRC_URI[clap-4.1.9.sha256sum] = "9a9d6ada83c1edcce028902ea27dd929069c70df4c7600b131b4d9a1ad2879cc"
-SRC_URI[clap_complete-4.1.5.sha256sum] = "37686beaba5ac9f3ab01ee3172f792fc6ffdd685bfb9e63cfef02c0571a4e8e1"
-SRC_URI[clap_derive-4.1.9.sha256sum] = "fddf67631444a3a3e3e5ac51c36a5e01335302de677bd78759eaa90ab1f46644"
+SRC_URI[chrono-0.4.25.sha256sum] = "fdbc37d37da9e5bce8173f3a41b71d9bf3c674deebbaceacd0ebdabde76efb03"
+SRC_URI[ciborium-0.2.1.sha256sum] = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
+SRC_URI[ciborium-io-0.2.1.sha256sum] = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
+SRC_URI[ciborium-ll-0.2.1.sha256sum] = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
+SRC_URI[clap-3.2.25.sha256sum] = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
+SRC_URI[clap-4.3.0.sha256sum] = "93aae7a4192245f70fe75dd9157fc7b4a5bf53e88d30bd4396f7d8f9284d5acc"
+SRC_URI[clap_builder-4.3.0.sha256sum] = "4f423e341edefb78c9caba2d9c7f7687d0e72e89df3ce3394554754393ac3990"
+SRC_URI[clap_complete-4.3.0.sha256sum] = "a04ddfaacc3bc9e6ea67d024575fafc2a813027cf374b8f24f7bc233c6b6be12"
+SRC_URI[clap_derive-4.3.0.sha256sum] = "191d9573962933b4027f932c600cd252ce27a8ad5979418fe78e43c07996f27b"
 SRC_URI[clap_lex-0.2.4.sha256sum] = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
-SRC_URI[clap_lex-0.3.3.sha256sum] = "033f6b7a4acb1f358c742aaca805c939ee73b4c6209ae4318ec7aca81c42e646"
-SRC_URI[codespan-reporting-0.11.1.sha256sum] = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 SRC_URI[const-cstr-0.3.0.sha256sum] = "ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6"
 SRC_URI[const_fn-0.4.9.sha256sum] = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935"
 SRC_URI[convert_case-0.4.0.sha256sum] = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
-SRC_URI[core-foundation-sys-0.8.3.sha256sum] = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+SRC_URI[core-foundation-sys-0.8.4.sha256sum] = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
 SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
 SRC_URI[criterion-0.4.0.sha256sum] = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb"
 SRC_URI[criterion-plot-0.5.0.sha256sum] = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
-SRC_URI[crossbeam-channel-0.5.7.sha256sum] = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c"
+SRC_URI[crossbeam-channel-0.5.8.sha256sum] = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
 SRC_URI[crossbeam-deque-0.8.3.sha256sum] = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
 SRC_URI[crossbeam-epoch-0.9.14.sha256sum] = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
 SRC_URI[crossbeam-utils-0.8.15.sha256sum] = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
 SRC_URI[cssparser-0.29.6.sha256sum] = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa"
 SRC_URI[cssparser-macros-0.6.0.sha256sum] = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e"
-SRC_URI[cxx-1.0.92.sha256sum] = "9a140f260e6f3f79013b8bfc65e7ce630c9ab4388c6a89c71e07226f49487b72"
-SRC_URI[cxx-build-1.0.92.sha256sum] = "da6383f459341ea689374bf0a42979739dc421874f112ff26f829b8040b8e613"
-SRC_URI[cxxbridge-flags-1.0.92.sha256sum] = "90201c1a650e95ccff1c8c0bb5a343213bdd317c6e600a93075bca2eff54ec97"
-SRC_URI[cxxbridge-macro-1.0.92.sha256sum] = "0b75aed41bb2e6367cae39e6326ef817a851db13c13e4f3263714ca3cfb8de56"
 SRC_URI[data-url-0.2.0.sha256sum] = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5"
 SRC_URI[derive_more-0.99.17.sha256sum] = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
 SRC_URI[difflib-0.4.0.sha256sum] = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
@@ -367,30 +384,32 @@
 SRC_URI[encoding-index-singlebyte-1.20141219.5.sha256sum] = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
 SRC_URI[encoding-index-tradchinese-1.20141219.5.sha256sum] = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
 SRC_URI[encoding_index_tests-0.1.4.sha256sum] = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
-SRC_URI[errno-0.2.8.sha256sum] = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+SRC_URI[encoding_rs-0.8.32.sha256sum] = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
+SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
 SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
 SRC_URI[fastrand-1.9.0.sha256sum] = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
-SRC_URI[flate2-1.0.25.sha256sum] = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841"
+SRC_URI[fdeflate-0.3.0.sha256sum] = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
+SRC_URI[flate2-1.0.26.sha256sum] = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
 SRC_URI[float-cmp-0.9.0.sha256sum] = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
 SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 SRC_URI[form_urlencoded-1.1.0.sha256sum] = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
 SRC_URI[futf-0.1.5.sha256sum] = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
-SRC_URI[futures-channel-0.3.27.sha256sum] = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac"
-SRC_URI[futures-core-0.3.27.sha256sum] = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd"
-SRC_URI[futures-executor-0.3.27.sha256sum] = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83"
-SRC_URI[futures-io-0.3.27.sha256sum] = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91"
-SRC_URI[futures-macro-0.3.27.sha256sum] = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6"
-SRC_URI[futures-task-0.3.27.sha256sum] = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879"
-SRC_URI[futures-util-0.3.27.sha256sum] = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab"
+SRC_URI[futures-channel-0.3.28.sha256sum] = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+SRC_URI[futures-core-0.3.28.sha256sum] = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+SRC_URI[futures-executor-0.3.28.sha256sum] = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+SRC_URI[futures-io-0.3.28.sha256sum] = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+SRC_URI[futures-macro-0.3.28.sha256sum] = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+SRC_URI[futures-task-0.3.28.sha256sum] = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+SRC_URI[futures-util-0.3.28.sha256sum] = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
 SRC_URI[fxhash-0.2.1.sha256sum] = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
 SRC_URI[gdk-pixbuf-0.17.0.sha256sum] = "b023fbe0c6b407bd3d9805d107d9800da3829dc5a676653210f1d5f16d7f59bf"
 SRC_URI[gdk-pixbuf-sys-0.17.0.sha256sum] = "7b41bd2b44ed49d99277d3925652a163038bd5ed943ec9809338ffb2f4391e3b"
 SRC_URI[getrandom-0.1.16.sha256sum] = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-SRC_URI[getrandom-0.2.8.sha256sum] = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
-SRC_URI[gio-0.17.4.sha256sum] = "2261a3b4e922ec676d1c27ac466218c38cf5dcb49a759129e54bb5046e442125"
+SRC_URI[getrandom-0.2.9.sha256sum] = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
+SRC_URI[gio-0.17.9.sha256sum] = "d14522e56c6bcb6f7a3aebc25cbcfb06776af4c0c25232b601b4383252d7cb92"
 SRC_URI[gio-sys-0.17.4.sha256sum] = "6b1d43b0d7968b48455244ecafe41192871257f5740aa6b095eb19db78e362a5"
-SRC_URI[glib-0.17.5.sha256sum] = "cfb53061756195d76969292c2d2e329e01259276524a9bae6c9b73af62854773"
-SRC_URI[glib-macros-0.17.5.sha256sum] = "454924cafe58d9174dc32972261fe271d6cd3c10f5e9ff505522a28dcf601a40"
+SRC_URI[glib-0.17.9.sha256sum] = "a7f1de7cbde31ea4f0a919453a2dcece5d54d5b70e08f8ad254dc4840f5f09b6"
+SRC_URI[glib-macros-0.17.9.sha256sum] = "0a7206c5c03851ef126ea1444990e81fdd6765fb799d5bc694e4897ca01bb97f"
 SRC_URI[glib-sys-0.17.4.sha256sum] = "49f00ad0a1bf548e61adfff15d83430941d9e1bb620e334f779edd1c745680a5"
 SRC_URI[gobject-sys-0.17.4.sha256sum] = "15e75b0000a64632b2d8ca3cf856af9308e3a970844f6e9659bd197f026793d0"
 SRC_URI[half-1.8.2.sha256sum] = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
@@ -399,36 +418,35 @@
 SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
 SRC_URI[hermit-abi-0.2.6.sha256sum] = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
 SRC_URI[hermit-abi-0.3.1.sha256sum] = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
-SRC_URI[iana-time-zone-0.1.53.sha256sum] = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
-SRC_URI[iana-time-zone-haiku-0.1.1.sha256sum] = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
+SRC_URI[iana-time-zone-0.1.56.sha256sum] = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c"
+SRC_URI[iana-time-zone-haiku-0.1.2.sha256sum] = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
 SRC_URI[idna-0.3.0.sha256sum] = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
-SRC_URI[indexmap-1.9.2.sha256sum] = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
+SRC_URI[indexmap-1.9.3.sha256sum] = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
 SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-SRC_URI[io-lifetimes-1.0.7.sha256sum] = "76e86b86ae312accbf05ade23ce76b625e0e47a255712b7414037385a1c05380"
-SRC_URI[is-terminal-0.4.4.sha256sum] = "21b6b32576413a8e69b90e952e4a026476040d81017b80445deda5f2d3921857"
+SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+SRC_URI[is-terminal-0.4.7.sha256sum] = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
 SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
 SRC_URI[itoa-1.0.6.sha256sum] = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
-SRC_URI[js-sys-0.3.61.sha256sum] = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+SRC_URI[js-sys-0.3.63.sha256sum] = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790"
 SRC_URI[language-tags-0.3.2.sha256sum] = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
 SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-SRC_URI[libc-0.2.140.sha256sum] = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
+SRC_URI[libc-0.2.144.sha256sum] = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
 SRC_URI[libloading-0.7.4.sha256sum] = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
-SRC_URI[libm-0.2.6.sha256sum] = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb"
-SRC_URI[link-cplusplus-1.0.8.sha256sum] = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
+SRC_URI[libm-0.2.7.sha256sum] = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
 SRC_URI[linked-hash-map-0.5.6.sha256sum] = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
-SRC_URI[linux-raw-sys-0.1.4.sha256sum] = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 SRC_URI[locale_config-0.3.0.sha256sum] = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
 SRC_URI[lock_api-0.4.9.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
-SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+SRC_URI[log-0.4.18.sha256sum] = "518ef76f2f87365916b142844c16d8fefd85039bc5699050210a7778ee1cd1de"
 SRC_URI[lopdf-0.29.0.sha256sum] = "de0f69c40d6dbc68ebac4bf5aec3d9978e094e22e29fcabd045acd9cec74a9dc"
 SRC_URI[mac-0.1.1.sha256sum] = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
 SRC_URI[malloc_buf-0.0.6.sha256sum] = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
 SRC_URI[markup5ever-0.11.0.sha256sum] = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
 SRC_URI[matches-0.1.10.sha256sum] = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
-SRC_URI[matrixmultiply-0.3.2.sha256sum] = "add85d4dd35074e6fedc608f8c8f513a3548619a9024b751949ef0e8e45a4d84"
+SRC_URI[matrixmultiply-0.3.7.sha256sum] = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77"
 SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
 SRC_URI[memoffset-0.8.0.sha256sum] = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
-SRC_URI[miniz_oxide-0.6.2.sha256sum] = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
+SRC_URI[miniz_oxide-0.7.1.sha256sum] = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
 SRC_URI[nalgebra-0.32.2.sha256sum] = "d68d47bba83f9e2006d117a9a33af1524e655516b8919caac694427a6fb1e511"
 SRC_URI[nalgebra-macros-0.2.0.sha256sum] = "d232c68884c0c99810a5a4d333ef7e47689cfd0edc85efc9e54e1e6bf5212766"
 SRC_URI[new_debug_unreachable-1.0.4.sha256sum] = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
@@ -442,9 +460,9 @@
 SRC_URI[objc-0.2.7.sha256sum] = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
 SRC_URI[objc-foundation-0.1.1.sha256sum] = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
 SRC_URI[objc_id-0.1.1.sha256sum] = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
-SRC_URI[once_cell-1.17.1.sha256sum] = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+SRC_URI[once_cell-1.17.2.sha256sum] = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b"
 SRC_URI[oorandom-11.1.3.sha256sum] = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
-SRC_URI[os_str_bytes-6.4.1.sha256sum] = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
+SRC_URI[os_str_bytes-6.5.0.sha256sum] = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
 SRC_URI[pango-0.17.4.sha256sum] = "52c280b82a881e4208afb3359a8e7fde27a1b272280981f1f34610bed5770d37"
 SRC_URI[pango-sys-0.17.0.sha256sum] = "4293d0f0b5525eb5c24734d30b0ed02cd02aa734f216883f376b54de49625de8"
 SRC_URI[pangocairo-0.17.0.sha256sum] = "2feeb7ea7874507f83f5e7ba869c54e321959431c8fbd70d4b735c8b15d90506"
@@ -464,27 +482,26 @@
 SRC_URI[phf_shared-0.10.0.sha256sum] = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
 SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
 SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-SRC_URI[pkg-config-0.3.26.sha256sum] = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+SRC_URI[pkg-config-0.3.27.sha256sum] = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
 SRC_URI[plotters-0.3.4.sha256sum] = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97"
 SRC_URI[plotters-backend-0.3.4.sha256sum] = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142"
 SRC_URI[plotters-svg-0.3.3.sha256sum] = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f"
-SRC_URI[png-0.17.7.sha256sum] = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638"
+SRC_URI[png-0.17.8.sha256sum] = "aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa"
 SRC_URI[pom-3.2.0.sha256sum] = "07e2192780e9f8e282049ff9bffcaa28171e1cb0844f49ed5374e518ae6024ec"
 SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 SRC_URI[precomputed-hash-0.1.1.sha256sum] = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
 SRC_URI[predicates-2.1.5.sha256sum] = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd"
-SRC_URI[predicates-3.0.1.sha256sum] = "1ba7d6ead3e3966038f68caa9fc1f860185d95a793180bbcfe0d0da47b3961ed"
+SRC_URI[predicates-3.0.3.sha256sum] = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9"
 SRC_URI[predicates-core-1.0.6.sha256sum] = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
 SRC_URI[predicates-tree-1.0.9.sha256sum] = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
 SRC_URI[proc-macro-crate-1.3.1.sha256sum] = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
 SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
 SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
 SRC_URI[proc-macro-hack-0.5.20+deprecated.sha256sum] = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
-SRC_URI[proc-macro2-1.0.52.sha256sum] = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224"
-SRC_URI[proptest-1.1.0.sha256sum] = "29f1b898011ce9595050a68e60f90bad083ff2987a695a42357134c8381fba70"
+SRC_URI[proc-macro2-1.0.59.sha256sum] = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b"
+SRC_URI[proptest-1.2.0.sha256sum] = "4e35c06b98bf36aba164cc17cb25f7e232f5c4aeea73baa14b8a9f0d92dbfa65"
 SRC_URI[quick-error-1.2.3.sha256sum] = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-SRC_URI[quick-error-2.0.1.sha256sum] = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
-SRC_URI[quote-1.0.26.sha256sum] = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+SRC_URI[quote-1.0.28.sha256sum] = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
 SRC_URI[rand-0.7.3.sha256sum] = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
 SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 SRC_URI[rand_chacha-0.2.2.sha256sum] = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
@@ -499,30 +516,33 @@
 SRC_URI[rayon-core-1.11.0.sha256sum] = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
 SRC_URI[rctree-0.5.0.sha256sum] = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
 SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-SRC_URI[regex-1.7.1.sha256sum] = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
+SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+SRC_URI[regex-1.8.3.sha256sum] = "81ca098a9821bd52d6b24fd8b10bd081f47d39c22778cafaa75a2857a62c6390"
 SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
-SRC_URI[regex-syntax-0.6.28.sha256sum] = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+SRC_URI[regex-syntax-0.7.2.sha256sum] = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
 SRC_URI[rgb-0.8.36.sha256sum] = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59"
 SRC_URI[rustc_version-0.2.3.sha256sum] = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
 SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-SRC_URI[rustix-0.36.9.sha256sum] = "fd5c6ff11fecd55b40746d1995a02f2eb375bf8c00d192d521ee09f42bef37bc"
+SRC_URI[rustix-0.37.19.sha256sum] = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d"
 SRC_URI[rusty-fork-0.3.0.sha256sum] = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f"
 SRC_URI[ryu-1.0.13.sha256sum] = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
 SRC_URI[safe_arch-0.6.0.sha256sum] = "794821e4ccb0d9f979512f9c1973480123f9bd62a90d74ab0f9426fcf8f4a529"
 SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
 SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-SRC_URI[scratch-1.0.5.sha256sum] = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1"
 SRC_URI[selectors-0.24.0.sha256sum] = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416"
 SRC_URI[semver-0.9.0.sha256sum] = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
 SRC_URI[semver-1.0.17.sha256sum] = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
 SRC_URI[semver-parser-0.7.0.sha256sum] = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-SRC_URI[serde-1.0.156.sha256sum] = "314b5b092c0ade17c00142951e50ced110ec27cea304b1037c6969246c2469a4"
-SRC_URI[serde_derive-1.0.156.sha256sum] = "d7e29c4601e36bcec74a223228dce795f4cd3616341a4af93520ca1a837c087d"
-SRC_URI[serde_json-1.0.94.sha256sum] = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea"
+SRC_URI[serde-1.0.163.sha256sum] = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2"
+SRC_URI[serde_derive-1.0.163.sha256sum] = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e"
+SRC_URI[serde_json-1.0.96.sha256sum] = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
+SRC_URI[serde_spanned-0.6.2.sha256sum] = "93107647184f6027e3b7dcb2e11034cf95ffa1e3a682c67951963ac69c1c007d"
 SRC_URI[servo_arc-0.2.0.sha256sum] = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741"
 SRC_URI[sha1-0.6.1.sha256sum] = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770"
 SRC_URI[sha1_smol-1.0.0.sha256sum] = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
-SRC_URI[simba-0.8.0.sha256sum] = "50582927ed6f77e4ac020c057f37a268fc6aebc29225050365aacbb9deeeddc4"
+SRC_URI[simba-0.8.1.sha256sum] = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae"
+SRC_URI[simd-adler32-0.3.5.sha256sum] = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
 SRC_URI[siphasher-0.3.10.sha256sum] = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
 SRC_URI[slab-0.4.8.sha256sum] = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
 SRC_URI[smallvec-1.10.0.sha256sum] = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
@@ -536,59 +556,69 @@
 SRC_URI[string_cache_codegen-0.5.2.sha256sum] = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
 SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-SRC_URI[system-deps-6.0.3.sha256sum] = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff"
-SRC_URI[tempfile-3.4.0.sha256sum] = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95"
+SRC_URI[syn-2.0.18.sha256sum] = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e"
+SRC_URI[system-deps-6.1.0.sha256sum] = "e5fa6fb9ee296c0dc2df41a656ca7948546d061958115ddb0bcaae43ad0d17d2"
+SRC_URI[target-lexicon-0.12.7.sha256sum] = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5"
+SRC_URI[tempfile-3.5.0.sha256sum] = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
 SRC_URI[tendril-0.4.3.sha256sum] = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
-SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
 SRC_URI[termtree-0.4.1.sha256sum] = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
 SRC_URI[textwrap-0.16.0.sha256sum] = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
-SRC_URI[thiserror-1.0.39.sha256sum] = "a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c"
-SRC_URI[thiserror-impl-1.0.39.sha256sum] = "5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e"
+SRC_URI[thiserror-1.0.40.sha256sum] = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+SRC_URI[thiserror-impl-1.0.40.sha256sum] = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
 SRC_URI[time-0.2.27.sha256sum] = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242"
 SRC_URI[time-macros-0.1.1.sha256sum] = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1"
 SRC_URI[time-macros-impl-0.1.2.sha256sum] = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f"
 SRC_URI[tinytemplate-1.2.1.sha256sum] = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
 SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
 SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
-SRC_URI[toml_datetime-0.6.1.sha256sum] = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622"
-SRC_URI[toml_edit-0.19.7.sha256sum] = "dc18466501acd8ac6a3f615dd29a3438f8ca6bb3b19537138b3106e575621274"
+SRC_URI[toml-0.7.4.sha256sum] = "d6135d499e69981f9ff0ef2167955a5333c35e36f6937d382974566b3d5b94ec"
+SRC_URI[toml_datetime-0.6.2.sha256sum] = "5a76a9312f5ba4c2dec6b9161fdf25d87ad8a09256ccea5a556fef03c706a10f"
+SRC_URI[toml_edit-0.19.10.sha256sum] = "2380d56e8670370eee6566b0bfd4265f65b3f432e8c6d85623f728d4fa31f739"
 SRC_URI[typenum-1.16.0.sha256sum] = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
 SRC_URI[unarray-0.1.4.sha256sum] = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
-SRC_URI[unicode-bidi-0.3.11.sha256sum] = "524b68aca1d05e03fdf03fcdce2c6c94b6daf6d16861ddaa7e4f2b6638a9052c"
-SRC_URI[unicode-ident-1.0.8.sha256sum] = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+SRC_URI[unicode-bidi-0.3.13.sha256sum] = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+SRC_URI[unicode-ident-1.0.9.sha256sum] = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0"
 SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
-SRC_URI[unicode-width-0.1.10.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
 SRC_URI[url-2.3.1.sha256sum] = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
 SRC_URI[utf-8-0.7.6.sha256sum] = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
+SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 SRC_URI[version-compare-0.1.1.sha256sum] = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
 SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 SRC_URI[wait-timeout-0.2.0.sha256sum] = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
 SRC_URI[walkdir-2.3.3.sha256sum] = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
 SRC_URI[wasi-0.9.0+wasi-snapshot-preview1.sha256sum] = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
 SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-SRC_URI[wasm-bindgen-0.2.84.sha256sum] = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
-SRC_URI[wasm-bindgen-backend-0.2.84.sha256sum] = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
-SRC_URI[wasm-bindgen-macro-0.2.84.sha256sum] = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
-SRC_URI[wasm-bindgen-macro-support-0.2.84.sha256sum] = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
-SRC_URI[wasm-bindgen-shared-0.2.84.sha256sum] = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
-SRC_URI[web-sys-0.3.61.sha256sum] = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+SRC_URI[wasm-bindgen-0.2.86.sha256sum] = "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73"
+SRC_URI[wasm-bindgen-backend-0.2.86.sha256sum] = "19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb"
+SRC_URI[wasm-bindgen-macro-0.2.86.sha256sum] = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258"
+SRC_URI[wasm-bindgen-macro-support-0.2.86.sha256sum] = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8"
+SRC_URI[wasm-bindgen-shared-0.2.86.sha256sum] = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93"
+SRC_URI[web-sys-0.3.63.sha256sum] = "3bdd9ef4e984da1187bf8110c5cf5b845fbc87a23602cdf912386a76fcd3a7c2"
 SRC_URI[weezl-0.1.7.sha256sum] = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
-SRC_URI[wide-0.7.8.sha256sum] = "b689b6c49d6549434bf944e6b0f39238cf63693cb7a147e9d887507fffa3b223"
+SRC_URI[wide-0.7.9.sha256sum] = "5cd0496a71f3cc6bc4bf0ed91346426a5099e93d89807e663162dc5a1069ff65"
 SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
 SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
 SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-SRC_URI[windows-sys-0.42.0.sha256sum] = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+SRC_URI[windows-0.48.0.sha256sum] = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
 SRC_URI[windows-sys-0.45.0.sha256sum] = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 SRC_URI[windows-targets-0.42.2.sha256sum] = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+SRC_URI[windows-targets-0.48.0.sha256sum] = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
 SRC_URI[windows_aarch64_gnullvm-0.42.2.sha256sum] = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
 SRC_URI[windows_aarch64_msvc-0.42.2.sha256sum] = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
 SRC_URI[windows_i686_gnu-0.42.2.sha256sum] = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
 SRC_URI[windows_i686_msvc-0.42.2.sha256sum] = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
 SRC_URI[windows_x86_64_gnu-0.42.2.sha256sum] = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
 SRC_URI[windows_x86_64_gnullvm-0.42.2.sha256sum] = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
 SRC_URI[windows_x86_64_msvc-0.42.2.sha256sum] = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
-SRC_URI[winnow-0.3.6.sha256sum] = "23d020b441f92996c80d94ae9166e8501e59c7bb56121189dc9eab3bd8216966"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+SRC_URI[winnow-0.4.6.sha256sum] = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699"
 SRC_URI[xml5ever-0.17.0.sha256sum] = "4034e1d05af98b51ad7214527730626f019682d797ba38b51689212118d8e650"
 SRC_URI[yeslogic-fontconfig-sys-4.0.1.sha256sum] = "ec657fd32bbcbeaef5c7bc8e10b3db95b143fab8db0a50079773dbf936fd4f73"
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg/0001-system-deps-src-lib.rs-do-not-probe-into-harcoded-li.patch b/poky/meta/recipes-gnome/librsvg/librsvg/0001-system-deps-src-lib.rs-do-not-probe-into-harcoded-li.patch
deleted file mode 100644
index 15d5abe..0000000
--- a/poky/meta/recipes-gnome/librsvg/librsvg/0001-system-deps-src-lib.rs-do-not-probe-into-harcoded-li.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From c0b0ef51b3c997a1c20ef9381ba2201ed477f609 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Tue, 21 Sep 2021 16:54:23 +0200
-Subject: [PATCH] system-deps/src/lib.rs: do not probe into harcoded list of
- targets
-
-Oe-core defines custom targets, and this probe fails.
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
-
----
- system-deps-6.0.3/src/lib.rs           | 16 +---------------
- 2 files changed, 2 insertions(+), 16 deletions(-)
-
-diff --git a/system-deps-6.0.3/src/lib.rs b/system-deps-6.0.3/src/lib.rs
-index 45ab1ce..f87d1ec 100644
---- a/system-deps-6.0.3/src/lib.rs
-+++ b/system-deps-6.0.3/src/lib.rs
-@@ -800,21 +800,7 @@ impl Config {
-     }
- 
-     fn check_cfg(&self, cfg: &cfg_expr::Expression) -> Result<bool, Error> {
--        use cfg_expr::{targets::get_builtin_target_by_triple, Predicate};
--
--        let target = self
--            .env
--            .get("TARGET")
--            .expect("no TARGET env variable defined");
--        let target = get_builtin_target_by_triple(&target)
--            .unwrap_or_else(|| panic!("Invalid TARGET: {}", target));
--
--        let res = cfg.eval(|pred| match pred {
--            Predicate::Target(tp) => Some(tp.matches(target)),
--            _ => None,
--        });
--
--        res.ok_or_else(|| Error::UnsupportedCfg(cfg.original().to_string()))
-+        Ok(true)
-     }
- }
- 
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg_2.56.0.bb b/poky/meta/recipes-gnome/librsvg/librsvg_2.56.1.bb
similarity index 91%
rename from poky/meta/recipes-gnome/librsvg/librsvg_2.56.0.bb
rename to poky/meta/recipes-gnome/librsvg/librsvg_2.56.1.bb
index 1a5d8a6..edd7ad3 100644
--- a/poky/meta/recipes-gnome/librsvg/librsvg_2.56.0.bb
+++ b/poky/meta/recipes-gnome/librsvg/librsvg_2.56.1.bb
@@ -19,10 +19,9 @@
 require ${BPN}-crates.inc
 
 SRC_URI += "file://0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch \
-            file://0001-system-deps-src-lib.rs-do-not-probe-into-harcoded-li.patch;patchdir=${CARGO_VENDORING_DIRECTORY} \
            "
 
-SRC_URI[archive.sha256sum] = "194b5097d9cd107495f49c291cf0da65ec2b4bb55e5628369751a3f44ba222b3"
+SRC_URI[archive.sha256sum] = "1685aeacae9a441dcb12c0c3ec63706172a2f52705dafbefb8e7311d4d5e430b"
 
 # librsvg is still autotools-based, but is calling cargo from its automake-driven makefiles
 # so we cannot use cargo class directly, but still need bits and pieces from it 
@@ -51,8 +50,7 @@
     sed -ie 's,"linker": ".*","linker": "${RUST_TARGET_CC}",g' ${RUST_TARGETS_DIR}/${RUST_HOST_SYS}.json
 }
 
-# Issue only on windows
-CVE_CHECK_IGNORE += "CVE-2018-1000041"
+CVE_STATUS[CVE-2018-1000041] = "not-applicable-platform: Issue only applies on Windows"
 
 CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
 
diff --git a/poky/meta/recipes-graphics/builder/builder_0.1.bb b/poky/meta/recipes-graphics/builder/builder_0.1.bb
index 39be3bd..1700015 100644
--- a/poky/meta/recipes-graphics/builder/builder_0.1.bb
+++ b/poky/meta/recipes-graphics/builder/builder_0.1.bb
@@ -29,5 +29,4 @@
 	chown  builder.builder ${D}${sysconfdir}/mini_x/session.d/builder_session.sh
 }
 
-# -4178 is an unrelated 'builder'
-CVE_CHECK_IGNORE = "CVE-2008-4178"
+CVE_STATUS[CVE-2008-4178] = "cpe-incorrect: This CVE is for an unrelated builder"
diff --git a/poky/meta/recipes-graphics/freetype/freetype_2.13.0.bb b/poky/meta/recipes-graphics/freetype/freetype_2.13.1.bb
similarity index 95%
rename from poky/meta/recipes-graphics/freetype/freetype_2.13.0.bb
rename to poky/meta/recipes-graphics/freetype/freetype_2.13.1.bb
index 514672c..5b1c520 100644
--- a/poky/meta/recipes-graphics/freetype/freetype_2.13.0.bb
+++ b/poky/meta/recipes-graphics/freetype/freetype_2.13.1.bb
@@ -14,7 +14,7 @@
                     "
 
 SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "5ee23abd047636c24b2d43c6625dcafc66661d1aca64dec9e0d05df29592624c"
+SRC_URI[sha256sum] = "ea67e3b019b1104d1667aa274f5dc307d8cbd606b399bc32df308a77f1a564bf"
 
 UPSTREAM_CHECK_REGEX = "freetype-(?P<pver>\d+(\.\d+)+)"
 
diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_7.3.0.bb b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_8.0.1.bb
similarity index 95%
rename from poky/meta/recipes-graphics/harfbuzz/harfbuzz_7.3.0.bb
rename to poky/meta/recipes-graphics/harfbuzz/harfbuzz_8.0.1.bb
index 7ecbb04..359272e 100644
--- a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_7.3.0.bb
+++ b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_8.0.1.bb
@@ -9,7 +9,7 @@
                     "
 
 SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "20770789749ac9ba846df33983dbda22db836c70d9f5d050cb9aa5347094a8fb"
+SRC_URI[sha256sum] = "c1ce780acd385569f25b9a29603d1d5bc71e6940e55bfdd4f7266fad50e42620"
 
 DEPENDS += "glib-2.0-native"
 
diff --git a/poky/meta/recipes-graphics/jpeg/files/0001-libjpeg-turbo-fix-package_qa-error.patch b/poky/meta/recipes-graphics/jpeg/files/0001-libjpeg-turbo-fix-package_qa-error.patch
deleted file mode 100644
index fab5109..0000000
--- a/poky/meta/recipes-graphics/jpeg/files/0001-libjpeg-turbo-fix-package_qa-error.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 5cf847b5bef8dc3f9f89bd09dd5af4e6603f393c Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Mon, 27 Aug 2018 16:10:55 +0800
-Subject: [PATCH] libjpeg-turbo: fix package_qa error
-
-Fix package qa errors like below:
-libjpeg.so.62.3.0 contains probably-redundant RPATH /usr/lib [useless-rpaths]
-usr/bin/cjpeg contains probably-redundant RPATH /usr/lib
-
-Upstream-Status: Inappropriate [oe-specific]
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- CMakeLists.txt | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 2bc3458..ea3041e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -191,10 +191,6 @@ endif()
- report_option(ENABLE_SHARED "Shared libraries")
- report_option(ENABLE_STATIC "Static libraries")
- 
--if(ENABLE_SHARED)
--  set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR})
--endif()
--
- if(WITH_JPEG8 OR WITH_JPEG7)
-   set(WITH_ARITH_ENC 1)
-   set(WITH_ARITH_DEC 1)
diff --git a/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.1.5.1.bb b/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_3.0.0.bb
similarity index 83%
rename from poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.1.5.1.bb
rename to poky/meta/recipes-graphics/jpeg/libjpeg-turbo_3.0.0.bb
index e086830..146d800 100644
--- a/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.1.5.1.bb
+++ b/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_3.0.0.bb
@@ -2,19 +2,15 @@
 DESCRIPTION = "libjpeg-turbo is a derivative of libjpeg that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression"
 HOMEPAGE = "http://libjpeg-turbo.org/"
 
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://cdjpeg.h;endline=13;md5=8a61af33cc1c681cd5cc297150bbb5bd \
-                    file://jpeglib.h;endline=16;md5=52b5eaade8d5b6a452a7693dfe52c084 \
-                    file://djpeg.c;endline=11;md5=510b386442ab6a27ee241fc5669bc5ea \
-                    "
+LICENSE = "IJG & BSD-3-Clause & Zlib"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=2a8e0d8226a102f07ab63ed7fd6ce155"
+
 DEPENDS:append:x86-64:class-target = " nasm-native"
 DEPENDS:append:x86:class-target = " nasm-native"
 
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
-           file://0001-libjpeg-turbo-fix-package_qa-error.patch \
-           "
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
 
-SRC_URI[sha256sum] = "2fdc3feb6e9deb17adec9bafa3321419aa19f8f4e5dea7bf8486844ca22207bf"
+SRC_URI[sha256sum] = "c77c65fcce3d33417b2e90432e7a0eb05f59a7fff884022a9d931775d583bfaa"
 UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/libjpeg-turbo/files/"
 UPSTREAM_CHECK_REGEX = "/libjpeg-turbo/files/(?P<pver>(\d+[\.\-_]*)+)/"
 
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.26.5.bb b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.28.0.bb
similarity index 97%
rename from poky/meta/recipes-graphics/libsdl2/libsdl2_2.26.5.bb
rename to poky/meta/recipes-graphics/libsdl2/libsdl2_2.28.0.bb
index 3274475..1228217 100644
--- a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.26.5.bb
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.28.0.bb
@@ -25,7 +25,7 @@
 
 S = "${WORKDIR}/SDL2-${PV}"
 
-SRC_URI[sha256sum] = "ad8fea3da1be64c83c45b1d363a6b4ba8fd60f5bde3b23ec73855709ec5eabf7"
+SRC_URI[sha256sum] = "d215ae4541e69d628953711496cd7b0e8b8d5c8d811d5b0f98fdc7fd1422998a"
 
 inherit cmake lib_package binconfig-disabled pkgconfig upstream-version-is-even
 
diff --git a/poky/meta/recipes-graphics/libva/libva-initial_2.18.0.bb b/poky/meta/recipes-graphics/libva/libva-initial_2.19.0.bb
similarity index 100%
rename from poky/meta/recipes-graphics/libva/libva-initial_2.18.0.bb
rename to poky/meta/recipes-graphics/libva/libva-initial_2.19.0.bb
diff --git a/poky/meta/recipes-graphics/libva/libva-utils_2.18.2.bb b/poky/meta/recipes-graphics/libva/libva-utils_2.19.0.bb
similarity index 90%
rename from poky/meta/recipes-graphics/libva/libva-utils_2.18.2.bb
rename to poky/meta/recipes-graphics/libva/libva-utils_2.19.0.bb
index c7bf360..acb25a3 100644
--- a/poky/meta/recipes-graphics/libva/libva-utils_2.18.2.bb
+++ b/poky/meta/recipes-graphics/libva/libva-utils_2.19.0.bb
@@ -14,8 +14,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e"
 
-SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.18-branch;protocol=https"
-SRCREV = "76993ae8d0fbd17e5bfff80ed495c71e727f0d06"
+SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.19-branch;protocol=https"
+SRCREV = "5bf107ec4f7b18a6457d23abf57560dfb382a751"
 S = "${WORKDIR}/git"
 
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))$"
diff --git a/poky/meta/recipes-graphics/libva/libva.inc b/poky/meta/recipes-graphics/libva/libva.inc
index 7ed0c9e..3388fea 100644
--- a/poky/meta/recipes-graphics/libva/libva.inc
+++ b/poky/meta/recipes-graphics/libva/libva.inc
@@ -18,7 +18,7 @@
 
 SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/libva-${PV}.tar.bz2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
-SRC_URI[sha256sum] = "a3577eeba0c23924686c7e2f2030073736c8282a80f27b5473e33ea94ccd4982"
+SRC_URI[sha256sum] = "963be798d559df7feebda6fa81aa0dae6f9409c633a37909c44c6aa8af1e2174"
 
 S = "${WORKDIR}/libva-${PV}"
 
diff --git a/poky/meta/recipes-graphics/libva/libva_2.18.0.bb b/poky/meta/recipes-graphics/libva/libva_2.19.0.bb
similarity index 100%
rename from poky/meta/recipes-graphics/libva/libva_2.18.0.bb
rename to poky/meta/recipes-graphics/libva/libva_2.19.0.bb
diff --git a/poky/meta/recipes-graphics/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch b/poky/meta/recipes-graphics/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch
new file mode 100644
index 0000000..3631a91
--- /dev/null
+++ b/poky/meta/recipes-graphics/mesa/files/0001-gallium-Fix-build-with-llvm-17.patch
@@ -0,0 +1,34 @@
+From 865762e0a767a121206d818bdd58301afbf30104 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 23 Jun 2023 01:20:38 -0700
+Subject: [PATCH] gallium: Fix build with llvm 17
+
+These headers are not available for C files in llvm 17+
+and they seem to be not needed to compile after all with llvm 17
+so add conditions to exclude them for llvm >= 17
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23827]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/gallium/auxiliary/gallivm/lp_bld_init.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c
+index 24d0823..3d4573e 100644
+--- a/src/gallium/auxiliary/gallivm/lp_bld_init.c
++++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c
+@@ -42,8 +42,10 @@
+ 
+ #include <llvm/Config/llvm-config.h>
+ #include <llvm-c/Analysis.h>
++#if LLVM_VERSION_MAJOR < 17
+ #include <llvm-c/Transforms/Scalar.h>
+-#if LLVM_VERSION_MAJOR >= 7
++#endif
++#if LLVM_VERSION_MAJOR >= 7 && LLVM_VERSION_MAJOR < 17
+ #include <llvm-c/Transforms/Utils.h>
+ #endif
+ #include <llvm-c/BitWriter.h>
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_23.1.1.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_23.1.3.bb
similarity index 100%
rename from poky/meta/recipes-graphics/mesa/mesa-gl_23.1.1.bb
rename to poky/meta/recipes-graphics/mesa/mesa-gl_23.1.3.bb
diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc
index ac42a8d..9288990 100644
--- a/poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/poky/meta/recipes-graphics/mesa/mesa.inc
@@ -17,9 +17,10 @@
 SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \
            file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \
            file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
+           file://0001-gallium-Fix-build-with-llvm-17.patch \
            "
 
-SRC_URI[sha256sum] = "a2679031ed5b73b29c4f042ac64d96f83b0cfe4858617de32e2efc196c653a40"
+SRC_URI[sha256sum] = "2f6d7381bc10fbd2d6263ad1022785b8b511046c1a904162f8f7da18eea8aed9"
 
 UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
 
diff --git a/poky/meta/recipes-graphics/mesa/mesa_23.1.1.bb b/poky/meta/recipes-graphics/mesa/mesa_23.1.3.bb
similarity index 100%
rename from poky/meta/recipes-graphics/mesa/mesa_23.1.1.bb
rename to poky/meta/recipes-graphics/mesa/mesa_23.1.3.bb
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers/0001-scripts-CMakeLists.txt-append-to-CMAKE_FIND_ROOT_PAT.patch b/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers/0001-scripts-CMakeLists.txt-append-to-CMAKE_FIND_ROOT_PAT.patch
new file mode 100644
index 0000000..4db686f
--- /dev/null
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers/0001-scripts-CMakeLists.txt-append-to-CMAKE_FIND_ROOT_PAT.patch
@@ -0,0 +1,28 @@
+From ea7b9e6fc0b3f45d6032ce624bed85bbde5ec0bf Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Wed, 21 Jun 2023 20:03:03 +0200
+Subject: [PATCH] scripts/CMakeLists.txt: append to CMAKE_FIND_ROOT_PATH
+ instead of replacing it
+
+Resetting CMAKE_FIND_ROOT_PATH in particular breaks builds in Yocto
+(which is a major cross compiling framework).
+
+Upstream-Status: Backport [https://github.com/KhronosGroup/Vulkan-ValidationLayers/commit/e1b11dc7856765cf45a283ac805ea5066c81cd9b]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ scripts/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt
+index 94c8528c8..cd86c54eb 100644
+--- a/scripts/CMakeLists.txt
++++ b/scripts/CMakeLists.txt
+@@ -124,7 +124,7 @@ if (MIMALLOC_INSTALL_DIR)
+ endif()
+ 
+ if (CMAKE_CROSSCOMPILING)
+-    set(CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
++    set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH} ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
+ else()
+     set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} PARENT_SCOPE)
+ endif()
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.243.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.250.0.bb
similarity index 90%
rename from poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.243.0.bb
rename to poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.250.0.bb
index bfb4b37..62c6343 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.243.0.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-validation-layers_1.3.250.0.bb
@@ -8,8 +8,10 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8df9e8826734226d08cb412babfa599c"
 
-SRC_URI = "git://git@github.com/KhronosGroup/Vulkan-ValidationLayers.git;branch=sdk-1.3.243;protocol=https"
-SRCREV = "4ac0fd8e6cb3d49105d707d9ec07f0f3aa0943d6"
+SRC_URI = "git://git@github.com/KhronosGroup/Vulkan-ValidationLayers.git;branch=sdk-1.3.250;protocol=https \
+           file://0001-scripts-CMakeLists.txt-append-to-CMAKE_FIND_ROOT_PAT.patch \
+           "
+SRCREV = "1541e00a63cd125f15d231d5a8059ebe66503b25"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-graphics/wayland/wayland-protocols_1.31.bb b/poky/meta/recipes-graphics/wayland/wayland-protocols_1.32.bb
similarity index 91%
rename from poky/meta/recipes-graphics/wayland/wayland-protocols_1.31.bb
rename to poky/meta/recipes-graphics/wayland/wayland-protocols_1.32.bb
index afde995..05943bc 100644
--- a/poky/meta/recipes-graphics/wayland/wayland-protocols_1.31.bb
+++ b/poky/meta/recipes-graphics/wayland/wayland-protocols_1.32.bb
@@ -10,7 +10,7 @@
                     file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53"
 
 SRC_URI = "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/${PV}/downloads/wayland-protocols-${PV}.tar.xz"
-SRC_URI[sha256sum] = "a07fa722ed87676ec020d867714bc9a2f24c464da73912f39706eeef5219e238"
+SRC_URI[sha256sum] = "7459799d340c8296b695ef857c07ddef24c5a09b09ab6a74f7b92640d2b1ba11"
 
 UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
 
diff --git a/poky/meta/recipes-graphics/wayland/weston_11.0.1.bb b/poky/meta/recipes-graphics/wayland/weston_12.0.1.bb
similarity index 89%
rename from poky/meta/recipes-graphics/wayland/weston_11.0.1.bb
rename to poky/meta/recipes-graphics/wayland/weston_12.0.1.bb
index 0838791..d9eae1f 100644
--- a/poky/meta/recipes-graphics/wayland/weston_11.0.1.bb
+++ b/poky/meta/recipes-graphics/wayland/weston_12.0.1.bb
@@ -6,14 +6,14 @@
                     file://libweston/compositor.c;endline=27;md5=eb6d5297798cabe2ddc65e2af519bcf0 \
                     "
 
-SRC_URI = "https://gitlab.freedesktop.org/wayland/weston/uploads/f5648c818fba5432edc3ea63c4db4813/${BPN}-${PV}.tar.xz \
+SRC_URI = "https://gitlab.freedesktop.org/wayland/weston/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz \
            file://weston.png \
            file://weston.desktop \
            file://xwayland.weston-start \
            file://systemd-notify.weston-start \
            "
 
-SRC_URI[sha256sum] = "a413f68c252957fc3191c3650823ec356ae8c124ccc0cb440da5cdc4e2cb9e57"
+SRC_URI[sha256sum] = "b18591eab278bc191720f6c09158040b795e7118af1d5ddca6acd9a8e2039535"
 
 UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
 UPSTREAM_CHECK_REGEX = "weston-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
@@ -37,7 +37,7 @@
                    ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \
                    ${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \
                    ${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \
-                   ${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'sysvinit', 'launcher-libseat', '', d)} \
+                   launcher-libseat \
                    image-jpeg \
                    screenshare \
                    shell-desktop \
@@ -71,9 +71,9 @@
 # Weston with webp support
 PACKAGECONFIG[webp] = "-Dimage-webp=true,-Dimage-webp=false,libwebp"
 # Weston with systemd-login support
-PACKAGECONFIG[systemd] = "-Dsystemd=true -Dlauncher-logind=true,-Dsystemd=false -Dlauncher-logind=false,systemd dbus"
+PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd dbus"
 # Weston with Xwayland support (requires X11 and Wayland)
-PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false,libxcb libxcursor xwayland"
+PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false,libxcb libxcursor xcb-util-cursor xwayland"
 # colord CMS support
 PACKAGECONFIG[colord] = "-Ddeprecated-color-management-colord=true,-Ddeprecated-color-management-colord=false,colord"
 # Clients support
@@ -94,6 +94,13 @@
 PACKAGECONFIG[image-jpeg] = "-Dimage-jpeg=true,-Dimage-jpeg=false, jpeg"
 # support libseat based launch
 PACKAGECONFIG[launcher-libseat] = "-Dlauncher-libseat=true,-Dlauncher-libseat=false,seatd"
+# deprecated and superseded by libseat launcher
+PACKAGECONFIG[launcher-logind] = "-Ddeprecated-launcher-logind=true,-Ddeprecated-launcher-logind=false,"
+# screencasting via PipeWire
+PACKAGECONFIG[pipewire] = "-Dbackend-pipewire=true,-Dbackend-pipewire=false,pipewire"
+# VNC remote screensharing
+PACKAGECONFIG[vnc] = "-Dbackend-vnc=true,-Dbackend-vnc=false,neatvnc"
+
 
 do_install:append() {
 	# Weston doesn't need the .la files to load modules, so wipe them
diff --git a/poky/meta/recipes-graphics/xorg-app/xdpyinfo_1.3.4.bb b/poky/meta/recipes-graphics/xorg-app/xdpyinfo_1.3.4.bb
index aaa8aa8..3becd40 100644
--- a/poky/meta/recipes-graphics/xorg-app/xdpyinfo_1.3.4.bb
+++ b/poky/meta/recipes-graphics/xorg-app/xdpyinfo_1.3.4.bb
@@ -9,7 +9,7 @@
 that are available."
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=f3d09e6b9e203a1af489e16c708f4fb3"
-DEPENDS += "libxtst libxext libxxf86vm libxi libxrender libxinerama libdmx libxau libxcomposite"
+DEPENDS += "libxtst libxext libxxf86vm libxi libxrender libxinerama libxau libxcomposite"
 PE = "1"
 
 SRC_URI += "file://disable-xkb.patch"
diff --git a/poky/meta/recipes-graphics/xorg-app/xeyes_1.2.0.bb b/poky/meta/recipes-graphics/xorg-app/xeyes_1.3.0.bb
similarity index 77%
rename from poky/meta/recipes-graphics/xorg-app/xeyes_1.2.0.bb
rename to poky/meta/recipes-graphics/xorg-app/xeyes_1.3.0.bb
index 73d09f0..3d1a706 100644
--- a/poky/meta/recipes-graphics/xorg-app/xeyes_1.2.0.bb
+++ b/poky/meta/recipes-graphics/xorg-app/xeyes_1.3.0.bb
@@ -8,6 +8,7 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=3ea51b365051ac32d1813a7dbaa4bfc6"
 
-SRC_URI[sha256sum] = "f8a17e23146bef1ab345a1e303c6749e42aaa7bcf4f25428afad41770721b6db"
+SRC_URI_EXT = "xz"
+SRC_URI[sha256sum] = "0950c600bf33447e169a539ee6655ef9f36d6cebf2c1be67f7ab55dacb753023"
 
 DEPENDS += "libxau libxt libxext libxmu libxrender libxi"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libdmx_1.1.4.bb b/poky/meta/recipes-graphics/xorg-lib/libdmx_1.1.4.bb
deleted file mode 100644
index 3634d53..0000000
--- a/poky/meta/recipes-graphics/xorg-lib/libdmx_1.1.4.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-require xorg-lib-common.inc
-
-SUMMARY = "DMX: Distributed Multihead X extension library"
-
-DESCRIPTION = "The DMX extension provides support for communication with \
-and control of Xdmx(1) server. Attributes of the Xdmx(1) server and of \
-the back-end screens attached to the server can be queried and modified \
-via this protocol."
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a3c3499231a8035efd0e004cfbd3b72a \
-                    file://src/dmx.c;endline=33;md5=c43f19af03c7c8619cadc9724ed9afe1"
-
-DEPENDS += "libxext xorgproto"
-
-PE = "1"
-
-XORG_EXT = "tar.bz2"
-
-SRC_URI[md5sum] = "d2f1f0ec68ac3932dd7f1d9aa0a7a11c"
-SRC_URI[sha256sum] = "253f90005d134fa7a209fbcbc5a3024335367c930adf0f3203e754cf32747243"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libx11_1.8.5.bb b/poky/meta/recipes-graphics/xorg-lib/libx11_1.8.6.bb
similarity index 92%
rename from poky/meta/recipes-graphics/xorg-lib/libx11_1.8.5.bb
rename to poky/meta/recipes-graphics/xorg-lib/libx11_1.8.6.bb
index cf2e294..1cfa56b 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libx11_1.8.5.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libx11_1.8.6.bb
@@ -24,7 +24,7 @@
 
 SRC_URI += "file://disable_tests.patch"
 
-SRC_URI[sha256sum] = "e362c6f03c793171becd1ce2078c64789504c7d7ff48ee40a76ff76b59f6b561"
+SRC_URI[sha256sum] = "59535b7cc6989ba806a022f7e8533b28c4397b9d86e9d07b6df0c0703fa25cc9"
 
 inherit gettext
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-lib/xcb-util-cursor_0.1.4.bb b/poky/meta/recipes-graphics/xorg-lib/xcb-util-cursor_0.1.4.bb
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-graphics/xorg-lib/xcb-util-cursor_0.1.4.bb
rename to poky/meta/recipes-graphics/xorg-lib/xcb-util-cursor_0.1.4.bb
diff --git a/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.38.bb b/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.39.bb
similarity index 91%
rename from poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.38.bb
rename to poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.39.bb
index 53dfe16..4795464 100644
--- a/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.38.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.39.bb
@@ -13,7 +13,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=0e7f21ca7db975c63467d2e7624a12f9"
 
 SRC_URI = "${XORG_MIRROR}/individual/data/xkeyboard-config/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "0690a91bab86b18868f3eee6d41e9ec4ce6894f655443d490a2184bfac56c872"
+SRC_URI[sha256sum] = "5ac5f533eff7b0c116805fe254fd79b2c9882700a4f9f2c070f8c4eae5aaa682"
 
 SECTION = "x11/libs"
 DEPENDS = "util-macros libxslt-native"
diff --git a/poky/meta/recipes-graphics/xorg-lib/xtrans_1.4.0.bb b/poky/meta/recipes-graphics/xorg-lib/xtrans_1.5.0.bb
similarity index 69%
rename from poky/meta/recipes-graphics/xorg-lib/xtrans_1.4.0.bb
rename to poky/meta/recipes-graphics/xorg-lib/xtrans_1.5.0.bb
index cd5aedb..781382e 100644
--- a/poky/meta/recipes-graphics/xorg-lib/xtrans_1.4.0.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/xtrans_1.5.0.bb
@@ -9,10 +9,8 @@
 
 require xorg-lib-common.inc
 
-LICENSE = "MIT & MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=49347921d4d5268021a999f250edc9ca"
-
-XORG_EXT = "tar.bz2"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bc875e1c864f4f62b29f7d8651f627fa"
 
 SRC_URI += "file://multilibfix.patch"
 
@@ -24,5 +22,4 @@
 
 BBCLASSEXTEND = "native nativesdk"
 
-SRC_URI[md5sum] = "ce2fb8100c6647ee81451ebe388b17ad"
-SRC_URI[sha256sum] = "377c4491593c417946efcd2c7600d1e62639f7a8bbca391887e2c4679807d773"
+SRC_URI[sha256sum] = "1ba4b703696bfddbf40bacf25bce4e3efb2a0088878f017a50e9884b0c8fb1bd"
diff --git a/poky/meta/recipes-graphics/xorg-proto/xorgproto_2022.2.bb b/poky/meta/recipes-graphics/xorg-proto/xorgproto_2023.2.bb
similarity index 81%
rename from poky/meta/recipes-graphics/xorg-proto/xorgproto_2022.2.bb
rename to poky/meta/recipes-graphics/xorg-proto/xorgproto_2023.2.bb
index a1cd66c..94d37c5 100644
--- a/poky/meta/recipes-graphics/xorg-proto/xorgproto_2022.2.bb
+++ b/poky/meta/recipes-graphics/xorg-proto/xorgproto_2023.2.bb
@@ -6,10 +6,10 @@
 
 SECTION = "x11/libs"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=dfc4bd2b0568b31725b85b0604e69b56"
+LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=0b9fe3db4015bcbe920e7c67a39ee3f1"
 
 SRC_URI = "${XORG_MIRROR}/individual/proto/${BP}.tar.xz"
-SRC_URI[sha256sum] = "5d13dbf2be08f95323985de53352c4f352713860457b95ccaf894a647ac06b9e"
+SRC_URI[sha256sum] = "b61fbc7db82b14ce2dc705ab590efc32b9ad800037113d1973811781d5118c2c"
 
 inherit meson
 
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
index ecb164d..085fcaf 100644
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
+++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
@@ -20,16 +20,15 @@
 UPSTREAM_CHECK_REGEX = "xorg-server-(?P<pver>\d+(\.(?!99)\d+)+)\.tar"
 
 CVE_PRODUCT = "xorg-server x_server"
-# This is specific to Debian's xserver-wrapper.c
-CVE_CHECK_IGNORE += "CVE-2011-4613"
-# As per upstream, exploiting this flaw is non-trivial and it requires exact
-# timing on the behalf of the attacker. Many graphical applications exit if their
-# connection to the X server is lost, so a typical desktop session is either
-# impossible or difficult to exploit. There is currently no upstream patch
-# available for this flaw.
-CVE_CHECK_IGNORE += "CVE-2020-25697"
-# This is specific to XQuartz, which is the macOS X server port
-CVE_CHECK_IGNORE += "CVE-2022-3553"
+
+CVE_STATUS[CVE-2011-4613] = "not-applicable-platform: This is specific to Debian's xserver-wrapper.c"
+CVE_STATUS[CVE-2020-25697] = "upstream-wontfix: \
+As per upstream, exploiting this flaw is non-trivial and it requires exact \
+timing on the behalf of the attacker. Many graphical applications exit if their \
+connection to the X server is lost, so a typical desktop session is either \
+impossible or difficult to exploit. There is currently no upstream patch \
+available for this flaw."
+CVE_STATUS[CVE-2022-3553] = "cpe-incorrect: This is specific to XQuartz, which is the macOS X server port"
 
 S = "${WORKDIR}/${XORG_PN}-${PV}"
 
diff --git a/poky/meta/recipes-graphics/xwayland/xwayland_23.1.1.bb b/poky/meta/recipes-graphics/xwayland/xwayland_23.1.2.bb
similarity index 95%
rename from poky/meta/recipes-graphics/xwayland/xwayland_23.1.1.bb
rename to poky/meta/recipes-graphics/xwayland/xwayland_23.1.2.bb
index a065e92..de51653 100644
--- a/poky/meta/recipes-graphics/xwayland/xwayland_23.1.1.bb
+++ b/poky/meta/recipes-graphics/xwayland/xwayland_23.1.2.bb
@@ -10,7 +10,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=5df87950af51ac2c5822094553ea1880"
 
 SRC_URI = "https://www.x.org/archive/individual/xserver/xwayland-${PV}.tar.xz"
-SRC_URI[sha256sum] = "fb9461f5cb9fea5e07e91882311b0c88b43e8843b017ebac05eb5af69aa34c15"
+SRC_URI[sha256sum] = "bd25d8498ee4d77874fda125127e2db37fc332531febc966231ea06fae8cf77f"
 
 UPSTREAM_CHECK_REGEX = "xwayland-(?P<pver>\d+(\.(?!90\d)\d+)+)\.tar"
 
diff --git a/poky/meta/recipes-kernel/libtraceevent/libtraceevent_1.7.2.bb b/poky/meta/recipes-kernel/libtraceevent/libtraceevent_1.7.3.bb
similarity index 94%
rename from poky/meta/recipes-kernel/libtraceevent/libtraceevent_1.7.2.bb
rename to poky/meta/recipes-kernel/libtraceevent/libtraceevent_1.7.3.bb
index b5c0834..f9a3811 100644
--- a/poky/meta/recipes-kernel/libtraceevent/libtraceevent_1.7.2.bb
+++ b/poky/meta/recipes-kernel/libtraceevent/libtraceevent_1.7.3.bb
@@ -8,7 +8,7 @@
                     file://LICENSES/LGPL-2.1;md5=b370887980db5dd40659b50909238dbd"
 SECTION = "libs"
 
-SRCREV = "1c6f0f3b2bb47571fc455dc565dc343152517d98"
+SRCREV = "dd148189b74da3e2f45c7e536319fec97cb71213"
 SRC_URI = "git://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git;branch=${BPN};protocol=https \
            file://0001-makefile-Do-not-preserve-ownership-in-cp-command.patch"
 
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20230515.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20230625.bb
similarity index 99%
rename from poky/meta/recipes-kernel/linux-firmware/linux-firmware_20230515.bb
rename to poky/meta/recipes-kernel/linux-firmware/linux-firmware_20230625.bb
index 3470131..329a3e3 100644
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20230515.bb
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20230625.bb
@@ -134,7 +134,7 @@
                     "
 # WHENCE checksum is defined separately to ease overriding it if
 # class-devupstream is selected.
-WHENCE_CHKSUM  = "a0997fc7a9af4e46d96529d6ef13b58a"
+WHENCE_CHKSUM  = "57bf874056926f12aec2405d3fc390d9"
 
 # These are not common licenses, set NO_GENERIC_LICENSE for them
 # so that the license files will be copied from fetched source
@@ -212,7 +212,7 @@
 # Pin this to the 20220509 release, override this in local.conf
 SRCREV:class-devupstream ?= "b19cbdca78ab2adfd210c91be15a22568e8b8cae"
 
-SRC_URI[sha256sum] = "8b1acfa16f1ee94732a6acb50d9d6c835cf53af11068bd89ed207bbe04a1e951"
+SRC_URI[sha256sum] = "87597111c0d4b71b31e53cb85a92c386921b84c825a402db8c82e0e86015500d"
 
 inherit allarch
 
diff --git a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch
deleted file mode 100644
index 5b7c1b6..0000000
--- a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From dc221138c809125dc1bbff8506c70cb7bd846368 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 12 Sep 2018 17:08:58 -0700
-Subject: [PATCH] include linux/stddef.h in swab.h uapi header
-
-swab.h uses __always_inline without including the header where it is
-defined, this is exposed by musl based distributions where this macro is
-not defined by system C library headers unlike glibc where it is defined
-in sys/cdefs.h and that header gets pulled in indirectly via
-
-features.h -> sys/cdefs.h
-
-and features.h gets pulled in a lot of headers. Therefore it may work in
-cases where features.h is includes but not otherwise.
-
-Adding linux/stddef.h here ensures that __always_inline is always
-defined independent of which C library is used in userspace
-
-Upstream-Status: Submitted [https://lkml.org/lkml/2018/9/13/78]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Cc: Philippe Ombredanne <pombredanne@nexb.com>
-Cc: Kate Stewart <kstewart@linuxfoundation.org>
-Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Cc: Thomas Gleixner <tglx@linutronix.de>
-
----
- include/uapi/linux/swab.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h
-index 7272f85d6..2912fe463 100644
---- a/include/uapi/linux/swab.h
-+++ b/include/uapi/linux/swab.h
-@@ -3,6 +3,7 @@
- #define _UAPI_LINUX_SWAB_H
- 
- #include <linux/types.h>
-+#include <linux/stddef.h>
- #include <linux/compiler.h>
- #include <asm/bitsperlong.h>
- #include <asm/swab.h>
diff --git a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.1.bb b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.4.bb
similarity index 74%
rename from poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.1.bb
rename to poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.4.bb
index cbdebdc..c523154 100644
--- a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.1.bb
+++ b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.4.bb
@@ -4,7 +4,6 @@
     file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \
     file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \
     file://0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch \
-    file://0001-include-linux-stddef.h-in-swab.h-uapi-header.patch \
    "
 
 SRC_URI += "\
@@ -13,6 +12,6 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
-SRC_URI[sha256sum] = "2ca1f17051a430f6fed1196e4952717507171acfd97d96577212502703b25deb"
+SRC_URI[sha256sum] = "8fa0588f0c2ceca44cac77a0e39ba48c9f00a6b9dc69761c02a5d3efac8da7f3"
 
 
diff --git a/poky/meta/recipes-kernel/linux/cve-exclusion_6.1.inc b/poky/meta/recipes-kernel/linux/cve-exclusion_6.1.inc
index 4cc1519..2eb4836 100644
--- a/poky/meta/recipes-kernel/linux/cve-exclusion_6.1.inc
+++ b/poky/meta/recipes-kernel/linux/cve-exclusion_6.1.inc
@@ -1,20 +1,329 @@
+CVE_STATUS[CVE-2018-6559] = "not-applicable-platform: Issue only affects Ubuntu"
+
+# https://www.linuxkernelcves.com/cves/CVE-2019-3016
+# Fixed with 5.6
+CVE_STATUS[CVE-2019-3016] = "fixed-version: Fixed in version v5.6"
+
+# https://www.linuxkernelcves.com/cves/CVE-2019-3819
+# Fixed with 5.1
+CVE_STATUS[CVE-2019-3819] = "fixed-version: Fixed in version v5.1"
+
+# https://www.linuxkernelcves.com/cves/CVE-2019-3887
+# Fixed with 5.2
+CVE_STATUS[CVE-2019-3887] = "fixed-version: Fixed in version v5.2"
+
+CVE_STATUS[CVE-2020-11935] = "not-applicable-config: Issue only affects aufs, which is not in linux-yocto"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2020-27784
+# Introduced in version v4.1 b26394bd567e5ebe57ec4dee7fe6cd14023c96e9
+# Patched in kernel since v5.10	e8d5f92b8d30bb4ade76494490c3c065e12411b1
+# Backported in version v5.4.73	e9e791f5c39ab30e374a3b1a9c25ca7ff24988f3
+CVE_STATUS[CVE-2020-27784] = "cpe-stable-backport: Backported in version v5.4.73"
+
+
+# 2021
+
+# https://nvd.nist.gov/vuln/detail/CVE-2021-3669
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v5.15 20401d1058f3f841f35a594ac2fc1293710e55b9
+CVE_STATUS[CVE-2021-3669] = "fixed-version: Fixed in version v5.15"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2021-3759
+# Introduced in version v4.5 a9bb7e620efdfd29b6d1c238041173e411670996
+# Patched in kernel since v5.15 18319498fdd4cdf8c1c2c48cd432863b1f915d6f
+# Backported in version v5.4.224 bad83d55134e647a739ebef2082541963f2cbc92
+# Backported in version v5.10.154 836686e1a01d7e2fda6a5a18252243ff30a6e196
+CVE_STATUS[CVE-2021-3759] = "cpe-stable-backport: Backported in versions v5.4.224 and v6.1.11"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2021-4218
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v5.8 32927393dc1ccd60fb2bdc05b9e8e88753761469
+CVE_STATUS[CVE-2021-4218] = "fixed-version: Fixed in version v5.8"
+
+
+# 2022
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-0480
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v5.15 0f12156dff2862ac54235fc72703f18770769042
+CVE_STATUS[CVE-2022-0480] = "fixed-version: Fixed in version v5.15"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-1184
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v5.19 46c116b920ebec58031f0a78c5ea9599b0d2a371
+# Backported in version v5.4.198 17034d45ec443fb0e3c0e7297f9cd10f70446064
+# Backported in version v5.10.121 da2f05919238c7bdc6e28c79539f55c8355408bb
+# Backported in version v5.15.46 ca17db384762be0ec38373a12460081d22a8b42d
+CVE_STATUS[CVE-2022-1184] = "cpe-stable-backport: Backported in versions v5.4.198, v5.10.121 and v5.15.46"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-1462
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v5.19 a501ab75e7624d133a5a3c7ec010687c8b961d23
+# Backported in version v5.4.208 f7785092cb7f022f59ebdaa181651f7c877df132
+# Backported in version v5.10.134 08afa87f58d83dfe040572ed591b47e8cb9e225c
+# Backported in version v5.15.58 b2d1e4cd558cffec6bfe318f5d74e6cffc374d29
+CVE_STATUS[CVE-2022-1462] = "cpe-stable-backport: Backported in versions v5.4.208, v5.10.134 and v5.15.58"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-2196
+# Introduced in version v5.8 5c911beff20aa8639e7a1f28988736c13e03ed54
+# Breaking commit backported in v5.4.47 64b8f33b2e1e687d465b5cb382e7bec495f1e026
+# Patched in kernel since v6.2 2e7eab81425ad6c875f2ed47c0ce01e78afc38a5
+# Backported in version v5.4.233 f93a1a5bdcdd122aae0a3eab7a52c15b71fb725b
+# Backported in version v5.10.170 1b0cafaae8884726c597caded50af185ffc13349
+# Backported in version v5.15.96 6b539a7dbb49250f92515c2ba60aea239efc9e35
+# Backported in version v6.1.14 63fada296062e91ad9f871970d4e7f19e21a6a15
+CVE_STATUS[CVE-2022-2196] = "cpe-stable-backport: Backported in versions v5.4.1233, v5.10.170, v5.15.46 and v6.1.14"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-2308
+# Introduced in version v5.15 c8a6153b6c59d95c0e091f053f6f180952ade91e
+# Patched in kernel since v6.0 46f8a29272e51b6df7393d58fc5cb8967397ef2b
+# Backported in version v5.15.72 dc248ddf41eab4566e95b1ee2433c8a5134ad94a
+# Backported in version v5.19.14 38d854c4a11c3bbf6a96ea46f14b282670c784ac
+CVE_STATUS[CVE-2022-2308] = "cpe-stable-backport: Backported in versions v5.15.72 and v5.19.14"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-2327
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v5.10.125 df3f3bb5059d20ef094d6b2f0256c4bf4127a859
+CVE_STATUS[CVE-2022-2327] = "fixed-version: Fixed in version v5.10.125"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-2663
+# Introduced in version v2.6.20 869f37d8e48f3911eb70f38a994feaa8f8380008
+# Patched in kernel since v6.0 0efe125cfb99e6773a7434f3463f7c2fa28f3a43
+# Backported in version v5.4.213 36f7b71f8ad8e4d224b45f7d6ecfeff63b091547
+# Backported in version v5.10.143 e12ce30fe593dd438c5b392290ad7316befc11ca
+# Backported in version v5.15.68 451c9ce1e2fc9b9e40303bef8e5a0dca1a923cc4
+# Backported in version v5.19.9 6cf0609154b2ce8d3ae160e7506ab316400a8d3d
+CVE_STATUS[CVE-2022-2663] = "cpe-stable-backport: Backported in versions v5.4.213, v5.10.143, v5.15.68 and v5.19.9"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-2785
+# Introduced in version v5.18 b1d18a7574d0df5eb4117c14742baf8bc2b9bb74
+# Patched in kernel since v6.0 86f44fcec22ce2979507742bc53db8400e454f46
+# Backported in version v5.19.4 b429d0b9a7a0f3dddb1f782b72629e6353f292fd
+CVE_STATUS[CVE-2022-2785] = "cpe-stable-backport: Backported in version v5.19.4"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3176
+# Introduced in version v5.1 221c5eb2338232f7340386de1c43decc32682e58
+# Patched in kernel since v5.17 791f3465c4afde02d7f16cf7424ca87070b69396
+# Backported in version v5.15.65 e9d7ca0c4640cbebe6840ee3bac66a25a9bacaf5
+CVE_STATUS[CVE-2022-3176] = "cpe-stable-backport: Backported in version v5.15.65"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3424
+# Introduced in version v2.6.33 55484c45dbeca2eec7642932ec3f60f8a2d4bdbf
+# Patched in kernel since v6.2 643a16a0eb1d6ac23744bb6e90a00fc21148a9dc
+# Backported in version v5.4.229 0078dd8758561540ed30b2c5daa1cb647e758977
+# Backported in version v5.10.163 0f67ed565f20ea2fdd98e3b0b0169d9e580bb83c
+# Backported in version v5.15.86 d5c8f9003a289ee2a9b564d109e021fc4d05d106
+# Backported in version v6.1.2 4e947fc71bec7c7da791f8562d5da233b235ba5e
+CVE_STATUS[CVE-2022-3424] = "cpe-stable-backport: Backported in versions v5.4.229, v5.10.163, v5.15.86 and v 6.1.2"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3435
+# Introduced in version v5.18 6bf92d70e690b7ff12b24f4bfff5e5434d019b82
+# Breaking commit backported in v5.4.189 f5064531c23ad646da7be8b938292b00a7e61438
+# Breaking commit backported in v5.10.111 63ea57478aaa3e06a597081a0f537318fc04e49f
+# Breaking commit backported in v5.15.34 907c97986d6fa77318d17659dd76c94b65dd27c5
+# Patched in kernel since v6.1 61b91eb33a69c3be11b259c5ea484505cd79f883
+# Backported in version v5.4.226 cc3cd130ecfb8b0ae52e235e487bae3f16a24a32
+# Backported in version v5.10.158 0b5394229ebae09afc07aabccb5ffd705ffd250e
+# Backported in version v5.15.82 25174d91e4a32a24204060d283bd5fa6d0ddf133
+CVE_STATUS[CVE-2022-3435] = "cpe-stable-backport: Backported in versions v5.4.226, v5.10.158 and v5.15.82"
+
 # https://nvd.nist.gov/vuln/detail/CVE-2022-3523
 # Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
 # Patched in kernel since v6.1 16ce101db85db694a91380aa4c89b25530871d33
-CVE_CHECK_IGNORE += "CVE-2022-3523"
+CVE_STATUS[CVE-2022-3523] = "fixed-version: Fixed in version v6.1"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3526
+# Introduced in version v5.13 427f0c8c194b22edcafef1b0a42995ddc5c2227d
+# Patched in kernel since v5.18 e16b859872b87650bb55b12cca5a5fcdc49c1442
+# Backported in version v5.15.35 8f79ce226ad2e9b2ec598de2b9560863b7549d1b
+CVE_STATUS[CVE-2022-3526] = "cpe-stable-backport: Backported in version v5.15.35"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3534
+# Introduced in version v5.10 919d2b1dbb074d438027135ba644411931179a59
+# Patched in kernel since v6.2 93c660ca40b5d2f7c1b1626e955a8e9fa30e0749
+# Backported in version v5.10.163 c61650b869e0b6fb0c0a28ed42d928eea969afc8
+# Backported in version v5.15.86 a733bf10198eb5bb927890940de8ab457491ed3b
+# Backported in version v6.1.2 fbe08093fb2334549859829ef81d42570812597d
+CVE_STATUS[CVE-2022-3534] = "cpe-stable-backport: Backported in versions v5.10.163, v5.15.86 and v6.1.2"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3564
+# Introduced in version v3.6 4b51dae96731c9d82f5634e75ac7ffd3b9c1b060
+# Patched in kernel since v6.1 3aff8aaca4e36dc8b17eaa011684881a80238966
+# Backported in version v5.10.154 cb1c012099ef5904cd468bdb8d6fcdfdd9bcb569
+# Backported in version v5.15.78 8278a87bb1eeea94350d675ef961ee5a03341fde
+CVE_STATUS[CVE-2022-3564] = "cpe-stable-backport: Backported in versions v5.10.154 and v5.15.78"
 
 # https://nvd.nist.gov/vuln/detail/CVE-2022-3566
 # Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
 # Patched in kernel since v6.1 f49cd2f4d6170d27a2c61f1fecb03d8a70c91f57
-CVE_CHECK_IGNORE += "CVE-2022-3566"
+CVE_STATUS[CVE-2022-3566] = "fixed-version: Fixed in version v6.1"
 
 # https://nvd.nist.gov/vuln/detail/CVE-2022-3567
 # Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
 # Patched in kernel since v6.1 364f997b5cfe1db0d63a390fe7c801fa2b3115f6
-CVE_CHECK_IGNORE += "CVE-2022-3567"
+CVE_STATUS[CVE-2022-3567] = "fixed-version: Fixed in version v6.1"
 
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3619
+# Introduced in version v5.12 4d7ea8ee90e42fc75995f6fb24032d3233314528
+# Patched in kernel since v6.1 7c9524d929648935bac2bbb4c20437df8f9c3f42
+# Backported in version v5.15.78 aa16cac06b752e5f609c106735bd7838f444784c
+CVE_STATUS[CVE-2022-3619] = "cpe-stable-backport: Backported in version v5.15.78"
 
-# 2023
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3621
+# Introduced in version v2.60.30 05fe58fdc10df9ebea04c0eaed57adc47af5c184
+# Patched in kernel since v6.1 21a87d88c2253350e115029f14fe2a10a7e6c856
+# Backported in version v5.4.218 792211333ad77fcea50a44bb7f695783159fc63c
+# Backported in version v5.10.148 3f840480e31495ce674db4a69912882b5ac083f2
+# Backported in version v5.15.74 1e512c65b4adcdbdf7aead052f2162b079cc7f55
+# Backported in version v5.19.16 caf2c6b580433b3d3e413a3d54b8414a94725dcd
+CVE_STATUS[CVE-2022-3621] = "cpe-stable-backport: Backported in versions v5.4.218, v5.10.148, v5.15.74 and v5.19.16"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3623
+# Introduced in version v5.1 5480280d3f2d11d47f9be59d49b20a8d7d1b33e8
+# Patched in kernel since v6.1 fac35ba763ed07ba93154c95ffc0c4a55023707f
+# Backported in version v5.4.228 176ba4c19d1bb153aa6baaa61d586e785b7d736c
+# Backported in version v5.10.159 fccee93eb20d72f5390432ecea7f8c16af88c850
+# Backported in version v5.15.78 3a44ae4afaa5318baed3c6e2959f24454e0ae4ff
+# Backported in version v5.19.17 86a913d55c89dd13ba070a87f61a493563e94b54
+CVE_STATUS[CVE-2022-3623] = "cpe-stable-backport: Backported in versions v5.4.228, v5.10.159, v5.15.78 and v 5.19.17"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3624
+# Introduced in version v6.0 d5410ac7b0baeca91cf73ff5241d35998ecc8c9e
+# Patched in kernel since v6.0 4f5d33f4f798b1c6d92b613f0087f639d9836971
+CVE_STATUS[CVE-2022-3624] = "fixed-version: Fixed in version v6.0"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3625
+# Introduced in version v4.19 45f05def5c44c806f094709f1c9b03dcecdd54f0
+# Patched in kernel since v6.0 6b4db2e528f650c7fb712961aac36455468d5902
+# Backported in version v5.4.211 1ad4ba9341f15412cf86dc6addbb73871a10212f
+# Backported in version v5.10.138 0e28678a770df7989108327cfe86f835d8760c33
+# Backported in version v5.15.63 c4d09fd1e18bac11c2f7cf736048112568687301
+# Backported in version v5.19.4 26bef5616255066268c0e40e1da10cc9b78b82e9
+CVE_STATUS[CVE-2022-3625] = "cpe-stable-backport: Backported in versions v5.4.211, v5.10.138, v5.15.63 and v5.19.4"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3629
+# Introduced in version v3.9 d021c344051af91f42c5ba9fdedc176740cbd238
+# Patched in kernel since v6.0 7e97cfed9929eaabc41829c395eb0d1350fccb9d
+# Backported in version v5.4.211 f82f1e2042b397277cd39f16349950f5abade58d
+# Backported in version v5.10.138 38ddccbda5e8b762c8ee06670bb1f64f1be5ee50
+# Backported in version v5.15.63 e4c0428f8a6fc8c218d7fd72bddd163f05b29795
+# Backported in version v5.19.4 8ff5db3c1b3d6797eda5cd326dcd31b9cd1c5f72
+CVE_STATUS[CVE-2022-3629] = "cpe-stable-backport: Backported in versions v5.4.211, v5.10.138, v5.15.63 and v5.19.4"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3630
+# Introduced in version v5.19 85e4ea1049c70fb99de5c6057e835d151fb647da
+# Patched in kernel since v6.0 fb24771faf72a2fd62b3b6287af3c610c3ec9cf1
+# Backported in version v5.19.4 7a369dc87b66acc85d0cffcf39984344a203e20b
+CVE_STATUS[CVE-2022-3630] = "cpe-stable-backport: Backported in version v5.19.4"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3633
+# Introduced in version v5.4 9d71dd0c70099914fcd063135da3c580865e924c
+# Patched in kernel since v6.0 8c21c54a53ab21842f5050fa090f26b03c0313d6
+# Backported in version v5.4.211 04e41b6bacf474f5431491f92e981096e8cc8e93
+# Backported in version v5.10.138 a220ff343396bae8d3b6abee72ab51f1f34b3027
+# Backported in version v5.15.63 98dc8fb08299ab49e0b9c08daedadd2f4de1a2f2
+# Backported in version v5.19.4 a0278dbeaaf7ca60346c62a9add65ae7d62564de
+CVE_STATUS[CVE-2022-3633] = "cpe-stable-backport: Backported in versions v5.4.211, v5.10.138, v5.15.63 and v5.19.4"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3635
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v6.0 3f4093e2bf4673f218c0bf17d8362337c400e77b
+# Backported in version v5.4.211 9a6cbaa50f263b12df18a051b37f3f42f9fb5253
+# Backported in version v5.10.138 a0ae122e9aeccbff75014c4d36d11a9d32e7fb5e
+# Backported in version v5.15.63 a5d7ce086fe942c5ab422fd2c034968a152be4c4
+# Backported in version v5.19.4 af412b252550f9ac36d9add7b013c2a2c3463835
+CVE_STATUS[CVE-2022-3635] = "cpe-stable-backport: Backported in versions v5.4.211, v5.10.138, v5.15.63 and v5.19.4"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3636
+# Introduced in version v5.19 33fc42de33278b2b3ec6f3390512987bc29a62b7
+# Patched in kernel since v5.19 17a5f6a78dc7b8db385de346092d7d9f9dc24df6
+CVE_STATUS[CVE-2022-3636] = "cpe-stable-backport: Backported in version v5.19"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3640
+# Introduced in version v5.19 d0be8347c623e0ac4202a1d4e0373882821f56b0
+# Breaking commit backported in v5.4.209 098e07ef0059296e710a801cdbd74b59016e6624
+# Breaking commit backported in v5.10.135 de5d4654ac6c22b1be756fdf7db18471e7df01ea
+# Breaking commit backported in v5.15.59 f32d5615a78a1256c4f557ccc6543866e75d03f4
+# Patched in kernel since v6.1 0d0e2d032811280b927650ff3c15fe5020e82533
+# Backported in version v5.4.224 c1f594dddd9ffd747c39f49cc5b67a9b7677d2ab
+# Backported in version v5.10.154 d9ec6e2fbd4a565b2345d4852f586b7ae3ab41fd
+# Backported in version v5.15.78 a3a7b2ac64de232edb67279e804932cb42f0b52a
+CVE_STATUS[CVE-2022-3640] = "cpe-stable-backport: Backported in versions v5.4.224, v5.10.154 and v5.15.78"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3646
+# Introduced in version v2.6.30 9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453
+# Patched in kernel since v6.1 d0d51a97063db4704a5ef6bc978dddab1636a306
+# Backported in version v5.4.218 b7e409d11db9ce9f8bc05fcdfa24d143f60cd393
+# Backported in version v5.10.148 aad4c997857f1d4b6c1e296c07e4729d3f8058ee
+# Backported in version v5.15.74 44b1ee304bac03f1b879be5afe920e3a844e40fc
+# Backported in version v5.19.16 4755fcd844240857b525f6e8d8b65ee140fe9570
+CVE_STATUS[CVE-2022-3646] = "cpe-stable-backport: Backported in versions v5.4.218, v5.10.148, v5.15.74 and v5.19.16"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-3649
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v6.1 d325dc6eb763c10f591c239550b8c7e5466a5d09
+# Backported in version v5.4.220 d1c2d820a2cd73867b7d352e89e92fb3ac29e926
+# Backported in version v5.10.148 21ee3cffed8fbabb669435facfd576ba18ac8652
+# Backported in version v5.15.74 cb602c2b654e26763226d8bd27a702f79cff4006
+# Backported in version v5.19.16 394b2571e9a74ddaed55aa9c4d0f5772f81c21e4
+CVE_STATUS[CVE-2022-3649] = "cpe-stable-backport: Backported in versions v5.4.220, v5.10.148, v5.15.74 and v5.19.16"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-4382
+# Introduced in version v5.3 e5d82a7360d124ae1a38c2a5eac92ba49b125191
+# Patched in kernel since v6.2-rc5 d18dcfe9860e842f394e37ba01ca9440ab2178f4
+# Backported in version v5.4.230 9a39f4626b361ee7aa10fd990401c37ec3b466ae
+# Backported in version v5.10.165 856e4b5e53f21edbd15d275dde62228dd94fb2b4
+# Backported in version v5.15.90 a2e075f40122d8daf587db126c562a67abd69cf9
+# Backported in version v6.1.8 616fd34d017000ecf9097368b13d8a266f4920b3
+CVE_STATUS[CVE-2022-4382] = "cpe-stable-backport: Backported in versions v5.4.230, v5.10.165, v5.15.90 and v6.1.8"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-26365
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v5.19 2f446ffe9d737e9a844b97887919c4fda18246e7
+# Backported in version v5.4.204 42112e8f94617d83943f8f3b8de2b66041905506
+# Backported in version v5.10.129 cfea428030be836d79a7690968232bb7fa4410f1
+# Backported in version v5.15.53 7ed65a4ad8fa9f40bc3979b32c54243d6a684ec9
+CVE_STATUS[CVE-2022-26365] = "cpe-stable-backport: Backported in versions v5.4.204, v5.10.129 and v5.15.53"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-33740
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v5.19 307c8de2b02344805ebead3440d8feed28f2f010
+# Backported in version v5.4.204 04945b5beb73019145ac17a2565526afa7293c14
+# Backported in version v5.10.129 728d68bfe68d92eae1407b8a9edc7817d6227404
+# Backported in version v5.15.53 5dd0993c36832d33820238fc8dc741ba801b7961
+CVE_STATUS[CVE-2022-33740] = "cpe-stable-backport: Backported in versions v5.4.204, v5.10.129 and v5.15.53"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-33741
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v5.19 4491001c2e0fa69efbb748c96ec96b100a5cdb7e
+# Backported in version v5.4.204 ede57be88a5fff42cd00e6bcd071503194d398dd
+# Backported in version v5.10.129 4923217af5742a796821272ee03f8d6de15c0cca
+# Backported in version v5.15.53 ed3cfc690675d852c3416aedb271e0e7d179bf49
+CVE_STATUS[CVE-2022-33741] = "cpe-stable-backport: Backported in versions v5.4.204, v5.10.129 and v5.15.53"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-33742
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v5.19 2400617da7eebf9167d71a46122828bc479d64c9
+# Backported in version v5.4.204 60ac50daad36ef3fe9d70d89cfe3b95d381db997
+# Backported in version v5.10.129 cbbd2d2531539212ff090aecbea9877c996e6ce6
+# Backported in version v5.15.53 6d0a9127279a4533815202e30ad1b3a39f560ba3
+CVE_STATUS[CVE-2022-33742] = "cpe-stable-backport: Backported in versions v5.4.204, v5.10.129 and v5.15.53"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-42895
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v6.1 b1a2cd50c0357f243b7435a732b4e62ba3157a2e
+# Backported in version v5.4.224 6949400ec9feca7f88c0f6ca5cb5fdbcef419c89
+# Backported in version v5.10.154 26ca2ac091b49281d73df86111d16e5a76e43bd7
+# Backported in version v5.15.78 3e4697ffdfbb38a2755012c4e571546c89ab6422
+CVE_STATUS[CVE-2022-42895] = "cpe-stable-backport: Backported in versions v5.4.224, v5.10.154 and v5.15.78"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2022-42896
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v6.1 711f8c3fb3db61897080468586b970c87c61d9e4
+# Backported in version v5.4.226 0d87bb6070361e5d1d9cb391ba7ee73413bc109b
+# Backported in version v5.10.154 6b6f94fb9a74dd2891f11de4e638c6202bc89476
+# Backported in version v5.15.78 81035e1201e26d57d9733ac59140a3e29befbc5a
+CVE_STATUS[CVE-2022-42896] = "cpe-stable-backport: Backported in versions v5.4.226, v5.10.154 and v5.15.78"
 
 # https://nvd.nist.gov/vuln/detail/CVE-2022-38457
 # https://nvd.nist.gov/vuln/detail/CVE-2022-40133
@@ -26,11 +335,271 @@
 #  * https://www.linuxkernelcves.com/cves/CVE-2022-38457
 #  * https://www.linuxkernelcves.com/cves/CVE-2022-40133
 #  * https://lore.kernel.org/all/CAODzB9q3OBD0k6W2bcWrSZo2jC3EvV0PrLyWmO07rxR4nQgkJA@mail.gmail.com/T/
-CVE_CHECK_IGNORE += "CVE-2022-38457 CVE-2022-40133"
+CVE_STATUS[CVE-2022-38457] = "cpe-stable-backport: Backported in version v6.1.7"
+CVE_STATUS[CVE-2022-40133] = "cpe-stable-backport: Backported in version v6.1.7"
+
+# Backported to 6.1.33
+CVE_STATUS[CVE-2022-48425] = "cpe-stable-backport: Backported in version v6.1.33"
+
+# 2023
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-0179
+# Patched in kernel since v6.2 696e1a48b1a1b01edad542a1ef293665864a4dd0
+# Backported in version v5.10.164 550efeff989b041f3746118c0ddd863c39ddc1aa
+# Backported in version v5.15.89 a8acfe2c6fb99f9375a9325807a179cd8c32e6e3
+# Backported in version v6.1.7 76ef74d4a379faa451003621a84e3498044e7aa3
+CVE_STATUS[CVE-2023-0179] = "cpe-stable-backport: Backported in versions v5.10.164, v5.15.89 and v6.1.7"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-0266
+# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
+# Patched in kernel since v6.2 56b88b50565cd8b946a2d00b0c83927b7ebb055e
+# Backported in version v5.15.88 26350c21bc5e97a805af878e092eb8125843fe2c
+# Backported in version v6.1.6 d6ad4bd1d896ae1daffd7628cd50f124280fb8b1
+CVE_STATUS[CVE-2023-0266] = "cpe-stable-backport: Backported in versions v5.15.88 and v6.1.6"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-0394
+# Introduced in version 2.6.12 357b40a18b04c699da1d45608436e9b76b50e251
+# Patched in kernel since v6.2 cb3e9864cdbe35ff6378966660edbcbac955fe17
+# Backported in version v5.4.229 3998dba0f78a59922b0ef333ccfeb58d9410cd3d
+# Backported in version v5.10.164 6c9e2c11c33c35563d34d12b343d43b5c12200b5
+# Backported in version v5.15.89 456e3794e08a0b59b259da666e31d0884b376bcf
+# Backported in version v6.1.7 0afa5f0736584411771299074bbeca8c1f9706d4
+CVE_STATUS[CVE-2023-0394] = "cpe-stable-backport: Backported in versions v5.4.229, v5.10.164, v5.15.89 and v6.1.7"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-0386
+# Introduced in 5.11 459c7c565ac36ba09ffbf24231147f408fde4203
+# Patched in kernel v6.2 4f11ada10d0ad3fd53e2bd67806351de63a4f9c3
+# Backported in version 5.15.91 e91308e63710574c4b6a0cadda3e042a3699666e
+# Backported in version 6.1.9 42fea1c35254c49cce07c600d026cbc00c6d3c81
+CVE_STATUS[CVE-2023-0386] = "cpe-stable-backport: Backported in versions v5.15.91 and v6.1.9"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-0461
+# Introduced in version v4.13 734942cc4ea6478eed125af258da1bdbb4afe578
+# Patched in kernel since v6.2 2c02d41d71f90a5168391b6a5f2954112ba2307c
+# Backported in version v5.4.229 c6d29a5ffdbc362314853462a0e24e63330a654d
+# Backported in version v5.10.163 f8ed0a93b5d576bbaf01639ad816473bdfd1dcb0
+# Backported in version v5.15.88 dadd0dcaa67d27f550131de95c8e182643d2c9d6
+# Backported in version v6.1.5 7d242f4a0c8319821548c7176c09a6e0e71f223c
+CVE_STATUS[CVE-2023-0461] = "cpe-stable-backport: Backported in versions v5.4.229, v5.10.163, v5.15.88 and v6.1.5"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1073
+# Introduced in v3.16 1b15d2e5b8077670b1e6a33250a0d9577efff4a5
+# Patched in kernel v6.2 b12fece4c64857e5fab4290bf01b2e0317a88456
+# Backported in version 5.10.166 5dc3469a1170dd1344d262a332b26994214eeb58
+# Backported in version 5.15.91 2b49568254365c9c247beb0eabbaa15d0e279d64
+# Backported in version 6.1.9 cdcdc0531a51659527fea4b4d064af343452062d
+CVE_STATUS[CVE-2023-1073] = "cpe-stable-backport: Backported in versions v5.10.166, v5.15.91 and v6.1.9"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1074
+# Patched in kernel v6.2 458e279f861d3f61796894cd158b780765a1569f
+# Backported in version 5.15.91 3391bd42351be0beb14f438c7556912b9f96cb32
+# Backported in version 6.1.9 9f08bb650078dca24a13fea1c375358ed6292df3
+CVE_STATUS[CVE-2023-1074] = "cpe-stable-backport: Backported in versions v5.15.91 andv6.1.9"
 
 # https://nvd.nist.gov/vuln/detail/CVE-2023-1075
 # Introduced in v4.20 a42055e8d2c30d4decfc13ce943d09c7b9dad221
 # Patched in kernel v6.2 ffe2a22562444720b05bdfeb999c03e810d84cbb
 # Backported in version 6.1.11 37c0cdf7e4919e5f76381ac60817b67bcbdacb50
 # 5.15 still has issue, include/net/tls.h:is_tx_ready() would need patch
-CVE_CHECK_IGNORE += "CVE-2023-1075"
+CVE_STATUS[CVE-2023-1075] = "cpe-stable-backport: Backported in version v6.1.11"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1076
+# Patched in kernel v6.3 a096ccca6e503a5c575717ff8a36ace27510ab0a
+# Backported in version v5.4.235 d92d87000eda9884d49f1acec1c1fccd63cd9b11
+# Backported in version v5.10.173 9a31af61f397500ccae49d56d809b2217d1e2178
+# Backported in version v5.15.99 67f9f02928a34aad0a2c11dab5eea269f5ecf427
+# Backported in version v6.1.16 b4ada752eaf1341f47bfa3d8ada377eca75a8d44
+# Backported in version v6.2.3 4aa4b4b3b3e9551c4de2bf2987247c28805fb8f6
+CVE_STATUS[CVE-2023-1076] = "cpe-stable-backport: Backported in versions v5.4.235, v5.10.173, v5.15.99, v6.1.16 and v6.2.3"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1077
+# Patched in kernel 6.3rc1 7c4a5b89a0b5a57a64b601775b296abf77a9fe97
+# Backported in version 5.15.99 2c36c390a74981d03f04f01fe7ee9c3ac3ea11f7
+# Backported in version 6.1.16 6b4fcc4e8a3016e85766c161daf0732fca16c3a3
+CVE_STATUS[CVE-2023-1077] = "cpe-stable-backport: Backported in versions v5.15.99 and v6.1.16"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1078
+# Patched in kernel 6.2 f753a68980cf4b59a80fe677619da2b1804f526d
+# Backported in version 5.15.94 528e3f3a4b53df36dafd10cdf6b8c0fe2aa1c4ba
+# Backported in version 6.1.12 1d52bbfd469af69fbcae88c67f160ce1b968e7f3
+CVE_STATUS[CVE-2023-1078] = "cpe-stable-backport: Backported in versions v5.15.94 and v6.1.12"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1079
+# Patched in kernel since v6.3-rc1 4ab3a086d10eeec1424f2e8a968827a6336203df
+# Backported in version v5.4.235 dd08e68d04d08d2f42b09162c939a0b0841216cc
+# Backported in version v5.10.173 21a2eec4a440060a6eb294dc890eaf553101ba09
+# Backported in version v5.15.99 3959316f8ceb17866646abc6be4a332655407138
+# Backported in version v6.1.16 ee907829b36949c452c6f89485cb2a58e97c048e
+# Backported in version v6.2.3 b08bcfb4c97d7bd41b362cff44b2c537ce9e8540
+CVE_STATUS[CVE-2023-1079] = "cpe-stable-backport: Backported in versions v5.4.235, v5.10.173, v5.15.99, v6.1.16 and v6.2.3"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1118
+# Introduced in version v2.6.36 9ea53b74df9c4681f5bb2da6b2e10e37d87ea6d6
+# Patched in kernel since v6.3-rc1 29b0589a865b6f66d141d79b2dd1373e4e50fe17
+# Backported in version v5.4.235 d120334278b370b6a1623a75ebe53b0c76cb247c
+# Backported in version v5.10.173 78da5a378bdacd5bf68c3a6389bdc1dd0c0f5b3c
+# Backported in version v5.15.99 29962c478e8b2e6a6154d8d84b8806dbe36f9c28
+# Backported in version v6.1.16 029c1410e345ce579db5c007276340d072aac54a
+# Backported in version v6.2.3 182ea492aae5b64067277e60a4ea5995c4628555
+CVE_STATUS[CVE-2023-1118] = "cpe-stable-backport: Backported in versions v5.4.235, v5.10.173, v5.15.99, v6.1.16 and v6.2.3"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1281
+# Introduced in version v4.14 9b0d4446b56904b59ae3809913b0ac760fa941a6
+# Patched in kernel since v6.2 ee059170b1f7e94e55fa6cadee544e176a6e59c2
+# Backported in version v5.10.169 eb8e9d8572d1d9df17272783ad8a84843ce559d4
+# Backported in version v5.15.95 becf55394f6acb60dd60634a1c797e73c747f9da
+# Backported in version v6.1.13 bd662ba56187b5ef8a62a3511371cd38299a507f
+CVE_STATUS[CVE-2023-1281] = "cpe-stable-backport: Backported in versions v5.10.169, v5.15.95 and v6.1.13"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1513
+# Patched in kernel since v6.2 2c10b61421a28e95a46ab489fd56c0f442ff6952
+# Backported in version v5.4.232 9f95a161a7deef62d6d2f57b1a69f94e0546d8d8
+# Backported in version v5.10.169 6416c2108ba54d569e4c98d3b62ac78cb12e7107
+# Backported in version v5.15.95 35351e3060d67eed8af1575d74b71347a87425d8
+# Backported in version v6.1.13 747ca7c8a0c7bce004709143d1cd6596b79b1deb
+CVE_STATUS[CVE-2023-1513] = "cpe-stable-backport: Backported in versions v5.4.232, v5.10.169, v5.15.95 and v6.1.13"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1652
+# Patched in kernel since v6.2 e6cf91b7b47ff82b624bdfe2fdcde32bb52e71dd
+# Backported in version v5.15.91 0a27dcd5343026ac0cb168ee63304255372b7a36
+# Backported in version v6.1.9 32d5eb95f8f0e362e37c393310b13b9e95404560
+# Ref: https://www.linuxkernelcves.com/cves/CVE-2023-1652
+# Ref: Debian kernel-sec team: https://salsa.debian.org/kernel-team/kernel-sec/-/blob/1fa77554d4721da54e2df06fa1908a83ba6b1045/retired/CVE-2023-1652
+CVE_STATUS[CVE-2023-1652] = "cpe-stable-backport: Backported in versions v5.15.91 and v6.1.9"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-1829
+# Patched in kernel since v6.3-rc1 8c710f75256bb3cf05ac7b1672c82b92c43f3d28
+# Backported in version v5.4.235 7a6fb69bbcb21e9ce13bdf18c008c268874f0480
+# Backported in version v5.10.173 18c3fa7a7fdbb4d21dafc8a7710ae2c1680930f6
+# Backported in version v5.15.100 7c183dc0af472dec33d2c0786a5e356baa8cad19
+# Backported in version v6.1.18 3abebc503a5148072052c229c6b04b329a420ecd
+# Backported in version v6.2.5 372ae77cf11d11fb118cbe2d37def9dd5f826abd
+# Ref: https://www.linuxkernelcves.com/cves/CVE-2023-1829
+# Ref: Debian kernel-sec team : https://salsa.debian.org/kernel-team/kernel-sec/-/blob/1fa77554d4721da54e2df06fa1908a83ba6b1045/active/CVE-2023-1829
+CVE_STATUS[CVE-2023-1829] = "cpe-stable-backport: Backported in versions v5.4.235, v5.10.173, v5.15.100, v6.1.18 and v6.2.5"
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-28466
+# Introduced in version v4.13 3c4d7559159bfe1e3b94df3a657b2cda3a34e218
+# Patched in kernel since v6.3-rc2 49c47cc21b5b7a3d8deb18fc57b0aa2ab1286962
+# Backported in version v5.15.105 0b54d75aa43a1edebc8a3770901f5c3557ee0daa
+# Backported in version v6.1.20 14c17c673e1bba08032d245d5fb025d1cbfee123
+# Backported in version v6.2.7 5231fa057bb0e52095591b303cf95ebd17bc62ce
+CVE_STATUS[CVE-2023-28466] = "cpe-stable-backport: Backported in versions v5.15.05, v6.1.20 and v6.2.7"
+
+
+# https://www.linuxkernelcves.com/cves/CVE-2023-0615
+# Fixed in 6.1 onwards
+CVE_STATUS[CVE-2023-0615] = "fixed-version: Fixed in version v6.1 onwards"
+
+# https://www.linuxkernelcves.com/cves/CVE-2023-28328
+# Fixed with 6.1.2
+CVE_STATUS[CVE-2023-28328] = "fixed-version: Fixed in version v6.1.2"
+
+# https://www.linuxkernelcves.com/cves/CVE-2023-2162
+# Fixed in 6.1.11
+CVE_STATUS[CVE-2023-2162] = "fixed-version: Fixed in version v6.1.11"
+
+# https://www.linuxkernelcves.com/cves/CVE-2023-0459
+# Fixed in 6.1.14 onwards
+CVE_STATUS[CVE-2023-0459] = "fixed-version: Fixed in version v6.1.14"
+
+# https://www.linuxkernelcves.com/cves/CVE-2023-1999
+# https://www.linuxkernelcves.com/cves/CVE-2023-2985
+# Fixed in 6.1.16
+CVE_STATUS[CVE-2023-1998] = "fixed-version: Fixed in version v6.1.16"
+CVE_STATUS[CVE-2023-2985] = "fixed-version: Fixed in version v6.1.16"
+
+# https://www.linuxkernelcves.com/cves/CVE-2023-1855
+# https://www.linuxkernelcves.com/cves/CVE-2023-1990
+# https://www.linuxkernelcves.com/cves/CVE-2023-2235
+# https://www.linuxkernelcves.com/cves/CVE-2023-30456
+# Fixed in 6.1.21
+CVE_STATUS_GROUPS += "CVE_STATUS_KERNEL_6121"
+CVE_STATUS_KERNEL_6121 = "CVE-2023-1855 CVE-2023-1990 CVE-2023-2235 CVE-2023-30456"
+CVE_STATUS_KERNEL_6121[status] =  "fixed-version: Fixed in version v6.1.21"
+
+# https://www.linuxkernelcves.com/cves/CVE-2023-1989
+# https://www.linuxkernelcves.com/cves/CVE-2023-2194
+# https://www.linuxkernelcves.com/cves/CVE-2023-28866
+# https://www.linuxkernelcves.com/cves/CVE-2023-30772
+# https://www.linuxkernelcves.com/cves/CVE-2023-33203
+# https://www.linuxkernelcves.com/cves/CVE-2023-33288
+# Fixed with 6.1.22
+CVE_STATUS_GROUPS += "CVE_STATUS_KERNEL_6122"
+CVE_STATUS_KERNEL_6122 = "CVE-2023-2194 CVE-2023-1989 CVE-2023-28866 CVE-2023-30772 CVE-2023-33203 CVE-2023-33288"
+CVE_STATUS_KERNEL_6122[status] =  "fixed-version: Fixed in version v6.1.22"
+
+# https://www.linuxkernelcves.com/cves/CVE-2023-1611
+# Fixed in 6.1.23
+CVE_STATUS[CVE-2023-1611] = "fixed-version: Fixed in version v6.1.23"
+
+# https://www.linuxkernelcves.com/cves/CVE-2023-1859
+# Fixed in 6.1.25
+CVE_STATUS[CVE-2023-1859] = "fixed-version: Fixed in version v6.1.25"
+
+# https://www.linuxkernelcves.com/cves/CVE-2023-2156
+# https://www.linuxkernelcves.com/cves/CVE-2023-31436
+# Fixed in 6.1.26
+CVE_STATUS[CVE-2023-2156] = "fixed-version: Fixed in version v6.1.26"
+CVE_STATUS[CVE-2023-31436] = "fixed-version: Fixed in version v6.1.26"
+
+# https://www.linuxkernelcves.com/cves/CVE-2023-1380
+# https://www.linuxkernelcves.com/cves/CVE-2023-2002
+# Fixed in 6.1.27
+CVE_STATUS[CVE-2023-1380] = "fixed-version: Fixed in version v6.1.27"
+CVE_STATUS[CVE-2023-2002] = "fixed-version: Fixed in version v6.1.27"
+
+# https://www.linuxkernelcves.com/cves/CVE-2023-32233
+# Fixed with 6.1.28
+CVE_STATUS[CVE-2023-32233] = "fixed-version: Fixed in version v6.1.28"
+
+# https://www.linuxkernelcves.com/cves/CVE-2023-34256
+# Fixed in 6.1.29
+CVE_STATUS[CVE-2023-34256] = "fixed-version: Fixed in version v6.1.29"
+
+
+# Backported to 6.1.9
+CVE_STATUS[CVE-2023-3358] = "cpe-stable-backport: Backported in version v6.1.9"
+
+# Backported to 6.1.11
+CVE_STATUS[CVE-2023-3359] = "cpe-stable-backport: Backported in version v6.1.11"
+CVE_STATUS[CVE-2023-3161] = "cpe-stable-backport: Backported in version v6.1.11"
+
+# Backported to 6.1.16
+CVE_STATUS[CVE-2023-3220] = "cpe-stable-backport: Backported in version v6.1.16"
+
+# Backported to 6.1.28
+CVE_STATUS_GROUPS += "CVE_STATUS_KERNEL_6128"
+CVE_STATUS_KERNEL_6128 = "CVE-2023-3268 CVE-2023-35823 CVE-2023-35824 CVE-2023-35826 CVE-2023-35828 CVE-2023-35829"
+CVE_STATUS_KERNEL_6122[status] = "cpe-stable-backport: Backported in version v6.1.28"
+
+# Backported to 6.1.30
+# Backported to 6.1.30 as 9a342d4
+CVE_STATUS[CVE-2023-3090] = "cpe-stable-backport: Backported in version v6.1.30"
+CVE_STATUS[CVE-2023-3141] = "cpe-stable-backport: Backported in version v6.1.30 as 9a342d4"
+
+# Backported to 6.1.33
+CVE_STATUS_GROUPS += "CVE_STATUS_KERNEL_6133"
+CVE_STATUS_KERNEL_6133 = "CVE-2023-2124 CVE-2023-3212 CVE-2023-35788"
+CVE_STATUS_KERNEL_6133[status] = "cpe-stable-backport: Backported in version v6.1.33"
+
+# Backported to 6.1.35
+CVE_STATUS[CVE-2023-3117] = "cpe-stable-backport: Backported in version v6.1.35"
+CVE_STATUS[CVE-2023-3390] = "cpe-stable-backport: Backported in version v6.1.35"
+
+# Backported to 6.1.36
+CVE_STATUS[CVE-2023-3389] = "cpe-stable-backport: Backported in version v6.1.36"
+
+# Only in 6.2.0 to 6.2.14, and 6.3.0 to 6.3.1
+CVE_STATUS[CVE-2023-3312] = "not-applicable-config: Only in versions v6.2.0 to v6.2.4 and v6.3.0 to v6.3.1"
+
+
+# https://nvd.nist.gov/vuln/detail/CVE-2023-23005
+# Introduced in version v6.1 7b88bda3761b95856cf97822efe8281c8100067b
+# Patched in kernel since v6.2 4a625ceee8a0ab0273534cb6b432ce6b331db5ee
+# But, the CVE is disputed:
+CVE_STATUS[CVE-2023-23005] = "disputed: There are no realistic cases \
+in which a user can cause the alloc_memory_type error case to be reached. \
+See: https://bugzilla.suse.com/show_bug.cgi?id=1208844#c2"
+
+CVE_STATUS[CVE-2023-28464] = "not-applicable-config: Only in 6.3-rc"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb
index 54ead24..d4488b3 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb
@@ -14,13 +14,13 @@
         raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
 }
 
-SRCREV_machine ?= "6f370bf9127713eccdfb3cf009c46ef4852aec28"
-SRCREV_meta ?= "b358c237cf493dcf5af1760fc4632ede32e1ff2e"
+SRCREV_machine ?= "efb2c857761e865cd7947aab42eaa5ba77ef6ee7"
+SRCREV_meta ?= "cba89f406c6e07a16018cb77b51950cbae8ec654"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.1;destsuffix=${KMETA};protocol=https"
 
-LINUX_VERSION ?= "6.1.35"
+LINUX_VERSION ?= "6.1.38"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.4.bb
new file mode 100644
index 0000000..9273a08
--- /dev/null
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.4.bb
@@ -0,0 +1,48 @@
+KBRANCH ?= "v6.4/standard/preempt-rt/base"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+# CVE exclusions
+include recipes-kernel/linux/cve-exclusion_6.4.inc
+
+# Skip processing of this recipe if it is not explicitly specified as the
+# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
+# to build multiple virtual/kernel providers, e.g. as dependency of
+# core-image-rt-sdk, core-image-rt.
+python () {
+    if d.getVar("KERNEL_PACKAGE_NAME") == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-yocto-rt":
+        raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
+}
+
+SRCREV_machine ?= "917d160a84f61aada28d09f5afc04d6451fa52a0"
+SRCREV_meta ?= "dab56f52aa33b5cea1513b36b98e50a6c7c31f47"
+
+SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
+           git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.4;destsuffix=${KMETA};protocol=https"
+
+LINUX_VERSION ?= "6.4.3"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
+
+DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
+DEPENDS += "openssl-native util-linux-native"
+
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "1"
+
+LINUX_KERNEL_TYPE = "preempt-rt"
+
+COMPATIBLE_MACHINE = "^(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)$"
+
+KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb"
+
+# Functionality flags
+KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
+KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}"
+KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
+KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
+KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb
index fd2e251..4e45e25 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb
@@ -8,7 +8,7 @@
 # CVE exclusions
 include recipes-kernel/linux/cve-exclusion_6.1.inc
 
-LINUX_VERSION ?= "6.1.35"
+LINUX_VERSION ?= "6.1.38"
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -17,8 +17,8 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-SRCREV_machine ?= "682b17e1d76bc4364fcc9864f39c31c855b5f5df"
-SRCREV_meta ?= "b358c237cf493dcf5af1760fc4632ede32e1ff2e"
+SRCREV_machine ?= "b110cf9bbc395fe757956839d8110e72368699f4"
+SRCREV_meta ?= "cba89f406c6e07a16018cb77b51950cbae8ec654"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.4.bb
new file mode 100644
index 0000000..39abfcb
--- /dev/null
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.4.bb
@@ -0,0 +1,33 @@
+KBRANCH ?= "v6.4/standard/tiny/base"
+
+LINUX_KERNEL_TYPE = "tiny"
+KCONFIG_MODE = "--allnoconfig"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+# CVE exclusions
+include recipes-kernel/linux/cve-exclusion_6.4.inc
+
+LINUX_VERSION ?= "6.4.3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
+
+DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
+DEPENDS += "openssl-native util-linux-native"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "2"
+
+SRCREV_machine ?= "dee78ad1963cff9c063fba486d43fc9670285883"
+SRCREV_meta ?= "dab56f52aa33b5cea1513b36b98e50a6c7c31f47"
+
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
+           git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.4;destsuffix=${KMETA};protocol=https"
+
+COMPATIBLE_MACHINE = "^(qemux86|qemux86-64|qemuarm64|qemuarm|qemuarmv5)$"
+
+# Functionality flags
+KERNEL_FEATURES = ""
+
+KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto.inc b/poky/meta/recipes-kernel/linux/linux-yocto.inc
index 04a8105..0cc303c 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto.inc
+++ b/poky/meta/recipes-kernel/linux/linux-yocto.inc
@@ -62,7 +62,7 @@
 KERNEL_DEBUG ?= ""
 # These used to be version specific, but are now common dependencies.  New
 # tools / dependencies will continue to be added in version specific recipes.
-DEPENDS += '${@bb.utils.contains_any("ARCH", [ "x86", "arm64" ], "elfutils-native", "", d)}'
+DEPENDS += '${@bb.utils.contains_any("ARCH", [ "x86", "arm64", "powerpc" ], "elfutils-native", "", d)}'
 DEPENDS += "openssl-native util-linux-native"
 DEPENDS += "gmp-native libmpc-native"
 DEPENDS += '${@bb.utils.contains("KERNEL_DEBUG", "True", "pahole-native", "", d)}'
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb b/poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb
index 1838a1e..a76d2dc 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb
@@ -17,25 +17,25 @@
 KBRANCH:qemuloongarch64  ?= "v6.1/standard/base"
 KBRANCH:qemumips64 ?= "v6.1/standard/mti-malta64"
 
-SRCREV_machine:qemuarm ?= "915f4d2237d1c8e23eb67eda0b8e9b24373a80b4"
-SRCREV_machine:qemuarm64 ?= "682b17e1d76bc4364fcc9864f39c31c855b5f5df"
-SRCREV_machine:qemuloongarch64 ?= "682b17e1d76bc4364fcc9864f39c31c855b5f5df"
-SRCREV_machine:qemumips ?= "1aad3fa2eba5594fb4e779fc53fef6046d833c91"
-SRCREV_machine:qemuppc ?= "682b17e1d76bc4364fcc9864f39c31c855b5f5df"
-SRCREV_machine:qemuriscv64 ?= "682b17e1d76bc4364fcc9864f39c31c855b5f5df"
-SRCREV_machine:qemuriscv32 ?= "682b17e1d76bc4364fcc9864f39c31c855b5f5df"
-SRCREV_machine:qemux86 ?= "682b17e1d76bc4364fcc9864f39c31c855b5f5df"
-SRCREV_machine:qemux86-64 ?= "682b17e1d76bc4364fcc9864f39c31c855b5f5df"
-SRCREV_machine:qemumips64 ?= "53e7685d6da27e112397e71c27a0bce0fc9313a9"
-SRCREV_machine ?= "682b17e1d76bc4364fcc9864f39c31c855b5f5df"
-SRCREV_meta ?= "b358c237cf493dcf5af1760fc4632ede32e1ff2e"
+SRCREV_machine:qemuarm ?= "a74344429a095a5941cd8dfac532160349344c92"
+SRCREV_machine:qemuarm64 ?= "b110cf9bbc395fe757956839d8110e72368699f4"
+SRCREV_machine:qemuloongarch64 ?= "b110cf9bbc395fe757956839d8110e72368699f4"
+SRCREV_machine:qemumips ?= "78c81e178f8e2ffbb7c03cd324cf50ee0c5c4cf2"
+SRCREV_machine:qemuppc ?= "b110cf9bbc395fe757956839d8110e72368699f4"
+SRCREV_machine:qemuriscv64 ?= "b110cf9bbc395fe757956839d8110e72368699f4"
+SRCREV_machine:qemuriscv32 ?= "b110cf9bbc395fe757956839d8110e72368699f4"
+SRCREV_machine:qemux86 ?= "b110cf9bbc395fe757956839d8110e72368699f4"
+SRCREV_machine:qemux86-64 ?= "b110cf9bbc395fe757956839d8110e72368699f4"
+SRCREV_machine:qemumips64 ?= "6c6b1170464e1f64f78a45cf7e78d5c678f38f48"
+SRCREV_machine ?= "b110cf9bbc395fe757956839d8110e72368699f4"
+SRCREV_meta ?= "cba89f406c6e07a16018cb77b51950cbae8ec654"
 
 # set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
 # get the <version>/base branch, which is pure upstream -stable, and the same
 # meta SRCREV as the linux-yocto-standard builds. Select your version using the
 # normal PREFERRED_VERSION settings.
 BBCLASSEXTEND = "devupstream:target"
-SRCREV_machine:class-devupstream ?= "e84a4e368abe42cf359fe237f0238820859d5044"
+SRCREV_machine:class-devupstream ?= "61fd484b2cf6bc8022e8e5ea6f693a9991740ac2"
 PN:class-devupstream = "linux-yocto-upstream"
 KBRANCH:class-devupstream = "v6.1/base"
 
@@ -44,7 +44,7 @@
 SRC_URI += "file://0001-perf-cpumap-Make-counter-as-unsigned-ints.patch"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "6.1.35"
+LINUX_VERSION ?= "6.1.38"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_6.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto_6.4.bb
new file mode 100644
index 0000000..443a89c
--- /dev/null
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_6.4.bb
@@ -0,0 +1,71 @@
+KBRANCH ?= "v6.4/standard/base"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+# CVE exclusions
+include recipes-kernel/linux/cve-exclusion_6.4.inc
+
+# board specific branches
+KBRANCH:qemuarm  ?= "v6.4/standard/arm-versatile-926ejs"
+KBRANCH:qemuarm64 ?= "v6.4/standard/qemuarm64"
+KBRANCH:qemumips ?= "v6.4/standard/mti-malta32"
+KBRANCH:qemuppc  ?= "v6.4/standard/qemuppc"
+KBRANCH:qemuriscv64  ?= "v6.4/standard/base"
+KBRANCH:qemuriscv32  ?= "v6.4/standard/base"
+KBRANCH:qemux86  ?= "v6.4/standard/base"
+KBRANCH:qemux86-64 ?= "v6.4/standard/base"
+KBRANCH:qemuloongarch64  ?= "v6.4/standard/base"
+KBRANCH:qemumips64 ?= "v6.4/standard/mti-malta64"
+
+SRCREV_machine:qemuarm ?= "aa7642358697dc9be32c4563a3d950f257a3f2ed"
+SRCREV_machine:qemuarm64 ?= "dee78ad1963cff9c063fba486d43fc9670285883"
+SRCREV_machine:qemuloongarch64 ?= "dee78ad1963cff9c063fba486d43fc9670285883"
+SRCREV_machine:qemumips ?= "8a3ac37b45e7dcc98d28ab3920309340202272d9"
+SRCREV_machine:qemuppc ?= "dee78ad1963cff9c063fba486d43fc9670285883"
+SRCREV_machine:qemuriscv64 ?= "dee78ad1963cff9c063fba486d43fc9670285883"
+SRCREV_machine:qemuriscv32 ?= "dee78ad1963cff9c063fba486d43fc9670285883"
+SRCREV_machine:qemux86 ?= "dee78ad1963cff9c063fba486d43fc9670285883"
+SRCREV_machine:qemux86-64 ?= "dee78ad1963cff9c063fba486d43fc9670285883"
+SRCREV_machine:qemumips64 ?= "144ff37fee7f0499574d5b508e4db82234f38fec"
+SRCREV_machine ?= "dee78ad1963cff9c063fba486d43fc9670285883"
+SRCREV_meta ?= "dab56f52aa33b5cea1513b36b98e50a6c7c31f47"
+
+# set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
+# get the <version>/base branch, which is pure upstream -stable, and the same
+# meta SRCREV as the linux-yocto-standard builds. Select your version using the
+# normal PREFERRED_VERSION settings.
+BBCLASSEXTEND = "devupstream:target"
+SRCREV_machine:class-devupstream ?= "160f4124ea8b4cd6c86867e111fa55e266345a16"
+PN:class-devupstream = "linux-yocto-upstream"
+KBRANCH:class-devupstream = "v6.4/base"
+
+SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH};protocol=https \
+           git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.4;destsuffix=${KMETA};protocol=https"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
+LINUX_VERSION ?= "6.4.3"
+
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "1"
+
+KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb"
+
+COMPATIBLE_MACHINE = "^(qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemuppc64|qemumips|qemumips64|qemux86-64|qemuriscv64|qemuriscv32|qemuloongarch64)$"
+
+# Functionality flags
+KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
+KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}"
+KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc cfg/net/mdio.scc"
+KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}"
+KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
+KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}"
+KERNEL_FEATURES:append:powerpc =" arch/powerpc/powerpc-debug.scc"
+KERNEL_FEATURES:append:powerpc64 =" arch/powerpc/powerpc-debug.scc"
+KERNEL_FEATURES:append:powerpc64le =" arch/powerpc/powerpc-debug.scc"
+
+INSANE_SKIP:kernel-vmlinux:qemuppc64 = "textrel"
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-ust_2.13.5.bb b/poky/meta/recipes-kernel/lttng/lttng-ust_2.13.6.bb
similarity index 95%
rename from poky/meta/recipes-kernel/lttng/lttng-ust_2.13.5.bb
rename to poky/meta/recipes-kernel/lttng/lttng-ust_2.13.6.bb
index 916408b..424b0fa 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-ust_2.13.5.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-ust_2.13.6.bb
@@ -34,7 +34,7 @@
            file://0001-Makefile.am-update-rpath-link.patch \
            "
 
-SRC_URI[sha256sum] = "f1d7bb4984a3dc5dacd3b7bcb4c10c04b041b0eecd7cba1fef3d8f86aff02bd6"
+SRC_URI[sha256sum] = "e7e04596dd73ac7aa99e27cd000f949dbb0fed51bd29099f9b08a25c1df0ced5"
 
 CVE_PRODUCT = "ust"
 
diff --git a/poky/meta/recipes-kernel/perf/perf.bb b/poky/meta/recipes-kernel/perf/perf.bb
index 2d80338..7d90ac3 100644
--- a/poky/meta/recipes-kernel/perf/perf.bb
+++ b/poky/meta/recipes-kernel/perf/perf.bb
@@ -383,7 +383,7 @@
 
 perf_fix_sources () {
 	for f in util/parse-events-flex.h util/parse-events-flex.c util/pmu-flex.c \
-			util/expr-flex.h util/expr-flex.c; do
+			util/pmu-flex.h util/expr-flex.h util/expr-flex.c; do
 		f=${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/$f
 		if [ -e $f ]; then
 			sed -i -e 's#${S}/##g' $f
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.9.bb b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.9.bb
index a8bf099..d482e27 100644
--- a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.9.bb
+++ b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.9.bb
@@ -16,7 +16,7 @@
 
 EXTRA_OECONF += " \
     ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-softfloat', '', d)} \
-    --disable-python \
+    --disable-python --disable-old-symbols \
 "
 
 PACKAGES =+ "alsa-server alsa-conf libatopology"
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-libswscale-riscv-Fix-syntax-of-vsetvli.patch b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-libswscale-riscv-Fix-syntax-of-vsetvli.patch
new file mode 100644
index 0000000..94e0ba6
--- /dev/null
+++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-libswscale-riscv-Fix-syntax-of-vsetvli.patch
@@ -0,0 +1,35 @@
+From 85eefb65eb632d827e17a72518dd289dcd721084 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 2 Jul 2023 19:29:55 -0700
+Subject: [PATCH] libswscale/riscv: Fix syntax of vsetvli
+
+Add missing operand which clang complains about but gcc assumes it to be
+'m1' if not specifiied.
+
+Fixes building with clang
+| src/libswscale/riscv/rgb2rgb_rvv.S:88:25: error: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
+|         vsetvli t4, t3, e8, ta, ma
+|                         ^
+
+Upstream-Status: Submitted [https://ffmpeg.org/pipermail/ffmpeg-devel/2023-July/311514.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libswscale/riscv/rgb2rgb_rvv.S | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libswscale/riscv/rgb2rgb_rvv.S b/libswscale/riscv/rgb2rgb_rvv.S
+index 5626d90..bbdfdbe 100644
+--- a/libswscale/riscv/rgb2rgb_rvv.S
++++ b/libswscale/riscv/rgb2rgb_rvv.S
+@@ -85,7 +85,7 @@ func ff_interleave_bytes_rvv, zve32x
+         mv      t3, a3
+         addi    a4, a4, -1
+ 2:
+-        vsetvli    t4, t3, e8, ta, ma
++        vsetvli    t4, t3, e8, m1, ta, ma
+         sub        t3, t3, t4
+         vle8.v     v8, (t0)
+         add        t0, t4, t0
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.0.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.0.bb
index f84d9bb..181c17d 100644
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.0.bb
+++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.0.bb
@@ -22,7 +22,8 @@
                     file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
                     file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
 
-SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz"
+SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \
+           file://0001-libswscale-riscv-Fix-syntax-of-vsetvli.patch"
 
 SRC_URI[sha256sum] = "57be87c22d9b49c112b6d24bc67d42508660e6b718b3db89c44e47e289137082"
 
diff --git a/poky/meta/recipes-multimedia/flac/flac_1.4.2.bb b/poky/meta/recipes-multimedia/flac/flac_1.4.3.bb
similarity index 76%
rename from poky/meta/recipes-multimedia/flac/flac_1.4.2.bb
rename to poky/meta/recipes-multimedia/flac/flac_1.4.3.bb
index d3ece3f..d4e463c 100644
--- a/poky/meta/recipes-multimedia/flac/flac_1.4.2.bb
+++ b/poky/meta/recipes-multimedia/flac/flac_1.4.3.bb
@@ -5,15 +5,15 @@
 SECTION = "libs"
 LICENSE = "GFDL-1.2 & GPL-2.0-or-later & LGPL-2.1-or-later & BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://COPYING.FDL;md5=ad1419ecc56e060eccf8184a87c4285f \
-                    file://src/Makefile.am;beginline=1;endline=17;md5=146d2c8c2fd287545cc1bd81f31e8758 \
+                    file://src/Makefile.am;beginline=1;endline=17;md5=b1dab2704be7f01bfbd9b7f6d5f000a9 \
                     file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://src/flac/main.c;beginline=1;endline=18;md5=893456854ce6bf14a1a7ea77266eebab \
+                    file://src/flac/main.c;beginline=1;endline=18;md5=23099119c034d894bd1bf7ef5bd22101 \
                     file://COPYING.LGPL;md5=fbc093901857fcd118f065f900982c24 \
-                    file://COPYING.Xiph;md5=3d6da238b5b57a0965d6730291119f65 \
+                    file://COPYING.Xiph;md5=0c90e41ab2fa7e69ca9391330d870221 \
                     file://include/FLAC/all.h;beginline=65;endline=70;md5=39aaf5e03c7364363884c8b8ddda8eea"
 
 SRC_URI = "http://downloads.xiph.org/releases/flac/${BP}.tar.xz"
-SRC_URI[sha256sum] = "e322d58a1f48d23d9dd38f432672865f6f79e73a6f9cc5a5f57fcaa83eb5a8e4"
+SRC_URI[sha256sum] = "6c58e69cd22348f441b861092b825e591d0b822e106de6eb0ee4d05d27205b70"
 
 CVE_PRODUCT = "libflac flac"
 
@@ -25,11 +25,8 @@
                 "
 
 PACKAGECONFIG ??= " \
-    ${@bb.utils.filter("TUNE_FEATURES", "altivec vsx", d)} \
     ogg \
 "
-PACKAGECONFIG[altivec] = "--enable-altivec,--disable-altivec"
-PACKAGECONFIG[vsx] = "--enable-vsx,--disable-vsx"
 PACKAGECONFIG[avx] = "--enable-avx,--disable-avx"
 PACKAGECONFIG[ogg] = "--enable-ogg --with-ogg-libraries=${STAGING_LIBDIR} --with-ogg-includes=${STAGING_INCDIR},--disable-ogg,libogg"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.3.bb b/poky/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.4.bb
similarity index 94%
rename from poky/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.3.bb
rename to poky/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.4.bb
index fa82ef7..beaf1a9 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.3.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gst-devtools_1.22.4.bb
@@ -12,7 +12,7 @@
            file://0001-connect-has-a-different-signature-on-musl.patch \
            "
 
-SRC_URI[sha256sum] = "446ac9c42d502cbfd9081737cc1b853b3c1f50db77ca7ccd01aea10f687550c1"
+SRC_URI[sha256sum] = "4c52053ce8c1df72fd81721e9f53de3b146edcf2de28f607be705bce4cf909d1"
 
 DEPENDS = "json-glib glib-2.0 glib-2.0-native gstreamer1.0 gstreamer1.0-plugins-base"
 RRECOMMENDS:${PN} = "git"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.3.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.4.bb
similarity index 91%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.3.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.4.bb
index c5af676..4d59353 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.3.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.22.4.bb
@@ -12,7 +12,7 @@
                     "
 
 SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz"
-SRC_URI[sha256sum] = "2ec5c805808b4371a7e32b1da0202a1c8a6b36b6ce905080bf5c34097d12a923"
+SRC_URI[sha256sum] = "9a751bc740de768e791c37a95f0a924c6a41d12fd7f37f54ce6a4e834be122d3"
 
 S = "${WORKDIR}/gst-libav-${PV}"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.3.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.4.bb
similarity index 95%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.3.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.4.bb
index 694a12b..fc70805 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.3.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.22.4.bb
@@ -10,7 +10,7 @@
 
 SRC_URI = "https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz"
 
-SRC_URI[sha256sum] = "6f51c2331c334593c2c3cf12e9f22b9e3b419a3247cfb2fec0e1bd845569863a"
+SRC_URI[sha256sum] = "5fcb872d977b035fb75a2d0ea955ba052dc3bdae282f8f60aa9d865808784211"
 
 S = "${WORKDIR}/gst-omx-${PV}"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.3.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.4.bb
similarity index 98%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.3.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.4.bb
index 3aa5319..16d5320 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.3.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.4.bb
@@ -10,7 +10,7 @@
            file://0002-avoid-including-sys-poll.h-directly.patch \
            file://0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \
            "
-SRC_URI[sha256sum] = "e1798fee2d86127f0637481c607f983293bf0fd81aad70a5c7b47205af3621d8"
+SRC_URI[sha256sum] = "eaaf53224565eaabd505ca39c6d5769719b45795cf532ce1ceb60e1b2ebe99ac"
 
 S = "${WORKDIR}/gst-plugins-bad-${PV}"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.3.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.4.bb
similarity index 92%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.3.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.4.bb
index 44056b0..3c0cb7d 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.3.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.22.4.bb
@@ -11,7 +11,7 @@
            file://0003-viv-fb-Make-sure-config.h-is-included.patch \
            file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \
            "
-SRC_URI[sha256sum] = "1c596289a0d4207380233eba8c36a932c4d1aceba19932937d9b57c24cef89f3"
+SRC_URI[sha256sum] = "292424e82dea170528c42b456f62a89532bcabc0508f192e34672fb86f68e5b8"
 
 S = "${WORKDIR}/gst-plugins-base-${PV}"
 
@@ -21,7 +21,8 @@
 
 # opengl packageconfig factored out to make it easy for distros
 # and BSP layers to choose OpenGL APIs/platforms/window systems
-PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}"
+PACKAGECONFIG_X11 = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'opengl glx', '', d)}"
+PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl ${PACKAGECONFIG_X11}', '', d)}"
 
 PACKAGECONFIG ??= " \
     ${GSTREAMER_ORC} \
@@ -32,7 +33,7 @@
 "
 
 OPENGL_APIS = 'opengl gles2'
-OPENGL_PLATFORMS = 'egl'
+OPENGL_PLATFORMS = 'egl glx'
 
 X11DEPENDS = "virtual/libx11 libsm libxrender libxv"
 X11ENABLEOPTS = "-Dx11=enabled -Dxvideo=enabled -Dxshm=enabled"
@@ -61,6 +62,7 @@
 
 # OpenGL platform packageconfigs
 PACKAGECONFIG[egl]          = ",,virtual/egl"
+PACKAGECONFIG[glx]          = ",,virtual/libgl"
 
 # OpenGL window systems (except for X11)
 PACKAGECONFIG[gbm]          = ",,virtual/libgbm libgudev libdrm"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.3.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.4.bb
similarity index 97%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.3.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.4.bb
index 8de1d1c..0ae1758 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.3.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.22.4.bb
@@ -8,7 +8,7 @@
            file://0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch \
            file://0001-v4l2-Define-ioctl_req_t-for-posix-linux-case.patch"
 
-SRC_URI[sha256sum] = "af81154b3a2ef3f4d2feba395f25696feea6fd13ec62c92d3c7a973470710273"
+SRC_URI[sha256sum] = "d7120c1146a9d723d53d5bfe8074da2575a81f0598438752937f39bb7c833b6a"
 
 S = "${WORKDIR}/gst-plugins-good-${PV}"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.3.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.4.bb
similarity index 94%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.3.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.4.bb
index 21102d5..1b3d3b6 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.3.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.22.4.bb
@@ -14,7 +14,7 @@
 SRC_URI = " \
             https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \
             "
-SRC_URI[sha256sum] = "3dc98ed5c2293368b3c4e6ce55d89be834a0a62e9bf88ef17928cf03b7d5a360"
+SRC_URI[sha256sum] = "ffb461fda6c06d316c4be5682632cc8901454ed72b1098b1e0221bc55e673cd7"
 
 S = "${WORKDIR}/gst-plugins-ugly-${PV}"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.3.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.4.bb
similarity index 90%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.3.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.4.bb
index 0cf1908..e35bef3 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.3.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.22.4.bb
@@ -8,7 +8,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740"
 
 SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "70bed3fabe634bc622ef6de4e6eb1c33bc9cefd64bdab200f6fa316b468c731c"
+SRC_URI[sha256sum] = "e1302dcc0f2451b64380dcc0dd3b82735795e8951dc812d938d8ba91f388163e"
 
 DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject"
 RDEPENDS:${PN} += "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.3.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.4.bb
similarity index 90%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.3.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.4.bb
index 0f8a89d..29eb4bb 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.3.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.22.4.bb
@@ -10,7 +10,7 @@
 
 SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz"
 
-SRC_URI[sha256sum] = "d02a39dfa9bdbf99a3dd2d378e17942b3ce42dfe36fb0c27e2d0b01722fc561d"
+SRC_URI[sha256sum] = "4666612d7a99c60dcd6f0bdba1b7a74d2562a0501b2a3e0576f0916bf1d8811b"
 
 S = "${WORKDIR}/${PNREAL}-${PV}"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.3.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.4.bb
similarity index 95%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.3.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.4.bb
index 6e0014c..34c15bb 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.3.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.22.4.bb
@@ -11,7 +11,7 @@
 
 SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.xz"
 
-SRC_URI[sha256sum] = "a27867062e8b69305fca5b7d3f13ed7c318b703e7d72756c94395bd305c7b32c"
+SRC_URI[sha256sum] = "967b8e353d82d0081a68dc53639b25d9fb4ca89bfa1e061403e0cd7d23585ba6"
 
 S = "${WORKDIR}/${REALPN}-${PV}"
 DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.3.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.4.bb
similarity index 96%
rename from poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.3.bb
rename to poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.4.bb
index ca75487..2eadb79 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.3.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.22.4.bb
@@ -22,7 +22,7 @@
            file://0003-tests-use-a-dictionaries-for-environment.patch;striplevel=3 \
            file://0004-tests-add-helper-script-to-run-the-installed_tests.patch;striplevel=3 \
            "
-SRC_URI[sha256sum] = "9ffeab95053f9f6995eb3b3da225e88f21c129cd60da002d3f795db70d6d5974"
+SRC_URI[sha256sum] = "11cb0498bc16b93d8b99d22f75f829b8d0abfd8254840b2120618db5532dc655"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
                    check \
diff --git a/poky/meta/recipes-multimedia/libpng/libpng_1.6.39.bb b/poky/meta/recipes-multimedia/libpng/libpng_1.6.40.bb
similarity index 80%
rename from poky/meta/recipes-multimedia/libpng/libpng_1.6.39.bb
rename to poky/meta/recipes-multimedia/libpng/libpng_1.6.40.bb
index a6c229f..293bf28 100644
--- a/poky/meta/recipes-multimedia/libpng/libpng_1.6.39.bb
+++ b/poky/meta/recipes-multimedia/libpng/libpng_1.6.40.bb
@@ -5,13 +5,13 @@
 HOMEPAGE = "http://www.libpng.org/"
 SECTION = "libs"
 LICENSE = "Libpng"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5c900cc124ba35a274073b5de7639b13"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8f533bc367bfd43f556b6f782234c076"
 DEPENDS = "zlib"
 
 LIBV = "16"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "1f4696ce70b4ee5f85f1e1623dc1229b210029fa4b7aee573df3e2ba7b036937"
+SRC_URI[sha256sum] = "535b479b2467ff231a3ec6d92a525906fb8ef27978be4f66dbe05d3f3a01b3a1"
 
 MIRRORS += "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/older-releases/"
 
@@ -32,5 +32,4 @@
 
 BBCLASSEXTEND = "native nativesdk"
 
-# CVE-2019-17371 is actually a memory leak in gif2png 2.x
-CVE_CHECK_IGNORE += "CVE-2019-17371"
+CVE_STATUS[CVE-2019-17371] = "cpe-incorrect: A memory leak in gif2png 2.x"
diff --git a/poky/meta/recipes-multimedia/libtiff/files/CVE-2022-48281.patch b/poky/meta/recipes-multimedia/libtiff/files/CVE-2022-48281.patch
deleted file mode 100644
index e356d37..0000000
--- a/poky/meta/recipes-multimedia/libtiff/files/CVE-2022-48281.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-CVE: CVE-2022-48281
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From 97d65859bc29ee334012e9c73022d8a8e55ed586 Mon Sep 17 00:00:00 2001
-From: Su Laus <sulau@freenet.de>
-Date: Sat, 21 Jan 2023 15:58:10 +0000
-Subject: [PATCH] tiffcrop: Correct simple copy paste error. Fix #488.
-
----
- tools/tiffcrop.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/tiffcrop.c b/tools/tiffcrop.c
-index 14fa18da..7db69883 100644
---- a/tools/tiffcrop.c
-+++ b/tools/tiffcrop.c
-@@ -8591,7 +8591,7 @@ static int processCropSelections(struct image_data *image,
-                     cropsize + NUM_BUFF_OVERSIZE_BYTES);
-             else
-             {
--                prev_cropsize = seg_buffs[0].size;
-+                prev_cropsize = seg_buffs[i].size;
-                 if (prev_cropsize < cropsize)
-                 {
-                     next_buff = _TIFFrealloc(
--- 
-GitLab
-
diff --git a/poky/meta/recipes-multimedia/libtiff/files/CVE-2023-2731.patch b/poky/meta/recipes-multimedia/libtiff/files/CVE-2023-2731.patch
deleted file mode 100644
index 7db0a35..0000000
--- a/poky/meta/recipes-multimedia/libtiff/files/CVE-2023-2731.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 9be22b639ea69e102d3847dca4c53ef025e9527b Mon Sep 17 00:00:00 2001
-From: Even Rouault <even.rouault@spatialys.com>
-Date: Sat, 29 Apr 2023 12:20:46 +0200
-Subject: [PATCH] LZWDecode(): avoid crash when trying to read again from a
- strip whith a missing end-of-information marker (fixes #548)
-
-CVE: CVE-2023-2731
-Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/commit/9be22b639ea69e102d3847dca4c53ef025e9527b]
-
----
- libtiff/tif_lzw.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libtiff/tif_lzw.c b/libtiff/tif_lzw.c
-index ba75a07e..d631fa10 100644
---- a/libtiff/tif_lzw.c
-+++ b/libtiff/tif_lzw.c
-@@ -423,6 +423,10 @@ static int LZWDecode(TIFF *tif, uint8_t *op0, tmsize_t occ0, uint16_t s)
- 
-     if (sp->read_error)
-     {
-+        TIFFErrorExtR(tif, module,
-+                      "LZWDecode: Scanline %" PRIu32 " cannot be read due to "
-+                      "previous error",
-+                      tif->tif_row);
-         return 0;
-     }
- 
-@@ -742,6 +746,7 @@ after_loop:
-     return (1);
- 
- no_eoi:
-+    sp->read_error = 1;
-     TIFFErrorExtR(tif, module,
-                   "LZWDecode: Strip %" PRIu32 " not terminated with EOI code",
-                   tif->tif_curstrip);
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-multimedia/libtiff/tiff_4.5.0.bb b/poky/meta/recipes-multimedia/libtiff/tiff_4.5.1.bb
similarity index 77%
rename from poky/meta/recipes-multimedia/libtiff/tiff_4.5.0.bb
rename to poky/meta/recipes-multimedia/libtiff/tiff_4.5.1.bb
index ca4a3ef..6171a53 100644
--- a/poky/meta/recipes-multimedia/libtiff/tiff_4.5.0.bb
+++ b/poky/meta/recipes-multimedia/libtiff/tiff_4.5.1.bb
@@ -8,24 +8,14 @@
 
 CVE_PRODUCT = "libtiff"
 
-SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz \
-           file://CVE-2022-48281.patch \
-           file://CVE-2023-2731.patch \
-"
+SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz"
 
-SRC_URI[sha256sum] = "c7a1d9296649233979fa3eacffef3fa024d73d05d589cb622727b5b08c423464"
+SRC_URI[sha256sum] = "d7f38b6788e4a8f5da7940c5ac9424f494d8a79eba53d555f4a507167dca5e2b"
 
 # exclude betas
 UPSTREAM_CHECK_REGEX = "tiff-(?P<pver>\d+(\.\d+)+).tar"
 
-# Tested with check from https://security-tracker.debian.org/tracker/CVE-2015-7313
-# and 4.3.0 doesn't have the issue
-CVE_CHECK_IGNORE += "CVE-2015-7313"
-# These issues only affect libtiff post-4.3.0 but before 4.4.0,
-# caused by 3079627e and fixed by b4e79bfa.
-CVE_CHECK_IGNORE += "CVE-2022-1622 CVE-2022-1623"
-# Issue is in jbig which we don't enable
-CVE_CHECK_IGNORE += "CVE-2022-1210"
+CVE_STATUS[CVE-2015-7313] = "fixed-version: Tested with check from https://security-tracker.debian.org/tracker/CVE-2015-7313 and already 4.3.0 doesn't have the issue"
 
 inherit autotools multilib_header
 
diff --git a/poky/meta/recipes-multimedia/webp/files/CVE-2023-1999.patch b/poky/meta/recipes-multimedia/webp/files/CVE-2023-1999.patch
deleted file mode 100644
index d293ab9..0000000
--- a/poky/meta/recipes-multimedia/webp/files/CVE-2023-1999.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From a486d800b60d0af4cc0836bf7ed8f21e12974129 Mon Sep 17 00:00:00 2001
-From: James Zern <jzern@google.com>
-Date: Wed, 22 Feb 2023 22:15:47 -0800
-Subject: [PATCH] EncodeAlphaInternal: clear result->bw on error
-
-This avoids a double free should the function fail prior to
-VP8BitWriterInit() and a previous trial result's buffer carried over.
-Previously in ApplyFiltersAndEncode() trial.bw (with a previous
-iteration's buffer) would be freed, followed by best.bw pointing to the
-same buffer.
-
-Since:
-187d379d add a fallback to ALPHA_NO_COMPRESSION
-
-In addition, check the return value of VP8BitWriterInit() in this
-function.
-
-Bug: webp:603
-Change-Id: Ic258381ee26c8c16bc211d157c8153831c8c6910
-
-CVE: CVE-2023-1999
-Upstream-Status: Backport [https://github.com/webmproject/libwebp/commit/a486d800b60d0af4cc0836bf7ed8f21e12974129]
-Signed-off-by: Nikhil R <nikhil.r@kpit.com>
----
- src/enc/alpha_enc.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/src/enc/alpha_enc.c b/src/enc/alpha_enc.c
-index f7c02690e3..7d205586fe 100644
---- a/src/enc/alpha_enc.c
-+++ b/src/enc/alpha_enc.c
-@@ -13,6 +13,7 @@
- 
- #include <assert.h>
- #include <stdlib.h>
-+#include <string.h>
- 
- #include "src/enc/vp8i_enc.h"
- #include "src/dsp/dsp.h"
-@@ -148,6 +149,7 @@ static int EncodeAlphaInternal(const uint8_t* const data, int width, int height,
-       }
-     } else {
-       VP8LBitWriterWipeOut(&tmp_bw);
-+      memset(&result->bw, 0, sizeof(result->bw));
-       return 0;
-     }
-   }
-@@ -162,7 +164,7 @@ static int EncodeAlphaInternal(const uint8_t* const data, int width, int height,
-   header = method | (filter << 2);
-   if (reduce_levels) header |= ALPHA_PREPROCESSED_LEVELS << 4;
- 
--  VP8BitWriterInit(&result->bw, ALPHA_HEADER_LEN + output_size);
-+  if (!VP8BitWriterInit(&result->bw, ALPHA_HEADER_LEN + output_size)) ok = 0;
-   ok = ok && VP8BitWriterAppend(&result->bw, &header, ALPHA_HEADER_LEN);
-   ok = ok && VP8BitWriterAppend(&result->bw, output, output_size);
diff --git a/poky/meta/recipes-multimedia/webp/libwebp_1.3.0.bb b/poky/meta/recipes-multimedia/webp/libwebp_1.3.1.bb
similarity index 93%
rename from poky/meta/recipes-multimedia/webp/libwebp_1.3.0.bb
rename to poky/meta/recipes-multimedia/webp/libwebp_1.3.1.bb
index 7ca67e4..b9e763b 100644
--- a/poky/meta/recipes-multimedia/webp/libwebp_1.3.0.bb
+++ b/poky/meta/recipes-multimedia/webp/libwebp_1.3.1.bb
@@ -14,14 +14,10 @@
                     file://PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7"
 
 SRC_URI = "http://downloads.webmproject.org/releases/webp/${BP}.tar.gz"
-SRC_URI[sha256sum] = "64ac4614db292ae8c5aa26de0295bf1623dbb3985054cb656c55e67431def17c"
+SRC_URI[sha256sum] = "b3779627c2dfd31e3d8c4485962c2efe17785ef975e2be5c8c0c9e6cd3c4ef66"
 
 UPSTREAM_CHECK_URI = "http://downloads.webmproject.org/releases/webp/index.html"
 
-SRC_URI += " \
-    file://CVE-2023-1999.patch \
-"
-
 EXTRA_OECONF = " \
     --disable-wic \
     --enable-libwebpmux \
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch
new file mode 100644
index 0000000..bbe2650
--- /dev/null
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch
@@ -0,0 +1,28 @@
+From cd65e3d9256a4f6eb7906a9f10678c29a4ffef2f Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Mon, 26 Jun 2023 14:30:02 +0200
+Subject: [PATCH] Source/JavaScriptCore/CMakeLists.txt: ensure reproducibility
+ of __TIMESTAMP__
+
+__TIMESTAMP__ refers to mtime of the file that contains it, which is unstable
+and breaks binary reproducibility when the file is generated at build time. To ensure
+this does not happen, mtime should be set from the original file.
+
+Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/15293]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ Source/JavaScriptCore/CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt
+index 43dc22ff..c2e3b1cd 100644
+--- a/Source/JavaScriptCore/CMakeLists.txt
++++ b/Source/JavaScriptCore/CMakeLists.txt
+@@ -159,6 +159,7 @@ add_custom_command(
+     OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBytecodeCacheVersion.cpp
+     MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/runtime/JSCBytecodeCacheVersion.cpp.in
+     COMMAND ${PERL_EXECUTABLE} -pe s/CACHED_TYPES_CKSUM/__TIMESTAMP__/ ${JAVASCRIPTCORE_DIR}/runtime/JSCBytecodeCacheVersion.cpp.in > ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBytecodeCacheVersion.cpp
++    COMMAND touch -r ${JAVASCRIPTCORE_DIR}/runtime/JSCBytecodeCacheVersion.cpp.in ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBytecodeCacheVersion.cpp
+             VERBATIM
+ )
+ 
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch
index 32f92f7..34e0ff9 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch
@@ -1,8 +1,8 @@
-From 0d3344e17d258106617b0e6d783d073b188a2548 Mon Sep 17 00:00:00 2001
+From 647c93de99a0f71f478d76a4cc7714eba7ba1447 Mon Sep 17 00:00:00 2001
 From: Adrian Perez de Castro <aperez@igalia.com>
 Date: Thu, 2 Jun 2022 11:19:06 +0300
-Subject: [PATCH] [ARM][NEON] FELightningNEON.cpp fails to build, NEON fast
- path seems unused https://bugs.webkit.org/show_bug.cgi?id=241182
+Subject: [PATCH] FELightningNEON.cpp fails to build, NEON fast path seems
+ unused https://bugs.webkit.org/show_bug.cgi?id=241182
 
 Reviewed by NOBODY (OOPS!).
 
@@ -30,19 +30,21 @@
 * Source/WebCore/platform/graphics/filters/PointLightSource.h:
 * Source/WebCore/platform/graphics/filters/SpotLightSource.h:
 * Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h:
----
+
 Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/1233]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
+---
  .../cpu/arm/filters/FELightingNEON.cpp        |  4 +-
- .../graphics/cpu/arm/filters/FELightingNEON.h | 54 +++++++++----------
+ .../graphics/cpu/arm/filters/FELightingNEON.h | 52 +++++++++----------
  .../graphics/filters/DistantLightSource.h     |  4 ++
  .../platform/graphics/filters/FELighting.h    |  7 ---
  .../graphics/filters/PointLightSource.h       |  4 ++
  .../graphics/filters/SpotLightSource.h        |  4 ++
  .../software/FELightingSoftwareApplier.h      | 16 ++++++
- 7 files changed, 57 insertions(+), 36 deletions(-)
+ 7 files changed, 56 insertions(+), 35 deletions(-)
 
+diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
+index f6ff8c20..42a97ffc 100644
 --- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
 +++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
 @@ -49,7 +49,7 @@ short* feLightingConstantsForNeon()
@@ -63,6 +65,8 @@
  {
      // Calling a powf function from the assembly code would require to save
      // and reload a lot of NEON registers. Since the base is in range [0..1]
+diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h
+index b17c603d..e4629cda 100644
 --- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h
 +++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h
 @@ -24,14 +24,15 @@
@@ -104,7 +108,7 @@
          0,
          0,
          0,
-@@ -111,23 +112,23 @@ inline void FELighting::platformApplyNeo
+@@ -111,23 +112,23 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
      // Set light source arguments.
      floatArguments.constOne = 1;
  
@@ -133,7 +137,7 @@
          floatArguments.lightX = spotLightSource.position().x();
          floatArguments.lightY = spotLightSource.position().y();
          floatArguments.lightZ = spotLightSource.position().z();
-@@ -145,7 +146,7 @@ inline void FELighting::platformApplyNeo
+@@ -145,7 +146,7 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
          if (spotLightSource.specularExponent() == 1)
              neonData.flags |= FLAG_CONE_EXPONENT_IS_1;
      } else {
@@ -142,7 +146,7 @@
          floatArguments.lightX = paintingData.initialLightingData.lightVector.x();
          floatArguments.lightY = paintingData.initialLightingData.lightVector.y();
          floatArguments.lightZ = paintingData.initialLightingData.lightVector.z();
-@@ -155,38 +156,39 @@ inline void FELighting::platformApplyNeo
+@@ -155,38 +156,39 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
      // Set lighting arguments.
      floatArguments.surfaceScale = data.surfaceScale;
      floatArguments.minusSurfaceScaleDividedByFour = -data.surfaceScale / 4;
@@ -192,16 +196,18 @@
              }
              parallelJobs.execute();
              return;
-@@ -199,5 +201,3 @@ inline void FELighting::platformApplyNeo
+@@ -199,5 +201,3 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
  } // namespace WebCore
  
  #endif // CPU(ARM_NEON) && COMPILER(GCC_COMPATIBLE)
 -
 -#endif // FELightingNEON_h
+diff --git a/Source/WebCore/platform/graphics/filters/DistantLightSource.h b/Source/WebCore/platform/graphics/filters/DistantLightSource.h
+index 70c6512f..b032c82e 100644
 --- a/Source/WebCore/platform/graphics/filters/DistantLightSource.h
 +++ b/Source/WebCore/platform/graphics/filters/DistantLightSource.h
-@@ -25,6 +25,10 @@
- #include "LightSource.h"
+@@ -26,6 +26,10 @@
+ #include <wtf/ArgumentCoder.h>
  #include <wtf/Ref.h>
  
 +namespace WTF {
@@ -211,6 +217,8 @@
  namespace WebCore {
  
  class DistantLightSource : public LightSource {
+diff --git a/Source/WebCore/platform/graphics/filters/FELighting.h b/Source/WebCore/platform/graphics/filters/FELighting.h
+index 53beb596..e78a9354 100644
 --- a/Source/WebCore/platform/graphics/filters/FELighting.h
 +++ b/Source/WebCore/platform/graphics/filters/FELighting.h
 @@ -35,8 +35,6 @@
@@ -222,7 +230,7 @@
  class FELighting : public FilterEffect {
  public:
      const Color& lightingColor() const { return m_lightingColor; }
-@@ -67,11 +65,6 @@ protected:
+@@ -64,11 +62,6 @@ protected:
  
      std::unique_ptr<FilterEffectApplier> createSoftwareApplier() const override;
  
@@ -234,6 +242,8 @@
      Color m_lightingColor;
      float m_surfaceScale;
      float m_diffuseConstant;
+diff --git a/Source/WebCore/platform/graphics/filters/PointLightSource.h b/Source/WebCore/platform/graphics/filters/PointLightSource.h
+index 3a5723f0..675d63f5 100644
 --- a/Source/WebCore/platform/graphics/filters/PointLightSource.h
 +++ b/Source/WebCore/platform/graphics/filters/PointLightSource.h
 @@ -26,6 +26,10 @@
@@ -247,6 +257,8 @@
  namespace WebCore {
  
  class PointLightSource : public LightSource {
+diff --git a/Source/WebCore/platform/graphics/filters/SpotLightSource.h b/Source/WebCore/platform/graphics/filters/SpotLightSource.h
+index 684626f7..dea58389 100644
 --- a/Source/WebCore/platform/graphics/filters/SpotLightSource.h
 +++ b/Source/WebCore/platform/graphics/filters/SpotLightSource.h
 @@ -26,6 +26,10 @@
@@ -260,6 +272,8 @@
  namespace WebCore {
  
  class SpotLightSource : public LightSource {
+diff --git a/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h b/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h
+index c974d921..e2896660 100644
 --- a/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h
 +++ b/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h
 @@ -36,6 +36,7 @@
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch b/poky/meta/recipes-sato/webkit/webkitgtk/4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch
new file mode 100644
index 0000000..79da855
--- /dev/null
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch
@@ -0,0 +1,41 @@
+From 4977290ab4ab35258a6da9b13795c9b0f7894bf4 Mon Sep 17 00:00:00 2001
+From: Diego Pino Garcia <dpino@igalia.com>
+Date: Mon, 22 May 2023 19:58:50 -0700
+Subject: [PATCH] [GLIB] Fix build error after 264196@main
+ https://bugs.webkit.org/show_bug.cgi?id=256917
+
+Reviewed by Michael Catanzaro.
+
+Variable BWRAP_EXECUTABLE is only defined when BUBBLEWRAP_SANDBOX is
+enabled.
+
+* Source/WTF/wtf/glib/Sandbox.cpp:
+(WTF::isInsideUnsupportedContainer):
+
+Canonical link: https://commits.webkit.org/264395@main
+Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/4977290ab4ab35258a6da9b13795c9b0f7894bf4]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ Source/WTF/wtf/glib/Sandbox.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/Source/WTF/wtf/glib/Sandbox.cpp b/Source/WTF/wtf/glib/Sandbox.cpp
+index 7d84e830ab33e..9b07bb8cb5a9b 100644
+--- a/Source/WTF/wtf/glib/Sandbox.cpp
++++ b/Source/WTF/wtf/glib/Sandbox.cpp
+@@ -36,6 +36,7 @@ bool isInsideFlatpak()
+     return returnValue;
+ }
+ 
++#if ENABLE(BUBBLEWRAP_SANDBOX)
+ bool isInsideUnsupportedContainer()
+ {
+     static bool inContainer = g_file_test("/run/.containerenv", G_FILE_TEST_EXISTS);
+@@ -64,6 +65,7 @@ bool isInsideUnsupportedContainer()
+ 
+     return inContainer && !supportedContainer;
+ }
++#endif
+ 
+ bool isInsideSnap()
+ {
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/93920b55f52ff8b883296f4845269e2ed746acb3.patch b/poky/meta/recipes-sato/webkit/webkitgtk/93920b55f52ff8b883296f4845269e2ed746acb3.patch
deleted file mode 100644
index 762de40..0000000
--- a/poky/meta/recipes-sato/webkit/webkitgtk/93920b55f52ff8b883296f4845269e2ed746acb3.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 93920b55f52ff8b883296f4845269e2ed746acb3 Mon Sep 17 00:00:00 2001
-From: Michael Catanzaro <mcatanzaro@redhat.com>
-Date: Fri, 31 Mar 2023 12:24:09 -0700
-Subject: [PATCH] Fix build of SourceBrush.cpp
- https://bugs.webkit.org/show_bug.cgi?id=254821
-
-Unreviewed build fix.
-
-* Source/WebCore/platform/graphics/SourceBrush.cpp:
-(WebCore::SourceBrush::setGradient):
-(WebCore::SourceBrush::setPattern):
-
-Canonical link: https://commits.webkit.org/262434@main
-
-Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/93920b55f52ff8b883296f4845269e2ed746acb3]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Source/WebCore/platform/graphics/SourceBrush.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/Source/WebCore/platform/graphics/SourceBrush.cpp
-+++ b/Source/WebCore/platform/graphics/SourceBrush.cpp
-@@ -65,12 +65,12 @@ Pattern* SourceBrush::pattern() const
- 
- void SourceBrush::setGradient(Ref<Gradient>&& gradient, const AffineTransform& spaceTransform)
- {
--    m_brush = { Brush::LogicalGradient { WTFMove(gradient), spaceTransform } };
-+    m_brush = Brush { Brush::LogicalGradient { { WTFMove(gradient) }, spaceTransform } };
- }
- 
- void SourceBrush::setPattern(Ref<Pattern>&& pattern)
- {
--    m_brush = { WTFMove(pattern) };
-+    m_brush = Brush { WTFMove(pattern) };
- }
- 
- WTF::TextStream& operator<<(TextStream& ts, const SourceBrush& brush)
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/check-GST_GL_HAVE_PLATFORM_GLX.patch b/poky/meta/recipes-sato/webkit/webkitgtk/check-GST_GL_HAVE_PLATFORM_GLX.patch
new file mode 100644
index 0000000..ae99810
--- /dev/null
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/check-GST_GL_HAVE_PLATFORM_GLX.patch
@@ -0,0 +1,33 @@
+Add additional check on GST_GL_HAVE_PLATFORM_GLX before using gst_gl_display_x11_new_with_display
+
+This ensures that there is a compile time check for glx support in gstreamer as
+runtime check is not enough because gst_gl_display_x11_new_with_display() API comes from
+gst/gl/x11/gstgldisplay_x11.h which is only included when GST_GL_HAVE_PLATFORM_GLX is defined
+therefore make this check consistent to fix build with some platforms which use pvr gl drivers
+where this problem appear at compile time.
+
+
+/mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/webkitgtk/2.40.2-r0/webkitgtk-2.40.2/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp:68:31: error: use of undeclared identifier 'gst_gl_display_x11_new_with_display'; did you mean 'gst_gl_display_egl_new_with_egl_display'?
+   68 |         return GST_GL_DISPLAY(gst_gl_display_x11_new_with_display(downcast<PlatformDisplayX11>(sharedDisplay).native()));
+      |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      |                               gst_gl_display_egl_new_with_egl_display
+
+This issue is 2.40 specific since GLX support is removed [1] from trunk upstream, therefore
+this patch wont be needed when upgrading to 2.42+
+
+[1] https://github.com/WebKit/WebKit/commit/320560f9e53ddcd53954059bd005e0c75eb91abf
+
+Upstream-Status: Inappropriate [GLX support is gone in 2.41+]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp	2023-02-20 01:22:18.917743700 -0800
++++ b/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp	2023-07-08 08:45:09.739177065 -0700
+@@ -63,7 +63,7 @@
+     if (glPlatform == GST_GL_PLATFORM_EGL)
+         return GST_GL_DISPLAY(gst_gl_display_egl_new_with_egl_display(sharedDisplay.eglDisplay()));
+ #endif
+-#if USE(GLX)
++#if USE(GLX) && GST_GL_HAVE_PLATFORM_GLX
+     if (is<PlatformDisplayX11>(sharedDisplay) && glPlatform == GST_GL_PLATFORM_GLX)
+         return GST_GL_DISPLAY(gst_gl_display_x11_new_with_display(downcast<PlatformDisplayX11>(sharedDisplay).native()));
+ #endif
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/d318bb461f040b90453bc4e100dcf967243ecd98.patch b/poky/meta/recipes-sato/webkit/webkitgtk/d318bb461f040b90453bc4e100dcf967243ecd98.patch
deleted file mode 100644
index 1ff9dce..0000000
--- a/poky/meta/recipes-sato/webkit/webkitgtk/d318bb461f040b90453bc4e100dcf967243ecd98.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From d318bb461f040b90453bc4e100dcf967243ecd98 Mon Sep 17 00:00:00 2001
-From: Michael Catanzaro <mcatanzaro@redhat.com>
-Date: Mon, 16 Jan 2023 16:55:26 -0800
-Subject: [PATCH] WebKitGTK 2.39.4 does not build due to missing #include in
- ANGLE https://bugs.webkit.org/show_bug.cgi?id=250689
-
-Unreviewed build fix.
-
-* Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h:
-
-Canonical link: https://commits.webkit.org/258968@main
-
-Upstream-Status: Backport [https://bugs.webkit.org/show_bug.cgi?id=250689]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h b/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h
-index 94cb93e01fc0..ec7bda372f30 100644
---- a/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h
-+++ b/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h
-@@ -12,6 +12,7 @@
- 
- #include <algorithm>
- #include <array>
-+#include <cstdint>
- #include <string>
- #include <vector>
- 
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.38.5.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.40.2.bb
similarity index 88%
rename from poky/meta/recipes-sato/webkit/webkitgtk_2.38.5.bb
rename to poky/meta/recipes-sato/webkit/webkitgtk_2.40.2.bb
index f7fa6df..8bef0b1 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk_2.38.5.bb
+++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.40.2.bb
@@ -13,10 +13,11 @@
            file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \
            file://reproducibility.patch \
            file://0d3344e17d258106617b0e6d783d073b188a2548.patch \
-           file://d318bb461f040b90453bc4e100dcf967243ecd98.patch \
-           file://93920b55f52ff8b883296f4845269e2ed746acb3.patch \
+           file://4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch \
+           file://0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch \
+           file://check-GST_GL_HAVE_PLATFORM_GLX.patch \
            "
-SRC_URI[sha256sum] = "40c20c43022274df5893f22b1054fa894c3eea057389bb08aee08c5b0bb0c1a7"
+SRC_URI[sha256sum] = "96898870d994da406ee7a632816dcde9a3bb395ee5f344fcb3f3b8cc8a77e000"
 
 inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen
 
@@ -28,6 +29,7 @@
 DEPENDS += " \
           ruby-native \
           gperf-native \
+          unifdef-native \
           cairo \
           harfbuzz \
           jpeg \
@@ -72,6 +74,8 @@
 PACKAGECONFIG[soup2] = "-DUSE_SOUP2=ON,-DUSE_SOUP2=OFF,libsoup-2.4,,,soup3"
 PACKAGECONFIG[soup3] = ",,libsoup,,,soup2"
 PACKAGECONFIG[journald] = "-DENABLE_JOURNALD_LOG=ON,-DENABLE_JOURNALD_LOG=OFF,systemd"
+PACKAGECONFIG[avif] = "-DUSE_AVIF_LOG=ON,-DUSE_AVIF=OFF,libavif"
+PACKAGECONFIG[media-recorder] = "-DENABLE_MEDIA_RECORDER=ON,-DENABLE_MEDIA_RECORDER=OFF,gstreamer1.0-plugins-bad"
 
 EXTRA_OECMAKE = " \
 		-DPORT=GTK \
@@ -106,7 +110,7 @@
 
 # JIT and gold linker does not work on RISCV
 EXTRA_OECMAKE:append:riscv32 = " -DUSE_LD_GOLD=OFF -DENABLE_JIT=OFF"
-EXTRA_OECMAKE:append:riscv64 = " -DUSE_LD_GOLD=OFF -DENABLE_JIT=OFF"
+EXTRA_OECMAKE:append:riscv64 = " -DUSE_LD_GOLD=OFF"
 
 # JIT not supported on MIPS either
 EXTRA_OECMAKE:append:mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON "
@@ -137,6 +141,9 @@
 ARM_INSTRUCTION_SET:armv7r = "thumb"
 ARM_INSTRUCTION_SET:armv7ve = "thumb"
 
+# ANGLE requires SSE support as of webkit 2.40.x on 32 bit x86
+COMPATIBLE_HOST:x86 = "${@bb.utils.contains_any('TUNE_FEATURES', 'core2 corei7', '.*', 'null', d)}"
+
 # introspection inside qemu-arm hangs forever on musl/arm builds
 # therefore disable GI_DATA
 GI_DATA_ENABLED:libc-musl:armv7a = "False"
@@ -152,8 +159,8 @@
             ${B}/JavaScriptCore/DerivedSources/*.h \
             ${B}/JavaScriptCore/DerivedSources/yarr/*.h \
             ${B}/JavaScriptCore/PrivateHeaders/JavaScriptCore/*.h \
-            ${B}/WebKit2Gtk/DerivedSources/webkit2/*.cpp \
-            ${B}/WebKit2Gtk/DerivedSources/webkit2/*.h
+            ${B}/WebCore/DerivedSources/*.cpp \
+            ${B}/WebKitGTK/DerivedSources/webkit/*.cpp
 
 }
 
diff --git a/poky/meta/recipes-support/debianutils/debianutils_5.7.bb b/poky/meta/recipes-support/debianutils/debianutils_5.8.bb
similarity index 93%
rename from poky/meta/recipes-support/debianutils/debianutils_5.7.bb
rename to poky/meta/recipes-support/debianutils/debianutils_5.8.bb
index 7d705c6..fb17d2d 100644
--- a/poky/meta/recipes-support/debianutils/debianutils_5.7.bb
+++ b/poky/meta/recipes-support/debianutils/debianutils_5.8.bb
@@ -6,12 +6,12 @@
 BUGTRACKER = "https://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=debianutils;dist=unstable"
 SECTION = "base"
 LICENSE = "GPL-2.0-only & SMAIL_GPL"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=9b912cd0cc654134c0ef3424a0705b94"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=74765f57ae5dd2b10ffbc39528d98753"
 
 SRC_URI = "git://salsa.debian.org/debian/debianutils.git;protocol=https;branch=master \
            "
 
-SRCREV = "de14223e5bffe15e374a441302c528ffc1cbed57"
+SRCREV = "69116b856177ceb270908103b5776f897d2863c3"
 
 inherit autotools update-alternatives
 
diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_242.bb b/poky/meta/recipes-support/diffoscope/diffoscope_244.bb
similarity index 70%
rename from poky/meta/recipes-support/diffoscope/diffoscope_242.bb
rename to poky/meta/recipes-support/diffoscope/diffoscope_244.bb
index 4b0d518..c17bd81 100644
--- a/poky/meta/recipes-support/diffoscope/diffoscope_242.bb
+++ b/poky/meta/recipes-support/diffoscope/diffoscope_244.bb
@@ -12,9 +12,22 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "d858c591d2c8d42b2b29eb6d229408607b1cd8a4e7ade72d0cd002db6d1c2a6e"
+SRC_URI[sha256sum] = "8bee8bbb144cdb7ddfa21886d5ce1822220139241c9a53def09b4adc3340db93"
 
-RDEPENDS:${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic python3-rpm"
+RDEPENDS:${PN} += "\
+        binutils \
+        python3-curses \
+        python3-difflib \
+        python3-fcntl \
+        python3-json \
+        python3-libarchive-c \
+        python3-magic \
+        python3-multiprocessing \
+        python3-pprint \
+        python3-rpm \
+        squashfs-tools \
+        vim \
+        "
 
 # Dependencies don't build for musl
 COMPATIBLE_HOST:libc-musl = 'null'
diff --git a/poky/meta/recipes-support/icu/icu_72-1.bb b/poky/meta/recipes-support/icu/icu_73-2.bb
similarity index 95%
rename from poky/meta/recipes-support/icu/icu_72-1.bb
rename to poky/meta/recipes-support/icu/icu_73-2.bb
index c2eae52..7c59f8b 100644
--- a/poky/meta/recipes-support/icu/icu_72-1.bb
+++ b/poky/meta/recipes-support/icu/icu_73-2.bb
@@ -78,7 +78,7 @@
 
 BBCLASSEXTEND = "native nativesdk"
 
-LIC_FILES_CHKSUM = "file://../LICENSE;md5=a89d03060ff9c46552434dbd1fe3ed1f"
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=80c2cf39ad8ae12b9b9482a1737c6650"
 
 def icu_download_version(d):
     pvsplit = d.getVar('PV').split('-')
@@ -111,8 +111,8 @@
 SRC_URI:append:class-target = "\
            file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \
           "
-SRC_URI[code.sha256sum] = "a2d2d38217092a7ed56635e34467f92f976b370e20182ad325edea6681a71d68"
-SRC_URI[data.sha256sum] = "ee19f876507d6c23d9e0a2b631096f6b0eaa6fa61728c33a89efdb55e3385dea"
+SRC_URI[code.sha256sum] = "818a80712ed3caacd9b652305e01afc7fa167e6f2e94996da44b90c2ab604ce1"
+SRC_URI[data.sha256sum] = "ca1ee076163b438461e484421a7679fc33a64cd0a54f9d4b401893fa1eb42701"
 
 UPSTREAM_CHECK_REGEX = "releases/tag/release-(?P<pver>(?!.+rc).+)"
 GITHUB_BASE_URI = "https://github.com/unicode-org/icu/releases"
diff --git a/poky/meta/recipes-support/libassuan/libassuan_2.5.5.bb b/poky/meta/recipes-support/libassuan/libassuan_2.5.6.bb
similarity index 93%
rename from poky/meta/recipes-support/libassuan/libassuan_2.5.5.bb
rename to poky/meta/recipes-support/libassuan/libassuan_2.5.6.bb
index 2bab3ac..7e899e7 100644
--- a/poky/meta/recipes-support/libassuan/libassuan_2.5.5.bb
+++ b/poky/meta/recipes-support/libassuan/libassuan_2.5.6.bb
@@ -20,7 +20,7 @@
            file://libassuan-add-pkgconfig-support.patch \
           "
 
-SRC_URI[sha256sum] = "8e8c2fcc982f9ca67dcbb1d95e2dc746b1739a4668bc20b3a3c5be632edb34e4"
+SRC_URI[sha256sum] = "e9fd27218d5394904e4e39788f9b1742711c3e6b41689a31aa3380bd5aa4f426"
 
 BINCONFIG = "${bindir}/libassuan-config"
 
diff --git a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.2.bb b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.2.bb
index 58f07a1..524b06c 100644
--- a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.2.bb
+++ b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.2.bb
@@ -29,8 +29,8 @@
            "
 SRC_URI[sha256sum] = "3b9c02a004b68c256add99701de00b383accccf37177e0d6c58289664cce0c03"
 
-# Below whitelisted CVEs are disputed and not affecting crypto libraries for any distro.
-CVE_CHECK_IGNORE += "CVE-2018-12433 CVE-2018-12438"
+CVE_STATUS[CVE-2018-12433] = "disputed: CVE is disputed and not affecting crypto libraries for any distro."
+CVE_STATUS[CVE-2018-12438] = "disputed: CVE is disputed and not affecting crypto libraries for any distro."
 
 BINCONFIG = "${bindir}/libgcrypt-config"
 
diff --git a/poky/meta/recipes-support/libksba/libksba_1.6.3.bb b/poky/meta/recipes-support/libksba/libksba_1.6.4.bb
similarity index 93%
rename from poky/meta/recipes-support/libksba/libksba_1.6.3.bb
rename to poky/meta/recipes-support/libksba/libksba_1.6.4.bb
index dc39693..f9636f9 100644
--- a/poky/meta/recipes-support/libksba/libksba_1.6.3.bb
+++ b/poky/meta/recipes-support/libksba/libksba_1.6.4.bb
@@ -24,7 +24,7 @@
 SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
            file://ksba-add-pkgconfig-support.patch"
 
-SRC_URI[sha256sum] = "3f72c68db30971ebbf14367527719423f0a4d5f8103fc9f4a1c01a9fa440de5c"
+SRC_URI[sha256sum] = "bbb43f032b9164d86c781ffe42213a83bf4f2fee91455edfa4654521b8b03b6b"
 
 do_configure:prepend () {
 	# Else these could be used in preference to those in aclocal-copy
diff --git a/poky/meta/recipes-support/libmd/libmd_1.0.4.bb b/poky/meta/recipes-support/libmd/libmd_1.1.0.bb
similarity index 86%
rename from poky/meta/recipes-support/libmd/libmd_1.0.4.bb
rename to poky/meta/recipes-support/libmd/libmd_1.1.0.bb
index b93dc2d..dc588a0 100644
--- a/poky/meta/recipes-support/libmd/libmd_1.0.4.bb
+++ b/poky/meta/recipes-support/libmd/libmd_1.1.0.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=0436d4fb62a71f661d6e8b7812f9e1df"
 
 SRC_URI = "https://archive.hadrons.org/software/libmd/libmd-${PV}.tar.xz"
-SRC_URI[sha256sum] = "f51c921042e34beddeded4b75557656559cf5b1f2448033b4c1eec11c07e530f"
+SRC_URI[sha256sum] = "1bd6aa42275313af3141c7cf2e5b964e8b1fd488025caf2f971f43b00776b332"
 
 inherit autotools
 
diff --git a/poky/meta/recipes-support/libproxy/libproxy_0.4.18.bb b/poky/meta/recipes-support/libproxy/libproxy_0.4.18.bb
deleted file mode 100644
index 01ba2a6..0000000
--- a/poky/meta/recipes-support/libproxy/libproxy_0.4.18.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "Library providing automatic proxy configuration management"
-DESCRIPTION = "libproxy  provides  interfaces  to  get  the proxy that will be \
-used to access network resources. It uses various plugins to get proxy \
-configuration  via different mechanisms (e.g. environment variables or \
-desktop settings)."
-HOMEPAGE = "https://github.com/libproxy/libproxy"
-BUGTRACKER = "https://github.com/libproxy/libproxy/issues"
-SECTION = "libs"
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
-                    file://utils/proxy.c;beginline=1;endline=18;md5=55152a1006d7dafbef32baf9c30a99c0"
-
-DEPENDS = "glib-2.0"
-
-SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "69b5856e9ea42c38ac77e6b8c92ffc86a71d341fef74e77bef85f9cc6c47a4b1"
-
-inherit cmake pkgconfig github-releases
-
-PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gnome', '', d)} gnome3"
-PACKAGECONFIG[gnome] = "-DWITH_GNOME=yes,-DWITH_GNOME=no,gconf"
-PACKAGECONFIG[gnome3] = "-DWITH_GNOME3=yes,-DWITH_GNOME3=no"
-
-EXTRA_OECMAKE += " \
-    -DWITH_KDE=no \
-    -DWITH_MOZJS=no \
-    -DWITH_NM=no \
-    -DWITH_PERL=no \
-    -DWITH_PYTHON2=no \
-    -DWITH_PYTHON3=no \
-    -DWITH_WEBKIT=no \
-    -DWITH_SYSCONFIG=no \
-    -DLIB_INSTALL_DIR=${libdir} \
-    -DLIBEXEC_INSTALL_DIR=${libexecdir} \
-"
-SECURITY_PIE_CFLAGS:remove = "-fPIE -pie"
-
-FILES:${PN} += "${libdir}/${BPN}/${PV}/modules"
diff --git a/poky/meta/recipes-support/libproxy/libproxy_0.5.3.bb b/poky/meta/recipes-support/libproxy/libproxy_0.5.3.bb
new file mode 100644
index 0000000..db88af0
--- /dev/null
+++ b/poky/meta/recipes-support/libproxy/libproxy_0.5.3.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Library providing automatic proxy configuration management"
+DESCRIPTION = "libproxy  provides  interfaces  to  get  the proxy that will be \
+used to access network resources. It uses various plugins to get proxy \
+configuration  via different mechanisms (e.g. environment variables or \
+desktop settings)."
+HOMEPAGE = "https://github.com/libproxy/libproxy"
+BUGTRACKER = "https://github.com/libproxy/libproxy/issues"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+                    file://src/libproxy/proxy.c;beginline=1;endline=20;md5=bb9a177ef1c995311070f34c5638a402 \
+                   "
+
+DEPENDS = "glib-2.0"
+
+SRC_URI = "git://github.com/libproxy/libproxy;protocol=https;branch=main"
+SRCREV = "29d51a611f28af0bdbd51a5779cc8df264c8dcff"
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig gobject-introspection vala gi-docgen
+GIDOCGEN_MESON_OPTION = 'docs'
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[curl] = "-Dcurl=true,-Dcurl=false,curl"
+PACKAGECONFIG[config-gnome] = "-Dconfig-gnome=true,-Dconfig-gnome=false,gsettings-desktop-schemas"
+PACKAGECONFIG[pacrunner-duktape] = "-Dpacrunner-duktape=true,-Dpacrunner-duktape=false,duktape"
+
+FILES:${PN} += "${libdir}/${BPN}/${PV}/modules"
diff --git a/poky/meta/recipes-support/libssh2/libssh2/fix-ssh2-test.patch b/poky/meta/recipes-support/libssh2/libssh2/fix-ssh2-test.patch
deleted file mode 100644
index ee916c4..0000000
--- a/poky/meta/recipes-support/libssh2/libssh2/fix-ssh2-test.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-In 8.8 OpenSSH disabled sha1 rsa-sha keys out of the box,
-so we need to re-enable them as a workaround for the test
-suite until upstream updates the tests.
-
-See: https://github.com/libssh2/libssh2/issues/630
-
-Upstream-Status: Backport [alternative fixes merged upstream]
-
-Patch taken from https://github.com/mirror-rpm/libssh2/commit/47f7114f7d0780f3075bad51a71881f45cc933c5
-
---- a/tests/ssh2.sh
-+++ b/tests/ssh2.sh
-@@ -25,7 +25,8 @@ $SSHD -f /dev/null -h "$srcdir"/etc/host
-     -o 'Port 4711' \
-     -o 'Protocol 2' \
-     -o "AuthorizedKeysFile $srcdir/etc/user.pub" \
--    -o 'UsePrivilegeSeparation no' \
-+    -o 'HostKeyAlgorithms +ssh-rsa' \
-+    -o 'PubkeyAcceptedAlgorithms +ssh-rsa' \
-     -o 'StrictModes no' \
-     -D \
-     $libssh2_sshd_params &
-
diff --git a/poky/meta/recipes-support/libssh2/libssh2/run-ptest b/poky/meta/recipes-support/libssh2/libssh2/run-ptest
index 5e7426f..0f5526e 100644
--- a/poky/meta/recipes-support/libssh2/libssh2/run-ptest
+++ b/poky/meta/recipes-support/libssh2/libssh2/run-ptest
@@ -2,7 +2,7 @@
 
 ptestdir=$(dirname "$(readlink -f "$0")")
 cd tests
-for test in simple mansyntax.sh ssh2.sh
+for test in mansyntax.sh test_simple test_sshd.test
 do
 	./../test-driver --test-name $test --log-file ../$test.log --trs-file ../$test.trs --color-tests no --enable-hard-errors yes --expect-failure no -- ./$test
 done
diff --git a/poky/meta/recipes-support/libssh2/libssh2_1.10.0.bb b/poky/meta/recipes-support/libssh2/libssh2_1.11.0.bb
similarity index 71%
rename from poky/meta/recipes-support/libssh2/libssh2_1.10.0.bb
rename to poky/meta/recipes-support/libssh2/libssh2_1.11.0.bb
index d551337..edc25db 100644
--- a/poky/meta/recipes-support/libssh2/libssh2_1.10.0.bb
+++ b/poky/meta/recipes-support/libssh2/libssh2_1.11.0.bb
@@ -5,21 +5,22 @@
 DEPENDS = "zlib"
 
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3e089ad0cf27edf1e7f261dfcd06acc7"
+LIC_FILES_CHKSUM = "file://COPYING;md5=24a33237426720395ebb1dd1349ca225"
 
 SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz \
-           file://fix-ssh2-test.patch \
            file://run-ptest \
            "
 
-SRC_URI[sha256sum] = "2d64e90f3ded394b91d3a2e774ca203a4179f69aebee03003e5a6fa621e41d51"
+SRC_URI[sha256sum] = "3736161e41e2693324deb38c26cfdc3efe6209d634ba4258db1cecff6a5ad461"
 
 inherit autotools pkgconfig ptest
 
 EXTRA_OECONF += "\
                  --with-libz \
                  --with-libz-prefix=${STAGING_LIBDIR} \
+                 --disable-rpath \
                 "
+DISABLE_STATIC = ""
 
 # only one of openssl and gcrypt could be set
 PACKAGECONFIG ??= "openssl"
@@ -29,7 +30,7 @@
 BBCLASSEXTEND = "native nativesdk"
 
 # required for ptest on documentation
-RDEPENDS:${PN}-ptest = "man-db openssh util-linux-col"
+RDEPENDS:${PN}-ptest = "bash man-db openssh util-linux-col"
 RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-en-us"
 
 do_compile_ptest() {
@@ -41,9 +42,11 @@
 	install -d ${D}${PTEST_PATH}/tests
 	install -m 0755 ${S}/test-driver ${D}${PTEST_PATH}/
 	cp -rf ${B}/tests/.libs/* ${D}${PTEST_PATH}/tests/
+	cp -rf ${B}/tests/test_simple ${D}${PTEST_PATH}/tests/
 	cp -rf ${S}/tests/mansyntax.sh  ${D}${PTEST_PATH}/tests/
-	cp -rf ${S}/tests/ssh2.sh  ${D}${PTEST_PATH}/tests/
-	cp -rf ${S}/tests/etc ${D}${PTEST_PATH}/tests/
+	cp -rf ${S}/tests/key*  ${D}${PTEST_PATH}/tests/
+	cp -rf ${S}/tests/openssh_server/  ${D}${PTEST_PATH}/tests/
+	cp -rf ${S}/tests/*.test  ${D}${PTEST_PATH}/tests/
 	mkdir -p ${D}${PTEST_PATH}/docs
 	cp -r ${S}/docs/* ${D}${PTEST_PATH}/docs/
 }
diff --git a/poky/meta/recipes-support/libxslt/libxslt_1.1.38.bb b/poky/meta/recipes-support/libxslt/libxslt_1.1.38.bb
index bf35a94..ed5b15b 100644
--- a/poky/meta/recipes-support/libxslt/libxslt_1.1.38.bb
+++ b/poky/meta/recipes-support/libxslt/libxslt_1.1.38.bb
@@ -19,9 +19,7 @@
 
 UPSTREAM_CHECK_REGEX = "libxslt-(?P<pver>\d+(\.\d+)+)\.tar"
 
-# We have libxml2 2.9.14 and we don't link statically with it anyway
-# so this isn't an issue.
-CVE_CHECK_IGNORE += "CVE-2022-29824"
+CVE_STATUS[CVE-2022-29824] = "not-applicable-config: Static linking to libxml2 is not enabled."
 
 S = "${WORKDIR}/libxslt-${PV}"
 
diff --git a/poky/meta/recipes-support/lz4/lz4_1.9.4.bb b/poky/meta/recipes-support/lz4/lz4_1.9.4.bb
index d2a25fd..51a854d 100644
--- a/poky/meta/recipes-support/lz4/lz4_1.9.4.bb
+++ b/poky/meta/recipes-support/lz4/lz4_1.9.4.bb
@@ -21,8 +21,7 @@
 
 inherit ptest
 
-# Fixed in r118, which is larger than the current version.
-CVE_CHECK_IGNORE += "CVE-2014-4715"
+CVE_STATUS[CVE-2014-4715] = "fixed-version: Fixed in r118, which is larger than the current version."
 
 EXTRA_OEMAKE = "PREFIX=${prefix} CC='${CC}' CFLAGS='${CFLAGS}' DESTDIR=${D} LIBDIR=${libdir} INCLUDEDIR=${includedir} BUILD_STATIC=no"
 
diff --git a/poky/meta/recipes-support/nettle/nettle_3.9.bb b/poky/meta/recipes-support/nettle/nettle_3.9.1.bb
similarity index 96%
rename from poky/meta/recipes-support/nettle/nettle_3.9.bb
rename to poky/meta/recipes-support/nettle/nettle_3.9.1.bb
index 7a5bdb2..6bb76a6 100644
--- a/poky/meta/recipes-support/nettle/nettle_3.9.bb
+++ b/poky/meta/recipes-support/nettle/nettle_3.9.1.bb
@@ -20,7 +20,7 @@
            file://check-header-files-of-openssl-only-if-enable_.patch \
            "
 
-SRC_URI[sha256sum] = "0ee7adf5a7201610bb7fe0acbb7c9b3be83be44904dd35ebbcd965cd896bfeaa"
+SRC_URI[sha256sum] = "ccfeff981b0ca71bbd6fbcb054f407c60ffb644389a5be80d6716d5b550c6ce3"
 
 UPSTREAM_CHECK_REGEX = "nettle-(?P<pver>\d+(\.\d+)+)\.tar"
 
diff --git a/poky/meta/recipes-support/nghttp2/nghttp2_1.53.0.bb b/poky/meta/recipes-support/nghttp2/nghttp2_1.55.1.bb
similarity index 91%
rename from poky/meta/recipes-support/nghttp2/nghttp2_1.53.0.bb
rename to poky/meta/recipes-support/nghttp2/nghttp2_1.55.1.bb
index 88d5f31..1be9a34 100644
--- a/poky/meta/recipes-support/nghttp2/nghttp2_1.53.0.bb
+++ b/poky/meta/recipes-support/nghttp2/nghttp2_1.55.1.bb
@@ -8,7 +8,7 @@
     ${GITHUB_BASE_URI}/download/v${PV}/nghttp2-${PV}.tar.xz \
     file://0001-fetch-ocsp-response-use-python3.patch \
 "
-SRC_URI[sha256sum] = "b867184254e5a29b0ba68413aa14f8b0ce1142a371761374598dec092dabb809"
+SRC_URI[sha256sum] = "19490b7c8c2ded1cf7c3e3a54ef4304e3a7876ae2d950d60a81d0dc6053be419"
 
 inherit cmake manpages python3native github-releases
 PACKAGECONFIG[manpages] = ""
diff --git a/poky/meta/recipes-support/p11-kit/p11-kit_0.24.1.bb b/poky/meta/recipes-support/p11-kit/p11-kit_0.25.0.bb
similarity index 95%
rename from poky/meta/recipes-support/p11-kit/p11-kit_0.24.1.bb
rename to poky/meta/recipes-support/p11-kit/p11-kit_0.25.0.bb
index 72b4462..ad207d0 100644
--- a/poky/meta/recipes-support/p11-kit/p11-kit_0.24.1.bb
+++ b/poky/meta/recipes-support/p11-kit/p11-kit_0.25.0.bb
@@ -11,7 +11,7 @@
 DEPENDS:append = "${@' glib-2.0' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}"
 
 SRC_URI = "git://github.com/p11-glue/p11-kit;branch=master;protocol=https"
-SRCREV = "dd0590d4e583f107e3e9fafe9ed754149da335d0"
+SRCREV = "a8cce8bd8065bbf80bd47219f85f0cd9cf27dd0c"
 S = "${WORKDIR}/git"
 
 PACKAGECONFIG ??= ""
diff --git a/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.2.bb b/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.2.bb
index 9a9b8ec..60918a3 100644
--- a/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.2.bb
+++ b/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.2.bb
@@ -7,7 +7,7 @@
 LICENSE = "GPL-2.0-or-later"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe"
 
-SRCREV = "a6c7dcda520402adb62a31b8b1c7686c5b8a4875"
+SRCREV = "4148e75284e443fc8ffaef425c467aa5523528ff"
 PV .= "+git${SRCPV}"
 
 SRC_URI = "git://git.yoctoproject.org/ptest-runner2;branch=master;protocol=https \
diff --git a/poky/meta/recipes-support/sqlite/sqlite3_3.41.2.bb b/poky/meta/recipes-support/sqlite/sqlite3_3.41.2.bb
deleted file mode 100644
index b09e8e7..0000000
--- a/poky/meta/recipes-support/sqlite/sqlite3_3.41.2.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require sqlite3.inc
-
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
-
-SRC_URI = "http://www.sqlite.org/2023/sqlite-autoconf-${SQLITE_PV}.tar.gz"
-SRC_URI[sha256sum] = "e98c100dd1da4e30fa460761dab7c0b91a50b785e167f8c57acc46514fae9499"
-
-# -19242 is only an issue in specific development branch commits
-CVE_CHECK_IGNORE += "CVE-2019-19242"
-# This is believed to be iOS specific (https://groups.google.com/g/sqlite-dev/c/U7OjAbZO6LA)
-CVE_CHECK_IGNORE += "CVE-2015-3717"
-# Issue in an experimental extension we don't have/use. Fixed by https://sqlite.org/src/info/b1e0c22ec981cf5f
-CVE_CHECK_IGNORE += "CVE-2021-36690"
diff --git a/poky/meta/recipes-support/sqlite/sqlite3_3.42.0.bb b/poky/meta/recipes-support/sqlite/sqlite3_3.42.0.bb
new file mode 100644
index 0000000..8783f62
--- /dev/null
+++ b/poky/meta/recipes-support/sqlite/sqlite3_3.42.0.bb
@@ -0,0 +1,8 @@
+require sqlite3.inc
+
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
+
+SRC_URI = "http://www.sqlite.org/2023/sqlite-autoconf-${SQLITE_PV}.tar.gz"
+SRC_URI[sha256sum] = "7abcfd161c6e2742ca5c6c0895d1f853c940f203304a0b49da4e1eca5d088ca6"
+
diff --git a/poky/meta/recipes-support/taglib/taglib_1.13.bb b/poky/meta/recipes-support/taglib/taglib_1.13.1.bb
similarity index 95%
rename from poky/meta/recipes-support/taglib/taglib_1.13.bb
rename to poky/meta/recipes-support/taglib/taglib_1.13.1.bb
index 6560bc3..3f0a759 100644
--- a/poky/meta/recipes-support/taglib/taglib_1.13.bb
+++ b/poky/meta/recipes-support/taglib/taglib_1.13.1.bb
@@ -11,7 +11,7 @@
 
 SRC_URI = "http://taglib.github.io/releases/${BP}.tar.gz"
 
-SRC_URI[sha256sum] = "58f08b4db3dc31ed152c04896ee9172d22052bc7ef12888028c01d8b1d60ade0"
+SRC_URI[sha256sum] = "c8da2b10f1bfec2cd7dbfcd33f4a2338db0765d851a50583d410bacf055cfd0b"
 
 UPSTREAM_CHECK_URI = "https://taglib.org/"
 
diff --git a/poky/meta/recipes-support/vte/vte_0.72.1.bb b/poky/meta/recipes-support/vte/vte_0.72.2.bb
similarity index 94%
rename from poky/meta/recipes-support/vte/vte_0.72.1.bb
rename to poky/meta/recipes-support/vte/vte_0.72.2.bb
index b9ff318..4249b75 100644
--- a/poky/meta/recipes-support/vte/vte_0.72.1.bb
+++ b/poky/meta/recipes-support/vte/vte_0.72.2.bb
@@ -21,7 +21,7 @@
 
 # vapigen.m4 is required when vala is not present (but the one from vala should be used normally)
 SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch"
-SRC_URI[archive.sha256sum] = "0554f9f88d56ce2d78398fcc7f69bc00e53bbbc5f694e0ae1dcaf5286f89d7e4"
+SRC_URI[archive.sha256sum] = "f7966fd185a6981f53964162b71cfef7e606495155d6f5827b72aa0dd6741c9e"
 
 ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
 
diff --git a/poky/scripts/lib/recipetool/create.py b/poky/scripts/lib/recipetool/create.py
index 824ac63..e99e071 100644
--- a/poky/scripts/lib/recipetool/create.py
+++ b/poky/scripts/lib/recipetool/create.py
@@ -745,6 +745,10 @@
     for handler in handlers:
         handler.process(srctree_use, classes, lines_before, lines_after, handled, extravalues)
 
+    # native and nativesdk classes are special and must be inherited last
+    # If present, put them at the end of the classes list
+    classes.sort(key=lambda c: c in ("native", "nativesdk"))
+
     extrafiles = extravalues.pop('extrafiles', {})
     extra_pn = extravalues.pop('PN', None)
     extra_pv = extravalues.pop('PV', None)
diff --git a/poky/scripts/lib/recipetool/create_npm.py b/poky/scripts/lib/recipetool/create_npm.py
index 3394a89..113a89f 100644
--- a/poky/scripts/lib/recipetool/create_npm.py
+++ b/poky/scripts/lib/recipetool/create_npm.py
@@ -13,6 +13,7 @@
 import tempfile
 import bb
 from bb.fetch2.npm import NpmEnvironment
+from bb.fetch2.npm import npm_package
 from bb.fetch2.npmsw import foreach_dependencies
 from recipetool.create import RecipeHandler
 from recipetool.create import get_license_md5sums
@@ -31,15 +32,6 @@
     """Class to handle the npm recipe creation"""
 
     @staticmethod
-    def _npm_name(name):
-        """Generate a Yocto friendly npm name"""
-        name = re.sub("/", "-", name)
-        name = name.lower()
-        name = re.sub(r"[^\-a-z0-9]", "", name)
-        name = name.strip("-")
-        return name
-
-    @staticmethod
     def _get_registry(lines):
         """Get the registry value from the 'npm://registry' url"""
         registry = None
@@ -142,11 +134,10 @@
                     licfiles.append(os.path.relpath(readme, srctree))
 
         # Handle the dependencies
-        def _handle_dependency(name, params, deptree):
-            suffix = "-".join([self._npm_name(dep) for dep in deptree])
-            destdirs = [os.path.join("node_modules", dep) for dep in deptree]
-            destdir = os.path.join(*destdirs)
-            packages["${PN}-" + suffix] = destdir
+        def _handle_dependency(name, params, destdir):
+            deptree = destdir.split('node_modules/')
+            suffix = "-".join([npm_package(dep) for dep in deptree])
+            packages["${PN}" + suffix] = destdir
             _licfiles_append_fallback_readme_files(destdir)
 
         with open(shrinkwrap_file, "r") as f:
@@ -155,6 +146,23 @@
         foreach_dependencies(shrinkwrap, _handle_dependency, dev)
 
         return licfiles, packages
+    
+    # Handle the peer dependencies   
+    def _handle_peer_dependency(self, shrinkwrap_file):
+        """Check if package has peer dependencies and show warning if it is the case"""
+        with open(shrinkwrap_file, "r") as f:
+            shrinkwrap = json.load(f)
+        
+        packages = shrinkwrap.get("packages", {})
+        peer_deps = packages.get("", {}).get("peerDependencies", {})
+        
+        for peer_dep in peer_deps:
+            peer_dep_yocto_name = npm_package(peer_dep)
+            bb.warn(peer_dep + " is a peer dependencie of the actual package. " + 
+            "Please add this peer dependencie to the RDEPENDS variable as %s and generate its recipe with devtool"
+            % peer_dep_yocto_name)
+
+
 
     def process(self, srctree, classes, lines_before, lines_after, handled, extravalues):
         """Handle the npm recipe creation"""
@@ -173,7 +181,7 @@
         if "name" not in data or "version" not in data:
             return False
 
-        extravalues["PN"] = self._npm_name(data["name"])
+        extravalues["PN"] = npm_package(data["name"])
         extravalues["PV"] = data["version"]
 
         if "description" in data:
@@ -242,7 +250,7 @@
             value = origvalue.replace("version=" + data["version"], "version=${PV}")
             value = value.replace("version=latest", "version=${PV}")
             values = [line.strip() for line in value.strip('\n').splitlines()]
-            if "dependencies" in shrinkwrap:
+            if "dependencies" in shrinkwrap.get("packages", {}).get("", {}):
                 values.append(url_recipe)
             return values, None, 4, False
 
@@ -292,6 +300,9 @@
         classes.append("npm")
         handled.append("buildsystem")
 
+        # Check if package has peer dependencies and inform the user
+        self._handle_peer_dependency(shrinkwrap_file)
+
         return True
 
 def register_recipe_handlers(handlers):
diff --git a/poky/scripts/lib/resulttool/resultutils.py b/poky/scripts/lib/resulttool/resultutils.py
index 7666331..c5521d8 100644
--- a/poky/scripts/lib/resulttool/resultutils.py
+++ b/poky/scripts/lib/resulttool/resultutils.py
@@ -58,7 +58,11 @@
             testseries = posixpath.basename(posixpath.dirname(url.path))
         else:
             with open(f, "r") as filedata:
-                data = json.load(filedata)
+                try:
+                    data = json.load(filedata)
+                except json.decoder.JSONDecodeError:
+                    print("Cannot decode {}. Possible corruption. Skipping.".format(f))
+                    data = ""
             testseries = os.path.basename(os.path.dirname(f))
     else:
         data = f
diff --git a/poky/scripts/oe-setup-builddir b/poky/scripts/oe-setup-builddir
index 89ae30f..678aeac 100755
--- a/poky/scripts/oe-setup-builddir
+++ b/poky/scripts/oe-setup-builddir
@@ -98,9 +98,17 @@
     SHOWYPDOC=yes
 fi
 
+if [ -z "$OECORENOTESCONF" ]; then
+    OECORENOTESCONF="$OEROOT/meta/conf/templates/default/conf-notes.txt"
+fi
+if [ ! -r "$BUILDDIR/conf/conf-notes.txt" ]; then
+    [ ! -r "$OECORENOTESCONF" ] || cp "$OECORENOTESCONF" "$BUILDDIR/conf/conf-notes.txt"
+fi
+
 # Prevent disturbing a new GIT clone in same console
 unset OECORELOCALCONF
 unset OECORELAYERCONF
+unset OECORENOTESCONF
 
 # Ending the first-time run message. Show the YP Documentation banner.
 if [ -n "$SHOWYPDOC" ]; then
@@ -116,11 +124,7 @@
 #    unset SHOWYPDOC
 fi
 
-if [ -z "$OECORENOTESCONF" ]; then
-    OECORENOTESCONF="$OEROOT/meta/conf/templates/default/conf-notes.txt"
-fi
-[ ! -r "$OECORENOTESCONF" ] || cat "$OECORENOTESCONF"
-unset OECORENOTESCONF
+[ ! -r "$BUILDDIR/conf/conf-notes.txt" ] || cat "$BUILDDIR/conf/conf-notes.txt"
 
 if [ ! -f "$BUILDDIR/conf/templateconf.cfg" ]; then
     echo "$ORG_TEMPLATECONF" >"$BUILDDIR/conf/templateconf.cfg"
diff --git a/poky/scripts/pybootchartgui/pybootchartgui/draw.py b/poky/scripts/pybootchartgui/pybootchartgui/draw.py
index e71fe09..3d1ff69 100644
--- a/poky/scripts/pybootchartgui/pybootchartgui/draw.py
+++ b/poky/scripts/pybootchartgui/pybootchartgui/draw.py
@@ -620,8 +620,8 @@
 
     return curr_y
 
-def render_processes_chart(ctx, options, trace, curr_y, w, h, sec_w):
-    chart_rect = [off_x, curr_y+header_h, w, h - curr_y - 1 * off_y - header_h  ]
+def render_processes_chart(ctx, options, trace, curr_y, width, h, sec_w):
+    chart_rect = [off_x, curr_y+header_h, width, h - curr_y - 1 * off_y - header_h  ]
 
     draw_legend_box (ctx, "Configure", \
              TASK_COLOR_CONFIGURE, off_x  , curr_y + 45, leg_s)
@@ -646,8 +646,9 @@
     offset = trace.min or min(trace.start.keys())
     for start in sorted(trace.start.keys()):
         for process in sorted(trace.start[start]):
+            elapsed_time = trace.processes[process][1] - start
             if not options.app_options.show_all and \
-                    trace.processes[process][1] - start < options.app_options.mintime:
+                    elapsed_time < options.app_options.mintime:
                 continue
             task = process.split(":")[1]
 
@@ -656,7 +657,7 @@
             #print(s)
 
             x = chart_rect[0] + (start - offset) * sec_w
-            w = ((trace.processes[process][1] - start) * sec_w)
+            w = elapsed_time * sec_w
 
             #print("proc at %s %s %s %s" % (x, y, w, proc_h))
             col = None
@@ -681,11 +682,9 @@
                 draw_fill_rect(ctx, col, (x, y, w, proc_h))
             draw_rect(ctx, PROC_BORDER_COLOR, (x, y, w, proc_h))
 
-            draw_label_in_box(ctx, PROC_TEXT_COLOR, process, x, y + proc_h - 4, w, proc_h)
-
             # Show elapsed time for each task
-            elapsed_time = f"{trace.processes[process][1] - start}s"
-            draw_text(ctx, elapsed_time, PROC_TEXT_COLOR, x + w + 4, y + proc_h - 4)
+            process = "%ds %s" % (elapsed_time, process)
+            draw_label_in_box(ctx, PROC_TEXT_COLOR, process, x, y + proc_h - 4, w, width)
 
             y = y + proc_h
 
diff --git a/poky/scripts/runqemu b/poky/scripts/runqemu
index e1aa5a9..5e6793d 100755
--- a/poky/scripts/runqemu
+++ b/poky/scripts/runqemu
@@ -648,10 +648,10 @@
                         elif fsflag == 'kernel-in-fs':
                             wic_fs = False
                         else:
-                            logger.warn('Unknown flag "%s:%s" in QB_FSINFO', fstype, fsflag)
+                            logger.warning('Unknown flag "%s:%s" in QB_FSINFO', fstype, fsflag)
                             continue
                     else:
-                        logger.warn('QB_FSINFO is not supported for image type "%s"', fstype)
+                        logger.warning('QB_FSINFO is not supported for image type "%s"', fstype)
                         continue
 
                     if fstype in self.fsinfo:
@@ -1186,7 +1186,7 @@
             gid = os.getgid()
             uid = os.getuid()
             logger.info("Setting up tap interface under sudo")
-            cmd = ('sudo', self.qemuifup, str(uid), str(gid))
+            cmd = ('sudo', self.qemuifup, str(gid))
             try:
                 tap = subprocess.check_output(cmd).decode('utf-8').strip()
             except subprocess.CalledProcessError as e:
@@ -1597,7 +1597,7 @@
             uptime_seconds = f.readline().split()[0]
         logger.info('Host uptime: %s\n' % uptime_seconds)
         if self.cleantap:
-            cmd = ('sudo', self.qemuifdown, self.tap, self.bindir_native)
+            cmd = ('sudo', self.qemuifdown, self.tap)
             logger.debug('Running %s' % str(cmd))
             subprocess.check_call(cmd)
         self.release_taplock()
diff --git a/poky/scripts/runqemu-ifdown b/poky/scripts/runqemu-ifdown
index 78be288..822a2a39 100755
--- a/poky/scripts/runqemu-ifdown
+++ b/poky/scripts/runqemu-ifdown
@@ -16,7 +16,7 @@
 #
 
 usage() {
-	echo "sudo $(basename $0) <tap-dev> <native-sysroot-basedir>"
+	echo "sudo $(basename $0) <tap-dev>"
 }
 
 if [ $EUID -ne 0 ]; then
@@ -24,15 +24,19 @@
 	exit 1
 fi
 
-if [ $# -ne 2 ]; then
+if [ $# -gt 2 ] || [ $# -lt 1 ]; then
 	usage
 	exit 1
 fi
 
-TAP=$1
-STAGING_BINDIR_NATIVE=$2
+# backward compatibility
+if [ $# -eq 2 ] ; then
+	echo "Warning: native-sysroot-basedir parameter is ignored. It is no longer needed." >&2
+fi
 
-if !ip tuntap del $TAP mode tap 2>/dev/null; then
+TAP=$1
+
+if ! ip tuntap del $TAP mode tap 2>/dev/null; then
 	echo "Error: Unable to run up tuntap del"
 	exit 1
 fi
@@ -56,8 +60,13 @@
 	echo "$IPTABLES cannot be executed"
 	exit 1
 fi
-n=$[ (`echo $TAP | sed 's/tap//'` * 2) + 1 ]
-dest=$[ (`echo $TAP | sed 's/tap//'` * 2) + 2 ]
+
+if [ -z "$OE_TAP_NAME" ]; then
+	OE_TAP_NAME=tap
+fi
+
+n=$[ (`echo $TAP | sed "s/$OE_TAP_NAME//"` * 2) + 1 ]
+dest=$[ (`echo $TAP | sed "s/$OE_TAP_NAME//"` * 2) + 2 ]
 $IPTABLES -D POSTROUTING -t nat -j MASQUERADE -s 192.168.7.$n/32
 $IPTABLES -D POSTROUTING -t nat -j MASQUERADE -s 192.168.7.$dest/32
 true
diff --git a/poky/scripts/runqemu-ifup b/poky/scripts/runqemu-ifup
index c65ceaf..05c9325 100755
--- a/poky/scripts/runqemu-ifup
+++ b/poky/scripts/runqemu-ifup
@@ -30,7 +30,7 @@
 fi
 
 if [ $# -eq 2 ]; then
-	echo "Warning: uid parameter is ignored. It is no longer needed."
+	echo "Warning: uid parameter is ignored. It is no longer needed." >&2
 	GROUP="$2"
 elif [ $# -eq 1 ]; then
 	GROUP="$1"