Compare commits

..

6 Commits

@ -5,28 +5,11 @@ Purpose: Manage gpg keys for:
# Key Management # Key Management
* Role: New User: new key to be added; can be a new employee being added for first time, existing employee getting access to a new repo, key rotation, etc Roles:
* Role: Existing User: user who already has access to the appropriate project
* Definition: List of all users: [verify/.sops.yaml](verify/.sops.yaml)
* Keys Repository: This Git Repository (`communication-keys`), manages public keys and configuration in Project Repositories
* Project Repository: Git Repository for each Project which contains SOPS-Encrypted secrets, e.g. for GitOps Deployments using Helm Files
# Playbook for Configuring Access for New Users
## Overview:
1. In the Keys Repo (`communication-keys`): * New User: new key to be added; can be a new employee being added for first time, existing employee getting access to a new repo, key rotation, etc
1. New User creates,adds GPG Key * Existing User: user who already has access to the appropriate project
1. Existing User configures groups * Definition: List of all users: [verify/.sops.yaml](verify/.sops.yaml)
1. Existing User configures verification SOPS Config
1. New User installs SOPS
1. New User verifies SOPS installation using verification SOPS Config
1. **Status**: New User has working key, working sops installation. Caveat: No access to secrets in other repos yet
1. In the Project Repo
1. Existing User adds New User Key to SOPS Config, Secrets Files
1. New User verifies access
1. **Status**: New User has access to SOPS-encrypted secrets within Project Repo
## 1a. Onboarding: [New User]: create and add a gpg key ## 1a. Onboarding: [New User]: create and add a gpg key
1. Clone this repository 1. Clone this repository
@ -37,26 +20,38 @@ Purpose: Manage gpg keys for:
- CAVEAT: step 14 is not necessary, as it is specific to a GitHub account - CAVEAT: step 14 is not necessary, as it is specific to a GitHub account
1. add ONLY the _PUBLIC_ part of your gpg key!!! to your branch 1. add ONLY the _PUBLIC_ part of your gpg key!!! to your branch
- file format: `<email>@netgo.de.gpg.pub` - file format: `<email>@netgo.de.gpg.pub`
- **Example**: `max.musterman@netgo.de.gpg.pub`
1. git: commit the new file, push 1. git: commit the new file, push
1. gitlab: open a MergeRequest 1. open a MergeRequest
1. **Hand-Off**: Assign the MR to an Existing User in your Team to have your key added. 1. Hand-Off: Assign the MR to an Existing User in your Team to have your key added.
- Hint: Look up all Existing Users in the comments at: [verify/.sops.yaml](verify/.sops.yaml) - Hint: Look up all Existing Users in the comments at: [verify/.sops.yaml](verify/.sops.yaml)
## 1b. Onboarding: [Existing User|New User]: Add new user to groups ## 1b. Onboarding: [Existing User|New User]: Add new user to groups
**Prerequisite**: Determine the groups to which access is needed, e.g. a specific repository. If uncertain, ask a Team Member for help! Determine the groups to which access is needed, e.g. a specific repository.
If uncertain, ask a Team Member for help!
Technical Instructions - please forgive the complexity
Access for each repo is tracked using the `./groups/` directory; each sub-directory represents a "group" (Note: some "groups" are also "roles", e.g. `admin`)
**Technical Instructions** - please forgive the complexity Most of the groups correspond directly to git repository names, aka "project name"
Create a symlink from the group-directory back to the keyfile Create a symlink from the group-directory back to the keyfile
```shell
cd groups/<project_name>
ln -s ../../<path_to_key.gpg.pub>
```
1. `cd groups/<project_name>` Example:
- **Example**: `cd groups/devnso-adp-argocd`
- Explanation: Access for each repo is tracked using the `./groups/` directory; each sub-directory represents a "group" (Note: some "groups" are also "roles", e.g. `admin`) Add "Max Musterman" to the group for `devnso-adp-argocd`:
- Explanation: Most of the groups correspond directly to git repository names, aka "project name" ```shell
1. `ln -s ../../<path_to_key.gpg.pub>` # navigate to group-directory for devnos
- **Example**: `ln -s ../../max.musterman@netgo.de.gpg.pub` cd groups/devnso-adp-argocd
# symlink to pubkey for New User
ln -s ../../max.musterman@netgo.de.gpg.pub
```
## 2. Onboarding: [Existing User]: Configure sops config ## 2. Onboarding: [Existing User]: Configure sops config
@ -66,96 +61,51 @@ For verification purposes, this repo also contains a _sample_ `.sops.yaml` to wh
### Update Verification SOPS Config ### Update Verification SOPS Config
1. Checkout the New User's branch titled `add_pubkey_[firstname]-[lastname]`. Follow the interactive prompts:
- CLI: e.g. `git branch add_pubkey_Max-Musterman` ```shell
1. Run `./verify/usr_confirm_keycfg.sh` ./verify/usr_confirm_keycfg.sh
1. git: commit the new file, push ```
1. **Status**: New User has working SOPS Configuration
1. **Hand-Off**: Proceed to next steps; Instruct New User to verify access to secrets
### Update Project SOPS Config ### Update Project SOPS Config
The following commands explain how to update the `.sops.yaml` for a repository. The following commands explain how to update the `.sops.yaml` for a repository:
Note: For a worked-through example, see next section. #### Prerequisite
1. **Prerequisite**
1. Obtain Project Repo
- CLI:: `git clone <repo_url>`
1. **Create Branch**
- CLI: `git checkout -b add_pubkey_[firstname]-[lastname] origin/main`
1. **Configure Project Repo for New User**
1. List available groups:
- CLI: `${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh --list_groups`
- Reminder: Group Name usually corresponds to Repository Name
1. Update sops config AND all secrets files:
- CLI: `${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh --group <group_name> --find_secrets
1. **Commit the changes, Create Change Request (PR/MR)**
1. git: commit the changes to `.sops.yaml` and secrets files (`secrets.yaml`) files
- CLI: `git add .sops.yaml $(find . -name secrets.yaml)`
- **CAVEAT**: check for other changes with `git status` ! The files do not always follow consistent conventions.
- CLI: `git commit -m "adds <firstname>.<lastname> to sops config"`
1. git: push branch
- CLI: `git push -u origin add_pubkey_[firstname]-[lastname]`
1. gitlab: open a MergeRequest, Review, Merge
1. **Status**: New User has access to SOPS-Encrypted Secrets within Project Repo
1. **Hand-Off**: Proceed to next steps; Instruct New User to verify access to secrets
#### Example
**Prerequisite**
Obtain Repo
```shell ```shell
# E.g. update sops config for DevNSO # E.g. update sops config for DevNSO
% git clone git@git.dev-at.de:cloud-solutions/nso/devnso-adp-argocd.git % git clone git@git.dev-at.de:cloud-solutions/nso/devnso-adp-argocd.git
% cd devnso-adp-argocd/ % cd devnso-adp-argocd/
``` ```
**Create Branch**
```shell
## OPINIONATED GIT - use preferred method
git checkout -b add_pubkey_max-musterman origin/main
```
**Configure Project Repo for New User** #### Commands
<!-- TODO: auto-determine group with git remote show origin -->
<!-- TODO: auto-determine secrets files by integrating the 'find . -name secrets.yaml' in the script -->
```shell ```shell
# List available groups # List available groups
# Output:
% ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh --list_groups % ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh --list_groups
# INFO: listing groups # INFO: listing groups
admin admin
automation automation
devnso-adp-argocd devnso-adp-argocd
# For a given group, update sops config AND all secrets files - New Users cannot add themselves! # For a given group, update sops config
# Output: % ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh -g devnso-adp-argocd
% ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh --group devnso-adp-argocd --find_secrets
# RUN: generate SOPS config # RUN: generate SOPS config
# RUN: gpg --import *.gpg.pub # WARN: no secrets file passed in, make sure to call 'sops updatekeys' on secrets files
# RUN: sops updatekeys ./loki/loki/secrets.yaml
...
# SUCCESS: all users with keys in this dir should have functional keys
```
**Commit the changes, Create Change Request (PR/MR)** # [OPTIONAL] For a given group, update sops config AND specified secrets file
```shell % ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh -g devnso-adp-argocd -s ./adp-api-devs/adp-api-devs/secrets.yaml
# git: commit the changes to `.sops.yaml` and secrets files (`secrets.yaml`) files
% git add .sops.yaml $(find . -name secrets.yaml)
# **CAVEAT**: check for other changes with `git status` ! The files do not always follow consistent conventions.
# output:
% git status
...
no changes added to commit (use "git add" and/or "git commit -a")
% git commit -m "adds max.musterman to sops config"
git push -u origin add_pubkey_max-musterman # commit the changes to any .sops.yaml or secrets files, e.g. with
## OPINIONATED GIT - use preferred method
% git add -p
# 1. review changes to the .sops.yaml
# 2. press 'y' to accept the changes
y
% git commit -m "adds <firstname>.<lastname> to sops config"
% git push
``` ```
Now proceed to with the remaining steps, i.e. gitlab: open a MergeRequest, Review, Merge At this point, the New User has been configured and can grant themselves access to any of the secrets files in this project.
## 3. Onboarding: [New User] Configure SOPS ## 3. Onboarding: [New User] Configure SOPS
@ -164,18 +114,10 @@ SOPS is used for encrypting secrets, e.g. credentials for various systems
## Install ## Install
1. **Install Sops** https://github.com/getsops/sops
1. https://github.com/getsops/sops
- Note: Note:
* MacOS: If desired, one can also use brew to install sops: `brew install sops`; although this is not officially maintained, [the formula is essentially the same as the official installation instructions](https://github.com/Homebrew/homebrew-core/blob/4496ce5131bc09e7065fa0aa8fb96366a3df6477/Formula/s/sops.rb) * MacOS: If desired, one can also use brew to install sops: `brew install sops`; although this is not officially maintained, [the formula is essentially the same as the official installation instructions](https://github.com/Homebrew/homebrew-core/blob/4496ce5131bc09e7065fa0aa8fb96366a3df6477/Formula/s/sops.rb)
1. **Configure Sops**
* Add the following to your `~/.bashrc` or `~/.zshrc` - but _not_ to your `~/.profile` as it must be set per session:
```shell
# Enable interactive passphrase prompt for SOPS
export GPG_TTY=$(tty)
```
1. **Verify SOPS Installation and Key Configuration**
1. `./verify/usr_confirm_keycfg.sh`
## Usage ## Usage
@ -184,15 +126,12 @@ Decrypt and Display Secrets in Terminal:
```bash ```bash
GPG_TTY=$(tty) sops secrets.yaml GPG_TTY=$(tty) sops secrets.yaml
``` ```
<!-- CAVEAT: if GPG_TTY is set in environment, no need to specify it again. Leaving it inline for this command to be explicit about requirement for correct functiuonality -->
Note: The `GPG_TTY` is necessary to have the password prompt appear. src: https://www.varokas.com/secrets-in-code-with-mozilla-sops/ Note: The `GPG_TTY` is necessary to have the password prompt appear. src: https://www.varokas.com/secrets-in-code-with-mozilla-sops/
Note: `secrets.yaml` is just an example; the file can have any name Note: `secrets.yaml` is just an example; the file can have any name
# Playbook for Removing Expired Keys ## 4. Offboarding: [Existing User]: Archive Expired Keys (EOL)
## Offboarding: [Existing User]: Archive Expired Keys (EOL)
To mark a key as expired: To mark a key as expired:
1. move it to the `archive/` dir 1. move it to the `archive/` dir
@ -218,7 +157,7 @@ find groups/ -name ${keyname}
# For each group, update sops config in that repo # For each group, update sops config in that repo
# Example: # Example:
% cd devnso-adp-argocd % cd devnso-adp-argocd
% ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh --group devnso-adp-argocd --find_secrets % ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh -g devnso-adp-argocd
# now git commit, push, etc # now git commit, push, etc
``` ```

@ -1,42 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQGNBGfrlH0BDAC4oO5PNsFJiLm0qUmVDzWflsiEDJoyKQYcbNblDOjTHjhnn0h7
OudpVFbw7ABj+TZ95ytdiVvMOsitINDzCH1zWrN2nvXi1l2JVo6rSWRVPO9OF8LJ
Z+Soomn28Wd39NvJkBwEgL1WRVck69Aqk0Z5bqfocm65vJSrBrg2V6LKRtF7tvTI
1CRaxK2yq4Vp4DPLUg4h+9g/OoCf1bS/QOqnv2wQ2kAe6/2Oarp+OBfwCaqpnVxt
6Q3XVBg9maooCTpdWzHydeyVzrLY08oiPXv6yfoOeOz/wLvhevbn0Y9GikpAfDT5
vUGaXrMegjIpOdNRRK20ZG/4eYfuASEMdNWlmacXKGNtk7/Vl0j5Z421WfhCmBYG
Av3L1n4n28yffZDL+nkAVN2iIh+n9cBK9Xfxpuhl6BWh7Axc9Az1yeNZ6E1veAkb
ngDb+gBqhzxoLuI2xW6Wfmz50aSdVtPXVUf6W/cyD7b51UNGKPiODj+aIJ68F+1w
cWuPzGu88Khorr0AEQEAAbQoYW5kcmVhcy5yb3RoZXIgPGFuZHJlYXMucm90aGVy
QG5ldGdvLmRlPokB0QQTAQgAOxYhBEPeigGr1wZxfDYBjEjEfBJcAi8pBQJn65R9
AhsDBQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJEEjEfBJcAi8pj8sMAIkT
G8jnmCc6QLzSWGUfJps9RqbKXSi3dgi89cXkgrNdAp1EgB8wEWhd3K8s6rhGqQMY
zc7CboEUq6iJSNgdSO4tM6UmNN91DtoPHeacO2bbJ9Bq7sVf42TAi2lOI6qYgA+X
MrGu/nI2dVzuuofKBE+VEUBqZKEwEW81NAoGvr7XHFXvWF56XiTaKtNUJOH/iDD2
AHV6OejwAaePw/enj+3y1O4FGa6ZIU9sfK02M9VGQvaIkKGpEaXhJV2aOmY//8rV
jE0hWWF91hCQzGbOKzRk9UDRA8yc5w8I3D+IFIWzrEzlJvpqeh4evUGkDgSTJFxC
WQts7GFowNCoGQG3Tt0qRrRs0riGh1rc9+1p836x0+6o+8wW6sSrXiEr7+JgmzVG
IHKMWRTBUtpLvIbE0mbKBCt3tTSiwGYM+zmht/yJ/9Au//wFBuoJI5gyaLPscHcI
dnnmmx7Ww/1Mq/MeaisyuVwpbaSnb4Z2Rk02DbRsTzzPDwNNQDZDX6QurGhS0bkB
jQRn65R9AQwAyNgXVnlefBsyFWvED0yVpKzf3afxUfKy66eNsfvRQDogVnxUddv/
azeD4t6wCGvXBYEQOd8e3N6yeEv3w6RoYGWDQgv22zpubvUChzlI1vs+qewrA+lC
ssBfpEJ1ymYL/HaxaJPDxpz3tvN9k4uCD4dvwK3V62itTwvTlXOTqa3QYMWIHmWs
qS1Up2f1nTDVOgHchZPiSwfrsuJX6b9WGt5ClXxy2iQQfUPcyyFwAh1VrJgG0mYB
qG2l0QJFLzlv21GpxqUl5HqbUnZ4i06nzHI3cH137xZKux96oxT4GIpRBuMLTGc1
Its1bebfeu4DIDBk5mJD58THBf2s6Qu8M2wkScaRrtuHgjLd6u6IIe55SyeAk025
x82m6Kk1zG83NkGbeCziBq5dwDQIbpb5jpYBYVV+YVEMv2zI99hGUDvghW22z81C
M3AUS35P+80r+IayGNIh1X02YTxw+1e6aOpBY9q2J+51wv6pwCDLIlhv1wQqMOZG
DXgDxFVTy5chABEBAAGJAbYEGAEIACAWIQRD3ooBq9cGcXw2AYxIxHwSXAIvKQUC
Z+uUfQIbDAAKCRBIxHwSXAIvKXJzC/9/tkAGf8FD7gyFfRCZcoTILZe98U0jez3j
yafmjcApUaIlFg8Z8LiNqcUpaPIpk5/3kJQU+cWS6opXLs6Ahg1vjb0G9G1vZ3yV
lqTIahxNQ0KOIvvh8pNrNxosBBunXNDDBAiJbrAPWA18s1OJ4lNFGKlpUtXfGn/h
5uu3cUBtWAk85x2gIiwp4wyyxsfA2A59QOAfbjEQmre28N+Chhb3CU0devWI5Yos
TYYb1JdR9bj+G1CxE21gSPHOzLexrbdosb8t49o6vkRn4qnxvMwrgzOZMWR0HjAw
oIjv5BKah5YSW0VBq279aMENtXsvRN25t2T3YB81QtDajxiX2tl+8C0tg9UNYmMu
+0d8ocNz+HcBdXnPcggkeR/tba8OEts5ycCLfVMddJbHgER3xDXbnYUssg3pndMg
ueCM1qeosWHhZT4+4/QVgZTiUzjyPwUUz8bFsyAKYVJAR9PC8M44pBcqyu5RarQu
tPQpHpp5OcriKFWxiZSM41Wm5yHn5Yc=
=BUTZ
-----END PGP PUBLIC KEY BLOCK-----

@ -1,13 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaD2xXRYJKwYBBAHaRw8BAQdAKL1LP1gP7t3R41tNdVH5cUu7OksuY7FDwoq0
EX/IznG0KkR1c3RpbiBCbGVzY2hrZSA8ZHVzdGluLmJsZXNjaGtlQG5ldGdvLmRl
PoiTBBMWCgA7FiEEjWAJEv1C71NS043SL9cfRX73u4sFAmg9sV0CGwMFCwkIBwIC
IgIGFQoJCAsCBBYCAwECHgcCF4AACgkQL9cfRX73u4trEAD/Z/e5IU9+PyU0oSFT
tu9i2t2muFwrNdxsrkgATNJoJqEBAPGRo5apeOwH/8rqfOnK89AMUPPD9DS5Giqg
RPOT4/UOuDgEaD2xXRIKKwYBBAGXVQEFAQEHQKI0sArCldO4QoHZZNUDpk2e92WC
aJSpEpqaQ1ODqGVwAwEIB4h4BBgWCgAgFiEEjWAJEv1C71NS043SL9cfRX73u4sF
Amg9sV0CGwwACgkQL9cfRX73u4tnzQEA5+wX3G6uInM8rkMCGxaZ4/0gV30Kc2ye
1YqWNjZBgKUBAKLeSWj7VzdV/nZ/rgmrZx44pQxbsv5IYaZbYKxanuwD
=vPAd
-----END PGP PUBLIC KEY BLOCK-----

@ -1,13 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaBTWbhYJKwYBBAHaRw8BAQdAkvaY0BFbzEITBsCR3A8JnjrWZ/4orlFY7Ixe
aUSE/de0Hkt5cmEgS2VyeiA8a3lyYS5rZXJ6QG5ldGdvLmRlPoiTBBMWCgA7FiEE
u6DCZkei2Hq6GG1vPShOpyX5VS4FAmgU1m4CGwMFCwkIBwICIgIGFQoJCAsCBBYC
AwECHgcCF4AACgkQPShOpyX5VS5KCAEA5Fc+i9r1+xVRKqlf+XqX6PT1uhWKyrR4
+p6D0Q8/aCcA+wSuUcrwSNTcxfKF65wKyuOiNw5lWTTYq8vcwjIDYgUIuDgEaBTW
bhIKKwYBBAGXVQEFAQEHQBddu45Nfx+u3scccplH1OBLxSeOn6nKiSyVrrd8ySII
AwEIB4h4BBgWCgAgFiEEu6DCZkei2Hq6GG1vPShOpyX5VS4FAmgU1m4CGwwACgkQ
PShOpyX5VS4XpQD+JFrljM9ywUV17RjxZQEWpvviHGnWXYiayy/LbULb0M0A/iba
nN8E8ow17zqpng5Jqm7a/IYy8yQsNB0FYf6ddMMC
=FqJe
-----END PGP PUBLIC KEY BLOCK-----

@ -124,17 +124,18 @@ function main(){
fi fi
# "anchor" for actions relevant to this script # "anchor" for actions relevant to this script
repo_root="$(realpath $(dirname "${BASH_SOURCE[0]}")/..)" repo_root="$(realpath $(dirname "${BASH_SOURCE[0]}")/..)"
# OPTIONS: ARGPARSING and VALIDATION # OPTIONS: ARGPARSING and VALIDATION
# assume location of script as running directly from repo with keys (instead of as a standalone packaged tool) # assume location of script as running directly from repo with keys (instead of as a standalone packaged tool)
keyfiles_dir="${repo_root}" keyfiles_dir="${repo_root}"
# dir containing .sops.yaml # assume location of secrets config file in pwd
sops_config_dir="" sops_config_dir=""
# path to group definitions # path to group definitions
groups_def_dir="${repo_root}/groups" groups_def_dir="${repo_root}/groups"
# optional:
opt_list_groups=0 opt_list_groups=0
# optional: specify "groups"
groups_list=() groups_list=()
opt_find_secrets=0 # optional: secrets files to be updated
secrets_file_list=() secrets_file_list=()
while (( $# >= 1 ));do while (( $# >= 1 ));do
@ -150,8 +151,6 @@ function main(){
-lg|--list_groups) opt_list_groups=1 ;; -lg|--list_groups) opt_list_groups=1 ;;
# ARGS: [optional] [list] specify "groups" which correspond to e.g. job groups, projects, etc # ARGS: [optional] [list] specify "groups" which correspond to e.g. job groups, projects, etc
-g|--group) groups_list+=( "${2}" ); shift ;; -g|--group) groups_list+=( "${2}" ); shift ;;
# ARGS: [optional] update all "secrets.yaml" files found below .sops.yaml location
-f|--find_secrets) opt_find_secrets=1;;
# ARGS: [optional] [list] specify files containing sops-encrypted secrets # ARGS: [optional] [list] specify files containing sops-encrypted secrets
-s|--secrets_file|-f|--file) secrets_file_list+=( "${2}" ); shift ;; -s|--secrets_file|-f|--file) secrets_file_list+=( "${2}" ); shift ;;
# ARGS: [optional] [list] specify files containing sops-encrypted secrets # ARGS: [optional] [list] specify files containing sops-encrypted secrets
@ -185,22 +184,12 @@ function main(){
# locate appropriate sops config if default assumption not found # locate appropriate sops config if default assumption not found
# dev note: '2> /dev/null' to disable debug output # dev note: '2> /dev/null' to disable debug output
sops_config="$(fn_sops_locate_config_in_git_repo 2> /dev/null)" sops_config="$(fn_sops_locate_config_in_git_repo 2> /dev/null)"
sops_config_dir="$(dirname "${sops_config}")"
fi fi
# Paths to Secrets Files
if [[ "${#secrets_file_list[@]}" != "0" ]]; then if [[ "${#secrets_file_list[@]}" != "0" ]]; then
for secrets_file in "${secrets_file_list[@]}"; do for secrets_file in "${secrets_file_list[@]}"; do
test -e "${secrets_file}" || (echo "E: could not locate file with secrets, tried: ${secrets_file}" && exit 1) test -e "${secrets_file}" || (echo "E: could not locate file with secrets, tried: ${secrets_file}" && exit 1)
done done
fi fi
if [[ "${opt_find_secrets}" -eq 1 ]]; then
# DEV NOTE: this is far too complicated
# loop through find, src: https://stackoverflow.com/questions/9612090/how-to-loop-through-file-names-returned-by-find
while IFS= read -r -d $'\0'; do
secrets_file_list+=("${REPLY}")
done < <( find "${sops_config_dir}" -name secrets.yaml -print0 )
fi
# /VALIDATE INPUTS # /VALIDATE INPUTS
# /OPTIONS: ARGPARSING and VALIDATION # /OPTIONS: ARGPARSING and VALIDATION

@ -1,14 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEZ9LiixYJKwYBBAHaRw8BAQdAo9TZ7FbNytrM9Odrm1fg4SV3AurPr6B4Z6wT
bYmc0Iu0NUNocmlzdG9zIEFkYWxpcyAoR1BHIEtleXMpIDxjaHJpc3Rvcy5hZGFs
aXNAbmV0Z28uZGU+iJMEExYKADsWIQT38yjw5JWOTHhZd+I7iqC6q62v5AUCZ9Li
iwIbAwULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRA7iqC6q62v5JTTAP0R
ME/a4n1TkA7QtUc06KEhdYPld8T3udBusk67jWLGMQEA/niJGzcmoSbNDGvC6hLi
fw9ZlohBFItF8Dur/mLPWgS4OARn0uKLEgorBgEEAZdVAQUBAQdArq2uimWJutt0
DsCEPAwlirHZI476ks1eNr8n3RTzbhEDAQgHiHgEGBYKACAWIQT38yjw5JWOTHhZ
d+I7iqC6q62v5AUCZ9LiiwIbDAAKCRA7iqC6q62v5KgjAP9Q/dfkGy0/9cKJsmPD
emKfbZbQ8FrNX70+oYMGxjV3WwEAyol9yD1pJSt1g3R9/oHo7/KW5ZsXbVIx/Vqc
uskiLgA=
=sg0j
-----END PGP PUBLIC KEY BLOCK-----

@ -1,13 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK----- -----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaEBF9xYJKwYBBAHaRw8BAQdA6syYUNOSScarxQGom8QcmY/yaK+OWhAQ68IY mQINBGJWv54BEADYY6n9rrteddJ99h3erlB3pgJV+ixR7Qb/sCRFiMGcEV9PLiZr
dj7KxzW0JENsYXVzIFBhZXRvdyA8Y2xhdXMucGFldG93QG5ldGdvLmRlPoiQBBMW 8vkRlrRORaIxFXa/xnYrQ12oPbXjWDajp389W7pRHTgw3gCKRVk8eb1rwT9ZbE/U
CgA4FiEEZZ/e1D3hVft3KjObNDzxIYpmTTEFAmhARfcCGwMFCwkIBwIGFQoJCAsC trAL7ug7C+hPPkqiByHBbJ9mSfU1SrnLCAO8QFP0SXn6BVB6qSpouuorgZKwwjMm
BBYCAwECHgECF4AACgkQNDzxIYpmTTHvVQEAi2IabzcpNK6ZBmsP2NL52oXhY4iM Bef5Qgb9RfcrCoGQV/ks8za/aPUOuqxhyEm6bmys0jy5UhkYEvvT/RIZFD/mpv/P
bzDEtJul0E/hcvEA/3cPIZ9lIB8WeA6SK8nAgV5AlxGXsCdHsv55A2F/vDEIuDgE hSOZNhQ2Job1PQgaIsM5KH7HpxOjZSjaPeA/buhyFTKCkAd474BHUWIAVxD65Kx3
aEBF9xIKKwYBBAGXVQEFAQEHQNGjADOks0AjX4qlQ3xgSOP0RBIELjqYBH/Ihiwf n8pWIgbdd6kPgEOCycVx1SyNfdwz7WRINKZlTc3lJYLFy72xzhs0w4W85ssxB8mQ
eQ9ZAwEIB4h4BBgWCgAgFiEEZZ/e1D3hVft3KjObNDzxIYpmTTEFAmhARfcCGwwA jwjoauMTGV+dqgsnqBIbDpYE16avUvS988vLicXhZb+dz8jmwxqBojwxGi/IvhLv
CgkQNDzxIYpmTTFyOQEArR4vKYPP9cD6Plsn0pK4hONApCEHRKGC0d3JtUkZvJAB 8x+2RD4ZZt3BpEnGI7JRN4FBpAK/kFGWbLKFgJZa+7cGfmC40zfTDqNdegukjtt0
ALaWq4tjsPm4wF6D9RMN9tCuPPVtt/FbGzVBlm3OP2sL puz5X64kJMGQ8ZucmG5x8fgW9qZv7bDZUXVDWIz2QynUxmDuGjzXyTIYlp9DJyQL
=PsTc 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
1vC99G5EtuXL1U37Qp8Kug==
=vm8K
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----

@ -1,51 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=++7P
-----END PGP PUBLIC KEY BLOCK-----

@ -1,14 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEZ9Lk+hYJKwYBBAHaRw8BAQdAAImByKSkf+XTHj9o6BareP+aIhkTz1KV+4ZI
AsSgv/u0OURhcnlsIFNhdWVyLU5ldW1hbm4gKFNPUFMpIDxkYXJ5bC5zYXVlci1u
ZXVtYW5uQG5ldGdvLmRlPoiTBBMWCgA7FiEEAUMBn2JGntWmoBbCGcp2TTdZD58F
AmfS5PoCGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQGcp2TTdZD5/T
6gEAkVq5UnUPs6poLj2Tdqzlj13wToRpP3WFmDaa4mB9uM0A/1Yfde+hFFKIWPFR
hnfXeBH7HLHLC6EC7U58B8P8/aELuDgEZ9Lk+hIKKwYBBAGXVQEFAQEHQJZ2QRYW
XQ6N/wtLePHyafLb+D4wW4Di5SwoO2P/RwVZAwEIB4h4BBgWCgAgFiEEAUMBn2JG
ntWmoBbCGcp2TTdZD58FAmfS5PoCGwwACgkQGcp2TTdZD5939AD/U1HH5hOyo5n7
660ZFL5PoZpm9yxPwAUPa+Mp63QR/IQA/RNlBVGaCRlgWsPa7COo6n7yc0XfB6bi
on9JkIJgK0oB
=PxAk
-----END PGP PUBLIC KEY BLOCK-----

@ -0,0 +1 @@
../../lee.watson@netgo.de.gpg.pub

@ -0,0 +1 @@
../../smardigo_automation_poc_workload01.gpg.pub

@ -0,0 +1 @@
../../smardigo_automation_qa.gpg.pub

@ -0,0 +1 @@
../../smardigo_automation_qanso.gpg.pub

@ -0,0 +1 @@
../../smardigo_automation_rancher_poc.gpg.pub

@ -0,0 +1 @@
../../smardigo_automation_sspdev.gpg.pub

@ -1 +0,0 @@
../../christos.adalis@netgo.de.gpg.pub

@ -1 +0,0 @@
../../daryl.sauer-neumann@netgo.de.gpg.pub

@ -0,0 +1 @@
../../kevin.bauske@netgo.de.gpg.pub

@ -0,0 +1 @@
../../lee.watson@netgo.de.gpg.pub

@ -1,15 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaWUQSBYJKwYBBAHaRw8BAQdAGT3vXIrTITynXkjRlamZJ1jLs2BffQVz3Iwj
SZpFq3W0LXN0b2VsdGluZy1hZHAtcHJvZCA8TlNPLVRlYW0tRGV2T3BzQG5ldGdv
LmRlPoiTBBMWCgA7FiEE6ETrYVE2JueMSyYw4oFhS7o3stEFAmllEEgCGwMFCwkI
BwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQ4oFhS7o3stE2ogEAqUcUv6AEHqvL
Xy0PFAm/3wAdXsenNXvoqo4VYb2OCHMBAM6ArZXqwh69C0eXqyuVtsOlG19Cqeby
z2uNWy0IdPQPuDgEaWUQSBIKKwYBBAGXVQEFAQEHQGiJ5ojUcda4EI6pNnQECBZB
O0CYeGZdT2mw2KpjjkwUAwEIB4h4BBgWCgAgFiEE6ETrYVE2JueMSyYw4oFhS7o3
stEFAmllEEgCGwwACgkQ4oFhS7o3stGRYwD/X69urpUy3GpaiCLRa62MAXbNacbZ
wokxqcpUc9ygHn8A/1zSkEyzp3dm86wv6oY70FfR4K1dfj73ltD39l7UtD8M
=6EQP
-----END PGP PUBLIC KEY BLOCK-----

@ -1,14 +1,41 @@
-----BEGIN PGP PUBLIC KEY BLOCK----- -----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaPiOmBYJKwYBBAHaRw8BAQdAgwGFW1hsK88TTcY4Iw8GZSVAknR0iRKnOZL3 mQGNBGUf5j4BDADSd88HFIDGQseOiuJ2TXkqGZE//VDJFcXLQrbwTQaZXSLPkVc9
J+cp2fu0KUphbiBKYW50emVuIChzb3BzKSA8amFuLmphbnR6ZW5AbmV0Z28uZGU+ mZeTKbaEup4H0TYIR6cIUGEuBKRNXvxFJeriurC6jiy/ThNwW2tfRdSGxjyfjRro
iJkEExYKAEEWIQS5LdybkIvzkXdY0ihEbFHgSa44ygUCaPiOmAIbAwUJA8JnAAUL xcUWIogg24dOikoCb7QS3lCt/cAU4qEwmjFKX5Oqjg/ZdN+ODUlxl2pbLeDez93r
CQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRBEbFHgSa44yphwAQDIKCvEYJ2x X/eBEFLFxPIZIRn36GNL1M6b/nSNkhMUfV/Z+O8NUP3NoU/bNsiFyJy07zlPLap6
gd8QClL31SGpD2/5fJ4x/9cXa2pwmcPo4AD/dWYsVwX6iisiE46U2IIsL7ojDa2J xBRyBnn7zCAnuMGtvUcPVr9IpSc1AOHmMVBvhV8UpYhAX3+Mz+0WuaFRABMmkXOm
IYJPrb/HrL8w2Ay4OARo+I6YEgorBgEEAZdVAQUBAQdA9qvcdBmc2TvcReuAu3YA XoO++6jVYwXh6b4ugsF3OtAJ+NYnbF4jWEqiGjVNbGEX1ikRMxlgFwM28VMNXc04
ePpddYljq1L7ihWZDUWrtRMDAQgHiH4EGBYKACYWIQS5LdybkIvzkXdY0ihEbFHg FduQAArBRmsC5IFL6OoO9Ybx6y8eJ7/NVo/3ry6adnCUizzQTwSFn/iguvFs8xKG
Sa44ygUCaPiOmAIbDAUJA8JnAAAKCRBEbFHgSa44yi14AQDPHLsJLjE7csjNPVGi NBYHlKZLAuqvYYJdLE9Jvs8Hy/ERGNwphl741CEcWHWrLVRljIh2b343uAGIRdoT
9XUcfq54ScEc698xyuk8LFMSKAEA0dzeY7tnfGNr7m2jq3odopRmMo99Xaw5h4YA otCGA4wJMK4ePZcAEQEAAbQiSmFuIEphbnR6ZW4gPGphbi5qYW50emVuQG5ldGdv
cQD/yQo= LmRlPokB1wQTAQgAQRYhBLpjKJSNUBdfGWqrURHzJGA9Et1WBQJlH+Y+AhsDBQkD
=rCLM wmcABQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJEBHzJGA9Et1WL0UL/1si
cI0FMbC+H/zF2WRqNz4LcjV8SG9oTzwdeMV1CWdL1DTkbrWxHlIPVlwYmegAlzo9
9lOJEKcNUwhfyui43cLVBMmL7LULPwCOu2r+DGtQhbqI6tjKz5gNYLiBsc718M8Y
V/V//EcWTtG2uJFQ/Axq79r/HZXZ0/J8P9UXN5aVJXkhhJxZZn8QtcUblnKAyykz
QFac3m0b3SayPRSEVfDszOzrc2bFZiwav6dVBIyBpf9qrCChEAIpzqLzf7pxvWz9
VO7MzQaYYX3g4clkId1sCGPhYQuzdyCSVVyLFeGtFFnk/JeA7Bg3xaKC/aYSpaSZ
qFaXhDv2+pQ9MzYnSZ+i8IhBi7k3lLJbzDWTV0SJLvxoUIpyNL9ezwV7xweWRjQV
9XLCearZPoWxaAOqC8+YOG6FYtIW5pbVQ4j59FZz0UexD+kZHFV5TrZX0EYLkzrh
n/ZXEsMhCtok6eqyNe9DgRYnIH0QMHOSZf807D35R/zUzBwnOOtnmfxRwtksrbkB
jQRlH+Y+AQwArPtb+qWExEMBtUcsfq0P6+BDaJHcdP+PPb3Oa8plmDjRjTf7Exsm
KwQTGRZbYRlNFfh8072TSiu5rhNLyCfY0a79DPk2r1r3i4czx2x+m2m7ao0ZsOzE
tkdejlqxi9TIjWhxdSJHHcizeh1tOJU7TZhG04CW8bRtS02L4hCO7JKq+KTZm4Qk
IE0xaO0qDxnpmosK1jQmiURFHprOl2ozJ9HqeUjfSi93baxcVzrbbBbd+OM7JU4d
+cokhvTQdPPRhaUz5i6wJm2mFkjwr308SgzLsohF7Q0tP+wY7rsSeOscxo8sRuXc
DRpx1aJ6gLZmB2bPjqR0p9kpJy448x4KOBBXkKVFNzvRuG4oZ8SPO1DnP9CroHoO
0l+4NWCrHj7EWaj7mgLyNbJjkKULjwpjTsg3nWJj8QrISQa7ejZxVU96Kyk5WGEK
gvZz3/Eocrn+D2vFd0GOEN1qSxEaBLkynsTLaj4+7cm3V/QUZyrIuUjtYyhL5U/+
HeiZSaM5Mk99ABEBAAGJAbwEGAEIACYWIQS6YyiUjVAXXxlqq1ER8yRgPRLdVgUC
ZR/mPgIbDAUJA8JnAAAKCRAR8yRgPRLdVmnxC/9IntQx0YGcLlIXNEIsTE6Q99Gz
TWuTGq5dZCKxuRoT1V5Tmj9zJ7hS3qS+jK+gQKucecMWHogyHJmJjr9OY5A2E3yg
fL4qr1ZrN4i5ozTKd6r19CkU8YupjexKQ4pwSwaj6ovtjr42XmMXTyZhRx02XNvB
cj6Yavr/+586+MKINSfTEFoat74cyUM/SnORkQB+Z+XEPVnqN+gk5nbq1v72mdWV
ooEKvlXu4samcaJaGSYHGH2WXWwsJ0mnA00AhshwC9i+6RCcJTieHIngtTfQRQ+1
joR8eMvLQTj09Nt5PodcjfQ2jxBKtnQTcyssV1V/Jf/tsAa1pP1unTDHfOOphAXf
MZyhszMs7816JcAwtulz+LAq3QO2Ogp4oVE0dKk7vyIJ0hCtRtDDl6t94DjDSzUl
U91KMpm3KZiXSTuBEVuZuU/GCKmQ5OyVKWMTzLlBHvp96oj8+WsJzTkuJwBHWFmZ
uiK1kd08gp9i56uy5tkQtYJGpcsRNJNSnyAbEcM=
=4tfB
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----

@ -1,13 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaVu6PBYJKwYBBAHaRw8BAQdAbz/r57Lm/FBp1dm5BArSxWkBw8eOd5LAEgrz
UF09DFu0Hkpvc2UgTW9yYSA8am9zZS5tb3JhQG5ldGdvLmRlPoiTBBMWCgA7FiEE
PioaTZqHkx9OqHfB3V9C1RR7X08FAmlbujwCGwMFCwkIBwICIgIGFQoJCAsCBBYC
AwECHgcCF4AACgkQ3V9C1RR7X0+GiQEAlsxJIg5oohIWZow4q92KpU9CpzQBeehe
U4fYhF5SCyMA/2MsjnAf/Vl4LJ3uPrT2TIWWK+GmYMJCkUAXieUUZWEKuDgEaVu6
PBIKKwYBBAGXVQEFAQEHQCvMecH8iY4hOktm6KR9iuBfqOxxbhbX8onTHWBo0PgC
AwEIB4h4BBgWCgAgFiEEPioaTZqHkx9OqHfB3V9C1RR7X08FAmlbujwCGwwACgkQ
3V9C1RR7X08GxwD/TfvxybcTthZKKsBDXkAk1DtWeGtylILM2o97G1+b3TYBAPUq
lIaCk1ONGHQn8OMYFsDz47s3IuWGz6ug7E3RD+sI
=+/5q
-----END PGP PUBLIC KEY BLOCK-----

@ -1,40 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=nsrr
-----END PGP PUBLIC KEY BLOCK-----

@ -1,14 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEabqreRYJKwYBBAHaRw8BAQdA7g95BK26aTSQrEt+tIU5zca255cFpcNnX247
LUtsgni0KFJvYmVydCBLZXJzdGVuIDxyb2JlcnQua2Vyc3RlbkBuZXRnby5kZT6I
rwQTFgoAVxYhBDFUmDi5xHQMO5dD4a8dHwwb/7FxBQJpuqt5GxSAAAAAAAQADm1h
bnUyLDIuNSsxLjEyLDIsMQIbAwULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAK
CRCvHR8MG/+xcfiaAQCC2SJIzbwax8j1YaIbFrzHnEpAJwk9T1KUY8YUZ6cB6wEA
2uuKzW7+Jci3gRyZd0955nZaMfcGiNT8Bm/Tbpv51Aa4OARpuqt5EgorBgEEAZdV
AQUBAQdASZ+QQhYV6o99vYwbRgMK9DuarCv0T+zvuBUacHkwJ3YDAQgHiJQEGBYK
ADwWIQQxVJg4ucR0DDuXQ+GvHR8MG/+xcQUCabqreRsUgAAAAAAEAA5tYW51Miwy
LjUrMS4xMiwyLDECGwwACgkQrx0fDBv/sXE1CgD8CCYs7PTvMVLeuL2vW5d3UXDA
mcOfLsln58mlWbN/04kBAMtAhlusXias4q/TlCMNkM4jfxcWq2eGu3MJV3NuHO0O
=+n3d
-----END PGP PUBLIC KEY BLOCK-----

@ -1,14 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEZ/fhOxYJKwYBBAHaRw8BAQdAu8VIhoCmqQSnlln72LVE2sW5cE5GS84pxwyh
HMbdeUm0Pm5zby1hZHAtbWdtdCAobnNvLWFkcC1tZ210IGdwZyBrZXkpIDxOU08t
VGVhbS1EZXZPcHNAbmV0Z28uZGU+iJMEExYKADsWIQSStkvV+zaOVwy5b4nKfQzD
RUpClAUCZ/fhOwIbAwULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRDKfQzD
RUpClLG8AQCv3LTFvw+SzZWa0sLnvahtSR8wIpNw52+qelWDwaMYmwD+N7KhqarI
V6+TWJu9uxpc+RWk/vjlTGDchPeDoCs+xQ24OARn9+E7EgorBgEEAZdVAQUBAQdA
g8dAmTCmmnYBBqPlZDS+FMUpWMhAvCVUfmYai+ZHDQoDAQgHiHgEGBYKACAWIQSS
tkvV+zaOVwy5b4nKfQzDRUpClAUCZ/fhOwIbDAAKCRDKfQzDRUpClDChAQDI0wF7
PGDmqbGOXVKv0uPbTTLhu7oXiBq//blhkhCrjwD8Du/aEdCYoz9m6tobA01sKU+4
Gt1e4njTYlntGDL2kwo=
=hFQO
-----END PGP PUBLIC KEY BLOCK-----

@ -1,41 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
jFFod9cNJ83PKqPUAJJa03e6zyhiKg==
=gk4m
-----END PGP PUBLIC KEY BLOCK-----

@ -1,14 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaJMgXRYJKwYBBAHaRw8BAQdAE6GbHO8yvEW3377zNntvGCj5lJJ1l0h5Bk/6
+cKgWJ20RG5zby1hZHAtc3RhZ2luZyAobnNvLWFkcC1zdGFnaW5nIGdwZyBrZXkp
IDxOU08tVGVhbS1EZXZPcHNAbmV0Z28uZGU+iJMEExYKADsWIQTJA8BGoGPfv49B
xldrJs9JaBKwCgUCaJMgXQIbAwULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAK
CRBrJs9JaBKwCvYpAQDWvMMhe+v3nIttUfEpln+8YQ8KSezLiCpJLQB4o5zt5QD9
Eo/ZIFriX11Y5yxnEjoFkH1LXEj66oGpMTjTojLpaA24OARokyBdEgorBgEEAZdV
AQUBAQdAuvufjrlZjxi5bpQ4MrR/Mk6qxPqU8MFQUc2Df+/alUwDAQgHiHgEGBYK
ACAWIQTJA8BGoGPfv49BxldrJs9JaBKwCgUCaJMgXQIbDAAKCRBrJs9JaBKwCloU
AP4vOcXLiHQ2nkbSm6CeP//0GX0WpsxMniOlqVxkZM5J+gEAu+IulrGA6fNrKNiv
cHh/X5eSsexomJXmxZ8dUOOhFw4=
=sfF9
-----END PGP PUBLIC KEY BLOCK-----

@ -1,13 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaPtbMxYJKwYBBAHaRw8BAQdArKya+q6E/VlCAURWAj3Ggnia56yVrWSE7Jdp
cefGole0HW5zby1hZHAtdGF4IDxkZXZvcHNAbmV0Z28uZGU+iJMEExYKADsWIQSR
K9ShLWb5kxw/39GTy+xZ+yN5eQUCaPtbMwIbAwULCQgHAgIiAgYVCgkICwIEFgID
AQIeBwIXgAAKCRCTy+xZ+yN5eS4hAPsG/JbybnexMPfb7gsIiqSheeTvrGQnU1bO
2Ouz6e0FcwEAgQKoO2dbkM3/webS1F7zX0p0o1XZMW1ecHesTvQF6AW4OARo+1sz
EgorBgEEAZdVAQUBAQdA70MTcqVm07fe5cZGkR3evSc0yVRM/7WlVmS3N1JRER0D
AQgHiHgEGBYKACAWIQSRK9ShLWb5kxw/39GTy+xZ+yN5eQUCaPtbMwIbDAAKCRCT
y+xZ+yN5eRveAP49bhetFkuylYLcgEPKIWZom/0clG96YVUIvsCi42SeBQEA4CrN
JEoxwAR/oN1gcCbN2g2fqmirO1PbEQ4yPTLYVwk=
=yjPi
-----END PGP PUBLIC KEY BLOCK-----

@ -1,13 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaWUQSBYJKwYBBAHaRw8BAQdAGT3vXIrTITynXkjRlamZJ1jLs2BffQVz3Iwj
SZpFq3W0LXN0b2VsdGluZy1hZHAtcHJvZCA8TlNPLVRlYW0tRGV2T3BzQG5ldGdv
LmRlPoiTBBMWCgA7FiEE6ETrYVE2JueMSyYw4oFhS7o3stEFAmllEEgCGwMFCwkI
BwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQ4oFhS7o3stE2ogEAqUcUv6AEHqvL
Xy0PFAm/3wAdXsenNXvoqo4VYb2OCHMBAM6ArZXqwh69C0eXqyuVtsOlG19Cqeby
z2uNWy0IdPQPuDgEaWUQSBIKKwYBBAGXVQEFAQEHQGiJ5ojUcda4EI6pNnQECBZB
O0CYeGZdT2mw2KpjjkwUAwEIB4h4BBgWCgAgFiEE6ETrYVE2JueMSyYw4oFhS7o3
stEFAmllEEgCGwwACgkQ4oFhS7o3stGRYwD/X69urpUy3GpaiCLRa62MAXbNacbZ
wokxqcpUc9ygHn8A/1zSkEyzp3dm86wv6oY70FfR4K1dfj73ltD39l7UtD8M
=6EQP
-----END PGP PUBLIC KEY BLOCK-----

@ -1,41 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
4hXDgcudtCquYStf
=oxRT
-----END PGP PUBLIC KEY BLOCK-----

@ -1,37 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
WrZm
=4hZt
-----END PGP PUBLIC KEY BLOCK-----

@ -1,42 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
omEOA9Ja52BBiAbwxNXX5zJr5wq9xAc=
=vKTw
-----END PGP PUBLIC KEY BLOCK-----

@ -1,53 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK----- -----BEGIN PGP PUBLIC KEY BLOCK-----
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 /chkgw==
qOP6EPU498zUpkaLaxyT =57sy
=Dc8a
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----

@ -1,41 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
JhujuU9eIqCXYO4i3GW2OMo=
=cYe4
-----END PGP PUBLIC KEY BLOCK-----

@ -2,64 +2,68 @@
# CAVEAT: DO NOT USE THIS FILE AS-IS in another project; copy it and remove the unauthorised users # CAVEAT: DO NOT USE THIS FILE AS-IS in another project; copy it and remove the unauthorised users
# Fingerprint | User Type | User ID # Fingerprint | User Type | User ID
# 533A89DD49FBCDA2BF014A936C962DD77704154A | autom | build-infra <NSO-Team-DevOps@netgo.de> # 533A89DD49FBCDA2BF014A936C962DD77704154A | autom | build-infra <NSO-Team-DevOps@netgo.de>
# EFBBBB131CF1D863005C18868C8C09CA950B1DFF | autom | smardigo automation DEMOMPMX (smardigo automation DEMOMPMX) <NSO-Team-DevOps@netgo.de>
# A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439 | autom | smardigo automation DEV (smardigo automation DEV) <NSO-Team-DevOps@netgo.de> # A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439 | autom | smardigo automation DEV (smardigo automation DEV) <NSO-Team-DevOps@netgo.de>
# C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8 | autom | devnso adp (devnso-adp gpg key) <NSO-Team-DevOps@netgo.de> # C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8 | autom | devnso adp (devnso-adp gpg key) <NSO-Team-DevOps@netgo.de>
# 0E8955A79FF4687A3ACF78E50B5E444C75867E58 | autom | smardigo automation DEVNSO (smardigo automation DEVNSO) <NSO-Team-DevOps@netgo.de> # 0E8955A79FF4687A3ACF78E50B5E444C75867E58 | autom | smardigo automation DEVNSO (smardigo automation DEVNSO) <NSO-Team-DevOps@netgo.de>
# C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8 | autom | devnso adp (devnso-adp gpg key) <NSO-Team-DevOps@netgo.de> # 98235A419EA3586BFF4E3FC692D4A5202A0D9519 | autom | poc-workload01 (poc-workload01 gpg key for sops) <NSO-Team-DevOps@netgo.de>
# C903C046A063DFBF8F41C6576B26CF496812B00A | autom | nso-adp-staging (nso-adp-staging gpg key) <NSO-Team-DevOps@netgo.de>
# E5B4FE1E0209DFFE320D2A2E47087747D89B72EC | autom | smardigo automation PRODNSO (smardigo automation PRODNSO) <NSO-Team-DevOps@netgo.de> # E5B4FE1E0209DFFE320D2A2E47087747D89B72EC | autom | smardigo automation PRODNSO (smardigo automation PRODNSO) <NSO-Team-DevOps@netgo.de>
# 890B2EB48F343D4C6DB9DA0916826F30002D3C1D | autom | smardigo automation QA (smardigo automation QA) <NSO-Team-DevOps@netgo.de>
# 4069413B74A3AB13E10DF5FD3EA8F0D0FB1CAF36 | autom | smardigo automation QANSO (smardigo automation QANSO) <NSO-Team-DevOps@netgo.de>
# 42AA7F6BF795490C1A522C730ED842BE1216E0C1 | autom | rancher-poc <NSO-Team-DevOps@netgo.de>
# B4BAA59056DC362809388F3F2119881095EA7DED | autom | sot production (sot production gpg key) <NSO-Team-DevOps@netgo.de> # B4BAA59056DC362809388F3F2119881095EA7DED | autom | sot production (sot production gpg key) <NSO-Team-DevOps@netgo.de>
# DF977A1F65999F4CDD721A27516F64D5932B8AD9 | autom | sot integration (sot integration) <NSO-Team-DevOps@netgo.de> # DF977A1F65999F4CDD721A27516F64D5932B8AD9 | autom | sot integration (sot integration) <NSO-Team-DevOps@netgo.de>
# AC9B0DB590F4AE2017C2AD836113AEB66C510C3F | autom | ssp-prod <NSO-Team-DevOps@netgo.de> # AC9B0DB590F4AE2017C2AD836113AEB66C510C3F | autom | ssp-prod <NSO-Team-DevOps@netgo.de>
# 43DE8A01ABD706717C36018C48C47C125C022F29 | human | andreas.rother <andreas.rother@netgo.de> # 5623CCAD4242CC3E0225A62986AF09C173781578 | autom | smardigo automation SSPDEV <NSO-Team-DevOps@netgo.de>
# 1EBAE111F6EAE0CF136358E8625C5A3B8DA21485 | human | Annika Biermann <annika.biermann@netgo.de> # 1EBAE111F6EAE0CF136358E8625C5A3B8DA21485 | human | Annika Biermann <annika.biermann@netgo.de>
# 9F5341688D2F9024A15541C9E02949D0F7769E2C | human | Bas Cancrinus <bas.cancrinus@netgo.de> # 9F5341688D2F9024A15541C9E02949D0F7769E2C | human | Bas Cancrinus <bas.cancrinus@netgo.de>
# F7F328F0E4958E4C785977E23B8AA0BAABADAFE4 | human | Christos Adalis (GPG Keys) <christos.adalis@netgo.de> # 17B8FDF68AC123EB666934B17D0DF6EC048A5D77 | human | Claus Paetow (Firmenadresse) <claus.paetow@netgo.de>
# 659FDED43DE155FB772A339B343CF1218A664D31 | human | Claus Paetow <claus.paetow@netgo.de> # 03ADBCD31737EB474A4BD235CE615FAF927A2054 | human | Esther Fuhrmann (GPG Key for SOPS) <esther.fuhrmann@netgo.de>
# 93593B8B0B7B88EA2DCC99F9388B6A662C356822 | human | Daniel Risse <daniel.risse@netgo.de> # 04ECA5DBF73E98EBCC1FF0B018F2D15CC56BE487 | human | Hans-Peter Wissenbach <ext.hans-peter.wissenbach@netgo.de>
# 0143019F62469ED5A6A016C219CA764D37590F9F | human | Daryl Sauer-Neumann (SOPS) <daryl.sauer-neumann@netgo.de>
# 9E561083EACDE14694C73A323A2F6C1D153D753F | human | Frederik Marticke <frederik.marticke@netgo.de> # 9E561083EACDE14694C73A323A2F6C1D153D753F | human | Frederik Marticke <frederik.marticke@netgo.de>
# 9F08DA9D42379AFE6610E9E615CCEC6801DBA02E | human | Hoan To (Hoan To GPG Key) <hoan.to@netgo.de> # 9F08DA9D42379AFE6610E9E615CCEC6801DBA02E | human | Hoan To (Hoan To GPG Key) <hoan.to@netgo.de>
# B92DDC9B908BF3917758D228446C51E049AE38CA | human | Jan Jantzen (sops) <jan.jantzen@netgo.de> # BA6328948D50175F196AAB5111F324603D12DD56 | human | Jan Jantzen <jan.jantzen@netgo.de>
# B643A5D780A01F24E95AA100DE6F8E2C149C3748 | human | johannes.wicovsky <johannes.wicovsky@netgo.de> # B643A5D780A01F24E95AA100DE6F8E2C149C3748 | human | johannes.wicovsky <johannes.wicovsky@netgo.de>
# C19A7D807525CE24443CA9A49372E896B41FE700 | human | Kevin Bauske <kevin.bauske@netgo.de> # C19A7D807525CE24443CA9A49372E896B41FE700 | human | Kevin Bauske <kevin.bauske@netgo.de>
# 0DB51A7E90AC6418B7DB83724D38970874850C33 | human | Kleanthis Damianidis <kleanthis.damianidis@netgo.de> # 0DB51A7E90AC6418B7DB83724D38970874850C33 | human | Kleanthis Damianidis <kleanthis.damianidis@netgo.de>
# BF3D5CEA36DB58AAE1063D0BB341078652D87924 | human | Lee Watson (dies ist mein schluessel, es gibt viele ähnliche, aber diese ist meins) <lee.watson@netgo.de>
# 73C2C9954D1BC94DC6682525D2FA233B52AEC75C | human | Michael Haehnel (NSO DevOps) <michael.haehnel@netgo.de> # 73C2C9954D1BC94DC6682525D2FA233B52AEC75C | human | Michael Haehnel (NSO DevOps) <michael.haehnel@netgo.de>
# 3511D1A5B7B2AC97BAE8AF3EE758168C000375CE | human | Thi Nguyen <thi.nguyen@netgo.de> # 13E169CF5C35EF164628764AAA2EECBDE0B38CF7 | human | Philipp Eichhorn <philipp.eichhorn@netgo.de>
# 13D7771BDE5241293F3EDA442AB3335ECC93DDDC | human | Sebastian Schröder <sebastian.schroeder@netgo.de>
# 0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A | human | Thomas Steube <thomas.steube@netgo.de> # 0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A | human | Thomas Steube <thomas.steube@netgo.de>
# BB333E772B60EC8A29E8DE641D6B8CC68E09BCA5 | human | Tobias Plöger <tobias.ploeger@netgo.de>
# 57F93F2A6585CF2DF9A3B31F13B9F45E122698D5 | human | Tobias Stroehl <tobias.stroehl@netgo.de> # 57F93F2A6585CF2DF9A3B31F13B9F45E122698D5 | human | Tobias Stroehl <tobias.stroehl@netgo.de>
# D667348F310C57655FCE5D4EA689FF232FD681F0 | human | Ulf Fischer <ulf.fischer@netgo.de>
# keys in https://git.dev-at.de/smardigo-hetzner/communication-keys # keys in https://git.dev-at.de/smardigo-hetzner/communication-keys
creation_rules: creation_rules:
# list of keys for encryption in stage # list of keys for encryption in stage
- pgp: >- - pgp: >-
533A89DD49FBCDA2BF014A936C962DD77704154A, 533A89DD49FBCDA2BF014A936C962DD77704154A,
EFBBBB131CF1D863005C18868C8C09CA950B1DFF,
A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439, A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439,
C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8, C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8,
0E8955A79FF4687A3ACF78E50B5E444C75867E58, 0E8955A79FF4687A3ACF78E50B5E444C75867E58,
C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8, 98235A419EA3586BFF4E3FC692D4A5202A0D9519,
C903C046A063DFBF8F41C6576B26CF496812B00A,
E5B4FE1E0209DFFE320D2A2E47087747D89B72EC, E5B4FE1E0209DFFE320D2A2E47087747D89B72EC,
890B2EB48F343D4C6DB9DA0916826F30002D3C1D,
4069413B74A3AB13E10DF5FD3EA8F0D0FB1CAF36,
42AA7F6BF795490C1A522C730ED842BE1216E0C1,
B4BAA59056DC362809388F3F2119881095EA7DED, B4BAA59056DC362809388F3F2119881095EA7DED,
DF977A1F65999F4CDD721A27516F64D5932B8AD9, DF977A1F65999F4CDD721A27516F64D5932B8AD9,
AC9B0DB590F4AE2017C2AD836113AEB66C510C3F, AC9B0DB590F4AE2017C2AD836113AEB66C510C3F,
43DE8A01ABD706717C36018C48C47C125C022F29, 5623CCAD4242CC3E0225A62986AF09C173781578,
1EBAE111F6EAE0CF136358E8625C5A3B8DA21485, 1EBAE111F6EAE0CF136358E8625C5A3B8DA21485,
9F5341688D2F9024A15541C9E02949D0F7769E2C, 9F5341688D2F9024A15541C9E02949D0F7769E2C,
F7F328F0E4958E4C785977E23B8AA0BAABADAFE4, 17B8FDF68AC123EB666934B17D0DF6EC048A5D77,
659FDED43DE155FB772A339B343CF1218A664D31, 03ADBCD31737EB474A4BD235CE615FAF927A2054,
93593B8B0B7B88EA2DCC99F9388B6A662C356822, 04ECA5DBF73E98EBCC1FF0B018F2D15CC56BE487,
0143019F62469ED5A6A016C219CA764D37590F9F,
9E561083EACDE14694C73A323A2F6C1D153D753F, 9E561083EACDE14694C73A323A2F6C1D153D753F,
9F08DA9D42379AFE6610E9E615CCEC6801DBA02E, 9F08DA9D42379AFE6610E9E615CCEC6801DBA02E,
B92DDC9B908BF3917758D228446C51E049AE38CA, BA6328948D50175F196AAB5111F324603D12DD56,
B643A5D780A01F24E95AA100DE6F8E2C149C3748, B643A5D780A01F24E95AA100DE6F8E2C149C3748,
C19A7D807525CE24443CA9A49372E896B41FE700, C19A7D807525CE24443CA9A49372E896B41FE700,
0DB51A7E90AC6418B7DB83724D38970874850C33, 0DB51A7E90AC6418B7DB83724D38970874850C33,
BF3D5CEA36DB58AAE1063D0BB341078652D87924,
73C2C9954D1BC94DC6682525D2FA233B52AEC75C, 73C2C9954D1BC94DC6682525D2FA233B52AEC75C,
3511D1A5B7B2AC97BAE8AF3EE758168C000375CE, 13E169CF5C35EF164628764AAA2EECBDE0B38CF7,
13D7771BDE5241293F3EDA442AB3335ECC93DDDC,
0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A, 0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A,
BB333E772B60EC8A29E8DE641D6B8CC68E09BCA5, 57F93F2A6585CF2DF9A3B31F13B9F45E122698D5
57F93F2A6585CF2DF9A3B31F13B9F45E122698D5,
D667348F310C57655FCE5D4EA689FF232FD681F0

@ -1,474 +1,524 @@
demo: demo:
credentials: credentials:
secret: ENC[AES256_GCM,data:OPizW/n+6g==,iv:HZU7lCnFHfiqEMt1UCxc/oved0bTAkLaCYWvYJeVLSU=,tag:nAVN+IYVi7PKogYj7MoS2w==,type:str] secret: ENC[AES256_GCM,data:m3uKjs2CMg==,iv:REr+W6QAcMXjC6kt4+U9W680N7NmOaPCbf5ZsL5v+GU=,tag:JTcpjBULW1tb6wYyQO1cWw==,type:str]
sops: sops:
lastmodified: "2026-05-17T14:21:50Z" kms: []
mac: ENC[AES256_GCM,data:JOck+tGHp8GCi4GRAhpr8vvBK1PcR5Vmmy4TPpPw/7JM2uKlIKhfWSm2VIECJ+06AbUJ7NYJaGzyfoIuN9Np5RwjKRFLCM15P0cImOPrPjIG9ebgZcAK6MNsTbuHotpEnRyQEGyidOJWGrDdt4qYfGio+VGTv2dCgnXGMrMQh4M=,iv:26HLOg7wFAjlshkrkPlfAyJ+XFXYlxOXpFrTJo0QcP4=,tag:1waIXChc1ksPna+k5erLQg==,type:str] gcp_kms: []
azure_kv: []
hc_vault: []
age: []
lastmodified: "2025-01-30T16:32:18Z"
mac: ENC[AES256_GCM,data:DNsgx0KhSbgbCqqME9MUJxHQSt4vVc/C2xfkckwjhK5nb4dW1Bz3Y5wAzPlOkPPKp9YB70/q2spw8MKSiJgeujfqnogPtZ409lbi3/RyF/7WxnJM0KFxdrsQwxfOJdYjfXnXicW9CD6xYPn1+LUVVqnRDBXt4MIzc5AMqaXy8pQ=,iv:dhVa4Dig7E3fld2Y3upjw3/P87bV6/C2oGDBgqQYRVY=,tag:RA9qsnRNMnznkNBDkjssIw==,type:str]
pgp: pgp:
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMA49EwzBHBfyRAQv/ZGrl0eO/5M6eLZSlO9tBUMMZ+eVFNIsbVCBi66nCXav4 wcDMA49EwzBHBfyRAQwA59rrxcceb6CV066UH5esTFaElafvGExF5nKTewi0lGMO
lYV3Y8spiW63kR1kqbQw6t3EzJ34PRXYwnDzeuRG0GH8UOvexx4iTUnx+0UY0y9H vDKjzKSeDHv2GtitqDaxeTamFt7sZEiKV4XNowlRAY2lx9EN9JVgKGTg8ZEmo0nq
tXQvkeDAU537tkttqKSetmdm9HETNYg24zHXVhqqdZI+w0DgBivjs4owSpox+IpY NpQW0fgaFNI/xqEd6ravF2Sr/UUUBsYDVl7j2cYIJT+ShHDCA97I7kEof6Z/fu0H
3yeMhqQniGivb1djpZYiM/iRVZrqM2MI92FDlv+Dt8S5asNGBhgpYS5xA49EUJxj 6cLGuv0KA9wHVTj7+q/dBtXJUfyMBBE98GZde9lAJBvjDSa8I9/zm5gdrxtvOG2p
ET6CAdFBScy1eeDxXb5fLohEZuLDiZhoVycD7DE1JwQpjgPtkQAoKJDJUMD/TfMQ g6N7zV79WvZtE+pwNU8jQKqU6bVzFXNGMtRn6fo6ArUkFxmdzYe2KLHA9KzxVVDp
dq7AfYJa4OEzUk1yQBvR1gHfFtCsPdSgEDPJlULPFHkggOxLTJpFNX5uYbPu4enx GCqofBtqYzLTxFNkfgpmvdMWhnrmLbDYJc/r4MsgZR4L5LrP/AFDTOHePcHeo1+I
kiN8G4xPNrdNVPOPOXYWdE6F+jcCHeR/C01JQDDmyqWsQwE6QB76yYj5liL5hMGl /H6ZVluZ5QRdijvR68Uo7/j7OzIjSA8OCYPxPSpmUyr3MVGOwWnSDbGcHVu0sB34
JoGnnpXtSwqltZsjUONjusLj0zAtY5s+yXEYk1/qunocFZISM0dVEW+8pfoWvxJH 8+3sHoguDfKO1NBFLJtoxknJxSEAph6OanNwGU/5tp3tunFfGryrgZgpVpheC0tP
qDZ00lGq+nxndhEHhBHy0l4B7INs8mvLGjQZp9PlT3C58+gimP5amjuuOOuz87cI iT7awd3982HxnwC7MJ1H0lEB+MT5H6i8t6Vba9jCl0KTY3+BGzc8rVOSJWsQcsIH
LHSfrqkj1NwX9NITfPsox7pffM4TBeI9BHxEpsvv9SLVDh5JRqXBnAh6UYqqRR0k LS8DuNh9YkF5bhXxtvLBQyAtATle0swu8oPHhM9fPwLHdy6+36lwW6H5v77tCY2/
UFEdTA9i8VrfXzcR2f2Y a04=
=UhEI =Rntn
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 533A89DD49FBCDA2BF014A936C962DD77704154A fp: 533A89DD49FBCDA2BF014A936C962DD77704154A
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA/3nDyRfgQqhAQ/8C49AJrs1o1uMaEcAaxcZYlnEqUG4NBzA8Ry/a6WfwOD1 wV4DK0+AyNumsXsSAQdAMYFNwKZg8MrY0KlULLnfvFdVc/fuXsnYiahI2MYBu1Yw
k2bFDETqnrnqRQfwZ68IyR2VZJK7Zb34fu7kzyNc5uun/VYoN4rmHaT76VaEhBMX 6Tqaeqf5YCg08kRlDwugXpReiFFKsT1TpjMjLGQf3OxxM45LOE5cUkJoQCYHwRpH
goxnF2OfEBSQn6QokwA84EdJnm2bgLZK1zhsLnHvHElQJkaktfNoX6OyWRz9ISAA 0lEB2m8lED2E336NonUt3fOtvM5vaCS+ajfP320mQEPgEz7QbA2WrcIlat9OJED4
txGCUt2UmOgBrILy5HeMIpbcrW5Ge/7wuvuytAmt5HzNXCOe0kIZ8BKNxg58wMUJ HrnssHzGtEFui9XUp2z5yv8aubkmJXlfP7clnrkY9KJ0MDA=
tUEx97tqjadcDARU3pEmC1nwMN+pjzTIFXoTj/kC0GHvLsxZbfhO41CE3VWXFOX4 =kTMq
0obdntu/punBC3FiQuM4LOy7HsLQzr+2/2ye9WlIgQK0GNAl1GwZl/AGvSsUyWIC -----END PGP MESSAGE-----
O/meFx8PbgZ7Ia09lf/+2mCx2nDh79JUSfWVKx+AZK8Y8/ZfP+pydTNNmLoBgcxn fp: EFBBBB131CF1D863005C18868C8C09CA950B1DFF
MfMzJ2q6M9UCJ/V+A7cpDbV9Mr0g/IkVa+OSSAuZ/ulB7a/knSZCtHzUqQP9Y3Gk - created_at: "2025-03-04T17:44:07Z"
bKosRB9pdpgpkPCXX8SSfqY7E6/quJeBYXFvM/n1Xddsa3VRY+g98eyHPBjGtfnT enc: |-
d8JDDdmzZNhxmIH2Wtj7BXsONbaJOCcueMMck/esB/w6e93GqGoj55pza2ufY+lY -----BEGIN PGP MESSAGE-----
oN2KGM9+jbEwpbREln7VOfzE3llnMwHWzfz79iO5L3dxjrpPHBPyIbydMwRu6DDS
XgGoszO5in1cAqFXajX/KKWjqpfbc2ZvJ7igBmxSx4IEbWDZ3qe/WCwNwXynrTO9 wcFMA/3nDyRfgQqhAQ/+IDo5diT1oTdYlbwxRbZKyrRWygNGLrWZjr1/KH1jnxzq
zuqizVwm+fr/095t76clE/8g1xfg9FC3WIpqELQV6/AoxheNiVtQF3BzhmfzVVw= MCUY4Hba3Jvwhxj/Y9V1sQAPAjSG7eFNAWCtbo0UvJQtW6syUyUFBob8jyZXTZo1
=KAay cHWB2TRRr7rjyRxnw4Mug5DHfUUVK6CagXr0Fg+wvJQnluGbsE3Krrm8C8FSWdBo
E0Y4nVmDWnwNWegTHbd6x3MlST09STLPLGnL1vNAEPgSz/5xswtKzFr83th7ebmm
Ojjhwz9KkYwgpFLhPlDQ4d0YwA1mwlAFKoe1vPjIcLNUTxDuzb3VIJxt5Gi9GKid
9PzgDQf6Gx5Dr3VRTLPQm4pT8HUjH0wNyY2vM6bQUnSQy/ztxdhiV2rq7m1YXc/E
3ry7gtkwxwsrfA6x3g9QiWKgf7XlCCWL8bwfXqOOpelsw1Y2czhbWh9qJmJJE+j7
N7b2EWrXYSaNsnbyptnq1+wInIzvBL1fAQsoqkwW0DdKaqdYnAsDmwHBYwUzmN45
O7K0C0EevlWOTxCYV259ZXCr4G631kqaSYTxVfGo7uO77uu4CfV/1SfqbmWEtSpD
jkLPA/7tlkfNlT4t3V0hCOiv0N7bn7qwMo1IHwL9plmgqAxOqRohDR486kb4RgJg
c1BsCQ0vzkYTl83+fN0AfmnfiD1eIr+YvHV89pAjA+k4H/e2IiIr4D3aoewJmQTS
UQGmD6DzVHnEz5KKQuejN7BLmDLuHojNY0YY9Q+JA0xN2mvYjMXSDMMqcoJA3z+e
KFmATIU9LsLezDStUiqE9j5mjpnJdb/zupMFvjz8RtpkgA==
=myeF
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439 fp: A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DuAaR73LFvScSAQdAkZDO1Ay7iJ4pWwSAgX4bnXMsJE37onmze1EwM06jXRUw wV4DuAaR73LFvScSAQdAsVQhCe2FnHzzNcznoNGXjjJmIVh61Wx0jYlWayHixW4w
xwYDMqt9x84nBpFmknO/JzU8ij3ATmWTB+qXc+/CULhMr+ykrs0K5OmXg4uXknSU My3BL/Bk4oDSxBfUQ28UWkFGUg1IPKu69lAc16rGyTq9RVYGRNl3ZTAUY53+Pp/w
1GgBCQIQq5dNVTRv7TdSoThMaoRaocVW7r+Bdk6UdQdcnPcw0O2v7EigVf9tTwvT 0lEBYxxw1Ohm4gsJpUbqDIV14v50qh+otssrJbbQ/Fe+rPFkzKGydRhOrUYLLWDj
wtqU+qPQ1CFI/zUGiN/FCNowdglP6i7iOshjNwY3foL/ldTJ1qZ1DpjLj04PGtMn QZruVU2YkHGU809lEW2jJHmcSlDVLUXO/6u9FBGZ1WSj+pA=
Vz36jQ0dxeK2iw== =w8U3
=Nvrf
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8 fp: C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA3LBDEB9lMmaAQ//T/LmGDEm8eLwTEvhTeWIlRalvYzPlc7JRlQopGi3D9Qn wcFMA3LBDEB9lMmaAQ//dT6qK8f0CaddMWsNHvovjITEI9m+oFl7as/JnpFLnU+U
EEkAgz7hZhAEh6TnDP57oVGO7IeoebMZWfkGsG+n/tCmCJdSnEhwO9gUVisL+ZDs OUQs90dq292FUhVcOeWfPkllh7o9DI4JJYx50bCJOBxKcBTyDjmnsEK+QyB4Ezi/
d43iGFNPZYOfNKMZAkZBJrWHfvDbulOA7peW6wWjlLiNvsxBsOVXk7Sq0awrIim9 bgDlUyVNFgj6YER4AJfx55jXO5vBQKjpyFQUAoTUVdeact3DF7VQNsWQop9avSfq
ExqI/F0llmfDduGOjevayroWl6EIL8COoGAV9lUAketlan2wu7zInebjiBVNmD7R lY/1N3R2PG6HUDKsS4R/dKFbnlkbHD6zq6JA6mFy6HTbdlVUGPlwmfUoYoVTjgpx
r5M2YdLPvGLYxFANRkiF4bNOLS6kJLrwR0Pse46L2xcOxgqdlLTvKqRjd0rT5P58 tpAOusp7xAlwm7k88g3PeXkSU2dyG+xBia03ySQlKw6UqbQZbshvTvLlfasDEsqN
835G05J6RJyknZwctOUWBsjw/x/XTlPTpyt7yvlcLjTPRQUOraVyBO6578OADgh0 nVArwTeY940ZjJcoHGBU8YYg4uXi0TMSh7NfWachOXVEVroNwKZu30zJL29QyiJp
rL4JaXgilO9LkqcXDuO46BpNYhGV9RPFWffSj+JySFmKp+auqx9uLOrTO6M1yAMO cVQT2SOHLdI8X+Qf2NjIgqIABkwOubvoM35gWxqSgOsqJOTNlKc8tCcuvjy3KPvS
bfhjoTe1/QCdqo7kv0vkP+UvSA7jUQPuYfjx8pDk27KOaNra0JYuDg05HjkfKdgM YoQSZb75/6T+kghPs4/UMzdpDbLsfftjpxdcnO+DT6ukk3M8lr22aQo6tqaQnFqB
BW/y1R/J3sI06ZIgpMEwEaUW01sLl069hWMdPt3lmxN4Fffd0kwcORMhoHbLk2ap U4+oxg2mmD26KOmir5ctl+qLMlUGaTni54BHxNwivgagkwTL0EgRsy08saZdnoh2
IQjvPFXbKvkeSqbT2D+xcP5ZLPiFjJIswARsPdMZ5DJCVBMplZN38UEG812DEeJ3 w4Ww2qwlsy2tnHXD41f8g9va/sluzd9NgbO+irSigQVKw1vVCanSXWpUoOPT5ahM
NX5rHnDjuK1jvuLBfDNDAPn3D050J6bhfMsFhxtFtoR7h1JPCIimMwUlD5IHF3vU lu0KCq9E3CDqHm7vGDNO7TDskKqVkCQ11C3ge19swHG+YvAW9uYONV9dPh/el7bS
aAEJAhBeWa6k3fPk+IRTVEz0FIiRavY7zCZQ/sEa6Lyia8EUUa3tf9+bcdPOlfhA UQEQ23+TsHgVkwLAilxel4hEiQ/giD+x2wInm8JV3mmLuLqBcB6oMzsgE37hxhsT
s9LyW7JIlB+vr9pRc6hGZtMoZyE9AHTvhrUon+kdIbjjPfOQi8GBdZhnekZgU/ma Khz8+UO4pgn6Cj1G//pyqVlwIqdSFrLJqfSF8unGvTqMbQ==
8nnptk0wy2lm =1qti
=kWMa
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 0E8955A79FF4687A3ACF78E50B5E444C75867E58 fp: 0E8955A79FF4687A3ACF78E50B5E444C75867E58
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DuAaR73LFvScSAQdAB2+rwOGPDDo1FBVH7xOch2mYqYRuCfK76RMWO8c05XQw wV4DpyXAcYv7T/8SAQdA5zRWWv2VlGjv6HzyVLHyLU2dmBfXuMX8MN+iWecYHGAw
wzgWtERYWkv89EAWIZ/UnHRW1O1rjdNLln4kMSU1Kifsa6a2PoXHW0GKwJuSRbKD N8MwLk/F5NBHyJiOCS2mGCSRZ9+so1m1DAt1SSJ7xvJ4hKRNL35X65hZG/SSba3U
1GgBCQIQGOocovbt9PSawdeZEWRHm34nAepDElTCwzR6yz683t+XXMiYUWiabeaH 0lEBmC9MQZ9aOpVScVIe816vTn1GfVKtmakl08b+2WAIu5sY7faZqn/kCxlENyoZ
0PEYkmzTLBIoQczMxYnLkounWV/fC3a6b9Uxu0fXHHhnAzDxN2uqayB7Tf2bFLrJ C48WgsgrAEeDLWL24Ka1EFrhSeTTpWG3qt43VbT+mzwHUNs=
W5dXEU5DxTbw3g== =i/wf
=XNXm
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8 fp: 98235A419EA3586BFF4E3FC692D4A5202A0D9519
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4Dq7ZJnmCAxTASAQdAJglxvcSzotQdLCxtFlS+1ZaT2zW/FafDlcUsaiG1HS0w wcFMA911WKxzIy2nAQ//X8lU72Gwrr8xJEf1s4ngqdStGJJC5zQyIWvrC2DdGDE2
xN/ljIPhq9rxXWfw8nBVzqFabq4fOBrIiLOQamZf6JGv7rBhrS2v/fK3gXyiFmSQ 6do8Y+PBKOyvYq+VhbVk2dxeCoBJKdm8kq+xpJYY0uYeai2QvTcgItUJR8Q37zmH
1GgBCQIQVyjGtiH2dfWOy9/mxG0gOd7luvaD9fkmG3txyJGnKoAfKSx0p8b+hxjh LwjUnYAz5vz/ikmOiFlIfAcj93zKLXS5U/DHgAKiSMlMAiH8tRwV9cpgB8DcKYTs
wNF6icPQdpBuPYhCofUQP7eONLV3+SjYKtUsXEamrgADAhUneC1Or3ehrjjMku+U WhWVyqPJfrxuG6zUMUfnjQYt8w+XI3niQm5T/xBBNtY33UMU7v09NSsACjHe0b9z
WX96fBMaEgU1Hg== e8a0O/NuIL5yEEjB08vmH75ENlRYTta/6J7gZsc+BVKDM8GtSMbj0apiYRjtcv5b
=sqwk o46eReMJpgs1k7zqN7THpif99BfzYthnlL+cO2EjRTd1ELx7pGON0YX1usLNlbOC
L7NgHMg9lt1fsU2xXxCCaAD4YpIFhQr8Gse3bDQmes9XldIGBA4+9O1kRbuYpQig
ezdlX8RPZJaBbexWb93KxbjK6qyBaJ2UJZxE+e3k7r9bRN6XqFSiGoxgpL8bJjMu
7XQlqI3EWS2Xl+VE6NJ+GV5xRAUTrKXTbU5u4NWBxtZZ4E+hFzDhLHAdMYJcHest
Fkqd3iRSu/G8yymvf44xQ7W6DQXaQYrLGOb+d3k91hOU2sBh7H6pw7zcwKp5a4Tg
C5fsvTaHBBWiHpT5B3qqTBmpfDLck2PwAjHRprhNZrQj4oLqPSrfdjzvViVBWKbS
UQGpPA57Dgf53AsObPp6+snyGUkCSOFcfy/CKJIJNRX1NrsfO4IWhWPCYduVfIMC
s4VC+Rh0EeoqAOrhRlsenYhzYE6Ku6WBx2yOayJqAkWgKg==
=UlLG
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: C903C046A063DFBF8F41C6576B26CF496812B00A fp: E5B4FE1E0209DFFE320D2A2E47087747D89B72EC
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA911WKxzIy2nAQ/+KXi4SEmXqjITWjxgvCGDV/wyIuxaROPRdcaeCUpIAW2y wcFMA2Cr/drkb+8JAQ/+P30LCNnKXN/o/fzkcXPnXsyV85rcgHSF13722oDO8xTk
5evVJqgju0hNJB4O94hgj7nfdXq7z60XoTTJj+Jul+u8I5mRkjwIeli2vgpW122c 2SU/HdiBQ5hXu7F4Zg01314DW/CI4+jWt9gKbn255WnETYQhre+k1prKRSQ1HFYL
4Rt27JslT6OFHb94OX3cu9rwprgA8yTFNwMBQRyaTF1pd7U+8BaYmgK7IIw2tGF0 qSkbaFoW1NM3+RoM1hUBojVJ26+APjwNqn/+nx3QSKsirgCUynvJTTI479bvY+vL
9ZkiXjyOANd2gSXv+QA49ceez4S9UDFJogm2FEOB2wRARNQgmgb1lP1kNpPV+dpW S+DiSct1UYyqsZpmUDxLL/0ta60ekWzOaGMzBAaSmdlg9sSRslX1lZkicwLzSC/X
qRu0JfComcqck+w0XKlETXgm+nWY2ut5iNwq1HikzR69e0PNYgX+P0uSE7MPLyt7 0BfuBXLh/KvGlcAUh7dubFWeae3CT8oMIPHNdQLQZKFtfg10vgboZXsv+Zu0vE0P
7g9vlYSofJjHYaN5nGCHO6Q0GErHOmug4AH4elPI/z0K3KhKMCYQiGuHGyGli7Q/ wRxXfc+cz66NzKBuBDna2c1wTFOxzfJLd7jFBnHKavbFwGKQsumMNCOMGA6mP0yo
/9x2cXxCdGSuO2xem+Eigz6hTKUWIskHWCMLm4xmW6gzWQmA0Zo8XmapvDqAfu3W Xt/4j/7NonwG7hHPTiCxlN3viVM8j52H3ExLwoaOhcLALzVaJbM66bLGFUI//T+J
w5yR99A1Fsd6H3YxPQ7jVp4NDgE7z2UfRQXEi4a/Xx0kUK9w9A+tL3daS/JNnjNl MjAfdl8ixtiqw0iVR4Zu2x6PeOuwbwuRUuRUMauBFHUKqi/l9QXpOQenySUlqU2w
bLT+Amg7sIGxhKzaqDp3u/5Pjb2INBerChmIlEzA1UOVKgGuYCYAjKn2wJB0nkcU nSDawTEW7pzHxwuC4KrAUdEOml7+VIyv3RSmLeIbRhhSm5DT6wcQrIPk24o87ujR
BvPiU/zA9D7vkpWadZI4gwFmOXEYOLXh7JheYRh+zzMjiZRxmnzKDl8SaCj2cDuh enbiWDFLdqPUBostnwiz4D0AanzQpinb9WIr23kBI2OmTMvlwu0hlxALUQ/mTBwA
wPFN/QZeS5Jfhv9e53GEswD9HCgjiuG1N8WzsZqZfnWLm/DR6nrCqif4AUZxEf7S f/oKp6BJZBqyPyr6pZoiUPElgALh/83D4w4+xNxfjXTD7ZQSQSVYHQ3mFiW6CXrS
XgFbaahY9dhEnOmrtetMwadaDpA7P88FRYjyXIOPOlxGG/gz4CRtLULfD5kVJLYr UQEzbFCPi0cz+PAeUynGtyVh+R5FQS72JaGFTqy5+ggaqyxowtgeGHz1X/hq6y7J
0P/qn0BgxDamNE8VQaBo+CzELFFgQOd8dh8G36lMXryUkYCAsCw/e1BRDIflZ1c= IDCX4rNTx8DbQjoFtntJloMWcvfAiaVnYMr4ghgKRmoCiQ==
=Hu2A =ugtl
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: E5B4FE1E0209DFFE320D2A2E47087747D89B72EC fp: 890B2EB48F343D4C6DB9DA0916826F30002D3C1D
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMA5pTFdxsndstAQwA6Z65qXNpzM6PQu+aEKJpzuoB1yQHdLTf/9OrfCJrpqSP wcFMA3Zl11RyMNviAQ//fs7kWhDVa93Tm8BwbVBnAm1fl3SLT67hpOsFKgyPjEIk
mFFUGfG/krDunC/FLk9HzAWGY83zJJs4ShGjGmg1hdKWcc42AVoCown4i7X5hKux 4tNl0HRSzvFrMok/Hy2lIDOKilmM4/mBR55jdEgNN5JGK5GFOiF97j8KJr3YepH9
LMvJ6RNWLA4aMDXvxP5hvDqxQwClbnXuYwlRJ91De3WkHkD47vzs5XD+mz3aUW6i BwVjsTSqR29bWol/fCJup22RGfVP08POEr5GXGYsbKnG7tkYbjyGITx53JdOo7rD
6pqzMJU0y2pzWpc67+SkNkTEg+5GgkomanqxlN0X9hsy1UuM1Xz5nAZsrqPC80Wr +ozkx6gHD31w1khMNXj17RvC288ilSnXKDdzT1QIRZf3pa30b7pb4wAaj8wiBJ9u
8ILFG0pDsQeRmvWnB/ReDsSmwDCywDaGbQg/CjDVqJ+MufioXQsQL8EHdKkp78JD vmv4pmpgcFRanvRlCjcSg08jX6I8i+iwIBEDvm4IA+i5/rfFeV+Ugbx1C5U9u+8M
fc1v+mYAAWZ5/TdgHF46FjwHdHvlTojA301Ic0WTEi5YtngMhIB7tFlQl6Gudsrt s1IAsdH9fHn4zTsEQgwZ+/dekDiw2HGTpsJqkhxjm2cI+N4h8TqD7jxuffbPeKJW
GsifnlhhvXK7mwckbXXvHlwyODZLAa2LUcX0zo/99GVRUU/B/6fdkJMS7kG+ZMus USmMHoSMrjRNTERjHAFoumXLcFLw633kbeYnQSByfGHZJvfPBnMWA7TPxCjPHHF0
GpO39MFHPKiMJ9qvtwPra1nOGrLv7Gy7HndqZ5Be8pQ4Qq9CuUpCicLMvZ0QjwCB Y+BJ24+7p3xr73etLP79P7Vc6THBG5q/3xHpztEv45ZleSzXYrgRDC/zoetk95c3
4/Gzxs0mlPx2dZpd5F1C0l4Bk0/Hd+Vqyhl1bxwRlI0vMozeRjepQ3UlgLUSddmh FMdxUURHCiS4QwpeTMPFloV/XkKG7qhqVXrJEsd9Gf1QKG94Ep5mllbIhOfGX2yz
XhJTsyLSXYIeasviQM7wve50+c1aOWVb6+KG40NJC1x6XKdU0Y8PBkN8101KadI+ h/kzUD/+z8YD+IoUXFNSAnq+9HTxB3LzvZKSvTFH0zUIIwXPcFOoUymh8bJOdlGf
1xfJhEdsSHuAs6maH0DT AL6cy0WQ9lqoT0/ALCOrxQu0l4nfKM7RaPoJZHiqdntDr0gykpfNtIAY92nPug7S
=Jv1z UQEgwnE690QBTnyOoNJrcvs8zipV8so2VGKxRARDtrbUedI40a3g3Vax5fTLPHWb
EU9sUde4Q6msevEmrTKFCzPe2zHSnq6pLEpNhLpIUiV9SA==
=P9Me
-----END PGP MESSAGE-----
fp: 4069413B74A3AB13E10DF5FD3EA8F0D0FB1CAF36
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
wV4D0Z3mmZqL/KkSAQdAzv7oU9PEct/VghS6oZqKeqcTWIThBuSHzE9Lm1QGfSgw
KdBeR6DsZJv57zUw+OzGczxitJ0PaP6PuV76utXD/pJGp9ItDbYSQ+g7ILRf0z6v
0lEB0+p1MPajO8IqCKaU2cHndEb8zma7mexf5yTvrAjyfobGAB9WXWt0hF1OolnS
geCrg3U9Z9UMKGZ8FaqeKk9PcxeZpt54M8Xe/Cg/dKO12qk=
=zj3E
-----END PGP MESSAGE-----
fp: 42AA7F6BF795490C1A522C730ED842BE1216E0C1
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
wcDMA5pTFdxsndstAQv/S3MAPxPFSkZWThwh/AgcsdWR4RSX/4FhJfKYUBVGef7U
hNAQ4LI7KYrtPffapufL5DlfT6YY+lGuoBUumYQYB9WYeydjoreudy4kuWy5ReZH
qa2gB2nB7n/CRODPPDl1g4JCzlV0acCoHBC/AdDIhG4F46r+6zM4MM+yNuKOiMWx
e4UmBHSwakKOylm6XwfuX4wD8vFo4+H215jvUIldKJgZ5fO/PnCuqlCeRaaH7nFl
SxQ8GP7RGaHxKH2B3ranz4KnNoeHxF+LaBikXlq0tppk5vnta1LjLYJB5xRs9uOR
TeN5/j3qnSnqcuv1KSgrBGYZcMYmjIMfTAsSYeV56Blbs4qA3O0IxRczbF68JLLx
pBYlbVcSpd8gJguifcgUXSUmUHTBDMpTRusQ4U4Ecf1oNR1sOPP1mZxmxDkQOrPR
Zuvi5KItTbjDhT3fTcSqpIIDGeo3v3xbmvSVxzyy+pU+uY0Wztv+C7W8yme6Tzsr
fwHIn9Bw6UcCyO0sRO3K0lEB8RYBarlE21GeX3YS46eX7Sn5/qpceTA15THqh2uj
/T5+OmH/CQ5j/oggKxctx6PS2D4XlyhG6eLTfBZAXnmsAl0LtAgeo9uMWCPG+K5l
jMs=
=X9dM
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: B4BAA59056DC362809388F3F2119881095EA7DED fp: B4BAA59056DC362809388F3F2119881095EA7DED
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DwvSwby3S138SAQdAxw4d7vm2IVVgEEq6z8owjVOq8URQ5D4lG5roLO7vgjww wV4DwvSwby3S138SAQdADSwT2HHeiE3R6m9m3Agfcfj1x6uYRkvovSDW1OKFZlow
sERbOq0zQ+O838wQtwy1q+7bpEI/QeRghpSwPlDLwfPk6p5ZNdDjmbaxjW/PX+0i 0Jv5Vr/59L4RnIanZ7zBS2/axzk0JDGzgURZFh+KSV4tGuGttLWnWlPrAFqLPmLK
1GgBCQIQ9uI452FBodTCP/M0AkJKxReiR53bqcc9xsLxYBPS5rnxpyH80imw45qq 0lEBMbT9fjxCO3itbexnUmeOeBSCspJ+PlmTxzLp610Aq8Jjrx7at8I/wfk+EDgo
e6Wwjpu5eH5VzaV8EjTJJ8eYirqZVzvbeEdKsEALii04l1sHOKcMsBmvnHpiAsnV 8Th61Jt6qmsNDOrI/Yn4D9fSZzQyjORA4S8k0haZ0mbNl5g=
c9CUrbvYXcfVAg== =kWN2
=/GFm
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: DF977A1F65999F4CDD721A27516F64D5932B8AD9 fp: DF977A1F65999F4CDD721A27516F64D5932B8AD9
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4D3RW6IFeToCoSAQdA5bAhHoB/UcMb0fRlplDgLpWnmzQr2ApSpiP7S0ijdRww hF4D3RW6IFeToCoSAQdAE/qpxjjka0byA0qRiMtvCc1flWMH4EWBMmxJSr24dmow
EWmo5eik01fM0tyHTFQRbsXmiXRqVKTbmX9E0IdEVjMnzkhX04ZARm1AToR4cnYj dyPYx4SALJve0C4X50hs8WTDFj9bdlVBAUi6ros42XgjUq0omiNcCNMNLNliXIre
0l4BPzq7iHftyjf3G0VM2eUC+FkuSjxt6jDUCTKce9IqF0HpnWljVE75+DtuOWIz 0l4BdnSW0oVXJgo4GgLAw3ldi6chzxtKz2/XMiNo+T5yfIKDdqn1So/c829J2kH9
hvdKp7wRwAiFT2qDNEvcWcKi9g0ntHLFDSCmYzadvcb5X0BmRJiYN4NHYKFbONIq CwPY/vvaIVvpbjDQ2ovck6grtbelBuLS/pXG8j/SlLMQKWXLU8Yh5a3QGQ8+QP8j
=bZH0 =KNuv
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: AC9B0DB590F4AE2017C2AD836113AEB66C510C3F fp: AC9B0DB590F4AE2017C2AD836113AEB66C510C3F
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMA3n4x8uRQRGSAQv+Kv31sB7Ce77SM8JR8Gx0bkFSHy8LlVYbkPh1OazWNNs0 wcDMA1j++ZN0cDPgAQwArsAQFAnZIyrgbxv579qdfRTGavcrxPpP2bjYUHW4DF8t
T6vB864fia+u9e8btgFYmKSAlJMxhOiLRkcfImb/6VwfvSptA2+xoby6Q1niuhda YzgD1pGPqt3Ypq4dn611lY8RUfLZ8JDUlYQTC1dLjUrtRD24UiFwHAtnBKd2PURm
rT2uH6Bsctrzu4RsmLTpCnU4xu23lVEeHnqGh35d1mZdMcSYqrdqcbPmgdr5Ak2b xmi3LZVWZx9/ko+vUykq3DKGMeFkmqr+ZSGsjV0BMNylwJ543Fd6uuaRCymkqhTm
XfgHR4gOlIYVwYNAsngAOgT9tvdO2b8wKpR0rhRWkgYDVn/mR8kRcXKwLxmQ4gcM 4y5nvVnchWHhv2qdHW8R5nbrjHhcx+pEsqhH1v6o4HXVDqwdb2n3Tkqv9ogbqO1q
0OyuwR+KzxsdX0YbkiuHki4E82WSGpBPs3mnDHZ+iIBTxfb8eeCdEwFVoXKuGkug nKp+fTJ/H1Uo1fljdyrKskEArvaYv/lmxY2xSnDDTDcEuHUv1ES18KrGjflxIwRA
1xlpFNPeaYdVDhRGuENCbGFxymVo4IjAKfdIckhO6epMem1uj1nZylU0SIrpUB7j sZYbHp+1Fbb5a2Zh6ySrg723C0lQOi8jWyr0pZmrFkH2EUXc2nLeFykYAaQVV4Rm
tLy/G+nGgHG9deCXaQZsniouXIMTpMSZJ4GPtAY38IBk/2Q/R0VJ8wXjJFXhrEYN igISVbrPqdnd30Ppd9KhKCRFVqzLu0TQvtafcEoFKCNi6wYMBakJOEZXYJZ2O66A
yYoNouSfLzYTfcLUZtGPt5HZg821PyMUKQDYN+bXWpT/Ac5TDORDV212/ZJWy1Yy DTrFRTYut8DufzHuj89iJ9cxeUCAlIcYS6JvKmjRCDyizzsNrgeSdpyf9LRp4Ba5
h7xFxWq4n1TvuZ1uBH1d1GgBCQIQSpeSwfjrwkzixT/e7mEL97x/VKWNOQavxchV uRaOK9wrpyX1TPCnAfxm0lEBU+pqhcsxdM7eNv0KvYJOIj7aQzWgfC44hjlNoFOa
KOgwI46V4nJzn0S+S4NRQAPQ2n9079QAbA0qHxQNI980OfrtQ85CjZh5AcHFrt+X 7/O19kTASE1SrR+zZqC2H8WMG74lk63Uw3lRXPSpV4a2bNVoHkxMcO9byODcft9M
ClITVNnE9OhjQ+I0Y512wLhuuoQXyyqqWw== fo0=
=aZNb =k5Fc
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 43DE8A01ABD706717C36018C48C47C125C022F29 fp: 5623CCAD4242CC3E0225A62986AF09C173781578
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMAx5drVN5V7yDAQv+J3wPBNcrHZX0WIHOEtkf9800tU04UfvbjMAtVsoToKf1 wcDMAx5drVN5V7yDAQv/R5AjSEZhrkQ8v1FC7zVaw2MNcfJQMiX4Q8ybnC4G2bbi
FM8QaCvNnaOVHMvpFqcL6eMrtWxYNxqqsv4VuzcG2ZZvtxJTIHErZ5e9VEAymbdS UL1Mydiphqh0tdjsPClDmYyVxFDCYuTQACw3HIJRrs4QCEThtI1gpTLcuWDcccu9
uI/7pdHDijXMGFs8l8PO3hj8NagUB23lZTzUIjrGiBeScL81EqeLU+0WU8CEBb8E h17kmNGrOLoelGpZZr9sP1nVQBhc1T1aAGO0f3z/MvEbSMLUcp1+AXSLrtuxl3ME
0OMMEOKAkcfLZgQD7rrHxET0CqrKCdqY9aSn4sUm03ggX1tw6rde7Zc4xyZNqPdH 1xw201q4571MA2xReAiCC+HGK8SJwpdpBr/W4YBajJB5LWBUbKJ0P411VIGJYRV5
VAiGXJakVWs1h5/ngDHI4ZxDPDcheCmVbY1uMnwITLoAxZ43o6Vpsw0tCAzSHRIr VUrB0ctyuGmNqkwkqBlvl79eRS8N6CW0adWY+aIQ6cWGxcitKtN4i/BE5cIre5Fe
Xtz9PGiMgo6zIZgg+k0u02duWjQMZr0s4XaGX0ODKSrCrDGkxavvaUii0cS43pcn a0Wa67FGxSI74MdN0uxRgbE7TkHBHhiHp3RaC7l3vHfs1LVNuoB3AoEcAc6Mi/dN
LWOpfHybpYMz/HGInPfV9sbhA79DLjzPYtMvaKFzJNiM9al7SRJPu6gXzHDPyE1t QAhwAOWJd6Um4FBqIcSDe2N9gjIoqhg+teZVoF8HKcatU5p9jDm+R60fO4DRys8e
m81WJbuhPAAlXaTR723/iYQWSQtEwbWq9tg85jy45tR/ASNBxoEZGQLeM5avQ4Ah Rq5CPEjRVTDeUT1Nv6cgq9QJ0LmWVz3VUbHRhFbAjZ0rAzqpXe+HXDmOC1+DMTT/
p6xwjLD0yw3+b88eUpC50l4BvThNSeYo2ur3jh2+sDF+u+SxwBkAqKOJczv/mqzx aXsLqP3VjE8y5yDK98Pf0lEBrCUkCAKm/woq70tv53MjRm88DyU0NFvT69BPieH3
YfI/pT/aL7UFrOdVdbkeTOh2gxNBLceHekOySO4PdX6TunwWgC0jwJUK/twcoXsB lrc/q9Q8Txr8LzvOyjpS/mPj4ORulInMPc0n5vYBcxQQg7+M9P0JnTy+ckNWBkQ/
tVc+A8zokOLHDq/NQwAa Lq4=
=sUZB =gmlL
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 1EBAE111F6EAE0CF136358E8625C5A3B8DA21485 fp: 1EBAE111F6EAE0CF136358E8625C5A3B8DA21485
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DRPQAGSQLsJYSAQdArbm6D8/ya2HRzvot5e9B7A8DdqEhauchaXAHgzjti30w hF4DRPQAGSQLsJYSAQdA5WWyS8peeuXEesR/Ts5Gupa+bReYqJ3ocLw2tenrjiEw
6A4tDonnCXpxVI1uuBMsZhEICrzyRZ2aLTfUAloq3elnXLK2IRYKAaEoii+0Ei0M za1udIqbwwgAdp7TQ+8GXdN/uErM+o66PE7DzQMz53pP4PLWyfgNeR0qHzlu5Zec
1GgBCQIQ9DbHZh2dRjZLdjCCZwiUGuan+UYtlJxTUsGC1wl/u/Qhe1+e1+0Jes0f 1GgBCQIQfTaLmc6+U4G0QiTtW+tuUIlPySgagN2xZmVr2Of75mfaWSMQV2FbbVId
vfJ2ZKI061X3gsLVJMcjXEw11SHhqI9wh/zIWgYTp7bnEcocO+sYtchob8qynwEN S4laxU+vTZvZq7JtAuieicAA5fPGq11TVPkbXkbwbVLe/UfbUqnB1Vhjn1C/vKQ1
sq4e6JF924eh4Q== Jxxf9oTCSRduSg==
=CcxN =M9yG
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 9F5341688D2F9024A15541C9E02949D0F7769E2C fp: 9F5341688D2F9024A15541C9E02949D0F7769E2C
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DqL0Ka4V5gcISAQdAVKgpyaSgq/9j0/Xx5g0j9vByKkewpQbS97Ojp4SRi1sw
WoP7x13tUER8Qf31NVFhI184yIIgtl2hlJPIeHY1FlcVk0Wuqdxq4teW8xKvxRuU
1GgBCQIQ7nnRbDE01B7ldujEgRx04Y6ErI3joFzifeiVQCZ/Ou83seDST3TKeW+a
yzPvkE0ZQPKUHchTaJf5gKKEThw6w4rVsIKO2jXKCX7/J3Djy8Xxis/lXxG89HsR
PtqB5Ph3R+U7BA==
=fuja
-----END PGP MESSAGE-----
fp: F7F328F0E4958E4C785977E23B8AA0BAABADAFE4
- created_at: "2026-05-17T14:21:50Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DbFrAcOA5jGISAQdAm5+uPDWzUJjBpXQp1RLNiiMDVitvxN/SH96xDA/Q+iAw wcFMA1kDHheI9SLWAQ/+IW2hkHvCThxNheQj0jwdcYF9sUGzVtfG69edWujpOcJ3
6EbF9Zdj7XvspurbdvscXW/GUHgQyBB4D6/cwpSCrT97zE+kQ29o9gbCquqQT05E OQIEaHn/igp1Sog6oU5/JWhNL+tq8+67WoOakI88+ljZYrh0XgolcaB0chnLoXAT
0l4BysTpf/DrhdzH6MHJLpGRNQy4+u34LJad288MWbKApm/V3687eBAAZQ18SNKY BKp/J3KyyS7RHMWbQpuBHsGF/YTpfyYSjxk2pzRgUiJ6CBGWJ9yDmo/WuNuUJl6m
b46a2eDuOJq2b9ZCCqFHaoLBmc+wefo4RsP9e3EYOjW43OYIDnUVTu1r4d4Z3Uiv X7ei9opPYiiFzQCRUsORgUv61iWqsdP3uPqN6KTQJ5CELqhxyMPn5FWtFSmeVbw7
=+3z0 NkraTCD7pQCgV3dep6mUtvaN6Gk4LrGX1KtDNBp3hX/f723dFI3NlLqrWKZo7DPN
zndHBrMMqEbewbk4phiO1162ft3FCRksaWuK+CRtehswMElss16gM69T58w4bibK
y0QCrO4FXQBPmGD+upRN3kXZYvQLIIJxtjdMO90ktqgyjSkJ6eSh1qJAmLsjs6L/
O6Uuwg+SRtZQDipu4ItViOFveTEl2sJtD3k1aNWkkuEW5PktGrleiePfiD/Uh4M3
azH1yQJNnAf0SkoUpBLboQX/LYhjw0t7ifm14VU22NHHq2yqKQ0KdwMcp3y9Q3cn
jx7ncqxuYVP1mgV9SHnRmWq8LMuYzGPAkeBqfx3dX9NtFEMQLPcczhvl0ujBbEr0
G5McwY6Su7XC9qwz4PW4yhERhJb+pnUQdVS8UJLnFgGt+yDYgpom8KyD1eEa/m7S
UQEG5qqrdo7rBX5udl2QEbrslew+m2AJ0Lcy1iPP1Xrp1KLaeDDHncYFO+VaSQM4
5fHyHwB0JAW/5V/v+HsOZq+kARm7vxjdqaddIf1werToFQ==
=lGmU
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 659FDED43DE155FB772A339B343CF1218A664D31 fp: 17B8FDF68AC123EB666934B17D0DF6EC048A5D77
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA0JLr4yo8A4WAQ/+MhQYcasR1lZdFnUk3L/HhjkrVt9xQ0f4qLqNc3BE6dNx wcDMA195cwtvYnl1AQv9ECVPyiqv8m+f44zOhB4+zFLwOmaOrW+xRTxJF1yDft8t
sLS/AgkldsnrJZnM6+5g2+VICQ73dR2zDZ9wxfMZfJGznN/iYWCGbDZLGxQAPlTi NHayPc3He8+BXdS2dHerN5hDuH+ZoT6zFf0heJGLN2KHH6zRjQ95FH/SkN7Ot2rg
B8ofOOSK5YXlBi3N5cMclaZM548E4qFaUh7KU0slwZC70eEYyhUU424G2jhKQ2Rm tC2CmmuDxnwKhdngv/Sr4mtdeUj4sQtmsgbAxKuIxMy1XO87wi2+lepl6mYaU1HZ
g3fu+iPB87MHfx4gRkUwC34yvXJEf4Po9T6pxEv7wpFGTts6VRCm1V3iOPz66dM3 Xb7Ju/Z/z6QEKi2WUhd4MlLlmbKGJ7f/RXYjXe44e2ZyE2rwylMHPolQ3XwEwqUg
Kdly1r9uY5F6LCuD91GU/A6auw1dwxufqbvs0vA9q9eu+FGks+1KQu+Gr/A+469l vCX85xAS4nThWX6DwF2t/LmW36vJhj62zTJU56Hns9RuZAKgIVsABZWwT8quOcX9
LttpriX6S3EUpXfyJihvlKFqTyHqQZkWoebgFpuVmyh9wC0q0hCCxmk6HF8hloGY 2r5dwI3lmoaY9cUQu6hLv9dRsKRlHvCveaRJb0Rq4aWkU/EIZgEobMjIJbdVDPDi
xAemKCPpf4Ee/ydcPTDtgZDv2zR2SA1t5sryUrBdK+bmgflNP9vFcGAt+vZzC0aN nG2cZ1YC8gGBNazt1Ypy7iQOpQDR/0yNOwvQksveKigpiyuMOkdrKITsD0hVh9dt
hE9zQsiubOHWoNCXD8z/DQYLaSNFOznchrcd2tCqW8xIjl91mGFKhoeuBv3c68N5 RrqzHvRyZkiEm5KvDP4T7FYaMkTG5z8gd+0gp9FbUqtdivfaRr8Ewqz6DL+mLGWx
PHtGIILW90lu21Qtc8u3Lf9TFwjxNxkbQCCf/By73PWPwldOiX6FQKKW+2nmERuy 9bH88IIDAtZk9sdkYs+S0lEBzvqoZQN0QUhaJWjCfbYk3QhjxRifEDnzK43q0ESZ
u/6dtOrL2i9/WRVVzniIiF5D+xR/1vN2VduUzMQpLRdjz5U/G+oQ2L74Ebj7z7us KJCMqB+ujsTFsZOEbk2hdbB0GtkQ92fazi1ADbg9eTI9hyI0nYVHU86NQws6cYol
kTwPcoHN6nZiMSnPUjHDj7HRAZp2T9bWXGQbRIm1aj9jbnaigm9xki/jqYhgf8HS jQc=
XgGCuTPNSwGbGh9qov5YrqnidDkeLl05puGsnV9S8VB9uCxC83qB3y1EJ77RVsD1 =2xds
XzDDafrkQgStOLXQGBMYqeG3RjBR1Iq4Ng754Mke3Pdg+tM6jKFgqP9jdnJViwA=
=L9WE
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 93593B8B0B7B88EA2DCC99F9388B6A662C356822 fp: 03ADBCD31737EB474A4BD235CE615FAF927A2054
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4D9oMBxyVlaokSAQdA9qq25Rk3+ecAiD30KN6ZbYQ5Rs1fpfuoVHi/yTSnRCYw wcDMA/IHQvF5YsEcAQv/UMgerVrfVFuNjIurmlsc3lTz4FEa8SWDo+4FzWkcpDVU
lW/nVamEfdhYCJW+oGDhPTagLIEYQit76yB9BjJ74aRGBnmoNCemnsgptDD6NtEx oeGq4S9RoX80RtzW6QXmHA/dwnNxlAVFivNykCDXYQmPsUr3k1VX7lENWaDu9B+D
1GgBCQIQT4qs9oSWF7nT7RbqUuHZo+rOrMQa/Tc4+aNeT4t+PvunGYAPFwfI6YFE 2Z4RxoPwRN5jxSo+wFj+y3G1IuYFRaAk4Uy6tc+tG7K470JIzciEkN8zVxAuhd+M
K6MxpQbmtyEBbHDInz2TRNqh/EKW8ZHx3jULUUSCkf5TII8qFqzD2tPB9bW7VO4k ajgC3+wbRYRYbrAZT3t4NVoyDUTAU0lmTlRG/hHx/uLCR4QItL5lWeHfulKX3gQn
cehLkWIlYYT4OA== fq4hhhKMC3oqrdGrqoPL9RT0U7dSAVjyFMCgjWDP8IFS/PcK2tvJlAYf6vlm/FC1
=zAPp 4/N5XiW70F/jwXhPjnnoDZsd/P4wQUdkaMXjNtC0xWhOjsopL4J00KP+i7QLgpg5
i7WmF7FcWUcKpxIQOuKYUocsUjOELXIo3cBTsGPXNZdM/thE6kM04kHIJ3P8CiSJ
pzXOmskOlUFZ/btC7ctwEPq/BnADE54t1yyaN5iSEUdXjn9izv3BUyK1GVlxK60V
4LRZ7FrAWE2szXRsLGur0lEBamlOdPrpe/u17GEK5PekTA/s00BoWfjXmep9j4Ti
8LxtAoIgVWN25i8uYLulqNHXT2eT8sWPHw2YEVzNGPaxitsDEwUsOJZL4FXmu25C
g4U=
=SLdk
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 0143019F62469ED5A6A016C219CA764D37590F9F fp: 04ECA5DBF73E98EBCC1FF0B018F2D15CC56BE487
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA/fyan/DNa3uARAAjerLYo+89cPKRGeXJnv2rNoUMPZL3udG+7x8A+RAstXp wcFMA/fyan/DNa3uAQ//d3+Vg6+kbssPoolgUhc1vcd76ZXQ3MbfJdUpn1Y38Tsh
Vj35qkocQ/PV/yeZWESlhamXHKpzGtuF8QoOukRvqBs17n731q5bEe3tqU7azZGZ 1Rxp2m+CHSbp0a2ljTFtrbyvcXE9Wy4ovjRXy6DR1JWOpACWO16D1tQY59xcw13i
DGinvqwLVVwMxxDj3z2lczFK8hl5GwOlfN+MtZvb+/bRm7d8QPPMH2Y2OoNU4sVR oBnnsBY1vEutckPPK5F8jRF5dpNfsSuzUGThqVZbERZ9RwEbOsQH8rK2FIXWIUDi
8fztXlGqfmZqDYXoYkCr4wDCt2XLS9W/ydDJlGmjvebpx9E24HUcgNcKwu6pUSwV Kp6I4rKqH875JkEf1/xOtZ3FO73QY3OEelW4uESKhteN3Y57zeib6xCv3K0Fo2LQ
UHI6UU/rtJ8Nw31G50Ar8RRc0vGIHiLNdEDHr1cDVbtvf0ySy9kmV+M+Y69cOhZG WqEBO+w5s312eS4eKnSLUfcbrD0Ct4Cvqqh1AA2nexnLcUjue4cOTXPQeJ84rML+
lFbG/RjUaWFvueS11PIMc3c5vZ/7WNcv6dCIN0ek/W45Ib3IwckhJnbuxPImwl7u eRp0uvs1gU+fB4XQiaPqKhGqa4NRd8N6hx+sOLjnn612CmrFs3q762Lx92MuZf+R
SiiGwbMCAjNLrWJkfIa9d5aKMHZ0TycPVRWPthxW0fJ5Xfv8Ta+0WnTIG5Gew3YW AWdsLoiZq0jFPQTEqPUP1RdCt8682y3JPeig+QV5XpNo4rBXGOnKKRkCXkUemWoz
nuxtMkoH/HVJV1Ea+AmcM9cj3SqQftK8A3zwMY/y1uB4B2yO33AU651aPCKp02yU /YjnGv4cFJf4t8MxjYSCKFWpONbmVWhFVXOnVOolXSUHtV3fI2toG5b94g1EeQeL
z2JGP+GYdTaL1dkAqfp+b/tMXHDgXjSGVGnfIqu6yYg4pIs3k0M4R8yN6Pb1U+qc Wuy83nyd8lm0OmPL9gmCgQVCBrP4u5tVInWyyWhF+I/CxL3wo4J3CUpbD4WjsY8o
x6Q5ZdLdDjuEN6iEMz8MSI5C6q0Hxf7MFFLPTn83z1aywNYsfKxqsovvOZV90VC4 xke0o5uU15B1SlYxPBJLmUfNDiygjZQyB/lOKZ3BI5zuXUDJyb1FcP169WeQSUZP
AnQG6PZ2I+cI+8IMLcAoPPfC9iDsBz9fp6NC9zAsBvH6YrkumOfp3J7ESrieTo3S EkaRHkVj7pqqyMbjunF/2ZP7r21SYk88rToinH01HqQV8G2Fmxw6MBpbfU9/91zS
XgFIBgIV9Dw6BO/6BqMJ0HCrlV6cVudf4r4GoE3saRjvGImRFe00LrD9TLPlber1 UQFfxsGD8sJmSk3XjigjVeoXLkO8KWfFGbm0lCoa+TI0MfiamYEMhJPzQR8gwtxi
WGxNBcY/KAf4RUU4ERSB+jKERgYISKdWDbogGrOsOPk0AGbFEOBoxS6/vkNPJXA= DEsaz5B0GVwrbMOHG54MqPUGxPV+cHtnuWxbtRmxG0oQ1Q==
=LaMt =cPOL
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 9E561083EACDE14694C73A323A2F6C1D153D753F fp: 9E561083EACDE14694C73A323A2F6C1D153D753F
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMA+cOSmNXMUmKAQwAjvtVviC+gqYHSCFmTq/22FjeJvCzG0/3ww75p24VvxG2 wcDMA+cOSmNXMUmKAQwA1PRef5Kz4hHgEmui6uUioadp7ogQ9T30l2JOPnghdg8s
Xs8q4BEdoKu7yQiYHpHGzQbXBBfKXy2ecZRT6bFpqLW/YDn9At54l78x2Lr4SBmf YRuOgjirBJqkkaBO8iz+l41DvTNQHAwkPV2zoCKCpHHyeM/hNy0LK8QfyBadGoSB
cKJZIAFeUsa4Zqd+OEMMcZ/q+49iDYCm3lv4eJy0mfxC24PS/m2ihx8MwSz1oOEq ENxnre8WvwCQAl7w1jUzy9rR5ugVWd92K16DE49BMR3tczfmOt4GVegG/CknJBvD
eutHDAl01bjPlGaH9qN9xDBx/75P0edJ1wT60vghQRy92nSURyDFdZKUX3LKNT0V 4KPcancT+KW5PBOsnefu7KqEMDVl0wtEC/FeCVQlg7pECIcrEqB7i0lfCqHJBi0x
ioSaImYpkAEgoXBG7W1GWztmU/Y/JY2ksRU21GB0Ur3lmoFZqjZZf033xn2gedF1 ZAb+QAKyKImIToxPbSmGKlIbnICDlHkLrjR+b1lee7FysBWswlXC1I9sZCSx991h
SaVHUPtmIMYX7QapX04l/2jALYmsFRKaAlACFU9dR2OYIz4nps0/OQCcLLK/TJsn /bCk5sX9GgRVkeOfSd/DJ6jVIdxMlb6PtI6Yr3cKjdJHxroLdKd9GqT9TsyKxsNi
a5FTrrJR89CY6u+22NYmjjGMRZAxrnLEWL8MDTbBgVevIkaTCtEih43Yi1eLwILq /6IPo3ZiNsKtVj0ax6V49Ep7+0HDdFJMKosG2N5mqLwGcyl5Vno4PD5lCiCyLAsA
GVFm1iBKKikTs+GXOI+9Ye8YJ+aCHPPdJXUy38k0nG96TFO6l/QmEeOd9yfuYozQ Rpp+KUTTihWOcKixdmrup2+IfgHPx8EwbtCtl2cS2POKQCA1qZv6UK5qoncx8+ez
q3YSChDeJmKn58gE+5So0l4BePJ7cn/DBoJtF/iBpCgmleEo+CJ2YuvfifqQRz6u /Sld5DXucNsYDto8XcGs0lEBmksc668Jrcj/PAL0pXXTLnziuQhFMhL/9T8dFjvB
HNY7z4jBs3eAznTgM2ZVDTn3do0qJqVfddoeCErbGtm1uWXYGERWZWp4+fhWb0Lt MvMVCFwQc4m3/ebFTddsYtlN2PF2rlSaOikijclN7hLT9bUPQJVr0SITiPolgg0y
Wq35XZ+yr8WDRUlHtsaa v6U=
=4d5e =KacW
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 9F08DA9D42379AFE6610E9E615CCEC6801DBA02E fp: 9F08DA9D42379AFE6610E9E615CCEC6801DBA02E
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DrMuSzhFbHkQSAQdASZkqTXPijGnYNdOnrzS9tqgVJKIj3n/bjt3y7QSVPlUw wcDMA5bUWViEqX+EAQv/SyHaPsOtqYugafiYw6M5pyIlBdUlVDgh19+e6eWjVLLR
MMfwIdRjrvN07YriPmpLtYqJCCxQNGVNC6ye0bhCbdoCyomZtroiDdAhKYFr7dcE nwrIsgHvWGi4+/10pSJGXJIPXx0u2a7etrodKPM1TjJLyMUz2MEQOAVv5pPT7lE4
1GgBCQIQPQr5Yzn5xFWjCcKM1ut7kL/Na9uvyiHqrtp2a/vZYAbnQzBf97lbgpGt 9KESZ/c41SSnjmgS+bhvTo6J0WAg/yMzGNahNAs5ZPqSuWWFqLIoeiHQjvPPZ1eF
GwdPt1gmuc3wcAh2nG0vFltHYyJ3BAF49t8Ol2vYXrxFt7R5txxve6Ijr5RD4N4J szo1wqKZz/Pe5gNEVKenN7+EhMSU0Kzya7U3yErxsjtkMSf2vOrlKkXyuTgsiPXQ
ovWR1zjnvN6jOg== LyrG04EnqRo9AZQgR+3BvOUxAoJApjBgeIteKtqu+qNI/bHh1f4EiVrkBk008IY/
=fm+K DM2qIiX5/EmT0l0dtpwPYbmfdqnKqUNygE3eGiCdizmceTnkETHatX73g7UBsIul
3BFWSjD7svl3onhocygIo7aCQVgDDULm+t/SJstXYIh4lrjqQmswYM0VDzfaiCne
u/lrdBTvSSlnilGk2GbJNJx1oaUU9gERqYYUdUTD1t2/JmAaudTTqsHhFsKWPnqu
lDA/idHZlfQeFexW6gBo0lEB9XBd/jzfCUw798EEuvgrMFre4UGo16obVjnxWrJ6
WLqbDRNWPzT43uAAW2Os9aezL0qglXcNX5dI/ve2revJOyVsIt6CkxvjlzJiQPZn
q4A=
=D4n3
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: B92DDC9B908BF3917758D228446C51E049AE38CA fp: BA6328948D50175F196AAB5111F324603D12DD56
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA8YZutSkx0fiARAAm4woZmQf9KWuahM4fPkMofMKzL6DGCFGfFu3HabFnVAv wcFMA8YZutSkx0fiARAAmwvzEOXs0PBK5w7h/38B9GRgmFCv84CL7XKn4uYXW9jA
IAVqW6lCpGPI3XVM9idi3Qie+SqHU/Frz4phu616b27u/7kSdwsUQJ2UrBuYHHvN rzvSjj+dj0/cIjCLEo+6RqxahfHqTsGPlzCtEm+BI9mJX8RBpEkclnkAQC63EO/h
HptrEUKZFnddbo5kfKa/Ad4Bm4ItzXH225xV1tvgQUETBEPAjFblFf8Dg0jePFYv /vl04Oztu3Sg1ADTEeyEHvx+bhaE1jJ6LYcc74ETsJNQqTJmAsTq/tme73pEWHpU
hI4ObFzYytkUK5Ck5dcRAbDSd0SHe74Hfh53zLZRpl4/PlCVdKrUvjqT8EJohC/5 SZeFg9RCs3iFLGG+FkJsoOv+TmUF5u3NzAz7DZJi5gB+LgzJ0JukL1LAQ3o+un6e
FQqZ5M88GI89Zn6Bvhxz0YKnJl0WvZ0yGHF2xRT4sL9fJq0cbQeUKBknFdll+4Nz qN4yZOhc8ZeXVK9X08MMZ4a3ErsWmTXzywsWie8dWxDAA48n8wJKgt2xExygywW3
NEIq46i+b9CsCWopeaxlRpcwaST53gMiGYktddrA4XUvlNK9GQA98pbZtkfCYA5r 36Ugk2WNfWY4TlrXYNtG90/22BHOXDRWTrw7NrHUYSUf7MzhfkEu+IQNYtY0um5D
H82uC+WvQsJJYrfyoZwcww5YDoZrm0vDmZe0pFWXZsXz4pwnc5Gn25gDw4cZ9Okl 9aqwa6mLComBuYlXOu5ItPQfy0q+TF5sURXLx45TKH/KtQVVEJMbe0frwDZWLCsh
WHHGEwUeB7lKy4B01DJtN0pgO3rIOQycV97zFlWyWfmgU5I71lBZVhh4J7t0D+iB GZ6F4X1/ddxlNBOLPm/ysBA+9a0fvNK4tlsdeD55vkqjY8o0iBK4GfzNYLGSxhs6
X2VvD1l7oQzAgphdoggADOkTifZ8EOmCxLrJJOmsxOKBlUmob3WKzhIcy/DmmTYZ AiMtGAIhDQejaldsV3CUg7L2KSA51KPx7Db7FlY0KpASPZrh9ADePbkgv1vBNMBp
wTCxOpLDFHRWaq5hynT34372TwHblXA9R2z5U/taNX45ENYrfzSAEhOwGX1fYGZZ pxDXdxBLakhwgruJEcMQ24vjdNF1U2gAuzcOMmUz4P5mKTqgLoBqZmbAuUMaRjm4
8pjB6SGBWYYoiBW0MqAkGHqWv2BHEY8POmX9A4glUjtftPWTLHmDtu1SjC3mDPbS z3D6XMVFhWIj9HSesbnOg8REEfh7PwMgER2QGSyolTKomd77Qa1DNw/RZXyPI/XS
XgFGa5sFtQMh0SGENacIwu8iqXDq0Z4ivkK9KDDZKt+BCmvZWGk5rvO91ZqCX3RC UQFlSb9MVVjmKswCvAUHayjpVimTqBQqmbRcR4PQsLmKuylC/mueAlcawfSjjKli
c9yrfExWKEAq9+MQ6qjxpzdmpz1ThIrdYghcnz0+nR66wK5QQAMyo4JJ8pTqAn8= vW9jMuddQjLJAxih1GhVJbLR6xQZhM/3vzG5Ovt005Qhpw==
=fhpd =vQIB
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: B643A5D780A01F24E95AA100DE6F8E2C149C3748 fp: B643A5D780A01F24E95AA100DE6F8E2C149C3748
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMA9vEXLVODHp3AQv/e502IrrUfeQDZbx1YIL2ulTX4Mi/o6C4M1mT0spXeqFW wcDMA9vEXLVODHp3AQv+LOnf8kWrZoWoxnED1e9BDtuitn8Q5AVB07e4u8RA+0oD
BKKDV7JPKiuZqTD3Db3qS9hZaYaBtw6m4+opR1AiSdBI3+IHENx7uepIrsCKSoCZ ALOruldWTMzEWMzfZESz14gTF+A7A5LOemmiewZwjzu3QSeANvwZfItjeqkm4Vvi
XL8YEA1H8VS3ZsaF9SyrmF5MNt9fj20/UtKnTrXzVNHBhRghSF/iQJgmIQSOR/Bs 3CNB+I7KmZ1k0p/RmKBiPqWjlFYLplh68e0Ivc63R6bwfbJWmYPYjm78oFqq7HTs
OCbEZFPbdxNineI4UgT0LymPAMzl9x8VDpJgx/PXdU5yAfqk6i1vwcWM/Wt1f6Ai +WoUkSzmZQdWhVjCG/qtvA2pEq9kCTzIqgPWL+8+O2TPdbZ+xbYF2UZbvd/UQ2xI
XXg0ic7Q500/n6H2/HPpU/h40NQtUSL5WEUrLDDTM/SBoNjGnsE5pPJsP4PbXuXM 3VXAV1GkKihWaQmr7nVhH2QZpw1Y8ER1EuixVXi8LloiD+x8KyA5hbjCh3RRvtMr
dft46OUg8N/oZuoN/DVCxQxCUkjswpMsIgduHLfh9EtUFveHh16g91stslZeQJod UyphedMIQLFkU5cf99YvD6gqqAcnB50yX/mPYtbQR2RzAUuppnmyUg4O+ouhmL/r
3RDAZYtcrEiaLy/Cld7DHykW0hjsnYe7xRv9SCp0rl0cfJljqVUjB3H7ZtRNRZhS CJC1uiRabspZ7VDHQKVyPcjP5g55gZPtoJJqJrkPr5rBIEE6v2UFPq9isUhn4+tb
btEuPKUIyUc5yeHG5tzU8+B2EhlOu2v4U3CGKqnJ0uA25WaJ1bKGGpkDlCRrBdxY YqenVTCg8X+sgjiqeEsyMKNCqwOlBK//mNcXmVTJelHQzRJgrMSzOi+5yb5whgNs
XmpPNQNCtHe30Gq1/dD80l4B6tI3Aj6WcdJvyzK98MnzWNzQY/IZNBHvfLxdcfX0 wlwR3w0EPqRpTyJu8fxw0lEB4Y2mF7FWiZ7GUe/RiOLak92tja7VWt+xcr2baPIt
bdfc8w58YfDdqhGZXtQlfrqjB9CoZx2vhGk8wQevw8/6Z2VtGpwVX4+iY9q5aYvL 0E1XpI/aSrA+sReH74iRC+unmFRagkdo/cUYfCX0WT9ZKAA5OHYcFBOCbCMkTX9p
XqcHeARup0yzrBI8i46I u4M=
=iFpW =GPTC
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: C19A7D807525CE24443CA9A49372E896B41FE700 fp: C19A7D807525CE24443CA9A49372E896B41FE700
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMAztV5cc72nziAQ//YN+hIkadfvYWgUS6pyfym9ulATzJszRyaZk2MClrSHz6 wcFMAztV5cc72nziARAAmlYtXpJOJv3KzfYdO2opekdIupkW4p2TSLaXzKsmHaoH
aY7mDVHskvlY9laeBR0xSinEzY0z9zus65/zSYC4hahwVUPPPFh1gmkOtEJpWWRR wcz/5M0+yJq3UZcOpcYZ1WQt+LrIYE7cNdh+tDEFohYE4kLHFRJYirdASgd2Ez6K
KJHNDQe/ucmNy4evlquCz/CCgABBN9De6oXlo5lZoi+X/gKSLwwZhPKu99TpinHK xZc5h612MS644uSf2c7dvyEniOUNtiyqHJadL+/BkXpdECvfwDAuff7vrYgPMLOI
z9MGuxyxdudBWFJA5lkW53t7TExZkVRa5uu+vBF+8klxGLE1B0QPp0myFWhW3lMA H3pUD16ng+7cF1mSq9dnoKGJN+qajFT+3DlaZrBnSa3uMFAQw/SIGknIGpBzI9UJ
lil1DL4lEsWNjI+4rNw9ZNPLZ1aEYdrGVcOCrs7o51BDSxMhYks0wLYaDPSMYco9 ZV9qU3P5+/3cpEq+xYsRjylIqzxIbhV4OehIgISFdh8MvLmPAxLx/vEGh2wHyPK8
H7u2m4yvhUBXi7aYNUk8+DFJHvlTk8NSmFQtwmCDEf/cPzV348PspoAoc5Ans7VA r134kD03wyX6Dkfqe1QkTLcvraAEiNsuWW39MIoh61mFBD+bx1SPXAMkEaotyEhA
sGvHjil/f4S2e6ayU0sdSf7uedBPRkQ6bVkta2DUj7lDGLO739n6McuknhbwYlQj 0Bg+LuoRkoNEeghXvUz7V7dP0WfufHjuWY5mNHLBfkc7jbx6ETWn1KHZmTMrpFno
zm6tkQ62v59nR2nhNbpL1csc/Ksfkdp6sJbclQPCA2TLgx+K/1lSSZd6E1aJf6St S46qpZnacVGQOcPs8PoOZ7FHhr6GMnHsZXdTkVJW53PrrJ51Sf6wiTGq2XWIcXjR
dZGRUy1PjwRIy6TwrctswuIMSxCG7ZEtdE1TIWKATgcRfcbWWOLvglt6sarbCNon PIqfPej9JtWp+dpuxmOZYW1yMwTMrr2lsxQ1afEGtTIyF4+WYwrGiqj+6o5MJ0f5
IerhQ4dGMd1aXhU6O7/1PIcXf7dA4oqmyHe1BXSpoXcKft08GULpZWsVBftC4Ay/ MphpD7iLwJTKo3JW6u+vuJ0um1i3TTvlhIgxO0vQZ5XX93rGZydNqnPXtJJk9wV+
+vCGFIUtxhmkqP/1TXByZBdw2c4MITqNWrv6eJoxTg2wMuhdy8G26KL5RpNPyjrS RMZfGAwy+xCpcW3rpmtzLm93JyU08ttlpfpcQKZou+/CUyQQHWTtvjGN/ZpXM9DS
XgGuJntCHnLofzyu3jgs1NsBwXm+S5keE+9rBT533W2fjtwmtGN8pOowc9tDN3gL UQGvX7FTCvLwvcIvtn2wHMuWmnHSSALrcbU+vY6CV6GBHvdsl/ImJ9Co0rq+M3VY
hx/Sgqmf/D33XVfnH5FlCKRsqEYwVplslfklgjDlDob2wKIjcUIjrbiWZ/9Du1Q= t/tolxsGPSRO981BgWmz1BNc9TahsosWShFS3mTrwPbMoA==
=18wd =v/V8
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 0DB51A7E90AC6418B7DB83724D38970874850C33 fp: 0DB51A7E90AC6418B7DB83724D38970874850C33
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DZmNQj/lmIGsSAQdAHsFusAI1XmMWu8RvjcK2FAtiazaGxPq37xZLTGbd+3Aw hF4DxQtfVaqAjfQSAQdAxexVKG464D0ioLMokAOrzNihI91cFatH1FTMJAb5fzYw
dcWsrkdYYYOpziOnzFPFl9+Jkw9SZmg19Y0gnr8x0D0EYGntreiIGae/amK2CIk6 8hpnBiccDrbZHotReamlNaoJt7jGn0Qbm9NtJBd4fmui+KX1ebcbc/8BG+3mdRna
1GgBCQIQdrq8vRwktEfaOY2lw11yvcgxScxTUSnRekXDmrZFXoC0tOz9y5Hl/m1t 1GgBCQIQtHx/QUdWkOIlA4HepwkxbW8iQx43na6T984cKerAsy76hQpualuwjol3
BaqNk5rB/ZaS1bxmWjnntOmamHYJkmmxxu90RbeHvRn/FPzaBOY8afaqHXVF/qV1 Vo9t3dFzS/AuqbOY2wX6TvWrXKvamkcKhlmTaGiqVikYe2Y/tPWhB4lHNSMWheZB
IIfVAZBobrWuJA== vVHnbym+rixhjA==
=/l6/ =Irjp
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 73C2C9954D1BC94DC6682525D2FA233B52AEC75C fp: BF3D5CEA36DB58AAE1063D0BB341078652D87924
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMA6r2J+JSOMNuAQv+MiLJUpEczlb4dfa5VYkAsZqmuJEbM5JM4kzlCFuO0n28 wV4DZmNQj/lmIGsSAQdAWVdKmqeffNGzocmRTUOVYEAN4XL/z82Dk/IuCY7ryAkw
tfOdiQRY2q+l0s62gxUx9jkmDY6jWWnWXi+Pp34weEU0cOSY3WTPdQTmAcz0fL6G dCokC/yI07J0fj15TKnetYCdpa8jTKTXoc3Z4uLSn0T1aKg1+FtvoofC3DlsYszs
SVJ8jf8gOLcL4/ubno1oITR5M8DL8G7vZlZ2eoiz0mGwFSJ/jvAWuHZmlCnEfew/ 0lEBBGlM+zxriJOlOkPWx++tvOSxAKpp2HPO/0ElcZU6npDK69L7G3kIW0gzjQ5Q
HvCcC0zDv+rYBrgyl547Z4werfXLoMlw0g9eayKTf6ZmDAveMx/9Sfj6SwtyiYtQ KH2rjxPC++ThCFhAwwjwSLbIryGM7vKk9FnCgGbran1t5h8=
BOq5f1Ek/LAxxm/l+XJQ4tQmNBLAbaSuJmAM+bPGYOcMnksMQQm2HfRyzOQCI9Xr =V7BJ
ZPb1OsVhhbQcL6saTnxw5OTKLMnpHQpOqr4Gr1JhgdYZS8UhDAqEkSZCbeQ86Hae
PKRx7OE/WuvWuguSnliI7E9Gi5TLfgxV3kpBOXbq9tnOeLaTktOzC8i+KGT0oIul
XuulcQxU0UT8EcHhF+/+GyIKfWs9T2keTnFkw1rZOOaTsqGqmjYyKxw+akeKjsZO
x5q2H3OgEZH1otvL85Ng0l4BnOWYHPsbCvEcP0jUdX+Sni3Dvy6x5jAzCH9xJwx0
3Hg9zZR81o2T1wJQDQVA6DnY3lRGJlB3gZPH6XWPxB5Wdm0Ophjbo/SiTDPNWULA
BiMoMvZYRw33f7arpmx6
=4oXO
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 3511D1A5B7B2AC97BAE8AF3EE758168C000375CE fp: 73C2C9954D1BC94DC6682525D2FA233B52AEC75C
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DAQRCY74qADkSAQdA8jeFNe9adqFhTEZ/jQUrS05jrjIjNA8JIR9af7f3glMw wcDMAxSu/PO9GEkJAQv+N1ZJ9h8PkWI9MuX5Ba3oAFxRzq6ghc6J+8nz1J64FjzY
bUTI0kW9S2/oXS4TcDq+Gx20XuNru+OBbxqFkxqNy66Sy9xppEoRo0K5Wc3b/3sW HI174WHdjIrD3l5xC2//9HybWJETV6ibzJ8bNtSiK5mBrfrRj6rKKePv+sp1lr6B
1GgBCQIQF0+VEd4kt27jo/QOsNMNhbBgO8MsdK1fps3tUcFR1N3xLB0gzr3diI39 YVZtyWyjMaKSVtX5fmSFxrBxM1Y/8fEuBp3O++SzJvud8P49M+FYB6/nviB/yDy0
U5AlQZzy0FB+A8RSNK3weRnFDXuysOC5znFrXvwpltqgtW6qzwG+0FzA7ClhTgFf vC99Bts7txkjGURKAXQmycGRVYfLeGDHWDP7IHR3LVOPaZ7aas1waYLk/ZVIL6PB
nYDREKmKCj3nig== LCOWVwEaemFBfYlfdu9Ll9V4j5aHvzDh3ZKbGB95k0ievGn/KA+jOnW2EUNa3Rsq
=hFH2 xURs6gnzX0fo7tSIxY6AXUl/B9vQwxD1DDeLt/qEvc4kPmGdPlHME7exndTDEocZ
CyHk12F77BK62zTqyPTdQHy+4EOxKpIgrCUhG/QbCm5F1FytD6yfor9GzacSCoMb
Ot6Ute+sjLQZFO7vaXka/V4eGNJbc5DOFbtDqPVcuUKbdtVVYccKELpCaE0AxBGj
Blc/eyeZo4Wluh7tHbfw0lEB2DcyrFcBRDPBSeAybsTLR6UC93P+1cA3lRotn7HI
h7mhHNGeohFBXFQzd5yV2g0FAzMwBTC+FVIOxNLONVP1hmBorI/R7PwOPDXDkcis
Dm0=
=NVU7
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A fp: 13E169CF5C35EF164628764AAA2EECBDE0B38CF7
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMA6N7K3Tfl3HGAQwAgl3vSd0O8NGsPosOI8XINunpcvG14pdPZvSN6iTf4gDY wcDMA8b/EJ6Mi55zAQv/VYLKEqNrBQo9iohdC2KcEng98V4Ez3VfEKQjydB9T4w7
+Vdx4ECXRuW47i7hEstPybzL+fTAQLmStWY3Bg+mFfhTTFARYfDChCGJxO+/YTZg nF4JLq+OF/sW7CkAhOUssuJct3zEawNu/W7HMcbtD5XWsb2GRevWFv6w1VG2ANWu
2IFnO1sC5ioahxQqhrH1dPVimwERFF1LNmp50fbCoK8tYU7qeaeej1xiQeN1zw27 5UT7rKmSBw20gFtxw8VLFX//CgZCs+cN0PZcMzXiXdwr7HwEgzZbZc3TtFtNUr1q
YcspHJMCTG1XxY7HTg1TM8a6LAqDxkQOBdJgdLKUMPpfifhsxNv7qSZuoWk4Y1z+ WORua8Lswhj2Uu52euK5k0JUJdzsxop/p8s2OSYOItKl2CcqbzxLngbMcDIUN3vt
iNa/5hTRao7GVZP8x8ctUKgo5sODjKVwL5o6dZ8SA3me6qFsZFu0bY8v1cix45mB /8Yw9mnKGsvaKT0B7x0bDSMXknfuq4No3HUH7+FrsIDhs90XD8HOqUS8eaNKwezS
/23amvyvctLUoltdz9Hv/1aE6K1oHEKBBje5K/vaqb5GnL5yUsivf0cj9xAWdxvi hhsPlhhSMDczqKCnu4NfWTmDgfiRjR6sNlYngtVGnseG2JKTxC68j/5LMrNOiL0v
yMlJXd89ev71wrZzW0AU2uRLb8+ofaE6eJghv13vgt/NDDjv18JXUbl+LjjLYOTr EgH2EUGphg0yupTeuUsVu/JLDvPq6DRzw/egwCwfeInS7TPFHwBK+5wAxCX+3oUg
LBGcBmlgi/a21XODeOfEDWStKCvbI6zn1gJhOEZ2YejcraZqIfGS4kSoOqN1LoPH H5XuFiM6xAmJWzYsuZQ7i82WS79BkLMfxKlu+1FGWO0fEQMlTxYCFNSdUfGBHnqT
pRu0hJNzUvgsWFMu+wCg1GgBCQIQ7VZkRhyPjn9HPKxzEfU1t2k2qFEIbo30j0CH QElvhUiWj/03CA2iUx/V0lEBU5JACYpml2V3uwd1dlQQE/OFlBrwlHzf9oIY3Pq1
faZEMLLC/+h0KiKo9bkPYb5cQFNkGk8ypOEMVWrq45KHDBnBz+3/fqjPS1VQ531j s4Rf+gD5wdX1PI3K/68mcQNedfXvmwv+HGhTSfzAXwom65jPYkaTOBj5TtNfdjxU
p4e13LzNoBRBABE2PCbnRQ7AgZENhbSbYA== dzY=
=gvDl =rMVG
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: BB333E772B60EC8A29E8DE641D6B8CC68E09BCA5 fp: 13D7771BDE5241293F3EDA442AB3335ECC93DDDC
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA5KoiSc3R+FfARAAtRnqnrjOC8C4l2lcHOzKXijm+hFEdiy3aLRdYaRaayJA wV4DAQRCY74qADkSAQdAM15Z64heWtFlCMworwtlRTCziwpS/JyQp+4VOQlDpz0w
9EJ40JAsDls0c16MOkSoqPy6wzYyxCGLMwMPFd8E5Obwsewo+VwL5x1OytYNkEtq 9dO6QL0rHr6/RYj0nQ/fb00Y9X90Kq9XEG6GWFYjkiQGeJ7DYooNPk4HWV4HTkOG
e9eLQJJ8Q78K7/S/jyOy9hrUKtOzzFYm54RDDTzC7jR9yVYhuD6fO5+OW4Ds/z3P 0lEBinuysaQ+Lonn+9y2JsnV83L4tf2awTuSpsqRVLYBNAKHfsgcYc0Z37FfURxf
QCJFWPetjxpFdYPD7mmy7/lyS6glU2fPIxmrxBRRVx8kB6bkJ4mpUqCcbwHCq4UF jns5ZFOch04oWRKT4Ufw2sMHgtaqV6+8Ri6tFWtHS8aUMgE=
LKIIrPB59CcK1nlOX+heRT4CHjd20ajmNB9ZgT40GswgUE17vosXwa2xQVb/HKtp =CWEz
E9/nFWn8V/buaSWbnjvySMemR+f+NIACq6Bu/xJcpMvEINKB2S81D+cx914X2kwK
SycLc72yLPUy9Sa8rxVIZ8TbMUJxgCcVzUUog8legfb/zpVMOA/0/170f6eoCOkM
24GnZ4ih3tW+BPS1g60PnbuoSDLU5J1oM5WQ78cMgVSFItMZXHll0HvG8syMXbR/
f8zfArUj1EVGVTBoIb3EPCHeoV4tLF2gVgHnr9Y0bCgQV6vEOg0eGq44BRhEgJE8
TnQy0ET86A8IL+/aytq2zCmE06oIbxzMA++VQLUJYCnvA/rEH2Sqg1jRbLhwqYOq
KdZhu3aRPUQQVgAZnxj7TGaRqLMFOppgoYiSAE1+CEKrOafmpIrEp4OMAKe/37HS
XgGvDkCu6Hio8Ioc7Qe39vhRwYnYWY2pJ+RIoBuyIUE585FaYmi3pZSeupOCuJxe
RFbCC6clt/8xj4Wta88hJvqeUeBScgmsHAJDY2RTAyEk/Q5GomNeoWS9TVwH6W0=
=AnWt
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 57F93F2A6585CF2DF9A3B31F13B9F45E122698D5 fp: 0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A
- created_at: "2026-05-17T14:21:50Z" - created_at: "2025-03-04T17:44:07Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQGMAwTtVaE3mgdcAQwAwaZ+LZhADRQD6vORPKogRb5LHRGblK5NXO8TQbKJMmh3 wcFMA5KoiSc3R+FfAQ/7BFHn9U5mrARB3hFmzMp2mhEer1nnUgEh5InbbgErPkZw
qaGRZGdrhehlybgDI4uRg6OwIAGf/mEFMLJwBCraj+VEvxOAah/U2SHx6XwgjyQs FydX4ikmK9xLyIxF+wUXNQTtSW90y+s3NS+ZhAQXbGwToyNEYhO35ngp0Ju7tjyp
znRZyKIsvA3cpK+6D264d/d5FsiCo/PLMN0qqk3fbQQgizFDnsIK2zLWYsujTNAX zp8Q82fUVI6r1UrWkddwd1QLigd3BE4i9I/xrSyv3sjgufOXwcHGpzOeLt0QFy0T
x3kUpaaVFG2R0RPpy4xOYhUphTIVHLGMml8Xr6YLH+3Hx4rfUkIzJ0fJ+yPjBwkV KG1m7F/Hx5KFtpCmhpkVF9zcrImgMXeNvS1B6iVe3Y0elvzOqZGviFvXqXuCVd9G
wh90GiVVHBxrRYnscQgS5j+ZtATMjVdrMHDww9PfjFx/MhUd35MdAVABbACVAdEu +MNqEiKsHZ8ongHqPW9UA0N51RPtWqZ5ANul2+kcFav0UsVIMGDvt6VHxm1ysQsT
UGdOZllx6P669hHoUOp4u4SqQwrNbLOdPFvPDOvze68kzFxwWnlgn5o2wrdlcUWR FPw4M6jXN+bCgYKguRQPxIhZG2Qv2MpkGR2nvkFN1+PTF0tZ9I8X/wfUZSH0QnZL
L0mL4cqdlHahlxwbrRoiP1Pwiob0LCx5+Jf4DaWZqtuhdW2R5pZVyH8WgYM6xkhC Z2HNobmJEefY4hilQ/QvBzQpVPVz3fGiSlwXGzX3FHURpibWfKzk8Lw29HR7kVUt
1IQ5Rb+22hmMtgfj7RtyvpnDaJhsa6TnUbX1IoBcO4uvUIwCs+EVjJwgRrC88E96 cJjJKeuHwnMg5HkyoRWTlFEe8gVrDJkBIe/MYkjoF7+ROcEn0yz9egGcawnIAOjH
0PnVEiziSruqw859GJww1GgBCQIQ4GeGPwPH3IDoEK+rBbq1pNBMQKXEOAHqyfkg rcB1HoJvl7Vy+6ybteLncvtxEgREMZ2AuihIhVzxOHCr6cUzFu+dp/u+zAQ6LtWk
v8o8WKeijcy9NIj7FmIdkmVp9LYmwmg9qfYxfoXm+4QTl5032dROimv/KzH+3nE5 ws3/KOiTT+YCWxNWuvWE6QDyM/UCC1YFJ6MoPe14xiAqafU/g43DEi+4P/Cg7njr
E4nSznllWtjCbwFG+kLXRQuovX9eRdzOig== kQC2C3t4n57UVuzunBGZj3fKrTlB2dVYA/zkJgoUZP5H0pXPnr6iMZpfKcWER2vS
=8dwk UQG3nfKuiQ87axXf9YebCNzC8QXUVqaUdEgXBo2bLX63CA1OxtrAmEZQeUqxXIJ3
uVtGMVQ4QoTknW1+XS0MUqrzvAblSzf8N353hS0L6pTwow==
=bHwT
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: D667348F310C57655FCE5D4EA689FF232FD681F0 fp: 57F93F2A6585CF2DF9A3B31F13B9F45E122698D5
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.12.2 version: 3.9.3

@ -25,7 +25,7 @@ mv .sops.yaml.tmp .sops.yaml
# define "fixture" # define "fixture"
repo_root="$(git rev-parse --show-toplevel)" repo_root="$(git rev-parse --show-toplevel)"
# --- # ---
function fn_test_create_sops_cfg_default(){ if [[ 1 -eq 1 ]]; then
>&2 echo -e "# ---\n# TEST: create sops cfg in default dir: ${repo_root}" >&2 echo -e "# ---\n# TEST: create sops cfg in default dir: ${repo_root}"
set -x set -x
rm "${PWD}/.sops.yaml" || : rm "${PWD}/.sops.yaml" || :
@ -39,10 +39,12 @@ function fn_test_create_sops_cfg_default(){
# enmesh: restore, since this particular one is checked in # enmesh: restore, since this particular one is checked in
git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1 git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1
rm "${repo_root}/.sops.yaml" rm "${repo_root}/.sops.yaml"
} else
>&2 echo "# INFO: skipping ...."
fi
# --- # ---
function fn_test_create_sops_cfg_dir_cwd(){ if [[ 1 -eq 1 ]]; then
>&2 echo -e "# ---\n# TEST: create sops cfg in curdir: ${PWD}" >&2 echo -e "# ---\n# TEST: create sops cfg in curdir: ${PWD}"
set -x set -x
# note: fail if for any reason sops config defined at top level; this repo should not have this! # note: fail if for any reason sops config defined at top level; this repo should not have this!
@ -57,10 +59,12 @@ function fn_test_create_sops_cfg_dir_cwd(){
# not necessary, all tracked in git # not necessary, all tracked in git
# enmesh: restore, since this particular one is checked in # enmesh: restore, since this particular one is checked in
git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1 git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1
} else
>&2 echo "# INFO: skipping ...."
fi
# --- # ---
function fn_test_create_sops_cfg_opts_complex_1(){ if [[ 1 -eq 1 ]]; then
>&2 echo -e "# ---\n# TEST: Full Args: specify path to each, also for secrets, mix specified and positional params" >&2 echo -e "# ---\n# TEST: Full Args: specify path to each, also for secrets, mix specified and positional params"
set -x set -x
../bin/update_sops.sh -k "${keys_dir}" -c "${sops_cfg_dir}" -s "${secrets_file}" "${secrets_file}" > /dev/null 2>&1 ../bin/update_sops.sh -k "${keys_dir}" -c "${sops_cfg_dir}" -s "${secrets_file}" "${secrets_file}" > /dev/null 2>&1
@ -69,43 +73,12 @@ function fn_test_create_sops_cfg_opts_complex_1(){
# not necessary, all tracked in git # not necessary, all tracked in git
# enmesh: restore, since this particular one is checked in # enmesh: restore, since this particular one is checked in
git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1 git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1
} else
>&2 echo "# INFO: skipping ...."
# --- fi
function fn_test_auto_find_secrets_files(){
>&2 echo -e "# ---\n# TEST: auto-find secrets files"
# SETUP
_tmp_mock_secrets_dir='mock_hierarchy'
_tmp_mock_secrets_filepath_1="${_tmp_mock_secrets_dir}/one/secrets.yaml"
mkdir -p "$(dirname "${_tmp_mock_secrets_filepath_1}")"
touch "${_tmp_mock_secrets_filepath_1}"
_tmp_mock_secrets_filepath_2='mock_hierarchy/Tw o/secrets.yaml'
mkdir -p "$(dirname "${_tmp_mock_secrets_filepath_2}")"
touch "${_tmp_mock_secrets_filepath_2}"
# RUN
# set -x
# suspend strict: check output for errors
set +e
# move 'set -x' within the sub-shell, otherwise all output dumped to tty
# ... bug: stderr still gets printed, not sure why. E.g. '# RUN: sops updatekeys mock_secrets.yaml'
_out="$(set -x; ../bin/update_sops.sh --find_secrets -s "${secrets_file}" 2>&1 )"
echo "$_out}"
# re-enable strict
set -e
set +x
grep "${_tmp_mock_secrets_filepath_1}" <<< "${_out}"
grep "${_tmp_mock_secrets_filepath_2}" <<< "${_out}"
grep "${secrets_file}" <<< "${_out}"
set -e
# TEARDOWN
set -x
rm -rf "${_tmp_mock_secrets_dir}"
# enmesh: restore, since this particular one is checked in
git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1
}
# --- # ---
function fn_test_expect_error_invalid_file(){ if [[ 1 -eq 1 ]]; then
>&2 echo -e "# ---\n# TEST: induce error: invalid file" >&2 echo -e "# ---\n# TEST: induce error: invalid file"
# dev note: ':' is a noop operator; could also just temporarily disable strict errors # dev note: ':' is a noop operator; could also just temporarily disable strict errors
set -x set -x
@ -115,33 +88,11 @@ function fn_test_expect_error_invalid_file(){
# not necessary, all tracked in git # not necessary, all tracked in git
# enmesh: restore, since this particular one is checked in # enmesh: restore, since this particular one is checked in
git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1 git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1
}
if [[ 1 -eq 1 ]]; then
fn_test_create_sops_cfg_default
else
>&2 echo "# INFO: skipping ...."
fi
if [[ 1 -eq 1 ]]; then
fn_test_create_sops_cfg_dir_cwd
else
>&2 echo "# INFO: skipping ...."
fi
if [[ 1 -eq 1 ]]; then
fn_test_create_sops_cfg_opts_complex_1
else
>&2 echo "# INFO: skipping ...."
fi
if [[ 1 -eq 1 ]]; then
fn_test_auto_find_secrets_files
else
>&2 echo "# INFO: skipping ...."
fi
if [[ 1 -eq 1 ]]; then
fn_test_expect_error_invalid_file
else else
>&2 echo "# INFO: skipping ...." >&2 echo "# INFO: skipping ...."
fi fi
# --- # ---
echo "TESTCASES PASSED" echo "TESTCASES PASSED"
exit 0 exit 0

Loading…
Cancel
Save