all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe12:628f
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: eab6ff46-5adc-4692-b3ee-7611ebec1089
        host_id: df70f2a3f3d0c26428f22685cfc722ebc48099d99e7332c39e017195
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe12:628f
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.0.99
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.25
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe12:628f
        region: null
        slot: null
  vars:
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job flake8 explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#32>'
      - '<Job flake8 explicit: None implied: None source: osism/container-images-kolla/.zuul.yaml@main#213>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 12696a522a4f4eee90e96ff821c7c3aa
      build_refs:
      - branch: main
        change: '716'
        change_message: "Update dependency packaging to v26.2\n\nThis PR contains
          the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/)
          | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|
          [packaging](https://redirect.github.com/pypa/packaging) | `==26.0` \u2192
          `==26.2` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/packaging/26.2?slim=true)
          | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/packaging/26.0/26.2?slim=true)
          |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pypa/packaging (packaging)</summary>\n\n###
          [`v26.2`](https://redirect.github.com/pypa/packaging/releases/tag/26.2)\n\n[Compare
          Source](https://redirect.github.com/pypa/packaging/compare/26.1...26.2)\n\n####
          What's Changed\n\nFixes:\n\n- Fix incorrect sysconfig var name for pyemscripten
          by [@&#8203;ryanking13](https://redirect.github.com/ryanking13) in [#&#8203;1160](https://redirect.github.com/pypa/packaging/pull/1160)\n-
          Make `Version`, `Specifier`, `SpecifierSet`, `Tag`, `Marker`, and `Requirement`
          pickle-safe\n  and backward-compatible with pickles created in 25.0-26.1
          (including references to the removed\n  `packaging._structures` module)
          by [@&#8203;eachimei](https://redirect.github.com/eachimei) and [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1163](https://redirect.github.com/pypa/packaging/pull/1163),
          [#&#8203;1168](https://redirect.github.com/pypa/packaging/pull/1168), [#&#8203;1170](https://redirect.github.com/pypa/packaging/pull/1170),
          and [#&#8203;1171](https://redirect.github.com/pypa/packaging/pull/1171)\n-
          fix: re-export ExceptionGroup for now by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1164](https://redirect.github.com/pypa/packaging/pull/1164)\n\nDocumentation:\n\n-
          docs: add errors section and fix missing details by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1159](https://redirect.github.com/pypa/packaging/pull/1159)\n-
          docs(dev): document property-based test suite by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1167](https://redirect.github.com/pypa/packaging/pull/1167)\n-
          Fix typo in DirectUrl documentation by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1169](https://redirect.github.com/pypa/packaging/pull/1169)\n-
          docs(specifiers): add is\\_unsatisfiable() usage example by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1166](https://redirect.github.com/pypa/packaging/pull/1166)\n\nInternal:\n\n-
          Enable the auditor persona on zizmor by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1158](https://redirect.github.com/pypa/packaging/pull/1158)\n-
          Test new pickle guarantees by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1174](https://redirect.github.com/pypa/packaging/pull/1174)\n-
          Use native uv integration in rtd by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1175](https://redirect.github.com/pypa/packaging/pull/1175)\n\n####
          New Contributors\n\n- [@&#8203;ryanking13](https://redirect.github.com/ryanking13)
          made their first contribution in [#&#8203;1160](https://redirect.github.com/pypa/packaging/pull/1160)\n-
          [@&#8203;eachimei](https://redirect.github.com/eachimei) made their first
          contribution in [#&#8203;1163](https://redirect.github.com/pypa/packaging/pull/1163)\n\n**Full
          Changelog**: <https://github.com/pypa/packaging/compare/26.1...26.2>\n\n###
          [`v26.1`](https://redirect.github.com/pypa/packaging/releases/tag/26.1)\n\n[Compare
          Source](https://redirect.github.com/pypa/packaging/compare/26.0...26.1)\n\nFeatures:\n\n-
          ~~PEP 783: add handling for Emscripten wheel tags by [@&#8203;hoodmane](https://redirect.github.com/hoodmane)
          in [#&#8203;804](https://redirect.github.com/pypa/packaging/pull/804)~~
          (old name used in implementation, will be fixed in next release)\n- PEP
          803: add handling for the `abi3.abi3t` free-threading tag by [@&#8203;ngoldbaum](https://redirect.github.com/ngoldbaum)
          in [#&#8203;1099](https://redirect.github.com/pypa/packaging/pull/1099)\n-
          PEP 723: add `packaging.dependency_groups` module, based on the `dependency-groups`
          package by [@&#8203;sirosen](https://redirect.github.com/sirosen) in [#&#8203;1065](https://redirect.github.com/pypa/packaging/pull/1065)\n-
          Add the `packaging.direct_url` module by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;944](https://redirect.github.com/pypa/packaging/pull/944)\n-
          Add the `packaging.errors` module by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1071](https://redirect.github.com/pypa/packaging/pull/1071)\n-
          Add `SpecifierSet.is_unsatisfiable` using ranges (new internals that will
          be expanded in future versions) by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1119](https://redirect.github.com/pypa/packaging/pull/1119)\n-
          Add `create_compatible_tags_selector` to select compatible tags by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1110](https://redirect.github.com/pypa/packaging/pull/1110)\n-
          Add a `key` argument to `SpecifierSet.filter()` by [@&#8203;frostming](https://redirect.github.com/frostming)
          in [#&#8203;1068](https://redirect.github.com/pypa/packaging/pull/1068)\n-
          Support `&` and `|` for `Marker`'s by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1146](https://redirect.github.com/pypa/packaging/pull/1146)\n-
          Normalize `Version.__replace__` and add `Version.from_parts` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1078](https://redirect.github.com/pypa/packaging/pull/1078)\n-
          Add an option to validate compressed tag set sort order in `parse_wheel_filename`
          by [@&#8203;r266-tech](https://redirect.github.com/r266-tech) in [#&#8203;1150](https://redirect.github.com/pypa/packaging/pull/1150)\n\nBehavior
          adaptations:\n\n- Narrow exclusion of pre-releases for `<V.postN` to match
          spec by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1140](https://redirect.github.com/pypa/packaging/pull/1140)\n-
          Narrow exclusion of post-releases for `>V` to match spec by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1141](https://redirect.github.com/pypa/packaging/pull/1141)\n-
          Rename `format_full_version` to `_format_full_version` to make it visibly
          private by [@&#8203;r266-tech](https://redirect.github.com/r266-tech) in
          [#&#8203;1125](https://redirect.github.com/pypa/packaging/pull/1125)\n-
          Restrict local version to ASCII by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1102](https://redirect.github.com/pypa/packaging/pull/1102)\n\nPylock
          (PEP 751) updates:\n\n- Add pylock `select` function by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1092](https://redirect.github.com/pypa/packaging/pull/1092)\n-
          Document pylock `select()` method and `PylockSelectError` by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1153](https://redirect.github.com/pypa/packaging/pull/1153)\n-
          Add `filename` property to `PackageSdist` and `PackageWheel`, more validation
          by [@&#8203;sbidoul](https://redirect.github.com/sbidoul) in [#&#8203;1095](https://redirect.github.com/pypa/packaging/pull/1095)\n-
          Give preference to path over url by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1128](https://redirect.github.com/pypa/packaging/pull/1128)\n-
          Validate name/version consistency in file names by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1114](https://redirect.github.com/pypa/packaging/pull/1114)\n\nFixes:\n\n-
          Fix `>` comparison for versions with dev+local segments by [@&#8203;veeceey](https://redirect.github.com/veeceey)
          in [#&#8203;1097](https://redirect.github.com/pypa/packaging/pull/1097)\n-
          Fix incorrect self-comparison for `InfinityType` and `NegativeInfinityType`
          by [@&#8203;bysiber](https://redirect.github.com/bysiber) in [#&#8203;1093](https://redirect.github.com/pypa/packaging/pull/1093)\n-
          Canonicalize when deduplicating specifiers in `SpecifierSet` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1109](https://redirect.github.com/pypa/packaging/pull/1109)\n-
          Fix charset error message formatting by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1121](https://redirect.github.com/pypa/packaging/pull/1121)\n-
          Handle the `key` parameter in `SpecifierSet.filter` when specifiers are
          empty and prerelease is `False` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1096](https://redirect.github.com/pypa/packaging/pull/1096)\n-
          Standardize inner components of `repr` output by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1090](https://redirect.github.com/pypa/packaging/pull/1090)\n-
          `Specifier`'s `===` uses original string, not normalized, when available
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1124](https://redirect.github.com/pypa/packaging/pull/1124)\n-
          Propagate int-max-str-digits `ValueError` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1155](https://redirect.github.com/pypa/packaging/pull/1155)\n\nPerformance:\n\n-
          Add fast path for parsing simple versions (digits and dots only) by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1082](https://redirect.github.com/pypa/packaging/pull/1082)\n-
          Add fast path for `Version` to `Version` comparison by skipping `_key` property
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1083](https://redirect.github.com/pypa/packaging/pull/1083)\n-
          Cache `Version` hash value in dedicated slot by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1118](https://redirect.github.com/pypa/packaging/pull/1118)\n-
          Overhaul `_cmpkey` to remove use of custom objects by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1116](https://redirect.github.com/pypa/packaging/pull/1116)\n-
          Skip `__replace__` in Specifier comparison if not needed by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1081](https://redirect.github.com/pypa/packaging/pull/1081)\n-
          `SpecifierSet` use `tuple` instead of `frozenset` for `_specs` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1108](https://redirect.github.com/pypa/packaging/pull/1108)\n-
          Speed up complex `SpecifierSet` filtering by implementing cost-based ordering
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1105](https://redirect.github.com/pypa/packaging/pull/1105)\n-
          Speed up wildcard comparison by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1111](https://redirect.github.com/pypa/packaging/pull/1111)\n-
          Stream PEP440 filtering in `SpecifierSet.filter` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1076](https://redirect.github.com/pypa/packaging/pull/1076)\n-
          Add `__slots__` to `Marker` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1147](https://redirect.github.com/pypa/packaging/pull/1147)\n-
          Simply `Specifier` regex by [@&#8203;sirosen](https://redirect.github.com/sirosen)
          in [#&#8203;1106](https://redirect.github.com/pypa/packaging/pull/1106)\n-
          Skip using the hash property internally by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1115](https://redirect.github.com/pypa/packaging/pull/1115)\n\nInternal:\n\n-
          Add downstream testing by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1049](https://redirect.github.com/pypa/packaging/pull/1049)\n-
          Benchmarking suite by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1059](https://redirect.github.com/pypa/packaging/pull/1059)\n-
          Benchmark variance reduction by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1107](https://redirect.github.com/pypa/packaging/pull/1107)\n-
          Add property-based tests for PEP 440 by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1144](https://redirect.github.com/pypa/packaging/pull/1144)\n-
          Clean up a few `collections.namedtuple` in tests by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1070](https://redirect.github.com/pypa/packaging/pull/1070)\n-
          Do not reload the tags module in tests by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1152](https://redirect.github.com/pypa/packaging/pull/1152)\n-
          Limit `dir()` / tab-completion in REPL by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1011](https://redirect.github.com/pypa/packaging/pull/1011)\n-
          Add more `__all__`/`__dir__` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1069](https://redirect.github.com/pypa/packaging/pull/1069)\n-
          Cleanup pre-commit a bit by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1080](https://redirect.github.com/pypa/packaging/pull/1080)\n-
          Pin pre-commit file, use dependabot by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1133](https://redirect.github.com/pypa/packaging/pull/1133)\n-
          Remove sphinx-toolbox by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1135](https://redirect.github.com/pypa/packaging/pull/1135)\n-
          Use docs group, faster readthedocs by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1061](https://redirect.github.com/pypa/packaging/pull/1061)\n-
          Add free-threaded Python to CI by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1098](https://redirect.github.com/pypa/packaging/pull/1098)\n-
          Simplify combining `SpecifierSet.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1073](https://redirect.github.com/pypa/packaging/pull/1073)\n-
          Use direct operator methods in `_compare_compatible` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1100](https://redirect.github.com/pypa/packaging/pull/1100)\n-
          Remove unnecessary if statement in `Specifier.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1074](https://redirect.github.com/pypa/packaging/pull/1074)\n-
          Remove unneeded nesting in `Specifier.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1072](https://redirect.github.com/pypa/packaging/pull/1072)\n\nDocumentation:\n\n-
          Fix documentation: grammar, typos, formatting, and outdated references by
          [@&#8203;DimitriPapadopoulos](https://redirect.github.com/DimitriPapadopoulos)
          in [#&#8203;1084](https://redirect.github.com/pypa/packaging/pull/1084)\n-
          Fix versionadded for `Version.from_parts()` by [@&#8203;Jackenmen](https://redirect.github.com/Jackenmen)
          in [#&#8203;1134](https://redirect.github.com/pypa/packaging/pull/1134)\n-
          Document `&` and `|` operators for combining `Marker` objects by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1151](https://redirect.github.com/pypa/packaging/pull/1151)\n-
          Expand and clean up `Version` documentation by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1089](https://redirect.github.com/pypa/packaging/pull/1089)\n-
          Move license docs inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1131](https://redirect.github.com/pypa/packaging/pull/1131)\n-
          Move markers inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1104](https://redirect.github.com/pypa/packaging/pull/1104)\n-
          Move tags docs to inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1130](https://redirect.github.com/pypa/packaging/pull/1130)\n-
          Move utilities inline, like other modules by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1103](https://redirect.github.com/pypa/packaging/pull/1103)\n\n####
          Benchmarks\n\nPerformance improvements since 26.0, from the new integrated
          benchmark suite:\n\n```\nuv run asv run 26.0..HEAD\n```\n\n<img width=\"908\"
          height=\"965\" alt=\"Screenshot 2026-04-13 at 11 32 14\u202FPM\" src=\"https://github.com/user-attachments/assets/3bf63569-dbbf-4f34-9660-ede3cef1745d\"
          />\n\n<img width=\"908\" height=\"479\" alt=\"Screenshot 2026-04-13 at 11
          32 43\u202FPM\" src=\"https://github.com/user-attachments/assets/f7906800-f6d9-4af6-a3f3-369b654b73e3\"
          />\n\n#### New Contributors\n\n- [@&#8203;veeceey](https://redirect.github.com/veeceey)
          made their first contribution in [#&#8203;1097](https://redirect.github.com/pypa/packaging/pull/1097)\n-
          [@&#8203;bysiber](https://redirect.github.com/bysiber) made their first
          contribution in [#&#8203;1093](https://redirect.github.com/pypa/packaging/pull/1093)\n-
          [@&#8203;sirosen](https://redirect.github.com/sirosen) made their first
          contribution in [#&#8203;1106](https://redirect.github.com/pypa/packaging/pull/1106)\n-
          [@&#8203;Jackenmen](https://redirect.github.com/Jackenmen) made their first
          contribution in [#&#8203;1134](https://redirect.github.com/pypa/packaging/pull/1134)\n-
          [@&#8203;ngoldbaum](https://redirect.github.com/ngoldbaum) made their first
          contribution in [#&#8203;1099](https://redirect.github.com/pypa/packaging/pull/1099)\n-
          [@&#8203;r266-tech](https://redirect.github.com/r266-tech) made their first
          contribution in [#&#8203;1151](https://redirect.github.com/pypa/packaging/pull/1151)\n-
          [@&#8203;hoodmane](https://redirect.github.com/hoodmane) made their first
          contribution in [#&#8203;804](https://redirect.github.com/pypa/packaging/pull/804)\n\n**Full
          Changelog**: <https://github.com/pypa/packaging/compare/26.0...26.1>\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
          At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule
          defined)\n\n\U0001F6A6 **Automerge**: Disabled by config. Please merge this
          manually once you are satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes
          conflicted, or you tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**:
          Close this PR and you won't be reminded about this update again.\n\n---\n\n
          - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this
          box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).
          View the [repository job log](https://developer.mend.io/github/osism/container-images-kolla).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE4Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
        change_url: https://github.com/osism/container-images-kolla/pull/716
        commit_id: 9fe8355311352831c1260046fbce4fe5dc73316d
        patchset: 9fe8355311352831c1260046fbce4fe5dc73316d
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-images-kolla
          name: osism/container-images-kolla
          short_name: container-images-kolla
        src_dir: src/github.com/osism/container-images-kolla
        topic: null
      buildset: 2196dd08405f4efb89f7a9b5e6d526ae
      buildset_refs:
      - branch: main
        change: '716'
        change_message: "Update dependency packaging to v26.2\n\nThis PR contains
          the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/)
          | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|
          [packaging](https://redirect.github.com/pypa/packaging) | `==26.0` \u2192
          `==26.2` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/packaging/26.2?slim=true)
          | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/packaging/26.0/26.2?slim=true)
          |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pypa/packaging (packaging)</summary>\n\n###
          [`v26.2`](https://redirect.github.com/pypa/packaging/releases/tag/26.2)\n\n[Compare
          Source](https://redirect.github.com/pypa/packaging/compare/26.1...26.2)\n\n####
          What's Changed\n\nFixes:\n\n- Fix incorrect sysconfig var name for pyemscripten
          by [@&#8203;ryanking13](https://redirect.github.com/ryanking13) in [#&#8203;1160](https://redirect.github.com/pypa/packaging/pull/1160)\n-
          Make `Version`, `Specifier`, `SpecifierSet`, `Tag`, `Marker`, and `Requirement`
          pickle-safe\n  and backward-compatible with pickles created in 25.0-26.1
          (including references to the removed\n  `packaging._structures` module)
          by [@&#8203;eachimei](https://redirect.github.com/eachimei) and [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1163](https://redirect.github.com/pypa/packaging/pull/1163),
          [#&#8203;1168](https://redirect.github.com/pypa/packaging/pull/1168), [#&#8203;1170](https://redirect.github.com/pypa/packaging/pull/1170),
          and [#&#8203;1171](https://redirect.github.com/pypa/packaging/pull/1171)\n-
          fix: re-export ExceptionGroup for now by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1164](https://redirect.github.com/pypa/packaging/pull/1164)\n\nDocumentation:\n\n-
          docs: add errors section and fix missing details by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1159](https://redirect.github.com/pypa/packaging/pull/1159)\n-
          docs(dev): document property-based test suite by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1167](https://redirect.github.com/pypa/packaging/pull/1167)\n-
          Fix typo in DirectUrl documentation by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1169](https://redirect.github.com/pypa/packaging/pull/1169)\n-
          docs(specifiers): add is\\_unsatisfiable() usage example by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1166](https://redirect.github.com/pypa/packaging/pull/1166)\n\nInternal:\n\n-
          Enable the auditor persona on zizmor by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1158](https://redirect.github.com/pypa/packaging/pull/1158)\n-
          Test new pickle guarantees by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1174](https://redirect.github.com/pypa/packaging/pull/1174)\n-
          Use native uv integration in rtd by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1175](https://redirect.github.com/pypa/packaging/pull/1175)\n\n####
          New Contributors\n\n- [@&#8203;ryanking13](https://redirect.github.com/ryanking13)
          made their first contribution in [#&#8203;1160](https://redirect.github.com/pypa/packaging/pull/1160)\n-
          [@&#8203;eachimei](https://redirect.github.com/eachimei) made their first
          contribution in [#&#8203;1163](https://redirect.github.com/pypa/packaging/pull/1163)\n\n**Full
          Changelog**: <https://github.com/pypa/packaging/compare/26.1...26.2>\n\n###
          [`v26.1`](https://redirect.github.com/pypa/packaging/releases/tag/26.1)\n\n[Compare
          Source](https://redirect.github.com/pypa/packaging/compare/26.0...26.1)\n\nFeatures:\n\n-
          ~~PEP 783: add handling for Emscripten wheel tags by [@&#8203;hoodmane](https://redirect.github.com/hoodmane)
          in [#&#8203;804](https://redirect.github.com/pypa/packaging/pull/804)~~
          (old name used in implementation, will be fixed in next release)\n- PEP
          803: add handling for the `abi3.abi3t` free-threading tag by [@&#8203;ngoldbaum](https://redirect.github.com/ngoldbaum)
          in [#&#8203;1099](https://redirect.github.com/pypa/packaging/pull/1099)\n-
          PEP 723: add `packaging.dependency_groups` module, based on the `dependency-groups`
          package by [@&#8203;sirosen](https://redirect.github.com/sirosen) in [#&#8203;1065](https://redirect.github.com/pypa/packaging/pull/1065)\n-
          Add the `packaging.direct_url` module by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;944](https://redirect.github.com/pypa/packaging/pull/944)\n-
          Add the `packaging.errors` module by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1071](https://redirect.github.com/pypa/packaging/pull/1071)\n-
          Add `SpecifierSet.is_unsatisfiable` using ranges (new internals that will
          be expanded in future versions) by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1119](https://redirect.github.com/pypa/packaging/pull/1119)\n-
          Add `create_compatible_tags_selector` to select compatible tags by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1110](https://redirect.github.com/pypa/packaging/pull/1110)\n-
          Add a `key` argument to `SpecifierSet.filter()` by [@&#8203;frostming](https://redirect.github.com/frostming)
          in [#&#8203;1068](https://redirect.github.com/pypa/packaging/pull/1068)\n-
          Support `&` and `|` for `Marker`'s by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1146](https://redirect.github.com/pypa/packaging/pull/1146)\n-
          Normalize `Version.__replace__` and add `Version.from_parts` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1078](https://redirect.github.com/pypa/packaging/pull/1078)\n-
          Add an option to validate compressed tag set sort order in `parse_wheel_filename`
          by [@&#8203;r266-tech](https://redirect.github.com/r266-tech) in [#&#8203;1150](https://redirect.github.com/pypa/packaging/pull/1150)\n\nBehavior
          adaptations:\n\n- Narrow exclusion of pre-releases for `<V.postN` to match
          spec by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1140](https://redirect.github.com/pypa/packaging/pull/1140)\n-
          Narrow exclusion of post-releases for `>V` to match spec by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1141](https://redirect.github.com/pypa/packaging/pull/1141)\n-
          Rename `format_full_version` to `_format_full_version` to make it visibly
          private by [@&#8203;r266-tech](https://redirect.github.com/r266-tech) in
          [#&#8203;1125](https://redirect.github.com/pypa/packaging/pull/1125)\n-
          Restrict local version to ASCII by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1102](https://redirect.github.com/pypa/packaging/pull/1102)\n\nPylock
          (PEP 751) updates:\n\n- Add pylock `select` function by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1092](https://redirect.github.com/pypa/packaging/pull/1092)\n-
          Document pylock `select()` method and `PylockSelectError` by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1153](https://redirect.github.com/pypa/packaging/pull/1153)\n-
          Add `filename` property to `PackageSdist` and `PackageWheel`, more validation
          by [@&#8203;sbidoul](https://redirect.github.com/sbidoul) in [#&#8203;1095](https://redirect.github.com/pypa/packaging/pull/1095)\n-
          Give preference to path over url by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1128](https://redirect.github.com/pypa/packaging/pull/1128)\n-
          Validate name/version consistency in file names by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1114](https://redirect.github.com/pypa/packaging/pull/1114)\n\nFixes:\n\n-
          Fix `>` comparison for versions with dev+local segments by [@&#8203;veeceey](https://redirect.github.com/veeceey)
          in [#&#8203;1097](https://redirect.github.com/pypa/packaging/pull/1097)\n-
          Fix incorrect self-comparison for `InfinityType` and `NegativeInfinityType`
          by [@&#8203;bysiber](https://redirect.github.com/bysiber) in [#&#8203;1093](https://redirect.github.com/pypa/packaging/pull/1093)\n-
          Canonicalize when deduplicating specifiers in `SpecifierSet` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1109](https://redirect.github.com/pypa/packaging/pull/1109)\n-
          Fix charset error message formatting by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1121](https://redirect.github.com/pypa/packaging/pull/1121)\n-
          Handle the `key` parameter in `SpecifierSet.filter` when specifiers are
          empty and prerelease is `False` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1096](https://redirect.github.com/pypa/packaging/pull/1096)\n-
          Standardize inner components of `repr` output by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1090](https://redirect.github.com/pypa/packaging/pull/1090)\n-
          `Specifier`'s `===` uses original string, not normalized, when available
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1124](https://redirect.github.com/pypa/packaging/pull/1124)\n-
          Propagate int-max-str-digits `ValueError` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1155](https://redirect.github.com/pypa/packaging/pull/1155)\n\nPerformance:\n\n-
          Add fast path for parsing simple versions (digits and dots only) by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1082](https://redirect.github.com/pypa/packaging/pull/1082)\n-
          Add fast path for `Version` to `Version` comparison by skipping `_key` property
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1083](https://redirect.github.com/pypa/packaging/pull/1083)\n-
          Cache `Version` hash value in dedicated slot by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1118](https://redirect.github.com/pypa/packaging/pull/1118)\n-
          Overhaul `_cmpkey` to remove use of custom objects by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1116](https://redirect.github.com/pypa/packaging/pull/1116)\n-
          Skip `__replace__` in Specifier comparison if not needed by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1081](https://redirect.github.com/pypa/packaging/pull/1081)\n-
          `SpecifierSet` use `tuple` instead of `frozenset` for `_specs` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1108](https://redirect.github.com/pypa/packaging/pull/1108)\n-
          Speed up complex `SpecifierSet` filtering by implementing cost-based ordering
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1105](https://redirect.github.com/pypa/packaging/pull/1105)\n-
          Speed up wildcard comparison by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1111](https://redirect.github.com/pypa/packaging/pull/1111)\n-
          Stream PEP440 filtering in `SpecifierSet.filter` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1076](https://redirect.github.com/pypa/packaging/pull/1076)\n-
          Add `__slots__` to `Marker` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1147](https://redirect.github.com/pypa/packaging/pull/1147)\n-
          Simply `Specifier` regex by [@&#8203;sirosen](https://redirect.github.com/sirosen)
          in [#&#8203;1106](https://redirect.github.com/pypa/packaging/pull/1106)\n-
          Skip using the hash property internally by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1115](https://redirect.github.com/pypa/packaging/pull/1115)\n\nInternal:\n\n-
          Add downstream testing by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1049](https://redirect.github.com/pypa/packaging/pull/1049)\n-
          Benchmarking suite by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1059](https://redirect.github.com/pypa/packaging/pull/1059)\n-
          Benchmark variance reduction by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1107](https://redirect.github.com/pypa/packaging/pull/1107)\n-
          Add property-based tests for PEP 440 by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1144](https://redirect.github.com/pypa/packaging/pull/1144)\n-
          Clean up a few `collections.namedtuple` in tests by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1070](https://redirect.github.com/pypa/packaging/pull/1070)\n-
          Do not reload the tags module in tests by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1152](https://redirect.github.com/pypa/packaging/pull/1152)\n-
          Limit `dir()` / tab-completion in REPL by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1011](https://redirect.github.com/pypa/packaging/pull/1011)\n-
          Add more `__all__`/`__dir__` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1069](https://redirect.github.com/pypa/packaging/pull/1069)\n-
          Cleanup pre-commit a bit by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1080](https://redirect.github.com/pypa/packaging/pull/1080)\n-
          Pin pre-commit file, use dependabot by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1133](https://redirect.github.com/pypa/packaging/pull/1133)\n-
          Remove sphinx-toolbox by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1135](https://redirect.github.com/pypa/packaging/pull/1135)\n-
          Use docs group, faster readthedocs by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1061](https://redirect.github.com/pypa/packaging/pull/1061)\n-
          Add free-threaded Python to CI by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1098](https://redirect.github.com/pypa/packaging/pull/1098)\n-
          Simplify combining `SpecifierSet.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1073](https://redirect.github.com/pypa/packaging/pull/1073)\n-
          Use direct operator methods in `_compare_compatible` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1100](https://redirect.github.com/pypa/packaging/pull/1100)\n-
          Remove unnecessary if statement in `Specifier.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1074](https://redirect.github.com/pypa/packaging/pull/1074)\n-
          Remove unneeded nesting in `Specifier.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1072](https://redirect.github.com/pypa/packaging/pull/1072)\n\nDocumentation:\n\n-
          Fix documentation: grammar, typos, formatting, and outdated references by
          [@&#8203;DimitriPapadopoulos](https://redirect.github.com/DimitriPapadopoulos)
          in [#&#8203;1084](https://redirect.github.com/pypa/packaging/pull/1084)\n-
          Fix versionadded for `Version.from_parts()` by [@&#8203;Jackenmen](https://redirect.github.com/Jackenmen)
          in [#&#8203;1134](https://redirect.github.com/pypa/packaging/pull/1134)\n-
          Document `&` and `|` operators for combining `Marker` objects by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1151](https://redirect.github.com/pypa/packaging/pull/1151)\n-
          Expand and clean up `Version` documentation by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1089](https://redirect.github.com/pypa/packaging/pull/1089)\n-
          Move license docs inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1131](https://redirect.github.com/pypa/packaging/pull/1131)\n-
          Move markers inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1104](https://redirect.github.com/pypa/packaging/pull/1104)\n-
          Move tags docs to inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1130](https://redirect.github.com/pypa/packaging/pull/1130)\n-
          Move utilities inline, like other modules by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1103](https://redirect.github.com/pypa/packaging/pull/1103)\n\n####
          Benchmarks\n\nPerformance improvements since 26.0, from the new integrated
          benchmark suite:\n\n```\nuv run asv run 26.0..HEAD\n```\n\n<img width=\"908\"
          height=\"965\" alt=\"Screenshot 2026-04-13 at 11 32 14\u202FPM\" src=\"https://github.com/user-attachments/assets/3bf63569-dbbf-4f34-9660-ede3cef1745d\"
          />\n\n<img width=\"908\" height=\"479\" alt=\"Screenshot 2026-04-13 at 11
          32 43\u202FPM\" src=\"https://github.com/user-attachments/assets/f7906800-f6d9-4af6-a3f3-369b654b73e3\"
          />\n\n#### New Contributors\n\n- [@&#8203;veeceey](https://redirect.github.com/veeceey)
          made their first contribution in [#&#8203;1097](https://redirect.github.com/pypa/packaging/pull/1097)\n-
          [@&#8203;bysiber](https://redirect.github.com/bysiber) made their first
          contribution in [#&#8203;1093](https://redirect.github.com/pypa/packaging/pull/1093)\n-
          [@&#8203;sirosen](https://redirect.github.com/sirosen) made their first
          contribution in [#&#8203;1106](https://redirect.github.com/pypa/packaging/pull/1106)\n-
          [@&#8203;Jackenmen](https://redirect.github.com/Jackenmen) made their first
          contribution in [#&#8203;1134](https://redirect.github.com/pypa/packaging/pull/1134)\n-
          [@&#8203;ngoldbaum](https://redirect.github.com/ngoldbaum) made their first
          contribution in [#&#8203;1099](https://redirect.github.com/pypa/packaging/pull/1099)\n-
          [@&#8203;r266-tech](https://redirect.github.com/r266-tech) made their first
          contribution in [#&#8203;1151](https://redirect.github.com/pypa/packaging/pull/1151)\n-
          [@&#8203;hoodmane](https://redirect.github.com/hoodmane) made their first
          contribution in [#&#8203;804](https://redirect.github.com/pypa/packaging/pull/804)\n\n**Full
          Changelog**: <https://github.com/pypa/packaging/compare/26.0...26.1>\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
          At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule
          defined)\n\n\U0001F6A6 **Automerge**: Disabled by config. Please merge this
          manually once you are satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes
          conflicted, or you tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**:
          Close this PR and you won't be reminded about this update again.\n\n---\n\n
          - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this
          box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).
          View the [repository job log](https://developer.mend.io/github/osism/container-images-kolla).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE4Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
        change_url: https://github.com/osism/container-images-kolla/pull/716
        commit_id: 9fe8355311352831c1260046fbce4fe5dc73316d
        patchset: 9fe8355311352831c1260046fbce4fe5dc73316d
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-images-kolla
          name: osism/container-images-kolla
          short_name: container-images-kolla
        src_dir: src/github.com/osism/container-images-kolla
        topic: null
      change: '716'
      change_message: "Update dependency packaging to v26.2\n\nThis PR contains the
        following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/)
        | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|
        [packaging](https://redirect.github.com/pypa/packaging) | `==26.0` \u2192
        `==26.2` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/packaging/26.2?slim=true)
        | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/packaging/26.0/26.2?slim=true)
        |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pypa/packaging (packaging)</summary>\n\n###
        [`v26.2`](https://redirect.github.com/pypa/packaging/releases/tag/26.2)\n\n[Compare
        Source](https://redirect.github.com/pypa/packaging/compare/26.1...26.2)\n\n####
        What's Changed\n\nFixes:\n\n- Fix incorrect sysconfig var name for pyemscripten
        by [@&#8203;ryanking13](https://redirect.github.com/ryanking13) in [#&#8203;1160](https://redirect.github.com/pypa/packaging/pull/1160)\n-
        Make `Version`, `Specifier`, `SpecifierSet`, `Tag`, `Marker`, and `Requirement`
        pickle-safe\n  and backward-compatible with pickles created in 25.0-26.1 (including
        references to the removed\n  `packaging._structures` module) by [@&#8203;eachimei](https://redirect.github.com/eachimei)
        and [@&#8203;henryiii](https://redirect.github.com/henryiii) in [#&#8203;1163](https://redirect.github.com/pypa/packaging/pull/1163),
        [#&#8203;1168](https://redirect.github.com/pypa/packaging/pull/1168), [#&#8203;1170](https://redirect.github.com/pypa/packaging/pull/1170),
        and [#&#8203;1171](https://redirect.github.com/pypa/packaging/pull/1171)\n-
        fix: re-export ExceptionGroup for now by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1164](https://redirect.github.com/pypa/packaging/pull/1164)\n\nDocumentation:\n\n-
        docs: add errors section and fix missing details by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1159](https://redirect.github.com/pypa/packaging/pull/1159)\n-
        docs(dev): document property-based test suite by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
        in [#&#8203;1167](https://redirect.github.com/pypa/packaging/pull/1167)\n-
        Fix typo in DirectUrl documentation by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
        in [#&#8203;1169](https://redirect.github.com/pypa/packaging/pull/1169)\n-
        docs(specifiers): add is\\_unsatisfiable() usage example by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
        in [#&#8203;1166](https://redirect.github.com/pypa/packaging/pull/1166)\n\nInternal:\n\n-
        Enable the auditor persona on zizmor by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1158](https://redirect.github.com/pypa/packaging/pull/1158)\n-
        Test new pickle guarantees by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1174](https://redirect.github.com/pypa/packaging/pull/1174)\n-
        Use native uv integration in rtd by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1175](https://redirect.github.com/pypa/packaging/pull/1175)\n\n####
        New Contributors\n\n- [@&#8203;ryanking13](https://redirect.github.com/ryanking13)
        made their first contribution in [#&#8203;1160](https://redirect.github.com/pypa/packaging/pull/1160)\n-
        [@&#8203;eachimei](https://redirect.github.com/eachimei) made their first
        contribution in [#&#8203;1163](https://redirect.github.com/pypa/packaging/pull/1163)\n\n**Full
        Changelog**: <https://github.com/pypa/packaging/compare/26.1...26.2>\n\n###
        [`v26.1`](https://redirect.github.com/pypa/packaging/releases/tag/26.1)\n\n[Compare
        Source](https://redirect.github.com/pypa/packaging/compare/26.0...26.1)\n\nFeatures:\n\n-
        ~~PEP 783: add handling for Emscripten wheel tags by [@&#8203;hoodmane](https://redirect.github.com/hoodmane)
        in [#&#8203;804](https://redirect.github.com/pypa/packaging/pull/804)~~ (old
        name used in implementation, will be fixed in next release)\n- PEP 803: add
        handling for the `abi3.abi3t` free-threading tag by [@&#8203;ngoldbaum](https://redirect.github.com/ngoldbaum)
        in [#&#8203;1099](https://redirect.github.com/pypa/packaging/pull/1099)\n-
        PEP 723: add `packaging.dependency_groups` module, based on the `dependency-groups`
        package by [@&#8203;sirosen](https://redirect.github.com/sirosen) in [#&#8203;1065](https://redirect.github.com/pypa/packaging/pull/1065)\n-
        Add the `packaging.direct_url` module by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
        in [#&#8203;944](https://redirect.github.com/pypa/packaging/pull/944)\n- Add
        the `packaging.errors` module by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1071](https://redirect.github.com/pypa/packaging/pull/1071)\n-
        Add `SpecifierSet.is_unsatisfiable` using ranges (new internals that will
        be expanded in future versions) by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1119](https://redirect.github.com/pypa/packaging/pull/1119)\n-
        Add `create_compatible_tags_selector` to select compatible tags by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
        in [#&#8203;1110](https://redirect.github.com/pypa/packaging/pull/1110)\n-
        Add a `key` argument to `SpecifierSet.filter()` by [@&#8203;frostming](https://redirect.github.com/frostming)
        in [#&#8203;1068](https://redirect.github.com/pypa/packaging/pull/1068)\n-
        Support `&` and `|` for `Marker`'s by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1146](https://redirect.github.com/pypa/packaging/pull/1146)\n-
        Normalize `Version.__replace__` and add `Version.from_parts` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1078](https://redirect.github.com/pypa/packaging/pull/1078)\n-
        Add an option to validate compressed tag set sort order in `parse_wheel_filename`
        by [@&#8203;r266-tech](https://redirect.github.com/r266-tech) in [#&#8203;1150](https://redirect.github.com/pypa/packaging/pull/1150)\n\nBehavior
        adaptations:\n\n- Narrow exclusion of pre-releases for `<V.postN` to match
        spec by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in
        [#&#8203;1140](https://redirect.github.com/pypa/packaging/pull/1140)\n- Narrow
        exclusion of post-releases for `>V` to match spec by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1141](https://redirect.github.com/pypa/packaging/pull/1141)\n-
        Rename `format_full_version` to `_format_full_version` to make it visibly
        private by [@&#8203;r266-tech](https://redirect.github.com/r266-tech) in [#&#8203;1125](https://redirect.github.com/pypa/packaging/pull/1125)\n-
        Restrict local version to ASCII by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1102](https://redirect.github.com/pypa/packaging/pull/1102)\n\nPylock
        (PEP 751) updates:\n\n- Add pylock `select` function by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
        in [#&#8203;1092](https://redirect.github.com/pypa/packaging/pull/1092)\n-
        Document pylock `select()` method and `PylockSelectError` by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
        in [#&#8203;1153](https://redirect.github.com/pypa/packaging/pull/1153)\n-
        Add `filename` property to `PackageSdist` and `PackageWheel`, more validation
        by [@&#8203;sbidoul](https://redirect.github.com/sbidoul) in [#&#8203;1095](https://redirect.github.com/pypa/packaging/pull/1095)\n-
        Give preference to path over url by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
        in [#&#8203;1128](https://redirect.github.com/pypa/packaging/pull/1128)\n-
        Validate name/version consistency in file names by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
        in [#&#8203;1114](https://redirect.github.com/pypa/packaging/pull/1114)\n\nFixes:\n\n-
        Fix `>` comparison for versions with dev+local segments by [@&#8203;veeceey](https://redirect.github.com/veeceey)
        in [#&#8203;1097](https://redirect.github.com/pypa/packaging/pull/1097)\n-
        Fix incorrect self-comparison for `InfinityType` and `NegativeInfinityType`
        by [@&#8203;bysiber](https://redirect.github.com/bysiber) in [#&#8203;1093](https://redirect.github.com/pypa/packaging/pull/1093)\n-
        Canonicalize when deduplicating specifiers in `SpecifierSet` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1109](https://redirect.github.com/pypa/packaging/pull/1109)\n-
        Fix charset error message formatting by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1121](https://redirect.github.com/pypa/packaging/pull/1121)\n-
        Handle the `key` parameter in `SpecifierSet.filter` when specifiers are empty
        and prerelease is `False` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1096](https://redirect.github.com/pypa/packaging/pull/1096)\n-
        Standardize inner components of `repr` output by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1090](https://redirect.github.com/pypa/packaging/pull/1090)\n-
        `Specifier`'s `===` uses original string, not normalized, when available by
        [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1124](https://redirect.github.com/pypa/packaging/pull/1124)\n-
        Propagate int-max-str-digits `ValueError` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1155](https://redirect.github.com/pypa/packaging/pull/1155)\n\nPerformance:\n\n-
        Add fast path for parsing simple versions (digits and dots only) by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1082](https://redirect.github.com/pypa/packaging/pull/1082)\n-
        Add fast path for `Version` to `Version` comparison by skipping `_key` property
        by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1083](https://redirect.github.com/pypa/packaging/pull/1083)\n-
        Cache `Version` hash value in dedicated slot by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1118](https://redirect.github.com/pypa/packaging/pull/1118)\n-
        Overhaul `_cmpkey` to remove use of custom objects by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1116](https://redirect.github.com/pypa/packaging/pull/1116)\n-
        Skip `__replace__` in Specifier comparison if not needed by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1081](https://redirect.github.com/pypa/packaging/pull/1081)\n-
        `SpecifierSet` use `tuple` instead of `frozenset` for `_specs` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1108](https://redirect.github.com/pypa/packaging/pull/1108)\n-
        Speed up complex `SpecifierSet` filtering by implementing cost-based ordering
        by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1105](https://redirect.github.com/pypa/packaging/pull/1105)\n-
        Speed up wildcard comparison by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1111](https://redirect.github.com/pypa/packaging/pull/1111)\n-
        Stream PEP440 filtering in `SpecifierSet.filter` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1076](https://redirect.github.com/pypa/packaging/pull/1076)\n-
        Add `__slots__` to `Marker` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1147](https://redirect.github.com/pypa/packaging/pull/1147)\n-
        Simply `Specifier` regex by [@&#8203;sirosen](https://redirect.github.com/sirosen)
        in [#&#8203;1106](https://redirect.github.com/pypa/packaging/pull/1106)\n-
        Skip using the hash property internally by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1115](https://redirect.github.com/pypa/packaging/pull/1115)\n\nInternal:\n\n-
        Add downstream testing by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1049](https://redirect.github.com/pypa/packaging/pull/1049)\n-
        Benchmarking suite by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1059](https://redirect.github.com/pypa/packaging/pull/1059)\n-
        Benchmark variance reduction by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1107](https://redirect.github.com/pypa/packaging/pull/1107)\n-
        Add property-based tests for PEP 440 by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1144](https://redirect.github.com/pypa/packaging/pull/1144)\n-
        Clean up a few `collections.namedtuple` in tests by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1070](https://redirect.github.com/pypa/packaging/pull/1070)\n-
        Do not reload the tags module in tests by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1152](https://redirect.github.com/pypa/packaging/pull/1152)\n-
        Limit `dir()` / tab-completion in REPL by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1011](https://redirect.github.com/pypa/packaging/pull/1011)\n-
        Add more `__all__`/`__dir__` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1069](https://redirect.github.com/pypa/packaging/pull/1069)\n-
        Cleanup pre-commit a bit by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1080](https://redirect.github.com/pypa/packaging/pull/1080)\n-
        Pin pre-commit file, use dependabot by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1133](https://redirect.github.com/pypa/packaging/pull/1133)\n-
        Remove sphinx-toolbox by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1135](https://redirect.github.com/pypa/packaging/pull/1135)\n-
        Use docs group, faster readthedocs by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1061](https://redirect.github.com/pypa/packaging/pull/1061)\n-
        Add free-threaded Python to CI by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1098](https://redirect.github.com/pypa/packaging/pull/1098)\n-
        Simplify combining `SpecifierSet.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1073](https://redirect.github.com/pypa/packaging/pull/1073)\n-
        Use direct operator methods in `_compare_compatible` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1100](https://redirect.github.com/pypa/packaging/pull/1100)\n-
        Remove unnecessary if statement in `Specifier.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1074](https://redirect.github.com/pypa/packaging/pull/1074)\n-
        Remove unneeded nesting in `Specifier.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
        in [#&#8203;1072](https://redirect.github.com/pypa/packaging/pull/1072)\n\nDocumentation:\n\n-
        Fix documentation: grammar, typos, formatting, and outdated references by
        [@&#8203;DimitriPapadopoulos](https://redirect.github.com/DimitriPapadopoulos)
        in [#&#8203;1084](https://redirect.github.com/pypa/packaging/pull/1084)\n-
        Fix versionadded for `Version.from_parts()` by [@&#8203;Jackenmen](https://redirect.github.com/Jackenmen)
        in [#&#8203;1134](https://redirect.github.com/pypa/packaging/pull/1134)\n-
        Document `&` and `|` operators for combining `Marker` objects by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
        in [#&#8203;1151](https://redirect.github.com/pypa/packaging/pull/1151)\n-
        Expand and clean up `Version` documentation by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1089](https://redirect.github.com/pypa/packaging/pull/1089)\n-
        Move license docs inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1131](https://redirect.github.com/pypa/packaging/pull/1131)\n-
        Move markers inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1104](https://redirect.github.com/pypa/packaging/pull/1104)\n-
        Move tags docs to inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1130](https://redirect.github.com/pypa/packaging/pull/1130)\n-
        Move utilities inline, like other modules by [@&#8203;henryiii](https://redirect.github.com/henryiii)
        in [#&#8203;1103](https://redirect.github.com/pypa/packaging/pull/1103)\n\n####
        Benchmarks\n\nPerformance improvements since 26.0, from the new integrated
        benchmark suite:\n\n```\nuv run asv run 26.0..HEAD\n```\n\n<img width=\"908\"
        height=\"965\" alt=\"Screenshot 2026-04-13 at 11 32 14\u202FPM\" src=\"https://github.com/user-attachments/assets/3bf63569-dbbf-4f34-9660-ede3cef1745d\"
        />\n\n<img width=\"908\" height=\"479\" alt=\"Screenshot 2026-04-13 at 11
        32 43\u202FPM\" src=\"https://github.com/user-attachments/assets/f7906800-f6d9-4af6-a3f3-369b654b73e3\"
        />\n\n#### New Contributors\n\n- [@&#8203;veeceey](https://redirect.github.com/veeceey)
        made their first contribution in [#&#8203;1097](https://redirect.github.com/pypa/packaging/pull/1097)\n-
        [@&#8203;bysiber](https://redirect.github.com/bysiber) made their first contribution
        in [#&#8203;1093](https://redirect.github.com/pypa/packaging/pull/1093)\n-
        [@&#8203;sirosen](https://redirect.github.com/sirosen) made their first contribution
        in [#&#8203;1106](https://redirect.github.com/pypa/packaging/pull/1106)\n-
        [@&#8203;Jackenmen](https://redirect.github.com/Jackenmen) made their first
        contribution in [#&#8203;1134](https://redirect.github.com/pypa/packaging/pull/1134)\n-
        [@&#8203;ngoldbaum](https://redirect.github.com/ngoldbaum) made their first
        contribution in [#&#8203;1099](https://redirect.github.com/pypa/packaging/pull/1099)\n-
        [@&#8203;r266-tech](https://redirect.github.com/r266-tech) made their first
        contribution in [#&#8203;1151](https://redirect.github.com/pypa/packaging/pull/1151)\n-
        [@&#8203;hoodmane](https://redirect.github.com/hoodmane) made their first
        contribution in [#&#8203;804](https://redirect.github.com/pypa/packaging/pull/804)\n\n**Full
        Changelog**: <https://github.com/pypa/packaging/compare/26.0...26.1>\n\n</details>\n\n---\n\n###
        Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
        At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule
        defined)\n\n\U0001F6A6 **Automerge**: Disabled by config. Please merge this
        manually once you are satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes
        conflicted, or you tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**:
        Close this PR and you won't be reminded about this update again.\n\n---\n\n
        - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this
        box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).
        View the [repository job log](https://developer.mend.io/github/osism/container-images-kolla).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE4Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
      change_url: https://github.com/osism/container-images-kolla/pull/716
      child_jobs: []
      commit_id: 9fe8355311352831c1260046fbce4fe5dc73316d
      event_id: debe1340-6ff7-11f1-86f6-f612cd21ae09
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/12696a522a4f4eee90e96ff821c7c3aa/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/12696a522a4f4eee90e96ff821c7c3aa/work/logs
        result_data_file: /var/lib/zuul/builds/12696a522a4f4eee90e96ff821c7c3aa/work/results.json
        src_root: /var/lib/zuul/builds/12696a522a4f4eee90e96ff821c7c3aa/work/src
        work_root: /var/lib/zuul/builds/12696a522a4f4eee90e96ff821c7c3aa/work
      include_vars: []
      items:
      - branch: main
        change: '716'
        change_message: "Update dependency packaging to v26.2\n\nThis PR contains
          the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/)
          | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|
          [packaging](https://redirect.github.com/pypa/packaging) | `==26.0` \u2192
          `==26.2` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/packaging/26.2?slim=true)
          | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/packaging/26.0/26.2?slim=true)
          |\n\n---\n\n### Release Notes\n\n<details>\n<summary>pypa/packaging (packaging)</summary>\n\n###
          [`v26.2`](https://redirect.github.com/pypa/packaging/releases/tag/26.2)\n\n[Compare
          Source](https://redirect.github.com/pypa/packaging/compare/26.1...26.2)\n\n####
          What's Changed\n\nFixes:\n\n- Fix incorrect sysconfig var name for pyemscripten
          by [@&#8203;ryanking13](https://redirect.github.com/ryanking13) in [#&#8203;1160](https://redirect.github.com/pypa/packaging/pull/1160)\n-
          Make `Version`, `Specifier`, `SpecifierSet`, `Tag`, `Marker`, and `Requirement`
          pickle-safe\n  and backward-compatible with pickles created in 25.0-26.1
          (including references to the removed\n  `packaging._structures` module)
          by [@&#8203;eachimei](https://redirect.github.com/eachimei) and [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1163](https://redirect.github.com/pypa/packaging/pull/1163),
          [#&#8203;1168](https://redirect.github.com/pypa/packaging/pull/1168), [#&#8203;1170](https://redirect.github.com/pypa/packaging/pull/1170),
          and [#&#8203;1171](https://redirect.github.com/pypa/packaging/pull/1171)\n-
          fix: re-export ExceptionGroup for now by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1164](https://redirect.github.com/pypa/packaging/pull/1164)\n\nDocumentation:\n\n-
          docs: add errors section and fix missing details by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1159](https://redirect.github.com/pypa/packaging/pull/1159)\n-
          docs(dev): document property-based test suite by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1167](https://redirect.github.com/pypa/packaging/pull/1167)\n-
          Fix typo in DirectUrl documentation by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1169](https://redirect.github.com/pypa/packaging/pull/1169)\n-
          docs(specifiers): add is\\_unsatisfiable() usage example by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1166](https://redirect.github.com/pypa/packaging/pull/1166)\n\nInternal:\n\n-
          Enable the auditor persona on zizmor by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1158](https://redirect.github.com/pypa/packaging/pull/1158)\n-
          Test new pickle guarantees by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1174](https://redirect.github.com/pypa/packaging/pull/1174)\n-
          Use native uv integration in rtd by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1175](https://redirect.github.com/pypa/packaging/pull/1175)\n\n####
          New Contributors\n\n- [@&#8203;ryanking13](https://redirect.github.com/ryanking13)
          made their first contribution in [#&#8203;1160](https://redirect.github.com/pypa/packaging/pull/1160)\n-
          [@&#8203;eachimei](https://redirect.github.com/eachimei) made their first
          contribution in [#&#8203;1163](https://redirect.github.com/pypa/packaging/pull/1163)\n\n**Full
          Changelog**: <https://github.com/pypa/packaging/compare/26.1...26.2>\n\n###
          [`v26.1`](https://redirect.github.com/pypa/packaging/releases/tag/26.1)\n\n[Compare
          Source](https://redirect.github.com/pypa/packaging/compare/26.0...26.1)\n\nFeatures:\n\n-
          ~~PEP 783: add handling for Emscripten wheel tags by [@&#8203;hoodmane](https://redirect.github.com/hoodmane)
          in [#&#8203;804](https://redirect.github.com/pypa/packaging/pull/804)~~
          (old name used in implementation, will be fixed in next release)\n- PEP
          803: add handling for the `abi3.abi3t` free-threading tag by [@&#8203;ngoldbaum](https://redirect.github.com/ngoldbaum)
          in [#&#8203;1099](https://redirect.github.com/pypa/packaging/pull/1099)\n-
          PEP 723: add `packaging.dependency_groups` module, based on the `dependency-groups`
          package by [@&#8203;sirosen](https://redirect.github.com/sirosen) in [#&#8203;1065](https://redirect.github.com/pypa/packaging/pull/1065)\n-
          Add the `packaging.direct_url` module by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;944](https://redirect.github.com/pypa/packaging/pull/944)\n-
          Add the `packaging.errors` module by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1071](https://redirect.github.com/pypa/packaging/pull/1071)\n-
          Add `SpecifierSet.is_unsatisfiable` using ranges (new internals that will
          be expanded in future versions) by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1119](https://redirect.github.com/pypa/packaging/pull/1119)\n-
          Add `create_compatible_tags_selector` to select compatible tags by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1110](https://redirect.github.com/pypa/packaging/pull/1110)\n-
          Add a `key` argument to `SpecifierSet.filter()` by [@&#8203;frostming](https://redirect.github.com/frostming)
          in [#&#8203;1068](https://redirect.github.com/pypa/packaging/pull/1068)\n-
          Support `&` and `|` for `Marker`'s by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1146](https://redirect.github.com/pypa/packaging/pull/1146)\n-
          Normalize `Version.__replace__` and add `Version.from_parts` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1078](https://redirect.github.com/pypa/packaging/pull/1078)\n-
          Add an option to validate compressed tag set sort order in `parse_wheel_filename`
          by [@&#8203;r266-tech](https://redirect.github.com/r266-tech) in [#&#8203;1150](https://redirect.github.com/pypa/packaging/pull/1150)\n\nBehavior
          adaptations:\n\n- Narrow exclusion of pre-releases for `<V.postN` to match
          spec by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1140](https://redirect.github.com/pypa/packaging/pull/1140)\n-
          Narrow exclusion of post-releases for `>V` to match spec by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1141](https://redirect.github.com/pypa/packaging/pull/1141)\n-
          Rename `format_full_version` to `_format_full_version` to make it visibly
          private by [@&#8203;r266-tech](https://redirect.github.com/r266-tech) in
          [#&#8203;1125](https://redirect.github.com/pypa/packaging/pull/1125)\n-
          Restrict local version to ASCII by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1102](https://redirect.github.com/pypa/packaging/pull/1102)\n\nPylock
          (PEP 751) updates:\n\n- Add pylock `select` function by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1092](https://redirect.github.com/pypa/packaging/pull/1092)\n-
          Document pylock `select()` method and `PylockSelectError` by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1153](https://redirect.github.com/pypa/packaging/pull/1153)\n-
          Add `filename` property to `PackageSdist` and `PackageWheel`, more validation
          by [@&#8203;sbidoul](https://redirect.github.com/sbidoul) in [#&#8203;1095](https://redirect.github.com/pypa/packaging/pull/1095)\n-
          Give preference to path over url by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1128](https://redirect.github.com/pypa/packaging/pull/1128)\n-
          Validate name/version consistency in file names by [@&#8203;sbidoul](https://redirect.github.com/sbidoul)
          in [#&#8203;1114](https://redirect.github.com/pypa/packaging/pull/1114)\n\nFixes:\n\n-
          Fix `>` comparison for versions with dev+local segments by [@&#8203;veeceey](https://redirect.github.com/veeceey)
          in [#&#8203;1097](https://redirect.github.com/pypa/packaging/pull/1097)\n-
          Fix incorrect self-comparison for `InfinityType` and `NegativeInfinityType`
          by [@&#8203;bysiber](https://redirect.github.com/bysiber) in [#&#8203;1093](https://redirect.github.com/pypa/packaging/pull/1093)\n-
          Canonicalize when deduplicating specifiers in `SpecifierSet` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1109](https://redirect.github.com/pypa/packaging/pull/1109)\n-
          Fix charset error message formatting by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1121](https://redirect.github.com/pypa/packaging/pull/1121)\n-
          Handle the `key` parameter in `SpecifierSet.filter` when specifiers are
          empty and prerelease is `False` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1096](https://redirect.github.com/pypa/packaging/pull/1096)\n-
          Standardize inner components of `repr` output by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1090](https://redirect.github.com/pypa/packaging/pull/1090)\n-
          `Specifier`'s `===` uses original string, not normalized, when available
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1124](https://redirect.github.com/pypa/packaging/pull/1124)\n-
          Propagate int-max-str-digits `ValueError` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1155](https://redirect.github.com/pypa/packaging/pull/1155)\n\nPerformance:\n\n-
          Add fast path for parsing simple versions (digits and dots only) by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1082](https://redirect.github.com/pypa/packaging/pull/1082)\n-
          Add fast path for `Version` to `Version` comparison by skipping `_key` property
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1083](https://redirect.github.com/pypa/packaging/pull/1083)\n-
          Cache `Version` hash value in dedicated slot by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1118](https://redirect.github.com/pypa/packaging/pull/1118)\n-
          Overhaul `_cmpkey` to remove use of custom objects by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1116](https://redirect.github.com/pypa/packaging/pull/1116)\n-
          Skip `__replace__` in Specifier comparison if not needed by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1081](https://redirect.github.com/pypa/packaging/pull/1081)\n-
          `SpecifierSet` use `tuple` instead of `frozenset` for `_specs` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1108](https://redirect.github.com/pypa/packaging/pull/1108)\n-
          Speed up complex `SpecifierSet` filtering by implementing cost-based ordering
          by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw) in [#&#8203;1105](https://redirect.github.com/pypa/packaging/pull/1105)\n-
          Speed up wildcard comparison by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1111](https://redirect.github.com/pypa/packaging/pull/1111)\n-
          Stream PEP440 filtering in `SpecifierSet.filter` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1076](https://redirect.github.com/pypa/packaging/pull/1076)\n-
          Add `__slots__` to `Marker` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1147](https://redirect.github.com/pypa/packaging/pull/1147)\n-
          Simply `Specifier` regex by [@&#8203;sirosen](https://redirect.github.com/sirosen)
          in [#&#8203;1106](https://redirect.github.com/pypa/packaging/pull/1106)\n-
          Skip using the hash property internally by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1115](https://redirect.github.com/pypa/packaging/pull/1115)\n\nInternal:\n\n-
          Add downstream testing by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1049](https://redirect.github.com/pypa/packaging/pull/1049)\n-
          Benchmarking suite by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1059](https://redirect.github.com/pypa/packaging/pull/1059)\n-
          Benchmark variance reduction by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1107](https://redirect.github.com/pypa/packaging/pull/1107)\n-
          Add property-based tests for PEP 440 by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1144](https://redirect.github.com/pypa/packaging/pull/1144)\n-
          Clean up a few `collections.namedtuple` in tests by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1070](https://redirect.github.com/pypa/packaging/pull/1070)\n-
          Do not reload the tags module in tests by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1152](https://redirect.github.com/pypa/packaging/pull/1152)\n-
          Limit `dir()` / tab-completion in REPL by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1011](https://redirect.github.com/pypa/packaging/pull/1011)\n-
          Add more `__all__`/`__dir__` by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1069](https://redirect.github.com/pypa/packaging/pull/1069)\n-
          Cleanup pre-commit a bit by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1080](https://redirect.github.com/pypa/packaging/pull/1080)\n-
          Pin pre-commit file, use dependabot by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1133](https://redirect.github.com/pypa/packaging/pull/1133)\n-
          Remove sphinx-toolbox by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1135](https://redirect.github.com/pypa/packaging/pull/1135)\n-
          Use docs group, faster readthedocs by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1061](https://redirect.github.com/pypa/packaging/pull/1061)\n-
          Add free-threaded Python to CI by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1098](https://redirect.github.com/pypa/packaging/pull/1098)\n-
          Simplify combining `SpecifierSet.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1073](https://redirect.github.com/pypa/packaging/pull/1073)\n-
          Use direct operator methods in `_compare_compatible` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1100](https://redirect.github.com/pypa/packaging/pull/1100)\n-
          Remove unnecessary if statement in `Specifier.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1074](https://redirect.github.com/pypa/packaging/pull/1074)\n-
          Remove unneeded nesting in `Specifier.prereleases` by [@&#8203;notatallshaw](https://redirect.github.com/notatallshaw)
          in [#&#8203;1072](https://redirect.github.com/pypa/packaging/pull/1072)\n\nDocumentation:\n\n-
          Fix documentation: grammar, typos, formatting, and outdated references by
          [@&#8203;DimitriPapadopoulos](https://redirect.github.com/DimitriPapadopoulos)
          in [#&#8203;1084](https://redirect.github.com/pypa/packaging/pull/1084)\n-
          Fix versionadded for `Version.from_parts()` by [@&#8203;Jackenmen](https://redirect.github.com/Jackenmen)
          in [#&#8203;1134](https://redirect.github.com/pypa/packaging/pull/1134)\n-
          Document `&` and `|` operators for combining `Marker` objects by [@&#8203;r266-tech](https://redirect.github.com/r266-tech)
          in [#&#8203;1151](https://redirect.github.com/pypa/packaging/pull/1151)\n-
          Expand and clean up `Version` documentation by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1089](https://redirect.github.com/pypa/packaging/pull/1089)\n-
          Move license docs inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1131](https://redirect.github.com/pypa/packaging/pull/1131)\n-
          Move markers inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1104](https://redirect.github.com/pypa/packaging/pull/1104)\n-
          Move tags docs to inline by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1130](https://redirect.github.com/pypa/packaging/pull/1130)\n-
          Move utilities inline, like other modules by [@&#8203;henryiii](https://redirect.github.com/henryiii)
          in [#&#8203;1103](https://redirect.github.com/pypa/packaging/pull/1103)\n\n####
          Benchmarks\n\nPerformance improvements since 26.0, from the new integrated
          benchmark suite:\n\n```\nuv run asv run 26.0..HEAD\n```\n\n<img width=\"908\"
          height=\"965\" alt=\"Screenshot 2026-04-13 at 11 32 14\u202FPM\" src=\"https://github.com/user-attachments/assets/3bf63569-dbbf-4f34-9660-ede3cef1745d\"
          />\n\n<img width=\"908\" height=\"479\" alt=\"Screenshot 2026-04-13 at 11
          32 43\u202FPM\" src=\"https://github.com/user-attachments/assets/f7906800-f6d9-4af6-a3f3-369b654b73e3\"
          />\n\n#### New Contributors\n\n- [@&#8203;veeceey](https://redirect.github.com/veeceey)
          made their first contribution in [#&#8203;1097](https://redirect.github.com/pypa/packaging/pull/1097)\n-
          [@&#8203;bysiber](https://redirect.github.com/bysiber) made their first
          contribution in [#&#8203;1093](https://redirect.github.com/pypa/packaging/pull/1093)\n-
          [@&#8203;sirosen](https://redirect.github.com/sirosen) made their first
          contribution in [#&#8203;1106](https://redirect.github.com/pypa/packaging/pull/1106)\n-
          [@&#8203;Jackenmen](https://redirect.github.com/Jackenmen) made their first
          contribution in [#&#8203;1134](https://redirect.github.com/pypa/packaging/pull/1134)\n-
          [@&#8203;ngoldbaum](https://redirect.github.com/ngoldbaum) made their first
          contribution in [#&#8203;1099](https://redirect.github.com/pypa/packaging/pull/1099)\n-
          [@&#8203;r266-tech](https://redirect.github.com/r266-tech) made their first
          contribution in [#&#8203;1151](https://redirect.github.com/pypa/packaging/pull/1151)\n-
          [@&#8203;hoodmane](https://redirect.github.com/hoodmane) made their first
          contribution in [#&#8203;804](https://redirect.github.com/pypa/packaging/pull/804)\n\n**Full
          Changelog**: <https://github.com/pypa/packaging/compare/26.0...26.1>\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
          At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule
          defined)\n\n\U0001F6A6 **Automerge**: Disabled by config. Please merge this
          manually once you are satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes
          conflicted, or you tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**:
          Close this PR and you won't be reminded about this update again.\n\n---\n\n
          - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this
          box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).
          View the [repository job log](https://developer.mend.io/github/osism/container-images-kolla).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE4Mi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
        change_url: https://github.com/osism/container-images-kolla/pull/716
        commit_id: 9fe8355311352831c1260046fbce4fe5dc73316d
        patchset: 9fe8355311352831c1260046fbce4fe5dc73316d
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-images-kolla
          name: osism/container-images-kolla
          short_name: container-images-kolla
          src_dir: src/github.com/osism/container-images-kolla
        topic: null
      job: flake8
      jobtags: []
      max_attempts: 3
      message: VXBkYXRlIGRlcGVuZGVuY3kgcGFja2FnaW5nIHRvIHYyNi4yCgpUaGlzIFBSIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgdXBkYXRlczoKCnwgUGFja2FnZSB8IENoYW5nZSB8IFtBZ2VdKGh0dHBzOi8vZG9jcy5yZW5vdmF0ZWJvdC5jb20vbWVyZ2UtY29uZmlkZW5jZS8pIHwgW0NvbmZpZGVuY2VdKGh0dHBzOi8vZG9jcy5yZW5vdmF0ZWJvdC5jb20vbWVyZ2UtY29uZmlkZW5jZS8pIHwKfC0tLXwtLS18LS0tfC0tLXwKfCBbcGFja2FnaW5nXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcpIHwgYD09MjYuMGAg4oaSIGA9PTI2LjJgIHwgIVthZ2VdKGh0dHBzOi8vZGV2ZWxvcGVyLm1lbmQuaW8vYXBpL21jL2JhZGdlcy9hZ2UvcHlwaS9wYWNrYWdpbmcvMjYuMj9zbGltPXRydWUpIHwgIVtjb25maWRlbmNlXShodHRwczovL2RldmVsb3Blci5tZW5kLmlvL2FwaS9tYy9iYWRnZXMvY29uZmlkZW5jZS9weXBpL3BhY2thZ2luZy8yNi4wLzI2LjI/c2xpbT10cnVlKSB8CgotLS0KCiMjIyBSZWxlYXNlIE5vdGVzCgo8ZGV0YWlscz4KPHN1bW1hcnk+cHlwYS9wYWNrYWdpbmcgKHBhY2thZ2luZyk8L3N1bW1hcnk+CgojIyMgW2B2MjYuMmBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9yZWxlYXNlcy90YWcvMjYuMikKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL2NvbXBhcmUvMjYuMS4uLjI2LjIpCgojIyMjIFdoYXQncyBDaGFuZ2VkCgpGaXhlczoKCi0gRml4IGluY29ycmVjdCBzeXNjb25maWcgdmFyIG5hbWUgZm9yIHB5ZW1zY3JpcHRlbiBieSBbQCYjODIwMztyeWFua2luZzEzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcnlhbmtpbmcxMykgaW4gWyMmIzgyMDM7MTE2MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTE2MCkKLSBNYWtlIGBWZXJzaW9uYCwgYFNwZWNpZmllcmAsIGBTcGVjaWZpZXJTZXRgLCBgVGFnYCwgYE1hcmtlcmAsIGFuZCBgUmVxdWlyZW1lbnRgIHBpY2tsZS1zYWZlCiAgYW5kIGJhY2t3YXJkLWNvbXBhdGlibGUgd2l0aCBwaWNrbGVzIGNyZWF0ZWQgaW4gMjUuMC0yNi4xIChpbmNsdWRpbmcgcmVmZXJlbmNlcyB0byB0aGUgcmVtb3ZlZAogIGBwYWNrYWdpbmcuX3N0cnVjdHVyZXNgIG1vZHVsZSkgYnkgW0AmIzgyMDM7ZWFjaGltZWldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9lYWNoaW1laSkgYW5kIFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzExNjNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExNjMpLCBbIyYjODIwMzsxMTY4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTY4KSwgWyMmIzgyMDM7MTE3MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTE3MCksIGFuZCBbIyYjODIwMzsxMTcxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTcxKQotIGZpeDogcmUtZXhwb3J0IEV4Y2VwdGlvbkdyb3VwIGZvciBub3cgYnkgW0AmIzgyMDM7aGVucnlpaWldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9oZW5yeWlpaSkgaW4gWyMmIzgyMDM7MTE2NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTE2NCkKCkRvY3VtZW50YXRpb246CgotIGRvY3M6IGFkZCBlcnJvcnMgc2VjdGlvbiBhbmQgZml4IG1pc3NpbmcgZGV0YWlscyBieSBbQCYjODIwMztoZW5yeWlpaV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hlbnJ5aWlpKSBpbiBbIyYjODIwMzsxMTU5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTU5KQotIGRvY3MoZGV2KTogZG9jdW1lbnQgcHJvcGVydHktYmFzZWQgdGVzdCBzdWl0ZSBieSBbQCYjODIwMztyMjY2LXRlY2hdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9yMjY2LXRlY2gpIGluIFsjJiM4MjAzOzExNjddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExNjcpCi0gRml4IHR5cG8gaW4gRGlyZWN0VXJsIGRvY3VtZW50YXRpb24gYnkgW0AmIzgyMDM7c2JpZG91bF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3NiaWRvdWwpIGluIFsjJiM4MjAzOzExNjldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExNjkpCi0gZG9jcyhzcGVjaWZpZXJzKTogYWRkIGlzXF91bnNhdGlzZmlhYmxlKCkgdXNhZ2UgZXhhbXBsZSBieSBbQCYjODIwMztyMjY2LXRlY2hdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9yMjY2LXRlY2gpIGluIFsjJiM4MjAzOzExNjZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExNjYpCgpJbnRlcm5hbDoKCi0gRW5hYmxlIHRoZSBhdWRpdG9yIHBlcnNvbmEgb24geml6bW9yIGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzExNThdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExNTgpCi0gVGVzdCBuZXcgcGlja2xlIGd1YXJhbnRlZXMgYnkgW0AmIzgyMDM7aGVucnlpaWldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9oZW5yeWlpaSkgaW4gWyMmIzgyMDM7MTE3NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTE3NCkKLSBVc2UgbmF0aXZlIHV2IGludGVncmF0aW9uIGluIHJ0ZCBieSBbQCYjODIwMztoZW5yeWlpaV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hlbnJ5aWlpKSBpbiBbIyYjODIwMzsxMTc1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTc1KQoKIyMjIyBOZXcgQ29udHJpYnV0b3JzCgotIFtAJiM4MjAzO3J5YW5raW5nMTNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9yeWFua2luZzEzKSBtYWRlIHRoZWlyIGZpcnN0IGNvbnRyaWJ1dGlvbiBpbiBbIyYjODIwMzsxMTYwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTYwKQotIFtAJiM4MjAzO2VhY2hpbWVpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZWFjaGltZWkpIG1hZGUgdGhlaXIgZmlyc3QgY29udHJpYnV0aW9uIGluIFsjJiM4MjAzOzExNjNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExNjMpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IDxodHRwczovL2dpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvY29tcGFyZS8yNi4xLi4uMjYuMj4KCiMjIyBbYHYyNi4xYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3JlbGVhc2VzL3RhZy8yNi4xKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvY29tcGFyZS8yNi4wLi4uMjYuMSkKCkZlYXR1cmVzOgoKLSB+flBFUCA3ODM6IGFkZCBoYW5kbGluZyBmb3IgRW1zY3JpcHRlbiB3aGVlbCB0YWdzIGJ5IFtAJiM4MjAzO2hvb2RtYW5lXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaG9vZG1hbmUpIGluIFsjJiM4MjAzOzgwNF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvODA0KX5+IChvbGQgbmFtZSB1c2VkIGluIGltcGxlbWVudGF0aW9uLCB3aWxsIGJlIGZpeGVkIGluIG5leHQgcmVsZWFzZSkKLSBQRVAgODAzOiBhZGQgaGFuZGxpbmcgZm9yIHRoZSBgYWJpMy5hYmkzdGAgZnJlZS10aHJlYWRpbmcgdGFnIGJ5IFtAJiM4MjAzO25nb2xkYmF1bV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL25nb2xkYmF1bSkgaW4gWyMmIzgyMDM7MTA5OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA5OSkKLSBQRVAgNzIzOiBhZGQgYHBhY2thZ2luZy5kZXBlbmRlbmN5X2dyb3Vwc2AgbW9kdWxlLCBiYXNlZCBvbiB0aGUgYGRlcGVuZGVuY3ktZ3JvdXBzYCBwYWNrYWdlIGJ5IFtAJiM4MjAzO3Npcm9zZW5dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9zaXJvc2VuKSBpbiBbIyYjODIwMzsxMDY1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDY1KQotIEFkZCB0aGUgYHBhY2thZ2luZy5kaXJlY3RfdXJsYCBtb2R1bGUgYnkgW0AmIzgyMDM7c2JpZG91bF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3NiaWRvdWwpIGluIFsjJiM4MjAzOzk0NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvOTQ0KQotIEFkZCB0aGUgYHBhY2thZ2luZy5lcnJvcnNgIG1vZHVsZSBieSBbQCYjODIwMztoZW5yeWlpaV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hlbnJ5aWlpKSBpbiBbIyYjODIwMzsxMDcxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDcxKQotIEFkZCBgU3BlY2lmaWVyU2V0LmlzX3Vuc2F0aXNmaWFibGVgIHVzaW5nIHJhbmdlcyAobmV3IGludGVybmFscyB0aGF0IHdpbGwgYmUgZXhwYW5kZWQgaW4gZnV0dXJlIHZlcnNpb25zKSBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzExMTldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMTkpCi0gQWRkIGBjcmVhdGVfY29tcGF0aWJsZV90YWdzX3NlbGVjdG9yYCB0byBzZWxlY3QgY29tcGF0aWJsZSB0YWdzIGJ5IFtAJiM4MjAzO3NiaWRvdWxdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9zYmlkb3VsKSBpbiBbIyYjODIwMzsxMTEwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTEwKQotIEFkZCBhIGBrZXlgIGFyZ3VtZW50IHRvIGBTcGVjaWZpZXJTZXQuZmlsdGVyKClgIGJ5IFtAJiM4MjAzO2Zyb3N0bWluZ10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Zyb3N0bWluZykgaW4gWyMmIzgyMDM7MTA2OF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA2OCkKLSBTdXBwb3J0IGAmYCBhbmQgYHxgIGZvciBgTWFya2VyYCdzIGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzExNDZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExNDYpCi0gTm9ybWFsaXplIGBWZXJzaW9uLl9fcmVwbGFjZV9fYCBhbmQgYWRkIGBWZXJzaW9uLmZyb21fcGFydHNgIGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzEwNzhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwNzgpCi0gQWRkIGFuIG9wdGlvbiB0byB2YWxpZGF0ZSBjb21wcmVzc2VkIHRhZyBzZXQgc29ydCBvcmRlciBpbiBgcGFyc2Vfd2hlZWxfZmlsZW5hbWVgIGJ5IFtAJiM4MjAzO3IyNjYtdGVjaF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3IyNjYtdGVjaCkgaW4gWyMmIzgyMDM7MTE1MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTE1MCkKCkJlaGF2aW9yIGFkYXB0YXRpb25zOgoKLSBOYXJyb3cgZXhjbHVzaW9uIG9mIHByZS1yZWxlYXNlcyBmb3IgYDxWLnBvc3ROYCB0byBtYXRjaCBzcGVjIGJ5IFtAJiM4MjAzO25vdGF0YWxsc2hhd10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL25vdGF0YWxsc2hhdykgaW4gWyMmIzgyMDM7MTE0MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTE0MCkKLSBOYXJyb3cgZXhjbHVzaW9uIG9mIHBvc3QtcmVsZWFzZXMgZm9yIGA+VmAgdG8gbWF0Y2ggc3BlYyBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzExNDFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExNDEpCi0gUmVuYW1lIGBmb3JtYXRfZnVsbF92ZXJzaW9uYCB0byBgX2Zvcm1hdF9mdWxsX3ZlcnNpb25gIHRvIG1ha2UgaXQgdmlzaWJseSBwcml2YXRlIGJ5IFtAJiM4MjAzO3IyNjYtdGVjaF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3IyNjYtdGVjaCkgaW4gWyMmIzgyMDM7MTEyNV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTEyNSkKLSBSZXN0cmljdCBsb2NhbCB2ZXJzaW9uIHRvIEFTQ0lJIGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzExMDJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMDIpCgpQeWxvY2sgKFBFUCA3NTEpIHVwZGF0ZXM6CgotIEFkZCBweWxvY2sgYHNlbGVjdGAgZnVuY3Rpb24gYnkgW0AmIzgyMDM7c2JpZG91bF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3NiaWRvdWwpIGluIFsjJiM4MjAzOzEwOTJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwOTIpCi0gRG9jdW1lbnQgcHlsb2NrIGBzZWxlY3QoKWAgbWV0aG9kIGFuZCBgUHlsb2NrU2VsZWN0RXJyb3JgIGJ5IFtAJiM4MjAzO3IyNjYtdGVjaF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3IyNjYtdGVjaCkgaW4gWyMmIzgyMDM7MTE1M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTE1MykKLSBBZGQgYGZpbGVuYW1lYCBwcm9wZXJ0eSB0byBgUGFja2FnZVNkaXN0YCBhbmQgYFBhY2thZ2VXaGVlbGAsIG1vcmUgdmFsaWRhdGlvbiBieSBbQCYjODIwMztzYmlkb3VsXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vc2JpZG91bCkgaW4gWyMmIzgyMDM7MTA5NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA5NSkKLSBHaXZlIHByZWZlcmVuY2UgdG8gcGF0aCBvdmVyIHVybCBieSBbQCYjODIwMztzYmlkb3VsXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vc2JpZG91bCkgaW4gWyMmIzgyMDM7MTEyOF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTEyOCkKLSBWYWxpZGF0ZSBuYW1lL3ZlcnNpb24gY29uc2lzdGVuY3kgaW4gZmlsZSBuYW1lcyBieSBbQCYjODIwMztzYmlkb3VsXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vc2JpZG91bCkgaW4gWyMmIzgyMDM7MTExNF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTExNCkKCkZpeGVzOgoKLSBGaXggYD5gIGNvbXBhcmlzb24gZm9yIHZlcnNpb25zIHdpdGggZGV2K2xvY2FsIHNlZ21lbnRzIGJ5IFtAJiM4MjAzO3ZlZWNlZXldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS92ZWVjZWV5KSBpbiBbIyYjODIwMzsxMDk3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDk3KQotIEZpeCBpbmNvcnJlY3Qgc2VsZi1jb21wYXJpc29uIGZvciBgSW5maW5pdHlUeXBlYCBhbmQgYE5lZ2F0aXZlSW5maW5pdHlUeXBlYCBieSBbQCYjODIwMztieXNpYmVyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYnlzaWJlcikgaW4gWyMmIzgyMDM7MTA5M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA5MykKLSBDYW5vbmljYWxpemUgd2hlbiBkZWR1cGxpY2F0aW5nIHNwZWNpZmllcnMgaW4gYFNwZWNpZmllclNldGAgYnkgW0AmIzgyMDM7bm90YXRhbGxzaGF3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbm90YXRhbGxzaGF3KSBpbiBbIyYjODIwMzsxMTA5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTA5KQotIEZpeCBjaGFyc2V0IGVycm9yIG1lc3NhZ2UgZm9ybWF0dGluZyBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzExMjFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMjEpCi0gSGFuZGxlIHRoZSBga2V5YCBwYXJhbWV0ZXIgaW4gYFNwZWNpZmllclNldC5maWx0ZXJgIHdoZW4gc3BlY2lmaWVycyBhcmUgZW1wdHkgYW5kIHByZXJlbGVhc2UgaXMgYEZhbHNlYCBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzEwOTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwOTYpCi0gU3RhbmRhcmRpemUgaW5uZXIgY29tcG9uZW50cyBvZiBgcmVwcmAgb3V0cHV0IGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzEwOTBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwOTApCi0gYFNwZWNpZmllcmAncyBgPT09YCB1c2VzIG9yaWdpbmFsIHN0cmluZywgbm90IG5vcm1hbGl6ZWQsIHdoZW4gYXZhaWxhYmxlIGJ5IFtAJiM4MjAzO25vdGF0YWxsc2hhd10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL25vdGF0YWxsc2hhdykgaW4gWyMmIzgyMDM7MTEyNF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTEyNCkKLSBQcm9wYWdhdGUgaW50LW1heC1zdHItZGlnaXRzIGBWYWx1ZUVycm9yYCBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzExNTVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExNTUpCgpQZXJmb3JtYW5jZToKCi0gQWRkIGZhc3QgcGF0aCBmb3IgcGFyc2luZyBzaW1wbGUgdmVyc2lvbnMgKGRpZ2l0cyBhbmQgZG90cyBvbmx5KSBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzEwODJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwODIpCi0gQWRkIGZhc3QgcGF0aCBmb3IgYFZlcnNpb25gIHRvIGBWZXJzaW9uYCBjb21wYXJpc29uIGJ5IHNraXBwaW5nIGBfa2V5YCBwcm9wZXJ0eSBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzEwODNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwODMpCi0gQ2FjaGUgYFZlcnNpb25gIGhhc2ggdmFsdWUgaW4gZGVkaWNhdGVkIHNsb3QgYnkgW0AmIzgyMDM7bm90YXRhbGxzaGF3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbm90YXRhbGxzaGF3KSBpbiBbIyYjODIwMzsxMTE4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTE4KQotIE92ZXJoYXVsIGBfY21wa2V5YCB0byByZW1vdmUgdXNlIG9mIGN1c3RvbSBvYmplY3RzIGJ5IFtAJiM4MjAzO25vdGF0YWxsc2hhd10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL25vdGF0YWxsc2hhdykgaW4gWyMmIzgyMDM7MTExNl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTExNikKLSBTa2lwIGBfX3JlcGxhY2VfX2AgaW4gU3BlY2lmaWVyIGNvbXBhcmlzb24gaWYgbm90IG5lZWRlZCBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzEwODFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwODEpCi0gYFNwZWNpZmllclNldGAgdXNlIGB0dXBsZWAgaW5zdGVhZCBvZiBgZnJvemVuc2V0YCBmb3IgYF9zcGVjc2AgYnkgW0AmIzgyMDM7bm90YXRhbGxzaGF3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbm90YXRhbGxzaGF3KSBpbiBbIyYjODIwMzsxMTA4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTA4KQotIFNwZWVkIHVwIGNvbXBsZXggYFNwZWNpZmllclNldGAgZmlsdGVyaW5nIGJ5IGltcGxlbWVudGluZyBjb3N0LWJhc2VkIG9yZGVyaW5nIGJ5IFtAJiM4MjAzO25vdGF0YWxsc2hhd10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL25vdGF0YWxsc2hhdykgaW4gWyMmIzgyMDM7MTEwNV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTEwNSkKLSBTcGVlZCB1cCB3aWxkY2FyZCBjb21wYXJpc29uIGJ5IFtAJiM4MjAzO25vdGF0YWxsc2hhd10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL25vdGF0YWxsc2hhdykgaW4gWyMmIzgyMDM7MTExMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTExMSkKLSBTdHJlYW0gUEVQNDQwIGZpbHRlcmluZyBpbiBgU3BlY2lmaWVyU2V0LmZpbHRlcmAgYnkgW0AmIzgyMDM7bm90YXRhbGxzaGF3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbm90YXRhbGxzaGF3KSBpbiBbIyYjODIwMzsxMDc2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDc2KQotIEFkZCBgX19zbG90c19fYCB0byBgTWFya2VyYCBieSBbQCYjODIwMztoZW5yeWlpaV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hlbnJ5aWlpKSBpbiBbIyYjODIwMzsxMTQ3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTQ3KQotIFNpbXBseSBgU3BlY2lmaWVyYCByZWdleCBieSBbQCYjODIwMztzaXJvc2VuXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vc2lyb3NlbikgaW4gWyMmIzgyMDM7MTEwNl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTEwNikKLSBTa2lwIHVzaW5nIHRoZSBoYXNoIHByb3BlcnR5IGludGVybmFsbHkgYnkgW0AmIzgyMDM7bm90YXRhbGxzaGF3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbm90YXRhbGxzaGF3KSBpbiBbIyYjODIwMzsxMTE1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTE1KQoKSW50ZXJuYWw6CgotIEFkZCBkb3duc3RyZWFtIHRlc3RpbmcgYnkgW0AmIzgyMDM7aGVucnlpaWldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9oZW5yeWlpaSkgaW4gWyMmIzgyMDM7MTA0OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA0OSkKLSBCZW5jaG1hcmtpbmcgc3VpdGUgYnkgW0AmIzgyMDM7aGVucnlpaWldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9oZW5yeWlpaSkgaW4gWyMmIzgyMDM7MTA1OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA1OSkKLSBCZW5jaG1hcmsgdmFyaWFuY2UgcmVkdWN0aW9uIGJ5IFtAJiM4MjAzO25vdGF0YWxsc2hhd10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL25vdGF0YWxsc2hhdykgaW4gWyMmIzgyMDM7MTEwN10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTEwNykKLSBBZGQgcHJvcGVydHktYmFzZWQgdGVzdHMgZm9yIFBFUCA0NDAgYnkgW0AmIzgyMDM7bm90YXRhbGxzaGF3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbm90YXRhbGxzaGF3KSBpbiBbIyYjODIwMzsxMTQ0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTQ0KQotIENsZWFuIHVwIGEgZmV3IGBjb2xsZWN0aW9ucy5uYW1lZHR1cGxlYCBpbiB0ZXN0cyBieSBbQCYjODIwMztoZW5yeWlpaV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2hlbnJ5aWlpKSBpbiBbIyYjODIwMzsxMDcwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDcwKQotIERvIG5vdCByZWxvYWQgdGhlIHRhZ3MgbW9kdWxlIGluIHRlc3RzIGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzExNTJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExNTIpCi0gTGltaXQgYGRpcigpYCAvIHRhYi1jb21wbGV0aW9uIGluIFJFUEwgYnkgW0AmIzgyMDM7aGVucnlpaWldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9oZW5yeWlpaSkgaW4gWyMmIzgyMDM7MTAxMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTAxMSkKLSBBZGQgbW9yZSBgX19hbGxfX2AvYF9fZGlyX19gIGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzEwNjldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwNjkpCi0gQ2xlYW51cCBwcmUtY29tbWl0IGEgYml0IGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzEwODBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwODApCi0gUGluIHByZS1jb21taXQgZmlsZSwgdXNlIGRlcGVuZGFib3QgYnkgW0AmIzgyMDM7aGVucnlpaWldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9oZW5yeWlpaSkgaW4gWyMmIzgyMDM7MTEzM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTEzMykKLSBSZW1vdmUgc3BoaW54LXRvb2xib3ggYnkgW0AmIzgyMDM7aGVucnlpaWldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9oZW5yeWlpaSkgaW4gWyMmIzgyMDM7MTEzNV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTEzNSkKLSBVc2UgZG9jcyBncm91cCwgZmFzdGVyIHJlYWR0aGVkb2NzIGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzEwNjFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwNjEpCi0gQWRkIGZyZWUtdGhyZWFkZWQgUHl0aG9uIHRvIENJIGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzEwOThdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwOTgpCi0gU2ltcGxpZnkgY29tYmluaW5nIGBTcGVjaWZpZXJTZXQucHJlcmVsZWFzZXNgIGJ5IFtAJiM4MjAzO25vdGF0YWxsc2hhd10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL25vdGF0YWxsc2hhdykgaW4gWyMmIzgyMDM7MTA3M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA3MykKLSBVc2UgZGlyZWN0IG9wZXJhdG9yIG1ldGhvZHMgaW4gYF9jb21wYXJlX2NvbXBhdGlibGVgIGJ5IFtAJiM4MjAzO25vdGF0YWxsc2hhd10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL25vdGF0YWxsc2hhdykgaW4gWyMmIzgyMDM7MTEwMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTEwMCkKLSBSZW1vdmUgdW5uZWNlc3NhcnkgaWYgc3RhdGVtZW50IGluIGBTcGVjaWZpZXIucHJlcmVsZWFzZXNgIGJ5IFtAJiM4MjAzO25vdGF0YWxsc2hhd10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL25vdGF0YWxsc2hhdykgaW4gWyMmIzgyMDM7MTA3NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA3NCkKLSBSZW1vdmUgdW5uZWVkZWQgbmVzdGluZyBpbiBgU3BlY2lmaWVyLnByZXJlbGVhc2VzYCBieSBbQCYjODIwMztub3RhdGFsbHNoYXddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ub3RhdGFsbHNoYXcpIGluIFsjJiM4MjAzOzEwNzJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwNzIpCgpEb2N1bWVudGF0aW9uOgoKLSBGaXggZG9jdW1lbnRhdGlvbjogZ3JhbW1hciwgdHlwb3MsIGZvcm1hdHRpbmcsIGFuZCBvdXRkYXRlZCByZWZlcmVuY2VzIGJ5IFtAJiM4MjAzO0RpbWl0cmlQYXBhZG9wb3Vsb3NdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9EaW1pdHJpUGFwYWRvcG91bG9zKSBpbiBbIyYjODIwMzsxMDg0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDg0KQotIEZpeCB2ZXJzaW9uYWRkZWQgZm9yIGBWZXJzaW9uLmZyb21fcGFydHMoKWAgYnkgW0AmIzgyMDM7SmFja2VubWVuXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vSmFja2VubWVuKSBpbiBbIyYjODIwMzsxMTM0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTM0KQotIERvY3VtZW50IGAmYCBhbmQgYHxgIG9wZXJhdG9ycyBmb3IgY29tYmluaW5nIGBNYXJrZXJgIG9iamVjdHMgYnkgW0AmIzgyMDM7cjI2Ni10ZWNoXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcjI2Ni10ZWNoKSBpbiBbIyYjODIwMzsxMTUxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTUxKQotIEV4cGFuZCBhbmQgY2xlYW4gdXAgYFZlcnNpb25gIGRvY3VtZW50YXRpb24gYnkgW0AmIzgyMDM7aGVucnlpaWldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9oZW5yeWlpaSkgaW4gWyMmIzgyMDM7MTA4OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTA4OSkKLSBNb3ZlIGxpY2Vuc2UgZG9jcyBpbmxpbmUgYnkgW0AmIzgyMDM7aGVucnlpaWldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9oZW5yeWlpaSkgaW4gWyMmIzgyMDM7MTEzMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTEzMSkKLSBNb3ZlIG1hcmtlcnMgaW5saW5lIGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzExMDRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMDQpCi0gTW92ZSB0YWdzIGRvY3MgdG8gaW5saW5lIGJ5IFtAJiM4MjAzO2hlbnJ5aWlpXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaGVucnlpaWkpIGluIFsjJiM4MjAzOzExMzBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzExMzApCi0gTW92ZSB1dGlsaXRpZXMgaW5saW5lLCBsaWtlIG90aGVyIG1vZHVsZXMgYnkgW0AmIzgyMDM7aGVucnlpaWldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9oZW5yeWlpaSkgaW4gWyMmIzgyMDM7MTEwM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTEwMykKCiMjIyMgQmVuY2htYXJrcwoKUGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzIHNpbmNlIDI2LjAsIGZyb20gdGhlIG5ldyBpbnRlZ3JhdGVkIGJlbmNobWFyayBzdWl0ZToKCmBgYAp1diBydW4gYXN2IHJ1biAyNi4wLi5IRUFECmBgYAoKPGltZyB3aWR0aD0iOTA4IiBoZWlnaHQ9Ijk2NSIgYWx0PSJTY3JlZW5zaG90IDIwMjYtMDQtMTMgYXQgMTEgMzIgMTTigK9QTSIgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vdXNlci1hdHRhY2htZW50cy9hc3NldHMvM2JmNjM1NjktZGJiZi00ZjM0LTk2NjAtZWRlM2NlZjE3NDVkIiAvPgoKPGltZyB3aWR0aD0iOTA4IiBoZWlnaHQ9IjQ3OSIgYWx0PSJTY3JlZW5zaG90IDIwMjYtMDQtMTMgYXQgMTEgMzIgNDPigK9QTSIgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vdXNlci1hdHRhY2htZW50cy9hc3NldHMvZjc5MDY4MDAtZjZkOS00YWY2LWEzZjMtMzY5YjY1NGI3M2UzIiAvPgoKIyMjIyBOZXcgQ29udHJpYnV0b3JzCgotIFtAJiM4MjAzO3ZlZWNlZXldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS92ZWVjZWV5KSBtYWRlIHRoZWlyIGZpcnN0IGNvbnRyaWJ1dGlvbiBpbiBbIyYjODIwMzsxMDk3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDk3KQotIFtAJiM4MjAzO2J5c2liZXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ieXNpYmVyKSBtYWRlIHRoZWlyIGZpcnN0IGNvbnRyaWJ1dGlvbiBpbiBbIyYjODIwMzsxMDkzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMDkzKQotIFtAJiM4MjAzO3Npcm9zZW5dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9zaXJvc2VuKSBtYWRlIHRoZWlyIGZpcnN0IGNvbnRyaWJ1dGlvbiBpbiBbIyYjODIwMzsxMTA2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTA2KQotIFtAJiM4MjAzO0phY2tlbm1lbl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL0phY2tlbm1lbikgbWFkZSB0aGVpciBmaXJzdCBjb250cmlidXRpb24gaW4gWyMmIzgyMDM7MTEzNF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvMTEzNCkKLSBbQCYjODIwMztuZ29sZGJhdW1dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9uZ29sZGJhdW0pIG1hZGUgdGhlaXIgZmlyc3QgY29udHJpYnV0aW9uIGluIFsjJiM4MjAzOzEwOTldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9weXBhL3BhY2thZ2luZy9wdWxsLzEwOTkpCi0gW0AmIzgyMDM7cjI2Ni10ZWNoXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcjI2Ni10ZWNoKSBtYWRlIHRoZWlyIGZpcnN0IGNvbnRyaWJ1dGlvbiBpbiBbIyYjODIwMzsxMTUxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcHlwYS9wYWNrYWdpbmcvcHVsbC8xMTUxKQotIFtAJiM4MjAzO2hvb2RtYW5lXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vaG9vZG1hbmUpIG1hZGUgdGhlaXIgZmlyc3QgY29udHJpYnV0aW9uIGluIFsjJiM4MjAzOzgwNF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL3B1bGwvODA0KQoKKipGdWxsIENoYW5nZWxvZyoqOiA8aHR0cHM6Ly9naXRodWIuY29tL3B5cGEvcGFja2FnaW5nL2NvbXBhcmUvMjYuMC4uLjI2LjE+Cgo8L2RldGFpbHM+CgotLS0KCiMjIyBDb25maWd1cmF0aW9uCgrwn5OFICoqU2NoZWR1bGUqKjogKFVUQykKCi0gQnJhbmNoIGNyZWF0aW9uCiAgLSBBdCBhbnkgdGltZSAobm8gc2NoZWR1bGUgZGVmaW5lZCkKLSBBdXRvbWVyZ2UKICAtIEF0IGFueSB0aW1lIChubyBzY2hlZHVsZSBkZWZpbmVkKQoK8J+apiAqKkF1dG9tZXJnZSoqOiBEaXNhYmxlZCBieSBjb25maWcuIFBsZWFzZSBtZXJnZSB0aGlzIG1hbnVhbGx5IG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQuCgrimbsgKipSZWJhc2luZyoqOiBXaGVuZXZlciBQUiBiZWNvbWVzIGNvbmZsaWN0ZWQsIG9yIHlvdSB0aWNrIHRoZSByZWJhc2UvcmV0cnkgY2hlY2tib3guCgrwn5SVICoqSWdub3JlKio6IENsb3NlIHRoaXMgUFIgYW5kIHlvdSB3b24ndCBiZSByZW1pbmRlZCBhYm91dCB0aGlzIHVwZGF0ZSBhZ2Fpbi4KCi0tLQoKIC0gWyBdIDwhLS0gcmViYXNlLWNoZWNrIC0tPklmIHlvdSB3YW50IHRvIHJlYmFzZS9yZXRyeSB0aGlzIFBSLCBjaGVjayB0aGlzIGJveAoKLS0tCgpUaGlzIFBSIHdhcyBnZW5lcmF0ZWQgYnkgW01lbmQgUmVub3ZhdGVdKGh0dHBzOi8vbWVuZC5pby9yZW5vdmF0ZS8pLiBWaWV3IHRoZSBbcmVwb3NpdG9yeSBqb2IgbG9nXShodHRwczovL2RldmVsb3Blci5tZW5kLmlvL2dpdGh1Yi9vc2lzbS9jb250YWluZXItaW1hZ2VzLWtvbGxhKS4KPCEtLXJlbm92YXRlLWRlYnVnOmV5SmpjbVZoZEdWa1NXNVdaWElpT2lJME15NHhNVEF1TWlJc0luVndaR0YwWldSSmJsWmxjaUk2SWpRekxqRTRNaTR5SWl3aWRHRnlaMlYwUW5KaGJtTm9Jam9pYldGcGJpSXNJbXhoWW1Wc2N5STZXeUp5Wlc1dmRtRjBaU0pkZlE9PS0tPgo=
      patchset: 9fe8355311352831c1260046fbce4fe5dc73316d
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 3d5c7b5973754999f7005857a00ce9168944f0f1
          trusted/project_1/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 038dd8b856c62af4433c8477c5cb3d0480847059
          trusted/project_2/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 0c74c57cedff2b36bb37ca68a5338d1c49991496
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 0c74c57cedff2b36bb37ca68a5338d1c49991496
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 3d5c7b5973754999f7005857a00ce9168944f0f1
          untrusted/project_2/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 038dd8b856c62af4433c8477c5cb3d0480847059
        playbooks:
        - path: untrusted/project_0/github.com/osism/zuul-jobs/playbooks/flake8/run.yaml
          roles:
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_0/zuul-config
            link_target: untrusted/project_1/github.com/osism/zuul-config
            role_path: ansible/playbook_0/role_0/zuul-config/roles
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/playbook_0/role_1/openinfra-zuul-jobs
            link_target: untrusted/project_2/github.com/osism/openinfra-zuul-jobs
            role_path: ansible/playbook_0/role_1/openinfra-zuul-jobs/roles
          - checkout: main
            checkout_description: playbook branch
            link_name: ansible/playbook_0/role_2/zuul-jobs
            link_target: untrusted/project_0/github.com/osism/zuul-jobs
            role_path: ansible/playbook_0/role_2/zuul-jobs/roles
      post_review: false
      post_timeout: 1800
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/container-images-kolla
        name: osism/container-images-kolla
        short_name: container-images-kolla
        src_dir: src/github.com/osism/container-images-kolla
      projects:
        github.com/osism/container-images-kolla:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-images-kolla
          checkout: main
          checkout_description: zuul branch
          commit: fec1d21a1d0d7559a585e7ef5cd99566de7e3963
          name: osism/container-images-kolla
          required: false
          short_name: container-images-kolla
          src_dir: src/github.com/osism/container-images-kolla
      ref: refs/pull/716/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
