all:
  hosts:
    ubuntu-noble:
      ansible_connection: ssh
      ansible_host: 81.163.193.171
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 026eb204-08ee-4b38-87af-729de8a7d385
        host_id: df70f2a3f3d0c26428f22685cfc722ebc48099d99e7332c39e017195
        interface_ip: 81.163.193.171
        label: ubuntu-noble
        private_ipv4: 10.128.7.104
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.171
        public_ipv6: ''
        region: null
        slot: null
  vars:
    zuul:
      _inheritance_path:
      - '<Job base branches: None source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job python-black branches: None source: osism/zuul-jobs/.zuul.yaml@main#54>'
      - '<Job python-black branches: None source: osism/testbed/.zuul.yaml@main#195>'
      ansible_version: '8'
      attempts: 1
      branch: main
      build: 2076cc12e9a341d79100c96798811c05
      buildset: b1d0418a44e9425eb03b0553e12542a2
      change: '2615'
      change_message: "chore(deps): update dependency gruntwork-io/terragrunt to v0.76.2\n\
        \nThis PR contains the following updates:\n\n| Package | Update | Change |\n\
        |---|---|---|\n| [gruntwork-io/terragrunt](https://redirect.github.com/gruntwork-io/terragrunt)\
        \ | minor | `v0.73.15` -> `v0.76.2` |\n\n---\n\n### Release Notes\n\n<details>\n\
        <summary>gruntwork-io/terragrunt (gruntwork-io/terragrunt)</summary>\n\n###\
        \ [`v0.76.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.76.2)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.76.1...v0.76.2)\n\
        \n#### \u2728 New Features\n\nAdded `--no-stack-generate` support in `stack\
        \ run` and `stack output`, allowing users to disable automatic stack regeneration\
        \ before executing commands. This provides greater control over execution\
        \ by enabling operations to run using the existing `.terragrunt-stack` directory,\
        \ improving efficiency and avoiding unnecessary updates.\n\n#### What's Changed\n\
        \n-   feat: Added `--no-stack-generate` cli flag to skip stack generation\
        \ by [@&#8203;denis256](https://redirect.github.com/denis256) in [https://github.com/gruntwork-io/terragrunt/pull/4039](https://redirect.github.com/gruntwork-io/terragrunt/pull/4039)\n\
        -   chroe: Stack tests improvements by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4033](https://redirect.github.com/gruntwork-io/terragrunt/pull/4033)\n\
        -   chrore: Adding `.cursor` to `.gitignore` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4040](https://redirect.github.com/gruntwork-io/terragrunt/pull/4040)\n\
        -   docs: Adding docs for `--all` and `--graph` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4036](https://redirect.github.com/gruntwork-io/terragrunt/pull/4036)\n\
        -   docs: Move `info` to a better location by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4037](https://redirect.github.com/gruntwork-io/terragrunt/pull/4037)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.76.1...v0.76.2\n\
        \n### [`v0.76.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.76.1)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.76.0...v0.76.1)\n\
        \n#### \u2728 New Features\n\nIntroduced `no_dot_terragrunt_stack` support\
        \ in `stack` and `unit`, allowing users to opt out of generating `.terragrunt-stack`\
        \ directories. This enables seamless adoption of `terragrunt.stack.hcl` without\
        \ requiring state migration for existing infrastructure.\n\nDemo:\n![no_dot_terragrunt_stack_example_release_example](https://redirect.github.com/user-attachments/assets/546d281b-3dbb-4cb8-afd3-9b98b75b4f02)\n\
        \nStacks RFC: [https://github.com/gruntwork-io/terragrunt/issues/3313](https://redirect.github.com/gruntwork-io/terragrunt/issues/3313)\n\
        \n#### What's Changed\n\n-   feat: added support for support for `no_dot_terragrunt_stack`\
        \ in `stack` and `unit` blocks by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4019](https://redirect.github.com/gruntwork-io/terragrunt/pull/4019)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.76.0...v0.76.1\n\
        \n### [`v0.76.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.76.0)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.10...v0.76.0)\n\
        \n#### \u2728 New Features / \U0001F6E0\uFE0F Breaking Changes\n\n##### Catalog/Scaffold\
        \ no longer requires `--root-file-name root.hcl`\n\n\u2728 The `catalog` and\
        \ `scaffold` commands will now attempt to discover a parent `root.hcl` file\
        \ by default and use it as the default root Terragrunt configuration when\
        \ present to help users adopt the changes in [migrating-from-root-terragrunt-hcl](https://terragrunt.gruntwork.io/docs/migrate/migrating-from-root-terragrunt-hcl/).\n\
        \nUsers that have switched over to use `root.hcl` as the root of their Terragrunt\
        \ configurations instead of `terragrunt.hcl` will no longer need to explicitly\
        \ pass `--root-file-name root.hcl` or use the [root-terragrunt-hcl](https://terragrunt.gruntwork.io/docs/reference/strict-mode/#root-terragrunt-hcl)\
        \ strict control to automatically discover the root of their Terragrunt configurations\
        \ when using `catalog` or `scaffold`.\n\n\U0001F6E0\uFE0F Note that this is\
        \ technically a breaking change to the way that `catalog` and `scaffold` work.\
        \ With this change, users that have *both* a `root.hcl` file and a `terragrunt.hcl`\
        \ file at the root of their repositories will have the `root.hcl` file used\
        \ instead of the `terragrunt.hcl` file for the `catalog` and `scaffold` commands.\n\
        \nIf you are not yet ready to rename the `terragrunt.hcl` file at the root\
        \ of your repository, use the `--root-file-name` flag to explicitly provide\
        \ `terragrunt.hcl` as the name of the Terragrunt configuration at the root\
        \ of your Terragrunt project.\n\nThis change was made as most users are very\
        \ unlikely to have *both* `root.hcl` (the recommended root of Terragrunt configurations)\
        \ and `terragrunt.hcl` (the legacy root of Terragrunt configurations in the\
        \ same Terragrunt project) at the root of their Terragrunt project. This configuration\
        \ is entirely CLI based, making it relatively easy to address for users (as\
        \ opposed to HCL configurations, which might take more time for teams to address).\n\
        \nUsers looking to move from a root `terragrunt.hcl` file to a `root.hcl`\
        \ file will still need to read through the migration guide to adjust all usages\
        \ of `find_in_parent_folders` when making the switch.\n\n#### What's Changed\n\
        \n-   fix: Lookup root.hcl if present by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4022](https://redirect.github.com/gruntwork-io/terragrunt/pull/4022)\n\
        -   fix: Improving logic for scaffold default root discovery by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4029](https://redirect.github.com/gruntwork-io/terragrunt/pull/4029)\n\
        -   fix: Fixing configuration parsing order link by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4021](https://redirect.github.com/gruntwork-io/terragrunt/pull/4021)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.10...v0.76.0\n\
        \n### [`v0.75.10`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.10)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.9...v0.75.10)\n\
        \n#### What's Changed\n\n-   fix: addressing `gopls` findings by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4018](https://redirect.github.com/gruntwork-io/terragrunt/pull/4018)\n\
        -   build(deps): bump golang.org/x/net from 0.35.0 to 0.36.0 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4013](https://redirect.github.com/gruntwork-io/terragrunt/pull/4013)\n\
        -   build(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc\
        \ to 1.35.0 update by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4020](https://redirect.github.com/gruntwork-io/terragrunt/pull/4020)\n\
        -   build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 to 1.78.1 update\
        \ by [@&#8203;denis256](https://redirect.github.com/denis256) in [https://github.com/gruntwork-io/terragrunt/pull/4020](https://redirect.github.com/gruntwork-io/terragrunt/pull/4020)\n\
        -   build(deps): bump golang.org/x/mod to 0.24.0 update by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4020](https://redirect.github.com/gruntwork-io/terragrunt/pull/4020)\n\
        -   build(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc\
        \ to 1.35.0 update by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4020](https://redirect.github.com/gruntwork-io/terragrunt/pull/4020)\n\
        -   build(deps): bump go.opentelemetry.io/otel to 1.35.0 update by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4020](https://redirect.github.com/gruntwork-io/terragrunt/pull/4020)\n\
        -   build(deps): bump github.com/gruntwork-io/terragrunt-engine-go to v0.0.11\
        \ update by [@&#8203;denis256](https://redirect.github.com/denis256) in [https://github.com/gruntwork-io/terragrunt/pull/4020](https://redirect.github.com/gruntwork-io/terragrunt/pull/4020)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.9...v0.75.10\n\
        \n### [`v0.75.9`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.9)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.8...v0.75.9)\n\
        \n#### \U0001F41B Bug fixes\n\n##### Using absolute paths for `mark_as_read`\n\
        \nThe internal store for the values `mark_as_read` was tracking now use absolute\
        \ paths instead of \"canonical paths\". The result of this is that even if\
        \ you are using tooling like `run_cmd` to dynamically discover files to mark\
        \ as read, you should still expect `--queue-include-units-reading` to work\
        \ correctly.\n\n#### What's Changed\n\n-   fix: Use abs path for `mark_as_read`\
        \ by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [https://github.com/gruntwork-io/terragrunt/pull/4015](https://redirect.github.com/gruntwork-io/terragrunt/pull/4015)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.8...v0.75.9\n\
        \n### [`v0.75.8`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.8)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.7...v0.75.8)\n\
        \n#### What's Changed\n\n-   feat: added support for`  --source-map ` when\
        \ downloading units and stacks by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4011](https://redirect.github.com/gruntwork-io/terragrunt/pull/4011)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.7...v0.75.8\n\
        \n### [`v0.75.7`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.7)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.6...v0.75.7)\n\
        \n#### \u2728 New Features\n\n##### `find` supports `dag` sorting\n\nThe `find`\
        \ command now supports the ability to sort results by their relative positions\
        \ in the Directed Acyclic Graph (DAG).\n\nTo use the `find` command, you must\
        \ enable the [`cli-redesign` experiment](https://terragrunt.gruntwork.io/docs/reference/experiments/#cli-redesign).\n\
        \n![tg-find-no-dag](https://redirect.github.com/user-attachments/assets/36366dde-0581-47a9-a4f7-94b06f9df0bb)\n\
        \n![tg-find-dag](https://redirect.github.com/user-attachments/assets/01d0eeb1-75be-43e2-8657-77ff4cf46c18)\n\
        \nThe `find` command now also supports discovering dependencies of units with\
        \ the new `--dependencies` flag.\n\n![tg-find-dag-deps](https://redirect.github.com/user-attachments/assets/1ea9c5a8-3d03-4075-b6c8-8fa9ce68274c)\n\
        \nIn addition, external dependencies (dependencies outside the working directory\
        \ where `find` was run), can be discovered using the `--external` flag.\n\n\
        ![tg-find-dag-ext](https://redirect.github.com/user-attachments/assets/92c90bde-62bc-4145-a04e-e27ba6884f9a)\n\
        \nMore information can be found [in the `find` docs](https://terragrunt.gruntwork.io/docs/reference/cli-options/#find-sorting).\n\
        \n##### The `stack run` command now supports all `run` flags\n\nThe `stack\
        \ run` command now supports all the same flags `run` supports, including `--queue-include-dir`.\n\
        \nTo use `stack` commands, you must enable the [`stacks`](https://terragrunt.gruntwork.io/docs/reference/experiments/#stacks)\
        \ experiment.\n\nAs an example of what's supported now:\n\n```bash\nterragrunt\
        \ --experiment stacks stack run apply --queue-strict-include --queue-include-dir=./.terragrunt-stack/app1\
        \ --non-interactive\n```\n\nMore information can be found [in the `stack run`\
        \ docs](https://terragrunt.gruntwork.io/docs/reference/cli-options/#stack-run).\n\
        \n#### What's Changed\n\n-   feat: Support all `run` cli flags in the Stack\
        \ command by [@&#8203;denis256](https://redirect.github.com/denis256) in [https://github.com/gruntwork-io/terragrunt/pull/4005](https://redirect.github.com/gruntwork-io/terragrunt/pull/4005)\n\
        -   feat: Adding DAG support to find by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4001](https://redirect.github.com/gruntwork-io/terragrunt/pull/4001)\n\
        -   fix: Upgrading `golangci-lint` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3987](https://redirect.github.com/gruntwork-io/terragrunt/pull/3987)\n\
        -   fix: Reducing noise for skipped dependency inputs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4007](https://redirect.github.com/gruntwork-io/terragrunt/pull/4007)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.6...v0.75.7\n\
        \n### [`v0.75.6`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.6)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.5...v0.75.6)\n\
        \n#### \u2728 New Features\n\n##### IaC Engine Dependency Support\n\nIaC Engines\
        \ are now used during dependency evaluation when enabled. This results in\
        \ more coverage by IaC engines when enabled, reducing the reliance on the\
        \ presence of OpenTofu/Terraform on host machines when using IaC Engines.\n\
        \nThanks to [@&#8203;partcyborg](https://redirect.github.com/partcyborg) for\
        \ submitting this change.\n\n#### \U0001F697 Performance Improvements\n\n\
        Generation of `terragrunt.stack.hcl` files are now done in parallel. This\
        \ can result in significant speedups for users with multiple units or nested\
        \ stacks in `terragrunt.stack.hcl` files.\n\n#### What's Changed\n\n-   feat:\
        \ add engine support to dependencies by [@&#8203;partcyborg](https://redirect.github.com/partcyborg)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3974](https://redirect.github.com/gruntwork-io/terragrunt/pull/3974)\n\
        -   feat: engine config in dependencies improvements by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4002](https://redirect.github.com/gruntwork-io/terragrunt/pull/4002)\n\
        -   feat: added support for parallel stacks generation by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3999](https://redirect.github.com/gruntwork-io/terragrunt/pull/3999)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.5...v0.75.6\n\
        \n### [`v0.75.5`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.5)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.4...v0.75.5)\n\
        \n#### \u2728 New Features\n\nThis release introduces experimental support\
        \ for the Terragrunt Content Addressable Store (CAS).\n\nTo enable this feature,\
        \ you must use the [cas](https://terragrunt.gruntwork.io/docs/reference/experiments/#cas)\
        \ experiment.\n\nWhen using the CAS, the `catalog` command will store its\
        \ contents in a CAS to deduplicate repository contents, then construct the\
        \ resultant repo from the CAS.\n\nYou can use Git URLs for the `catalog` command\
        \ normally, and when the `cas` experiment is enabled, Terragrunt will leverage\
        \ the CAS to save you clone time and disk space:\n\n```hcl\ncatalog {\n  urls\
        \ = [\n    \"git@github.com:acme/modules.git\"\n  ]\n}\n```\n\nThere are more\
        \ planned integration points for the CAS, but for now only the `catalog` command\
        \ is supported.\n\nYou can learn more about the CAS in the [feature documentation](https://terragrunt.gruntwork.io/docs/features/cas/).\n\
        \n#### What's Changed\n\n-   feat: Adding cas support to catalog by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3929](https://redirect.github.com/gruntwork-io/terragrunt/pull/3929)\n\
        -   fix: Engine tests improvements by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3995](https://redirect.github.com/gruntwork-io/terragrunt/pull/3995)\n\
        -   fix: Adding integration testing to the `find` command. by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3997](https://redirect.github.com/gruntwork-io/terragrunt/pull/3997)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.4...v0.75.5\n\
        \n### [`v0.75.4`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.4)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.3...v0.75.4)\n\
        \n#### \u2728 New Features\n\n##### The `find` command\n\nThis release introduces\
        \ experimental support for the `find` command.\n\nTo use it, you will need\
        \ to enable the [`cli-redesign`](https://terragrunt.gruntwork.io/docs/reference/experiments/#cli-redesign---criteria-for-stabilization)\
        \ experiment.\n\nThe `find` command allows for easy discovery of [unit](https://terragrunt.gruntwork.io/docs/getting-started/terminology/#unit)\
        \ and [stack](https://terragrunt.gruntwork.io/docs/getting-started/terminology/#stack)\
        \ configurations in a Terragrunt codebase.\n\nBy default, results are color\
        \ coded to make it easy to discern different configuration types:\n\n![tg-find](https://redirect.github.com/user-attachments/assets/bb43596b-e9a0-4d6e-b504-ece8c1f6c96e)\n\
        \nWhen piped into another command, Terragrunt will automatically remove those\
        \ colors so that it won't interfere with any post-processing:\n\n![tg-find-piped](https://redirect.github.com/user-attachments/assets/50d20fb7-58a8-43c7-8911-218434eb3888)\n\
        \nResults can also be emitted in JSON format for more advanced use-cases:\n\
        \n![tg-find-json](https://redirect.github.com/user-attachments/assets/955cbfe4-4147-449b-9ac4-7779a68b1aed)\n\
        \nThis is the initial, minimal implementation of the command, with more functionality\
        \ to come in the near future.\n\nYou can learn more about the command [here](https://terragrunt.gruntwork.io/docs/reference/cli-options/#find).\n\
        \n#### What's Changed\n\n-   feat: Adding `find` command by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3981](https://redirect.github.com/gruntwork-io/terragrunt/pull/3981)\n\
        -   fix: Adding docs from role assumption updates in Jekyll docs to Starlight\
        \ docs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [https://github.com/gruntwork-io/terragrunt/pull/3985](https://redirect.github.com/gruntwork-io/terragrunt/pull/3985)\n\
        -   fix: Fixed failing CircleCI jobs by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3988](https://redirect.github.com/gruntwork-io/terragrunt/pull/3988)\n\
        -   fix: Remove usage of template provider in text fixtures by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3986](https://redirect.github.com/gruntwork-io/terragrunt/pull/3986)\n\
        -   build(deps): bump github.com/gruntwork-io/terratest from 0.47.2 to 0.48.2\
        \ by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/gruntwork-io/terragrunt/pull/3858](https://redirect.github.com/gruntwork-io/terragrunt/pull/3858)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.3...v0.75.4\n\
        \n### [`v0.75.3`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.3)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.2...v0.75.3)\n\
        \n#### \u2728 New Features\n\nThis release introduces support for all the\
        \ remaining `assume_role` arguments used by OpenTofu/Terraform backends.\n\
        \nThank you to [@&#8203;erpel](https://redirect.github.com/erpel) for contributing\
        \ this!\n\n#### What's Changed\n\n-   feat: Add support for all assume_role\
        \ block arguments for s3 backend by [@&#8203;erpel](https://redirect.github.com/erpel)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3975](https://redirect.github.com/gruntwork-io/terragrunt/pull/3975)\n\
        -   fix: Adjusting contribution docs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3979](https://redirect.github.com/gruntwork-io/terragrunt/pull/3979)\n\
        -   chore: Bumping Dependencies as requested by Dependabot by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3984](https://redirect.github.com/gruntwork-io/terragrunt/pull/3984)\n\
        -   docs: update contributing.md with dev containers entry by [@&#8203;j2udev](https://redirect.github.com/j2udev)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3977](https://redirect.github.com/gruntwork-io/terragrunt/pull/3977)\n\
        \n#### New Contributors\n\n-   [@&#8203;erpel](https://redirect.github.com/erpel)\
        \ made their first contribution in [https://github.com/gruntwork-io/terragrunt/pull/3975](https://redirect.github.com/gruntwork-io/terragrunt/pull/3975)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.2...v0.75.3\n\
        \n### [`v0.75.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.2)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.1...v0.75.2)\n\
        \n#### What's Changed\n\n-   Stacks: added support for stack values by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3961](https://redirect.github.com/gruntwork-io/terragrunt/pull/3961)\n\
        \nExample HCL configuration:\n\n```hcl\nstack \"dev\" {\n  source = \"stacks/dev\"\
        \n  path   = \"dev\"\n\n### new values block\n  values = {\n    project =\
        \ \"dev-project\"\n    env     = \"dev\"\n  }\n}\n```\n\nRFC: [https://github.com/gruntwork-io/terragrunt/issues/3313](https://redirect.github.com/gruntwork-io/terragrunt/issues/3313)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.1...v0.75.2\n\
        \n### [`v0.75.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.1)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.0...v0.75.1)\n\
        \n#### What's Changed\n\n-   feat: Strict control for old deprecated env vars\
        \ by [@&#8203;levkohimins](https://redirect.github.com/levkohimins) in [https://github.com/gruntwork-io/terragrunt/pull/3964](https://redirect.github.com/gruntwork-io/terragrunt/pull/3964)\n\
        -   feat: Adding `.coderabbit.yaml` file by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3969](https://redirect.github.com/gruntwork-io/terragrunt/pull/3969)\n\
        -   fix: Updated failing engine tests by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3960](https://redirect.github.com/gruntwork-io/terragrunt/pull/3960)\n\
        -   fix: Replacing usage of `run-all` with `run --all` in starlight docs by\
        \ [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [https://github.com/gruntwork-io/terragrunt/pull/3950](https://redirect.github.com/gruntwork-io/terragrunt/pull/3950)\n\
        -   fix: Update mark_as_read example and docs by [@&#8203;odgrim](https://redirect.github.com/odgrim)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3971](https://redirect.github.com/gruntwork-io/terragrunt/pull/3971)\n\
        -   fix: Adding missing cautionary asides by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3970](https://redirect.github.com/gruntwork-io/terragrunt/pull/3970)\n\
        -   chore: Tofu engine update to v0.0.16 in tests by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3951](https://redirect.github.com/gruntwork-io/terragrunt/pull/3951)\n\
        -   build(deps-dev): bump uri from 0.13.0 to 0.13.2 in /docs by [@&#8203;dependabot](https://redirect.github.com/dependabot)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3963](https://redirect.github.com/gruntwork-io/terragrunt/pull/3963)\n\
        \n#### New Contributors\n\n-   [@&#8203;odgrim](https://redirect.github.com/odgrim)\
        \ made their first contribution in [https://github.com/gruntwork-io/terragrunt/pull/3971](https://redirect.github.com/gruntwork-io/terragrunt/pull/3971)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.0...v0.75.1\n\
        \n### [`v0.75.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.0)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.74.0...v0.75.0)\n\
        \n**Terraform 1.11 support**: We are now testing Terragrunt against Terraform\
        \ 1.11 and is confirmed to be working.\n\nNOTE: Although this release is marked\
        \ as backward incompatible, it is functionally compatible as nothing has been\
        \ changed in Terragrunt internals. The minor version release is useful to\
        \ mark the change in Terraform version that is being tested.\n\n#### What's\
        \ Changed\n\n-   feat: Added support for Terraform 1.11 by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3958](https://redirect.github.com/gruntwork-io/terragrunt/pull/3958)\n\
        -   fix: corrected command `run -- graph` by [@&#8203;levkohimins](https://redirect.github.com/levkohimins)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3959](https://redirect.github.com/gruntwork-io/terragrunt/pull/3959)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.74.0...v0.75.0\n\
        \n### [`v0.74.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.74.0)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.73.16...v0.74.0)\n\
        \n#### Description\n\n**Terraform 1.10 support**: We are now testing Terragrunt\
        \ against Terraform 1.10 and is confirmed to be working.\n\nNOTE: Although\
        \ this release is marked as backward incompatible, it is functionally compatible\
        \ as nothing has been changed in Terragrunt internals. The minor version release\
        \ is useful to mark the change in Terraform version that is being tested.\n\
        \n#### What's Changed\n\n-   feat: Implementation of `--all` `--graph` flags\
        \ by [@&#8203;levkohimins](https://redirect.github.com/levkohimins) in [https://github.com/gruntwork-io/terragrunt/pull/3944](https://redirect.github.com/gruntwork-io/terragrunt/pull/3944)\n\
        -   feat: Added support for Terraform 1.10 by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3605](https://redirect.github.com/gruntwork-io/terragrunt/pull/3605)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.73.16...v0.74.0\n\
        \n### [`v0.73.16`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.73.16)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.73.15...v0.73.16)\n\
        \n#### \u2728 New Features\n\nAdded support for nested stacks, enabling more\
        \ flexible and modular stack configurations.\n\nDemo:\n\n![nested-stacks](https://redirect.github.com/user-attachments/assets/12b5c2e1-f58e-4488-873f-ee8b94e72afc)\n\
        \nTo try it out, make sure you enable the [stacks experiment](https://terragrunt.gruntwork.io/docs/reference/experiments/#stacks).\n\
        \nRFC: [https://github.com/gruntwork-io/terragrunt/issues/3313](https://redirect.github.com/gruntwork-io/terragrunt/issues/3313)\n\
        \n#### What's Changed\n\n-   feat: added support for nested stacks [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3900](https://redirect.github.com/gruntwork-io/terragrunt/pull/3900)\n\
        -   docs: Support new pre-release process by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3941](https://redirect.github.com/gruntwork-io/terragrunt/pull/3941)\n\
        -   build(deps): bump github.com/go-jose/go-jose/v4 from 4.0.4 to 4.0.5 by\
        \ [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/gruntwork-io/terragrunt/pull/3930](https://redirect.github.com/gruntwork-io/terragrunt/pull/3930)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.73.15...v0.73.16\n\
        \n</details>\n\n---\n\n### Configuration\n\n\U0001F4C5 **Schedule**: Branch\
        \ creation - At any time (no schedule defined), Automerge - 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/testbed).\n\
        <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
      change_url: https://github.com/osism/testbed/pull/2615
      child_jobs: []
      commit_id: 76a4fcd3dbd32bdf398abd9665d2e2206bbb9b50
      event_id: 8bee7cc0-0515-11f0-9eae-0ab3159231d7
      executor:
        hostname: 7d211f194f6a
        inventory_file: /var/lib/zuul/builds/2076cc12e9a341d79100c96798811c05/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/2076cc12e9a341d79100c96798811c05/work/logs
        result_data_file: /var/lib/zuul/builds/2076cc12e9a341d79100c96798811c05/work/results.json
        src_root: /var/lib/zuul/builds/2076cc12e9a341d79100c96798811c05/work/src
        work_root: /var/lib/zuul/builds/2076cc12e9a341d79100c96798811c05/work
      items:
      - branch: main
        change: '2615'
        change_url: https://github.com/osism/testbed/pull/2615
        patchset: 76a4fcd3dbd32bdf398abd9665d2e2206bbb9b50
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          name: osism/testbed
          short_name: testbed
          src_dir: src/github.com/osism/testbed
      job: python-black
      jobtags: []
      max_attempts: 3
      message: Y2hvcmUoZGVwcyk6IHVwZGF0ZSBkZXBlbmRlbmN5IGdydW50d29yay1pby90ZXJyYWdydW50IHRvIHYwLjc2LjIKClRoaXMgUFIgY29udGFpbnMgdGhlIGZvbGxvd2luZyB1cGRhdGVzOgoKfCBQYWNrYWdlIHwgVXBkYXRlIHwgQ2hhbmdlIHwKfC0tLXwtLS18LS0tfAp8IFtncnVudHdvcmstaW8vdGVycmFncnVudF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50KSB8IG1pbm9yIHwgYHYwLjczLjE1YCAtPiBgdjAuNzYuMmAgfAoKLS0tCgojIyMgUmVsZWFzZSBOb3RlcwoKPGRldGFpbHM+CjxzdW1tYXJ5PmdydW50d29yay1pby90ZXJyYWdydW50IChncnVudHdvcmstaW8vdGVycmFncnVudCk8L3N1bW1hcnk+CgojIyMgW2B2MC43Ni4yYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43Ni4yKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ni4xLi4udjAuNzYuMikKCiMjIyMg4pyoIE5ldyBGZWF0dXJlcwoKQWRkZWQgYC0tbm8tc3RhY2stZ2VuZXJhdGVgIHN1cHBvcnQgaW4gYHN0YWNrIHJ1bmAgYW5kIGBzdGFjayBvdXRwdXRgLCBhbGxvd2luZyB1c2VycyB0byBkaXNhYmxlIGF1dG9tYXRpYyBzdGFjayByZWdlbmVyYXRpb24gYmVmb3JlIGV4ZWN1dGluZyBjb21tYW5kcy4gVGhpcyBwcm92aWRlcyBncmVhdGVyIGNvbnRyb2wgb3ZlciBleGVjdXRpb24gYnkgZW5hYmxpbmcgb3BlcmF0aW9ucyB0byBydW4gdXNpbmcgdGhlIGV4aXN0aW5nIGAudGVycmFncnVudC1zdGFja2AgZGlyZWN0b3J5LCBpbXByb3ZpbmcgZWZmaWNpZW5jeSBhbmQgYXZvaWRpbmcgdW5uZWNlc3NhcnkgdXBkYXRlcy4KCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gICBmZWF0OiBBZGRlZCBgLS1uby1zdGFjay1nZW5lcmF0ZWAgY2xpIGZsYWcgdG8gc2tpcCBzdGFjayBnZW5lcmF0aW9uIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDM5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDM5KQotICAgY2hyb2U6IFN0YWNrIHRlc3RzIGltcHJvdmVtZW50cyBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAzM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAzMykKLSAgIGNocm9yZTogQWRkaW5nIGAuY3Vyc29yYCB0byBgLmdpdGlnbm9yZWAgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDQwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDQwKQotICAgZG9jczogQWRkaW5nIGRvY3MgZm9yIGAtLWFsbGAgYW5kIGAtLWdyYXBoYCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMzZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMzYpCi0gICBkb2NzOiBNb3ZlIGBpbmZvYCB0byBhIGJldHRlciBsb2NhdGlvbiBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMzddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMzcpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc2LjEuLi52MC43Ni4yCgojIyMgW2B2MC43Ni4xYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43Ni4xKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ni4wLi4udjAuNzYuMSkKCiMjIyMg4pyoIE5ldyBGZWF0dXJlcwoKSW50cm9kdWNlZCBgbm9fZG90X3RlcnJhZ3J1bnRfc3RhY2tgIHN1cHBvcnQgaW4gYHN0YWNrYCBhbmQgYHVuaXRgLCBhbGxvd2luZyB1c2VycyB0byBvcHQgb3V0IG9mIGdlbmVyYXRpbmcgYC50ZXJyYWdydW50LXN0YWNrYCBkaXJlY3Rvcmllcy4gVGhpcyBlbmFibGVzIHNlYW1sZXNzIGFkb3B0aW9uIG9mIGB0ZXJyYWdydW50LnN0YWNrLmhjbGAgd2l0aG91dCByZXF1aXJpbmcgc3RhdGUgbWlncmF0aW9uIGZvciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS4KCkRlbW86CiFbbm9fZG90X3RlcnJhZ3J1bnRfc3RhY2tfZXhhbXBsZV9yZWxlYXNlX2V4YW1wbGVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS91c2VyLWF0dGFjaG1lbnRzL2Fzc2V0cy81NDZkMjgxYi0zZGJiLTRjYjgtYWZkMy05Yjk4Yjc1YjRmMDIpCgpTdGFja3MgUkZDOiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2lzc3Vlcy8zMzEzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvaXNzdWVzLzMzMTMpCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgZmVhdDogYWRkZWQgc3VwcG9ydCBmb3Igc3VwcG9ydCBmb3IgYG5vX2RvdF90ZXJyYWdydW50X3N0YWNrYCBpbiBgc3RhY2tgIGFuZCBgdW5pdGAgYmxvY2tzIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDE5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDE5KQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ni4wLi4udjAuNzYuMQoKIyMjIFtgdjAuNzYuMGBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuNzYuMCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzUuMTAuLi52MC43Ni4wKQoKIyMjIyDinKggTmV3IEZlYXR1cmVzIC8g8J+boO+4jyBCcmVha2luZyBDaGFuZ2VzCgojIyMjIyBDYXRhbG9nL1NjYWZmb2xkIG5vIGxvbmdlciByZXF1aXJlcyBgLS1yb290LWZpbGUtbmFtZSByb290LmhjbGAKCuKcqCBUaGUgYGNhdGFsb2dgIGFuZCBgc2NhZmZvbGRgIGNvbW1hbmRzIHdpbGwgbm93IGF0dGVtcHQgdG8gZGlzY292ZXIgYSBwYXJlbnQgYHJvb3QuaGNsYCBmaWxlIGJ5IGRlZmF1bHQgYW5kIHVzZSBpdCBhcyB0aGUgZGVmYXVsdCByb290IFRlcnJhZ3J1bnQgY29uZmlndXJhdGlvbiB3aGVuIHByZXNlbnQgdG8gaGVscCB1c2VycyBhZG9wdCB0aGUgY2hhbmdlcyBpbiBbbWlncmF0aW5nLWZyb20tcm9vdC10ZXJyYWdydW50LWhjbF0oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL21pZ3JhdGUvbWlncmF0aW5nLWZyb20tcm9vdC10ZXJyYWdydW50LWhjbC8pLgoKVXNlcnMgdGhhdCBoYXZlIHN3aXRjaGVkIG92ZXIgdG8gdXNlIGByb290LmhjbGAgYXMgdGhlIHJvb3Qgb2YgdGhlaXIgVGVycmFncnVudCBjb25maWd1cmF0aW9ucyBpbnN0ZWFkIG9mIGB0ZXJyYWdydW50LmhjbGAgd2lsbCBubyBsb25nZXIgbmVlZCB0byBleHBsaWNpdGx5IHBhc3MgYC0tcm9vdC1maWxlLW5hbWUgcm9vdC5oY2xgIG9yIHVzZSB0aGUgW3Jvb3QtdGVycmFncnVudC1oY2xdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2Uvc3RyaWN0LW1vZGUvI3Jvb3QtdGVycmFncnVudC1oY2wpIHN0cmljdCBjb250cm9sIHRvIGF1dG9tYXRpY2FsbHkgZGlzY292ZXIgdGhlIHJvb3Qgb2YgdGhlaXIgVGVycmFncnVudCBjb25maWd1cmF0aW9ucyB3aGVuIHVzaW5nIGBjYXRhbG9nYCBvciBgc2NhZmZvbGRgLgoK8J+boO+4jyBOb3RlIHRoYXQgdGhpcyBpcyB0ZWNobmljYWxseSBhIGJyZWFraW5nIGNoYW5nZSB0byB0aGUgd2F5IHRoYXQgYGNhdGFsb2dgIGFuZCBgc2NhZmZvbGRgIHdvcmsuIFdpdGggdGhpcyBjaGFuZ2UsIHVzZXJzIHRoYXQgaGF2ZSAqYm90aCogYSBgcm9vdC5oY2xgIGZpbGUgYW5kIGEgYHRlcnJhZ3J1bnQuaGNsYCBmaWxlIGF0IHRoZSByb290IG9mIHRoZWlyIHJlcG9zaXRvcmllcyB3aWxsIGhhdmUgdGhlIGByb290LmhjbGAgZmlsZSB1c2VkIGluc3RlYWQgb2YgdGhlIGB0ZXJyYWdydW50LmhjbGAgZmlsZSBmb3IgdGhlIGBjYXRhbG9nYCBhbmQgYHNjYWZmb2xkYCBjb21tYW5kcy4KCklmIHlvdSBhcmUgbm90IHlldCByZWFkeSB0byByZW5hbWUgdGhlIGB0ZXJyYWdydW50LmhjbGAgZmlsZSBhdCB0aGUgcm9vdCBvZiB5b3VyIHJlcG9zaXRvcnksIHVzZSB0aGUgYC0tcm9vdC1maWxlLW5hbWVgIGZsYWcgdG8gZXhwbGljaXRseSBwcm92aWRlIGB0ZXJyYWdydW50LmhjbGAgYXMgdGhlIG5hbWUgb2YgdGhlIFRlcnJhZ3J1bnQgY29uZmlndXJhdGlvbiBhdCB0aGUgcm9vdCBvZiB5b3VyIFRlcnJhZ3J1bnQgcHJvamVjdC4KClRoaXMgY2hhbmdlIHdhcyBtYWRlIGFzIG1vc3QgdXNlcnMgYXJlIHZlcnkgdW5saWtlbHkgdG8gaGF2ZSAqYm90aCogYHJvb3QuaGNsYCAodGhlIHJlY29tbWVuZGVkIHJvb3Qgb2YgVGVycmFncnVudCBjb25maWd1cmF0aW9ucykgYW5kIGB0ZXJyYWdydW50LmhjbGAgKHRoZSBsZWdhY3kgcm9vdCBvZiBUZXJyYWdydW50IGNvbmZpZ3VyYXRpb25zIGluIHRoZSBzYW1lIFRlcnJhZ3J1bnQgcHJvamVjdCkgYXQgdGhlIHJvb3Qgb2YgdGhlaXIgVGVycmFncnVudCBwcm9qZWN0LiBUaGlzIGNvbmZpZ3VyYXRpb24gaXMgZW50aXJlbHkgQ0xJIGJhc2VkLCBtYWtpbmcgaXQgcmVsYXRpdmVseSBlYXN5IHRvIGFkZHJlc3MgZm9yIHVzZXJzIChhcyBvcHBvc2VkIHRvIEhDTCBjb25maWd1cmF0aW9ucywgd2hpY2ggbWlnaHQgdGFrZSBtb3JlIHRpbWUgZm9yIHRlYW1zIHRvIGFkZHJlc3MpLgoKVXNlcnMgbG9va2luZyB0byBtb3ZlIGZyb20gYSByb290IGB0ZXJyYWdydW50LmhjbGAgZmlsZSB0byBhIGByb290LmhjbGAgZmlsZSB3aWxsIHN0aWxsIG5lZWQgdG8gcmVhZCB0aHJvdWdoIHRoZSBtaWdyYXRpb24gZ3VpZGUgdG8gYWRqdXN0IGFsbCB1c2FnZXMgb2YgYGZpbmRfaW5fcGFyZW50X2ZvbGRlcnNgIHdoZW4gbWFraW5nIHRoZSBzd2l0Y2guCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgZml4OiBMb29rdXAgcm9vdC5oY2wgaWYgcHJlc2VudCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMjJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMjIpCi0gICBmaXg6IEltcHJvdmluZyBsb2dpYyBmb3Igc2NhZmZvbGQgZGVmYXVsdCByb290IGRpc2NvdmVyeSBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMjldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMjkpCi0gICBmaXg6IEZpeGluZyBjb25maWd1cmF0aW9uIHBhcnNpbmcgb3JkZXIgbGluayBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMjFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMjEpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc1LjEwLi4udjAuNzYuMAoKIyMjIFtgdjAuNzUuMTBgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjc1LjEwKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43NS45Li4udjAuNzUuMTApCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgZml4OiBhZGRyZXNzaW5nIGBnb3Bsc2AgZmluZGluZ3MgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDE4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDE4KQotICAgYnVpbGQoZGVwcyk6IGJ1bXAgZ29sYW5nLm9yZy94L25ldCBmcm9tIDAuMzUuMCB0byAwLjM2LjAgYnkgW0AmIzgyMDM7ZGVwZW5kYWJvdF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlcGVuZGFib3QpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDEzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDEzKQotICAgYnVpbGQoZGVwcyk6IGJ1bXAgZ28ub3BlbnRlbGVtZXRyeS5pby9vdGVsL2V4cG9ydGVycy9vdGxwL290bHBtZXRyaWMvb3RscG1ldHJpY2dycGMgdG8gMS4zNS4wIHVwZGF0ZSBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAyMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAyMCkKLSAgIGJ1aWxkKGRlcHMpOiBidW1wIGdpdGh1Yi5jb20vYXdzL2F3cy1zZGstZ28tdjIvc2VydmljZS9zMyB0byAxLjc4LjEgdXBkYXRlIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDIwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDIwKQotICAgYnVpbGQoZGVwcyk6IGJ1bXAgZ29sYW5nLm9yZy94L21vZCB0byAwLjI0LjAgdXBkYXRlIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDIwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDIwKQotICAgYnVpbGQoZGVwcyk6IGJ1bXAgZ28ub3BlbnRlbGVtZXRyeS5pby9vdGVsL2V4cG9ydGVycy9vdGxwL290bHB0cmFjZS9vdGxwdHJhY2VncnBjIHRvIDEuMzUuMCB1cGRhdGUgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMjBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMjApCi0gICBidWlsZChkZXBzKTogYnVtcCBnby5vcGVudGVsZW1ldHJ5LmlvL290ZWwgdG8gMS4zNS4wIHVwZGF0ZSBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAyMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAyMCkKLSAgIGJ1aWxkKGRlcHMpOiBidW1wIGdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQtZW5naW5lLWdvIHRvIHYwLjAuMTEgdXBkYXRlIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDIwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDIwKQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43NS45Li4udjAuNzUuMTAKCiMjIyBbYHYwLjc1LjlgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjc1LjkpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc1LjguLi52MC43NS45KQoKIyMjIyDwn5CbIEJ1ZyBmaXhlcwoKIyMjIyMgVXNpbmcgYWJzb2x1dGUgcGF0aHMgZm9yIGBtYXJrX2FzX3JlYWRgCgpUaGUgaW50ZXJuYWwgc3RvcmUgZm9yIHRoZSB2YWx1ZXMgYG1hcmtfYXNfcmVhZGAgd2FzIHRyYWNraW5nIG5vdyB1c2UgYWJzb2x1dGUgcGF0aHMgaW5zdGVhZCBvZiAiY2Fub25pY2FsIHBhdGhzIi4gVGhlIHJlc3VsdCBvZiB0aGlzIGlzIHRoYXQgZXZlbiBpZiB5b3UgYXJlIHVzaW5nIHRvb2xpbmcgbGlrZSBgcnVuX2NtZGAgdG8gZHluYW1pY2FsbHkgZGlzY292ZXIgZmlsZXMgdG8gbWFyayBhcyByZWFkLCB5b3Ugc2hvdWxkIHN0aWxsIGV4cGVjdCBgLS1xdWV1ZS1pbmNsdWRlLXVuaXRzLXJlYWRpbmdgIHRvIHdvcmsgY29ycmVjdGx5LgoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSAgIGZpeDogVXNlIGFicyBwYXRoIGZvciBgbWFya19hc19yZWFkYCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMTVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMTUpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc1LjguLi52MC43NS45CgojIyMgW2B2MC43NS44YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43NS44KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43NS43Li4udjAuNzUuOCkKCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gICBmZWF0OiBhZGRlZCBzdXBwb3J0IGZvcmAgIC0tc291cmNlLW1hcCBgIHdoZW4gZG93bmxvYWRpbmcgdW5pdHMgYW5kIHN0YWNrcyBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAxMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAxMSkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzUuNy4uLnYwLjc1LjgKCiMjIyBbYHYwLjc1LjdgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjc1LjcpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc1LjYuLi52MC43NS43KQoKIyMjIyDinKggTmV3IEZlYXR1cmVzCgojIyMjIyBgZmluZGAgc3VwcG9ydHMgYGRhZ2Agc29ydGluZwoKVGhlIGBmaW5kYCBjb21tYW5kIG5vdyBzdXBwb3J0cyB0aGUgYWJpbGl0eSB0byBzb3J0IHJlc3VsdHMgYnkgdGhlaXIgcmVsYXRpdmUgcG9zaXRpb25zIGluIHRoZSBEaXJlY3RlZCBBY3ljbGljIEdyYXBoIChEQUcpLgoKVG8gdXNlIHRoZSBgZmluZGAgY29tbWFuZCwgeW91IG11c3QgZW5hYmxlIHRoZSBbYGNsaS1yZWRlc2lnbmAgZXhwZXJpbWVudF0oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL3JlZmVyZW5jZS9leHBlcmltZW50cy8jY2xpLXJlZGVzaWduKS4KCiFbdGctZmluZC1uby1kYWddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS91c2VyLWF0dGFjaG1lbnRzL2Fzc2V0cy8zNjM2NmRkZS0wNTgxLTQ3YTktYTRmNy05NGIwNmY5ZGYwYmIpCgohW3RnLWZpbmQtZGFnXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdXNlci1hdHRhY2htZW50cy9hc3NldHMvMDFkMGVlYjEtNzViZS00M2UyLTg2NTctNzdmZjRjZjQ2YzE4KQoKVGhlIGBmaW5kYCBjb21tYW5kIG5vdyBhbHNvIHN1cHBvcnRzIGRpc2NvdmVyaW5nIGRlcGVuZGVuY2llcyBvZiB1bml0cyB3aXRoIHRoZSBuZXcgYC0tZGVwZW5kZW5jaWVzYCBmbGFnLgoKIVt0Zy1maW5kLWRhZy1kZXBzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdXNlci1hdHRhY2htZW50cy9hc3NldHMvMWVhOWM1YTgtM2QwMy00MDc1LWI2YzgtOGZhOWNlNjgyNzRjKQoKSW4gYWRkaXRpb24sIGV4dGVybmFsIGRlcGVuZGVuY2llcyAoZGVwZW5kZW5jaWVzIG91dHNpZGUgdGhlIHdvcmtpbmcgZGlyZWN0b3J5IHdoZXJlIGBmaW5kYCB3YXMgcnVuKSwgY2FuIGJlIGRpc2NvdmVyZWQgdXNpbmcgdGhlIGAtLWV4dGVybmFsYCBmbGFnLgoKIVt0Zy1maW5kLWRhZy1leHRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS91c2VyLWF0dGFjaG1lbnRzL2Fzc2V0cy85MmM5MGJkZS02MmJjLTQxNDUtYTA0ZS1lMjdiYTY4ODRmOWEpCgpNb3JlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBbaW4gdGhlIGBmaW5kYCBkb2NzXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL2NsaS1vcHRpb25zLyNmaW5kLXNvcnRpbmcpLgoKIyMjIyMgVGhlIGBzdGFjayBydW5gIGNvbW1hbmQgbm93IHN1cHBvcnRzIGFsbCBgcnVuYCBmbGFncwoKVGhlIGBzdGFjayBydW5gIGNvbW1hbmQgbm93IHN1cHBvcnRzIGFsbCB0aGUgc2FtZSBmbGFncyBgcnVuYCBzdXBwb3J0cywgaW5jbHVkaW5nIGAtLXF1ZXVlLWluY2x1ZGUtZGlyYC4KClRvIHVzZSBgc3RhY2tgIGNvbW1hbmRzLCB5b3UgbXVzdCBlbmFibGUgdGhlIFtgc3RhY2tzYF0oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL3JlZmVyZW5jZS9leHBlcmltZW50cy8jc3RhY2tzKSBleHBlcmltZW50LgoKQXMgYW4gZXhhbXBsZSBvZiB3aGF0J3Mgc3VwcG9ydGVkIG5vdzoKCmBgYGJhc2gKdGVycmFncnVudCAtLWV4cGVyaW1lbnQgc3RhY2tzIHN0YWNrIHJ1biBhcHBseSAtLXF1ZXVlLXN0cmljdC1pbmNsdWRlIC0tcXVldWUtaW5jbHVkZS1kaXI9Li8udGVycmFncnVudC1zdGFjay9hcHAxIC0tbm9uLWludGVyYWN0aXZlCmBgYAoKTW9yZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgW2luIHRoZSBgc3RhY2sgcnVuYCBkb2NzXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL2NsaS1vcHRpb25zLyNzdGFjay1ydW4pLgoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSAgIGZlYXQ6IFN1cHBvcnQgYWxsIGBydW5gIGNsaSBmbGFncyBpbiB0aGUgU3RhY2sgY29tbWFuZCBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAwNV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAwNSkKLSAgIGZlYXQ6IEFkZGluZyBEQUcgc3VwcG9ydCB0byBmaW5kIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAwMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAwMSkKLSAgIGZpeDogVXBncmFkaW5nIGBnb2xhbmdjaS1saW50YCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5ODddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5ODcpCi0gICBmaXg6IFJlZHVjaW5nIG5vaXNlIGZvciBza2lwcGVkIGRlcGVuZGVuY3kgaW5wdXRzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAwN10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAwNykKCioqRnVsbCBDaGFuZ2Vsb2cqKjogaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzUuNi4uLnYwLjc1LjcKCiMjIyBbYHYwLjc1LjZgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjc1LjYpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc1LjUuLi52MC43NS42KQoKIyMjIyDinKggTmV3IEZlYXR1cmVzCgojIyMjIyBJYUMgRW5naW5lIERlcGVuZGVuY3kgU3VwcG9ydAoKSWFDIEVuZ2luZXMgYXJlIG5vdyB1c2VkIGR1cmluZyBkZXBlbmRlbmN5IGV2YWx1YXRpb24gd2hlbiBlbmFibGVkLiBUaGlzIHJlc3VsdHMgaW4gbW9yZSBjb3ZlcmFnZSBieSBJYUMgZW5naW5lcyB3aGVuIGVuYWJsZWQsIHJlZHVjaW5nIHRoZSByZWxpYW5jZSBvbiB0aGUgcHJlc2VuY2Ugb2YgT3BlblRvZnUvVGVycmFmb3JtIG9uIGhvc3QgbWFjaGluZXMgd2hlbiB1c2luZyBJYUMgRW5naW5lcy4KClRoYW5rcyB0byBbQCYjODIwMztwYXJ0Y3lib3JnXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vcGFydGN5Ym9yZykgZm9yIHN1Ym1pdHRpbmcgdGhpcyBjaGFuZ2UuCgojIyMjIPCfmpcgUGVyZm9ybWFuY2UgSW1wcm92ZW1lbnRzCgpHZW5lcmF0aW9uIG9mIGB0ZXJyYWdydW50LnN0YWNrLmhjbGAgZmlsZXMgYXJlIG5vdyBkb25lIGluIHBhcmFsbGVsLiBUaGlzIGNhbiByZXN1bHQgaW4gc2lnbmlmaWNhbnQgc3BlZWR1cHMgZm9yIHVzZXJzIHdpdGggbXVsdGlwbGUgdW5pdHMgb3IgbmVzdGVkIHN0YWNrcyBpbiBgdGVycmFncnVudC5zdGFjay5oY2xgIGZpbGVzLgoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSAgIGZlYXQ6IGFkZCBlbmdpbmUgc3VwcG9ydCB0byBkZXBlbmRlbmNpZXMgYnkgW0AmIzgyMDM7cGFydGN5Ym9yZ10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3BhcnRjeWJvcmcpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTc0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTc0KQotICAgZmVhdDogZW5naW5lIGNvbmZpZyBpbiBkZXBlbmRlbmNpZXMgaW1wcm92ZW1lbnRzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAwMl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAwMikKLSAgIGZlYXQ6IGFkZGVkIHN1cHBvcnQgZm9yIHBhcmFsbGVsIHN0YWNrcyBnZW5lcmF0aW9uIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTk5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTk5KQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43NS41Li4udjAuNzUuNgoKIyMjIFtgdjAuNzUuNWBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuNzUuNSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzUuNC4uLnYwLjc1LjUpCgojIyMjIOKcqCBOZXcgRmVhdHVyZXMKClRoaXMgcmVsZWFzZSBpbnRyb2R1Y2VzIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciB0aGUgVGVycmFncnVudCBDb250ZW50IEFkZHJlc3NhYmxlIFN0b3JlIChDQVMpLgoKVG8gZW5hYmxlIHRoaXMgZmVhdHVyZSwgeW91IG11c3QgdXNlIHRoZSBbY2FzXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL2V4cGVyaW1lbnRzLyNjYXMpIGV4cGVyaW1lbnQuCgpXaGVuIHVzaW5nIHRoZSBDQVMsIHRoZSBgY2F0YWxvZ2AgY29tbWFuZCB3aWxsIHN0b3JlIGl0cyBjb250ZW50cyBpbiBhIENBUyB0byBkZWR1cGxpY2F0ZSByZXBvc2l0b3J5IGNvbnRlbnRzLCB0aGVuIGNvbnN0cnVjdCB0aGUgcmVzdWx0YW50IHJlcG8gZnJvbSB0aGUgQ0FTLgoKWW91IGNhbiB1c2UgR2l0IFVSTHMgZm9yIHRoZSBgY2F0YWxvZ2AgY29tbWFuZCBub3JtYWxseSwgYW5kIHdoZW4gdGhlIGBjYXNgIGV4cGVyaW1lbnQgaXMgZW5hYmxlZCwgVGVycmFncnVudCB3aWxsIGxldmVyYWdlIHRoZSBDQVMgdG8gc2F2ZSB5b3UgY2xvbmUgdGltZSBhbmQgZGlzayBzcGFjZToKCmBgYGhjbApjYXRhbG9nIHsKICB1cmxzID0gWwogICAgImdpdEBnaXRodWIuY29tOmFjbWUvbW9kdWxlcy5naXQiCiAgXQp9CmBgYAoKVGhlcmUgYXJlIG1vcmUgcGxhbm5lZCBpbnRlZ3JhdGlvbiBwb2ludHMgZm9yIHRoZSBDQVMsIGJ1dCBmb3Igbm93IG9ubHkgdGhlIGBjYXRhbG9nYCBjb21tYW5kIGlzIHN1cHBvcnRlZC4KCllvdSBjYW4gbGVhcm4gbW9yZSBhYm91dCB0aGUgQ0FTIGluIHRoZSBbZmVhdHVyZSBkb2N1bWVudGF0aW9uXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvZmVhdHVyZXMvY2FzLykuCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgZmVhdDogQWRkaW5nIGNhcyBzdXBwb3J0IHRvIGNhdGFsb2cgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTI5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTI5KQotICAgZml4OiBFbmdpbmUgdGVzdHMgaW1wcm92ZW1lbnRzIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTk1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTk1KQotICAgZml4OiBBZGRpbmcgaW50ZWdyYXRpb24gdGVzdGluZyB0byB0aGUgYGZpbmRgIGNvbW1hbmQuIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk5N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk5NykKCioqRnVsbCBDaGFuZ2Vsb2cqKjogaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzUuNC4uLnYwLjc1LjUKCiMjIyBbYHYwLjc1LjRgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjc1LjQpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc1LjMuLi52MC43NS40KQoKIyMjIyDinKggTmV3IEZlYXR1cmVzCgojIyMjIyBUaGUgYGZpbmRgIGNvbW1hbmQKClRoaXMgcmVsZWFzZSBpbnRyb2R1Y2VzIGV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciB0aGUgYGZpbmRgIGNvbW1hbmQuCgpUbyB1c2UgaXQsIHlvdSB3aWxsIG5lZWQgdG8gZW5hYmxlIHRoZSBbYGNsaS1yZWRlc2lnbmBdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2UvZXhwZXJpbWVudHMvI2NsaS1yZWRlc2lnbi0tLWNyaXRlcmlhLWZvci1zdGFiaWxpemF0aW9uKSBleHBlcmltZW50LgoKVGhlIGBmaW5kYCBjb21tYW5kIGFsbG93cyBmb3IgZWFzeSBkaXNjb3Zlcnkgb2YgW3VuaXRdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9nZXR0aW5nLXN0YXJ0ZWQvdGVybWlub2xvZ3kvI3VuaXQpIGFuZCBbc3RhY2tdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9nZXR0aW5nLXN0YXJ0ZWQvdGVybWlub2xvZ3kvI3N0YWNrKSBjb25maWd1cmF0aW9ucyBpbiBhIFRlcnJhZ3J1bnQgY29kZWJhc2UuCgpCeSBkZWZhdWx0LCByZXN1bHRzIGFyZSBjb2xvciBjb2RlZCB0byBtYWtlIGl0IGVhc3kgdG8gZGlzY2VybiBkaWZmZXJlbnQgY29uZmlndXJhdGlvbiB0eXBlczoKCiFbdGctZmluZF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzL2JiNDM1OTZiLWU5YTAtNGQ2ZS1iNTA0LWVjZThjMWY2Yzk2ZSkKCldoZW4gcGlwZWQgaW50byBhbm90aGVyIGNvbW1hbmQsIFRlcnJhZ3J1bnQgd2lsbCBhdXRvbWF0aWNhbGx5IHJlbW92ZSB0aG9zZSBjb2xvcnMgc28gdGhhdCBpdCB3b24ndCBpbnRlcmZlcmUgd2l0aCBhbnkgcG9zdC1wcm9jZXNzaW5nOgoKIVt0Zy1maW5kLXBpcGVkXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdXNlci1hdHRhY2htZW50cy9hc3NldHMvNTBkMjBmYjctNThhOC00M2M3LTg5MTEtMjE4NDM0ZWIzODg4KQoKUmVzdWx0cyBjYW4gYWxzbyBiZSBlbWl0dGVkIGluIEpTT04gZm9ybWF0IGZvciBtb3JlIGFkdmFuY2VkIHVzZS1jYXNlczoKCiFbdGctZmluZC1qc29uXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdXNlci1hdHRhY2htZW50cy9hc3NldHMvOTU1Y2JmZTQtNDE0Ny00NDliLTlhYzQtNzc3OWE2OGIxYWVkKQoKVGhpcyBpcyB0aGUgaW5pdGlhbCwgbWluaW1hbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgY29tbWFuZCwgd2l0aCBtb3JlIGZ1bmN0aW9uYWxpdHkgdG8gY29tZSBpbiB0aGUgbmVhciBmdXR1cmUuCgpZb3UgY2FuIGxlYXJuIG1vcmUgYWJvdXQgdGhlIGNvbW1hbmQgW2hlcmVdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2UvY2xpLW9wdGlvbnMvI2ZpbmQpLgoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSAgIGZlYXQ6IEFkZGluZyBgZmluZGAgY29tbWFuZCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5ODFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5ODEpCi0gICBmaXg6IEFkZGluZyBkb2NzIGZyb20gcm9sZSBhc3N1bXB0aW9uIHVwZGF0ZXMgaW4gSmVreWxsIGRvY3MgdG8gU3RhcmxpZ2h0IGRvY3MgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTg1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTg1KQotICAgZml4OiBGaXhlZCBmYWlsaW5nIENpcmNsZUNJIGpvYnMgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5ODhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5ODgpCi0gICBmaXg6IFJlbW92ZSB1c2FnZSBvZiB0ZW1wbGF0ZSBwcm92aWRlciBpbiB0ZXh0IGZpeHR1cmVzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk4Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk4NikKLSAgIGJ1aWxkKGRlcHMpOiBidW1wIGdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhdGVzdCBmcm9tIDAuNDcuMiB0byAwLjQ4LjIgYnkgW0AmIzgyMDM7ZGVwZW5kYWJvdF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlcGVuZGFib3QpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zODU4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zODU4KQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43NS4zLi4udjAuNzUuNAoKIyMjIFtgdjAuNzUuM2BdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuNzUuMykKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzUuMi4uLnYwLjc1LjMpCgojIyMjIOKcqCBOZXcgRmVhdHVyZXMKClRoaXMgcmVsZWFzZSBpbnRyb2R1Y2VzIHN1cHBvcnQgZm9yIGFsbCB0aGUgcmVtYWluaW5nIGBhc3N1bWVfcm9sZWAgYXJndW1lbnRzIHVzZWQgYnkgT3BlblRvZnUvVGVycmFmb3JtIGJhY2tlbmRzLgoKVGhhbmsgeW91IHRvIFtAJiM4MjAzO2VycGVsXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZXJwZWwpIGZvciBjb250cmlidXRpbmcgdGhpcyEKCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gICBmZWF0OiBBZGQgc3VwcG9ydCBmb3IgYWxsIGFzc3VtZV9yb2xlIGJsb2NrIGFyZ3VtZW50cyBmb3IgczMgYmFja2VuZCBieSBbQCYjODIwMztlcnBlbF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2VycGVsKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk3NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk3NSkKLSAgIGZpeDogQWRqdXN0aW5nIGNvbnRyaWJ1dGlvbiBkb2NzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk3OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk3OSkKLSAgIGNob3JlOiBCdW1waW5nIERlcGVuZGVuY2llcyBhcyByZXF1ZXN0ZWQgYnkgRGVwZW5kYWJvdCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5ODRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5ODQpCi0gICBkb2NzOiB1cGRhdGUgY29udHJpYnV0aW5nLm1kIHdpdGggZGV2IGNvbnRhaW5lcnMgZW50cnkgYnkgW0AmIzgyMDM7ajJ1ZGV2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vajJ1ZGV2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk3N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk3NykKCiMjIyMgTmV3IENvbnRyaWJ1dG9ycwoKLSAgIFtAJiM4MjAzO2VycGVsXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZXJwZWwpIG1hZGUgdGhlaXIgZmlyc3QgY29udHJpYnV0aW9uIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTc1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTc1KQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43NS4yLi4udjAuNzUuMwoKIyMjIFtgdjAuNzUuMmBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuNzUuMikKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzUuMS4uLnYwLjc1LjIpCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgU3RhY2tzOiBhZGRlZCBzdXBwb3J0IGZvciBzdGFjayB2YWx1ZXMgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NjFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NjEpCgpFeGFtcGxlIEhDTCBjb25maWd1cmF0aW9uOgoKYGBgaGNsCnN0YWNrICJkZXYiIHsKICBzb3VyY2UgPSAic3RhY2tzL2RldiIKICBwYXRoICAgPSAiZGV2IgoKIyMjIG5ldyB2YWx1ZXMgYmxvY2sKICB2YWx1ZXMgPSB7CiAgICBwcm9qZWN0ID0gImRldi1wcm9qZWN0IgogICAgZW52ICAgICA9ICJkZXYiCiAgfQp9CmBgYAoKUkZDOiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2lzc3Vlcy8zMzEzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvaXNzdWVzLzMzMTMpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc1LjEuLi52MC43NS4yCgojIyMgW2B2MC43NS4xYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43NS4xKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43NS4wLi4udjAuNzUuMSkKCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gICBmZWF0OiBTdHJpY3QgY29udHJvbCBmb3Igb2xkIGRlcHJlY2F0ZWQgZW52IHZhcnMgYnkgW0AmIzgyMDM7bGV2a29oaW1pbnNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9sZXZrb2hpbWlucykgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NjRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NjQpCi0gICBmZWF0OiBBZGRpbmcgYC5jb2RlcmFiYml0LnlhbWxgIGZpbGUgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTY5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTY5KQotICAgZml4OiBVcGRhdGVkIGZhaWxpbmcgZW5naW5lIHRlc3RzIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTYwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTYwKQotICAgZml4OiBSZXBsYWNpbmcgdXNhZ2Ugb2YgYHJ1bi1hbGxgIHdpdGggYHJ1biAtLWFsbGAgaW4gc3RhcmxpZ2h0IGRvY3MgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTUwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTUwKQotICAgZml4OiBVcGRhdGUgbWFya19hc19yZWFkIGV4YW1wbGUgYW5kIGRvY3MgYnkgW0AmIzgyMDM7b2RncmltXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vb2RncmltKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk3MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk3MSkKLSAgIGZpeDogQWRkaW5nIG1pc3NpbmcgY2F1dGlvbmFyeSBhc2lkZXMgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTcwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTcwKQotICAgY2hvcmU6IFRvZnUgZW5naW5lIHVwZGF0ZSB0byB2MC4wLjE2IGluIHRlc3RzIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTUxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTUxKQotICAgYnVpbGQoZGVwcy1kZXYpOiBidW1wIHVyaSBmcm9tIDAuMTMuMCB0byAwLjEzLjIgaW4gL2RvY3MgYnkgW0AmIzgyMDM7ZGVwZW5kYWJvdF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlcGVuZGFib3QpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTYzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTYzKQoKIyMjIyBOZXcgQ29udHJpYnV0b3JzCgotICAgW0AmIzgyMDM7b2RncmltXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vb2RncmltKSBtYWRlIHRoZWlyIGZpcnN0IGNvbnRyaWJ1dGlvbiBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk3MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk3MSkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzUuMC4uLnYwLjc1LjEKCiMjIyBbYHYwLjc1LjBgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjc1LjApCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc0LjAuLi52MC43NS4wKQoKKipUZXJyYWZvcm0gMS4xMSBzdXBwb3J0Kio6IFdlIGFyZSBub3cgdGVzdGluZyBUZXJyYWdydW50IGFnYWluc3QgVGVycmFmb3JtIDEuMTEgYW5kIGlzIGNvbmZpcm1lZCB0byBiZSB3b3JraW5nLgoKTk9URTogQWx0aG91Z2ggdGhpcyByZWxlYXNlIGlzIG1hcmtlZCBhcyBiYWNrd2FyZCBpbmNvbXBhdGlibGUsIGl0IGlzIGZ1bmN0aW9uYWxseSBjb21wYXRpYmxlIGFzIG5vdGhpbmcgaGFzIGJlZW4gY2hhbmdlZCBpbiBUZXJyYWdydW50IGludGVybmFscy4gVGhlIG1pbm9yIHZlcnNpb24gcmVsZWFzZSBpcyB1c2VmdWwgdG8gbWFyayB0aGUgY2hhbmdlIGluIFRlcnJhZm9ybSB2ZXJzaW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkLgoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSAgIGZlYXQ6IEFkZGVkIHN1cHBvcnQgZm9yIFRlcnJhZm9ybSAxLjExIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTU4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTU4KQotICAgZml4OiBjb3JyZWN0ZWQgY29tbWFuZCBgcnVuIC0tIGdyYXBoYCBieSBbQCYjODIwMztsZXZrb2hpbWluc10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2xldmtvaGltaW5zKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk1OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk1OSkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzQuMC4uLnYwLjc1LjAKCiMjIyBbYHYwLjc0LjBgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjc0LjApCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjczLjE2Li4udjAuNzQuMCkKCiMjIyMgRGVzY3JpcHRpb24KCioqVGVycmFmb3JtIDEuMTAgc3VwcG9ydCoqOiBXZSBhcmUgbm93IHRlc3RpbmcgVGVycmFncnVudCBhZ2FpbnN0IFRlcnJhZm9ybSAxLjEwIGFuZCBpcyBjb25maXJtZWQgdG8gYmUgd29ya2luZy4KCk5PVEU6IEFsdGhvdWdoIHRoaXMgcmVsZWFzZSBpcyBtYXJrZWQgYXMgYmFja3dhcmQgaW5jb21wYXRpYmxlLCBpdCBpcyBmdW5jdGlvbmFsbHkgY29tcGF0aWJsZSBhcyBub3RoaW5nIGhhcyBiZWVuIGNoYW5nZWQgaW4gVGVycmFncnVudCBpbnRlcm5hbHMuIFRoZSBtaW5vciB2ZXJzaW9uIHJlbGVhc2UgaXMgdXNlZnVsIHRvIG1hcmsgdGhlIGNoYW5nZSBpbiBUZXJyYWZvcm0gdmVyc2lvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZC4KCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gICBmZWF0OiBJbXBsZW1lbnRhdGlvbiBvZiBgLS1hbGxgIGAtLWdyYXBoYCBmbGFncyBieSBbQCYjODIwMztsZXZrb2hpbWluc10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2xldmtvaGltaW5zKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk0NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk0NCkKLSAgIGZlYXQ6IEFkZGVkIHN1cHBvcnQgZm9yIFRlcnJhZm9ybSAxLjEwIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zNjA1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zNjA1KQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43My4xNi4uLnYwLjc0LjAKCiMjIyBbYHYwLjczLjE2YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43My4xNikKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzMuMTUuLi52MC43My4xNikKCiMjIyMg4pyoIE5ldyBGZWF0dXJlcwoKQWRkZWQgc3VwcG9ydCBmb3IgbmVzdGVkIHN0YWNrcywgZW5hYmxpbmcgbW9yZSBmbGV4aWJsZSBhbmQgbW9kdWxhciBzdGFjayBjb25maWd1cmF0aW9ucy4KCkRlbW86CgohW25lc3RlZC1zdGFja3NdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS91c2VyLWF0dGFjaG1lbnRzL2Fzc2V0cy8xMmI1YzJlMS1mNThlLTQ0ODgtODczZi1lZThiOTRlNzJhZmMpCgpUbyB0cnkgaXQgb3V0LCBtYWtlIHN1cmUgeW91IGVuYWJsZSB0aGUgW3N0YWNrcyBleHBlcmltZW50XShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL2V4cGVyaW1lbnRzLyNzdGFja3MpLgoKUkZDOiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2lzc3Vlcy8zMzEzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvaXNzdWVzLzMzMTMpCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgZmVhdDogYWRkZWQgc3VwcG9ydCBmb3IgbmVzdGVkIHN0YWNrcyBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzkwMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzkwMCkKLSAgIGRvY3M6IFN1cHBvcnQgbmV3IHByZS1yZWxlYXNlIHByb2Nlc3MgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTQxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTQxKQotICAgYnVpbGQoZGVwcyk6IGJ1bXAgZ2l0aHViLmNvbS9nby1qb3NlL2dvLWpvc2UvdjQgZnJvbSA0LjAuNCB0byA0LjAuNSBieSBbQCYjODIwMztkZXBlbmRhYm90XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVwZW5kYWJvdCkgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5MzBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5MzApCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjczLjE1Li4udjAuNzMuMTYKCjwvZGV0YWlscz4KCi0tLQoKIyMjIENvbmZpZ3VyYXRpb24KCvCfk4UgKipTY2hlZHVsZSoqOiBCcmFuY2ggY3JlYXRpb24gLSBBdCBhbnkgdGltZSAobm8gc2NoZWR1bGUgZGVmaW5lZCksIEF1dG9tZXJnZSAtIEF0IGFueSB0aW1lIChubyBzY2hlZHVsZSBkZWZpbmVkKS4KCvCfmqYgKipBdXRvbWVyZ2UqKjogRGlzYWJsZWQgYnkgY29uZmlnLiBQbGVhc2UgbWVyZ2UgdGhpcyBtYW51YWxseSBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkLgoK4pm7ICoqUmViYXNpbmcqKjogV2hlbmV2ZXIgUFIgYmVjb21lcyBjb25mbGljdGVkLCBvciB5b3UgdGljayB0aGUgcmViYXNlL3JldHJ5IGNoZWNrYm94LgoK8J+UlSAqKklnbm9yZSoqOiBDbG9zZSB0aGlzIFBSIGFuZCB5b3Ugd29uJ3QgYmUgcmVtaW5kZWQgYWJvdXQgdGhpcyB1cGRhdGUgYWdhaW4uCgotLS0KCiAtIFsgXSA8IS0tIHJlYmFzZS1jaGVjayAtLT5JZiB5b3Ugd2FudCB0byByZWJhc2UvcmV0cnkgdGhpcyBQUiwgY2hlY2sgdGhpcyBib3gKCi0tLQoKVGhpcyBQUiB3YXMgZ2VuZXJhdGVkIGJ5IFtNZW5kIFJlbm92YXRlXShodHRwczovL21lbmQuaW8vcmVub3ZhdGUvKS4gVmlldyB0aGUgW3JlcG9zaXRvcnkgam9iIGxvZ10oaHR0cHM6Ly9kZXZlbG9wZXIubWVuZC5pby9naXRodWIvb3Npc20vdGVzdGJlZCkuCjwhLS1yZW5vdmF0ZS1kZWJ1ZzpleUpqY21WaGRHVmtTVzVXWlhJaU9pSXpPUzR4TnpZdU1pSXNJblZ3WkdGMFpXUkpibFpsY2lJNklqTTVMakl3Tnk0eElpd2lkR0Z5WjJWMFFuSmhibU5vSWpvaWJXRnBiaUlzSW14aFltVnNjeUk2V3lKeVpXNXZkbUYwWlNKZGZRPT0tLT4K
      patchset: 76a4fcd3dbd32bdf398abd9665d2e2206bbb9b50
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: fa94074a33c2a4b1ff3eaadb063e1f29046bf671
          trusted/project_1/opendev.org/zuul/zuul-jobs:
            canonical_name: opendev.org/zuul/zuul-jobs
            checkout: master
            commit: 2334a41776ff4b0ac29fae001fea8ff7e52c4c98
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 1c06657b493de26acd700ae416445c0a7e12e25b
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: fa94074a33c2a4b1ff3eaadb063e1f29046bf671
          untrusted/project_2/opendev.org/zuul/zuul-jobs:
            canonical_name: opendev.org/zuul/zuul-jobs
            checkout: master
            commit: 2334a41776ff4b0ac29fae001fea8ff7e52c4c98
        playbooks:
        - path: untrusted/project_0/github.com/osism/zuul-jobs/playbooks/python-black/run.yml
          roles:
          - checkout: main
            checkout_description: playbook branch
            link_name: ansible/playbook_0/role_0/zuul-jobs
            link_target: untrusted/project_0/github.com/osism/zuul-jobs
            role_path: ansible/playbook_0/role_0/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_1/zuul-config
            link_target: untrusted/project_1/github.com/osism/zuul-config
            role_path: ansible/playbook_0/role_1/zuul-config/roles
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/playbook_0/role_2/zuul-jobs
            link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs
            role_path: ansible/playbook_0/role_2/zuul-jobs/roles
      post_review: false
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/testbed
        name: osism/testbed
        short_name: testbed
        src_dir: src/github.com/osism/testbed
      projects:
        github.com/osism/testbed:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          checkout: main
          checkout_description: zuul branch
          commit: 52b81b4a996c48bcfb3609e7aa7ea6abb464bb53
          name: osism/testbed
          required: false
          short_name: testbed
          src_dir: src/github.com/osism/testbed
      ref: refs/pull/2615/head
      resources: {}
      tenant: osism
      timeout: 1800
      voting: true
