Compare commits

..

1 Commits

Author SHA1 Message Date
LeeW c0708a09cc ADP-216: updates README from UAT feedback 1 year ago

@ -5,28 +5,11 @@ Purpose: Manage gpg keys for:
# 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
* 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
Roles:
## Overview:
1. In the Keys Repo (`communication-keys`):
1. New User creates,adds GPG Key
1. Existing User configures groups
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
* 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
* Existing User: user who already has access to the appropriate project
* Definition: List of all users: [verify/.sops.yaml](verify/.sops.yaml)
## 1a. Onboarding: [New User]: create and add a gpg key
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
1. add ONLY the _PUBLIC_ part of your gpg key!!! to your branch
- file format: `<email>@netgo.de.gpg.pub`
- **Example**: `max.musterman@netgo.de.gpg.pub`
1. git: commit the new file, push
1. gitlab: open a MergeRequest
1. **Hand-Off**: Assign the MR to an Existing User in your Team to have your key added.
1. open a MergeRequest
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)
## 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
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`)
Most of the groups correspond directly to git repository names, aka "project name"
Create a symlink from the group-directory back to the keyfile
```shell
cd groups/<project_name>
ln -s ../../<path_to_key.gpg.pub>
```
Example:
1. `cd groups/<project_name>`
- **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`)
- Explanation: Most of the groups correspond directly to git repository names, aka "project name"
1. `ln -s ../../<path_to_key.gpg.pub>`
- **Example**: `ln -s ../../max.musterman@netgo.de.gpg.pub`
Add "Max Musterman" to the group for `devnso-adp-argocd`:
```shell
# navigate to group-directory for devnos
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
@ -64,98 +59,57 @@ Context: This repo stores the keys used to encrypt secrets in other repos; these
For verification purposes, this repo also contains a _sample_ `.sops.yaml` to which every key in the repo is added. This allows both Existing Users to instantly verify the new key, and New Users to verify that their sops installation works correctly.
### Update Verification SOPS Config
### [Existing User] Update Verification SOPS Config
1. Checkout the New User's branch titled `add_pubkey_[firstname]-[lastname]`.
- CLI: e.g. `git branch add_pubkey_Max-Musterman`
1. Run `./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
Follow the interactive prompts:
```shell
./verify/usr_confirm_keycfg.sh
```
Now the sample secrets file _in this repo_ has been updated, and the New User should be able to decrypt it!
Hand off to New User
### Update Project SOPS Config
The following commands explain how to update the `.sops.yaml` for a repository.
Note: For a worked-through example, see next section.
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
The following commands explain how to update the `.sops.yaml` for a repository:
#### Prerequisite
```shell
# E.g. update sops config for DevNSO
% git clone git@git.dev-at.de:cloud-solutions/nso/devnso-adp-argocd.git
% 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
# List available groups
# Output:
% ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh --list_groups
# INFO: listing groups
admin
automation
devnso-adp-argocd
# For a given group, update sops config AND all secrets files - New Users cannot add themselves!
# Output:
% ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh --group devnso-adp-argocd --find_secrets
# For a given group, update sops config
% ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh -g devnso-adp-argocd
# RUN: generate SOPS config
# RUN: gpg --import *.gpg.pub
# 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)**
```shell
# 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")
# WARN: no secrets file passed in, make sure to call 'sops updatekeys' on secrets files
% git commit -m "adds max.musterman to sops config"
# [OPTIONAL] For a given group, update sops config AND specified secrets file
% ${PATH_TO_COMMUNICATION_KEYS_REPO}/bin/update_sops.sh -g devnso-adp-argocd -s ./adp-api-devs/adp-api-devs/secrets.yaml
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
@ -164,18 +118,30 @@ SOPS is used for encrypting secrets, e.g. credentials for various systems
## Install
1. **Install Sops**
1. https://github.com/getsops/sops
- 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)
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`
1. Install Sops:
https://github.com/getsops/sops
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)
2. Configure:
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)
```
3. Verify
Run the following command to verify local SOPS installation _and_ key configuration:
```shell
# Follow the interactive prompts:
./verify/usr_confirm_keycfg.sh
```
## Usage
@ -190,9 +156,7 @@ Note: The `GPG_TTY` is necessary to have the password prompt appear. src: https:
Note: `secrets.yaml` is just an example; the file can have any name
# Playbook for Removing Expired Keys
## Offboarding: [Existing User]: Archive Expired Keys (EOL)
## 4. Offboarding: [Existing User]: Archive Expired Keys (EOL)
To mark a key as expired:
1. move it to the `archive/` dir
@ -218,7 +182,7 @@ find groups/ -name ${keyname}
# For each group, update sops config in that repo
# Example:
% 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
```

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

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

@ -124,17 +124,18 @@ function main(){
fi
# "anchor" for actions relevant to this script
repo_root="$(realpath $(dirname "${BASH_SOURCE[0]}")/..)"
# OPTIONS: ARGPARSING and VALIDATION
# assume location of script as running directly from repo with keys (instead of as a standalone packaged tool)
keyfiles_dir="${repo_root}"
# dir containing .sops.yaml
# assume location of secrets config file in pwd
sops_config_dir=""
# path to group definitions
groups_def_dir="${repo_root}/groups"
# optional:
opt_list_groups=0
# optional: specify "groups"
groups_list=()
opt_find_secrets=0
# optional: secrets files to be updated
secrets_file_list=()
while (( $# >= 1 ));do
@ -150,8 +151,6 @@ function main(){
-lg|--list_groups) opt_list_groups=1 ;;
# ARGS: [optional] [list] specify "groups" which correspond to e.g. job groups, projects, etc
-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
-s|--secrets_file|-f|--file) secrets_file_list+=( "${2}" ); shift ;;
# ARGS: [optional] [list] specify files containing sops-encrypted secrets
@ -185,22 +184,12 @@ function main(){
# locate appropriate sops config if default assumption not found
# dev note: '2> /dev/null' to disable debug output
sops_config="$(fn_sops_locate_config_in_git_repo 2> /dev/null)"
sops_config_dir="$(dirname "${sops_config}")"
fi
# Paths to Secrets Files
if [[ "${#secrets_file_list[@]}" != "0" ]]; then
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)
done
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
# /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-----
mDMEaEBF9xYJKwYBBAHaRw8BAQdA6syYUNOSScarxQGom8QcmY/yaK+OWhAQ68IY
dj7KxzW0JENsYXVzIFBhZXRvdyA8Y2xhdXMucGFldG93QG5ldGdvLmRlPoiQBBMW
CgA4FiEEZZ/e1D3hVft3KjObNDzxIYpmTTEFAmhARfcCGwMFCwkIBwIGFQoJCAsC
BBYCAwECHgECF4AACgkQNDzxIYpmTTHvVQEAi2IabzcpNK6ZBmsP2NL52oXhY4iM
bzDEtJul0E/hcvEA/3cPIZ9lIB8WeA6SK8nAgV5AlxGXsCdHsv55A2F/vDEIuDgE
aEBF9xIKKwYBBAGXVQEFAQEHQNGjADOks0AjX4qlQ3xgSOP0RBIELjqYBH/Ihiwf
eQ9ZAwEIB4h4BBgWCgAgFiEEZZ/e1D3hVft3KjObNDzxIYpmTTEFAmhARfcCGwwA
CgkQNDzxIYpmTTFyOQEArR4vKYPP9cD6Plsn0pK4hONApCEHRKGC0d3JtUkZvJAB
ALaWq4tjsPm4wF6D9RMN9tCuPPVtt/FbGzVBlm3OP2sL
=PsTc
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
1vC99G5EtuXL1U37Qp8Kug==
=vm8K
-----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-----
mDMEaPiOmBYJKwYBBAHaRw8BAQdAgwGFW1hsK88TTcY4Iw8GZSVAknR0iRKnOZL3
J+cp2fu0KUphbiBKYW50emVuIChzb3BzKSA8amFuLmphbnR6ZW5AbmV0Z28uZGU+
iJkEExYKAEEWIQS5LdybkIvzkXdY0ihEbFHgSa44ygUCaPiOmAIbAwUJA8JnAAUL
CQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRBEbFHgSa44yphwAQDIKCvEYJ2x
gd8QClL31SGpD2/5fJ4x/9cXa2pwmcPo4AD/dWYsVwX6iisiE46U2IIsL7ojDa2J
IYJPrb/HrL8w2Ay4OARo+I6YEgorBgEEAZdVAQUBAQdA9qvcdBmc2TvcReuAu3YA
ePpddYljq1L7ihWZDUWrtRMDAQgHiH4EGBYKACYWIQS5LdybkIvzkXdY0ihEbFHg
Sa44ygUCaPiOmAIbDAUJA8JnAAAKCRBEbFHgSa44yi14AQDPHLsJLjE7csjNPVGi
9XUcfq54ScEc698xyuk8LFMSKAEA0dzeY7tnfGNr7m2jq3odopRmMo99Xaw5h4YA
cQD/yQo=
=rCLM
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
uiK1kd08gp9i56uy5tkQtYJGpcsRNJNSnyAbEcM=
=4tfB
-----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,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-----
mQGNBGiLX+wBDADucpcAfds5NbYJXa10WEuepXsgN0wFrXQfHrsn2VDyZbXYxR+T
1RnRv2+7Qvb5XkvCsxq2N8veyKqikmb3FfjaqNaswlnOHKQiX5YS0F2fmA4WN0Sx
kmjKb3RswK7Yx8Y2CyQxOFvFsOAQP3YH9Nwho+eq3qjQmwwAiYumWcIEAc5Auz2u
6zes7vXUE+2pI8F+r1UKsRDVSl8ow6+kaECSS5Ry8w3LIVBFw2YoY3BzgIjp4Zbf
5UF4fVqhDm0pdGN9KBBVvXNdMxhZROZ5Adxt5fj/ds45esuFX6fo4LaQ4PbVZpMy
5qHVTbFx53t7nEy4Nsa0nMqD28pK3gfvj7oYd7hQChX/RKy/VGJWcdkSJ6gYjXX5
Lsb0rDOM/66QtBNYFGVivQeGAxvEFWXlooNNCxJdEfIg3i9E74HKavt+stjbAUk1
lOVlEYbmMn8tNmjQmNAY+w27lypsH9RqQBueWBDXoQ8GUkqcjh9qC0GItZTUw3+P
66N1rKcVKiiSThEAEQEAAbQoVG9iaWFzIFBsw7ZnZXIgPHRvYmlhcy5wbG9lZ2Vy
QG5ldGdvLmRlPokB0QQTAQgAOxYhBLszPncrYOyKKejeZB1rjMaOCbylBQJoi1/s
AhsDBQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJEB1rjMaOCbylv88L/1Hf
Bv9JqV59IDwx+VVFywJEg1qW8sP/NqSVLYGvFffpafuMiBt1XNk+5GAZLF/8HZsA
oe/lE6pubT+Z5bsziHOzat+nzpWn1nbb//uRE0NtjF+H+tu92pkpKKEr9GxZRvf+
NTehF7a11OKXSzWj4LlJjYHg4hxty/8VGIhe86qh+eg7rArBAHHNWEm/oJcFo/Ir
YQAUGWzo9H9ZYH1bBF2myfU7vjpj59NPWD6rB+sjshz0jx9vMMhySC8HlXfI7J7p
etMQ9K+b2VTAf0VxA5ZzcNQZr1QrkzMklMw5XGSVO6k9xpGTtP97A49c2zG4/3Zj
43bv6IY+p3krXg61YDEAo4sFnnDz2g+W4W+q89ndOBBrGayGnHIY9tEDE1E28ybz
WXA4w35PwXSm8nGvHaDH37s/aGycJ45QpuiXPnFsamXg3+mDeVnl8JhKXnhsr5r3
IuUTt7z7tlT3KtKiIUIewWCcNDMvr00yN9j9gAbNACNu7a2Gag0R/sBGlHwtkbkB
jQRoi1/sAQwA8kAU66aJvABeGXS2UfHopX0znGBfMHSYFLCcoK+DoUYLigx7p6CC
j/CoL7VvYpulMBJR8R6no/lDx5uZcXVQzQ2Lotb4Ckfn3ew4OQPYMEPGlPKmhAOz
dad66XnP6DR/nzJQmyR4JoSesHPt1NAXwDbZbOubS4SvXG2lh7QGkxHK5txqk23h
h4UtSdNpRkIPfI9UHRbDiszZfX9+7CCXSVyn/ENG3stsCOArMk9LssluWaH9uB4b
P0RTAn2eF2tWim5AGxQuQVrfrB9varBbbNdPHfAOFQ+w3x4FWdJ3PRDSoNxzaq94
sab2vmfE9OVt0w148toCS0L+r0B3ouifkgqwQn18TAXcSVGOxs4v5lRGl5GMfdJP
6QtRuy3L4+Cvi9YJezxwID3ICHFxZazK0ak4ERF0Ir9bC+v1VEbtWeWvfN4Y24S+
EVwzl1o5CfhIvd+xfJSNb98xUYUODih3KVuHqWQRknycce3tUT3Bx43NBrRE05QE
5Tzupf2HN/OBABEBAAGJAbYEGAEIACAWIQS7Mz53K2Dsiino3mQda4zGjgm8pQUC
aItf7AIbDAAKCRAda4zGjgm8pdSjC/95fJnA3YAmzzmsJUuXblZtsIbfYGOuDHcZ
7/9tpnpQ6a9SwiCqV+Gb1Mqeqwj/adgHKwu3hkiR8npo+BEU+KaXaHTuAyPzVSUH
ADjvz3ap63U9jXya1iwUHKl20P7GgB0LqpFWhBbHGZE+laPESuPh/RHbCgSHJsNn
iA+4/IuaQQ+gKqfid33YImjb9J+RKzRawX9GTKv/5SEoiy4Yma9CBQ2+7GraZi4R
HA71Zt5Q1MjsCmBvi3pfJ5FrNYnjMlxmZJFeUudlW+V3ZSWCOi2MRJ0UsC6oxyVx
jxOXISWRP+c/P2Ppn9hn4845mFIBzf3ODkN+lmfA+HL0G1nF67QDmNsezLXa+9oZ
KeLjPq5i56GTI5YX72xxk5TKuWWXuG+kh/DpUE/SK/ThfqOaUW/PyCfxQaoUIS5D
beXlgwB81NVmayw23mVjn0aveRrGuSGDhWkEqUo+qOeBUC17yCiiq/VSR+M1n13L
omEOA9Ja52BBiAbwxNXX5zJr5wq9xAc=
=vKTw
-----END PGP PUBLIC KEY BLOCK-----

@ -1,65 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGodRogBEACreAJd8hXMLVe8fcZioQX1JMTyID1ZYNGxTmn1J4rBu3oe9DeS
4XAeoec+X1L4VstKF4zRVNzR3S8nvJpbJlYdfgl9/8VLeihCrrf+i4ugHCDSkrvk
OrhV11hKGQZA/eQjU9s7lZQvtyCXfkZp4WphC77uMKAGLetk2rPGONoLSf0jhdQA
tbXLxoCUzga7uUHOwhiyHzLwgN6nZMA/yzdgonAHKT5yJz8CRkZBtPCTRkjE8DEu
YWwE5sQY9bLFZFrJwS+eowPK+QeAmkpZseCbpwrV09mYPxCMgib1JPaaHuMP20Cq
pYBdhzVQswLguwSONFXOwx2AsPQIwhTL5l5KlRL2EwzVklex4YyD6CMFadu3aw61
Ub9YBU4so2YmKxL2csEVlJqV3mCit1l5uTSAW4Y5TugO1fKC4ov6BGERnOZMB/ws
p7vjZOyJ/sR1fmGBhzTQjGVIRIS1weEJZYxUGRWFEbWvFMfthgVzt5Ukonipr3Bp
TBB7qlLiNUbAFiygK032CyBG+Upb4MRyjLlS+QRe0ALhpH/D3z7lxtnX0CWY4o78
kdzIPzVwYcN4g6wHbbmCbFvDFyjH1W35Lb2v84s6vPX7i9sQ75Hhj8mmSZPaRCHN
3kO1RLV/IzJc5x2c9Xcg9ZNYPHYVMGKCVBRdnigg/r8AjV5KD2ix5twmXwARAQAB
tChUb2JpYXMgU3Ryb2VobCA8VG9iaWFzLlN0cm9laGxAbmV0Z28uZGU+iQJuBBMB
CABYFiEEwZFIe7cqPIv2sVmsi4ud3J5iWckFAmodRogbFIAAAAAABAAObWFudTIs
Mi41KzEuMTEsMiwxAxsvBAULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRCL
i53cnmJZyf2kEACocva0SrixlnuPSnYTtau8MhnJ1DvGWZeTmXeaLsQuAKJYsz0M
lSoFF0/6UnQrYLkV8AXwEpfuX5crPXuCpI4YFZGuiKNuoZn8nvGIiurn/U/aDQT0
4R+hiu75SqEffypKWzxGGqaN0YFdWlNE+X8pf8QWIM3Znw5n8DK6+Ru+Kce96yg9
E4AfrwjidA+EmRJfuxgLNUdqI+sAWNvCEvHpht5dl2BT2j9+1/gPgGqyk+cmaNZT
ehe1erGiXJeufLvk1LqUO47Qs1O3nQksxMQzT/KWZ8L0GGqmbm5r4SDu4b3VxPgK
YFCrSqDd/ubrXiZlpL7WljhZEFFgPdbhoFt4saAgEH9hCndwc+NVVoEkMiGsBl5v
SilrKpEQVziQTFoh6kd/Dzu0Tz6Btffu1yvVN29opaLSfbTZN52laeCC0vanrbGy
TIkM9lQydP3agbK8pCRyqB/ryYpV2jvBzJQd4bw5zKpHgD96NwUsGRjP6IPBhWhm
gfwENz1QEfkGwEy7xTlQKAij/pHZ4paGlymRtI8N2VopIzfFA/azzcwfpH0/6dLO
rkN0x72iuY5EuaxlTgHJ/lvXxtMV8I0TcU/45bu/LB1PdAvnTjLtwIhq+zJLsrdZ
BIHPS7hrOkMZLLsJl4jOuVQgjfW6EWfDPwZKX2iA3P+2atjGH+WjEA3Pe7kCDQRq
HUaIARAA5ZFF1ZFa6DpE7ksFqwu7hCQhTzhU8wF6T4m4THL/49utfBnSC0UAezL3
glkF7sr4mj38AHdLDJDs7gZgNbHCTwft9a9u3r4cQIIcwO/TZFBL3j6MbHqhUTSI
nDieB0VuZ2KTMfig1IcFhrILphRJa9m9LKPzrQRXonwBz7ml7p0u+lXu8n1FO4du
PGlMgtnJHwU2cs3e1V6XDDGxdyZ0mjwuC9+zhxg3GEng2Edjn88Oj2k9jRjIY+IL
sSFgSInno/FAlwzYJNWO5f2slThn1Wp2lzbKZGM6uIkUJVb0+GYAipvSOEKAu9LQ
LO+GIPE0GyS5oX2YvI4NeU2Ro9/rSClmMY7nWfbFJzRNIr42lRDpebiZ+wHQKs52
tEwQpPx9yveH/O648lr3qNAP5iAazLdGY2n+avUbgOA9M1P/CXzCFqBVXwGl/T0C
MtyswSrV53a0mXiKBzKlAWEtoE6+c/9bI3DKFVM5t1QkODCX9Oh8i5we9e0oGSMs
0QKV1BCQIG74jJQQ8YAEexWARVW2mZUki8Uoh+8ksDCRhtGEnFzTgf1FZ7Ra86DK
RZjXqeYf7WTvW8Jpg3JULNuy4dNpnnTZ0VM/7ihIZLK1DNDq16m37pgtmoemi6eM
TxWqX3Sc/SaqABRnOvKIK8MP2elFjr8tv+7dShRQRI2xPoFVRHUAEQEAAYkEiAQY
AQgAPBYhBMGRSHu3KjyL9rFZrIuLndyeYlnJBQJqHUaIGxSAAAAAAAQADm1hbnUy
LDIuNSsxLjExLDIsMQIbLgJACRCLi53cnmJZycF0IAQZAQgAHRYhBHdxZ8S4HAiH
7y9fs5srXAykbUR0BQJqHUaIAAoJEJsrXAykbUR0rlMQAMwJK4rmYWCqCT0cvLxO
c6pH4nr1y7cwn929Y+uV1+5fxMKMExsiQxhdflwKtYL8BQrcaJdzd3EY/iU20AfU
vNJPivbXya5bWbHoeVGlw4b9tN5bBarqKn28vZq91HOEeb8+EJPaQucBrwZt+N1+
BBf5wTUyZNnYGDSqXO1HCSff6q39iAXlak4hrOrVn9z9zTXSQIMQWL2cMq8HMcJT
/VqMXVt11EMTVibtJ5CbsX8F1r04zNJQEt+y3cd5aNVFnzaLCuVIw+B0b89Jim+x
kqMgRJAQBE+1Gk/jvswQJBfaaw5FiNFDRZesw0OwwlgGcVkYEnIHmF5ZRcVqJl5d
StnDdi5KVI23a5d1RaewznDJ4TfEb6NlDMFeldgatakKTDyN0EfRd8XasnhX8aGj
Udfxd0j8LBmZGWHKzQdE0Jl+pycXiAv1aiBCJ3wNd0ucLyH38dJRLjoyC0nxhfzV
8rbW6hGgqUWB3in9JL8gkYtEqQcbmcIAAafE45mIDDLjMM8DaSoKCQW8GeGUGS7/
8sQbW9HTPLEmw/0BxIcVVcAKErqzJ8v+4oqgk3SIL2noJw1/iQ89y2xL773QEfqk
dBC6ffSDu2CT/LpTu8RfxgfKXP4Y4uOqW5F0FNdLCLevILS2Vl+xpWclaa5Yk6M0
y1cxbKYvuyEv2HOEpmW/6Cs1DOkP/iJ1bTFjIDtkiWZ0195Wec2MbeqL7bGmBqrs
lwejdq/itp0HZBKLq9WVMhlDQ3b4jpmUYZjeLo1AzXjKcXXQ3HDhCt7JGjLI0pAH
caUDiUoicbLvmdZBtD59YujTr7OKeOOtf459c9Fx3+fxD3Fx434ABf5Lped7axs0
/Ey4CMdTi776eyjhDmd5Zjy6GCBCeKBwhUmLTmM5fGgGxaSGNDrx+3snjwturXKo
RF8vm4sCH7sXaaBXHaXOGW9ZHYGHoBW1HZM0ulhFdE5xS8OS9viNc4z11rvM/Z1h
WLxFGnetbHBgsKlA0u6SY+1/pJwTuF9EcyGIJi9W78cfezwcSx59NJOTOW+WdbZQ
NV4OUffiPN2bMvZk9udDxLA9SZX0n7ks6xmUoMbr20F3wSE2apVq+fbP+nyvrym5
HpZ61fi7NYN0OB8C+uGy2Yj/Gut62/CAKIRFeI5g14otpQJ/eT6KqKNojfHuPvQh
8B2EMyd4+z/fUw5XfURCzfR3/D3daph/cMn0xHrJIM/mCjf9sHkFgkcZKZYfni99
C39JIxc5nrvB7GQ4+9FVxUFaGC18swA9rJDD/ea3djbxupw+VwaxZz+8au0LUnHI
XJpq2u62c73yoPRK+pArIr4LIlnTqcP2GkJdCgpQCoDCrpm34mU8/U4JNFQb8dWM
UlIHSEzW
=XurQ
mQINBGPOX8sBEACrqPngpx+3f6Fkn4EnyrQ3UVJfspvU+B1Td9GQR+x8AxqeKWbu
FNVObhTOJ7CjDORfpgLR77hpmXurMR0wblhHOrl1dsC8D99gkoq8wBdZeZ1VJrV9
C3Zb1FNxOCbPO86Q1ynmm6nlmBEub3mNcT2eoIYz0zIIcrBqpGsg9DQagvWrKbi2
tAitqxhj3iqahkRzZopcbENmtasG/TSfbTDDnyDoRkOmxVVp1M2wTrI1rjiLcL40
JMnzGFgqF4Y9C6BVxpHk3tdmokcYw9n+T9eBRB6kel8z+XVw9C++PsCsNLqW1pXR
tn0pPn6DtA3Bl7Jh/YWmqs+xQx8IPfp0rf9AMFqFNz8dVq8CtzL/gG+SpTG8Rsm7
CkPRQDeRpOFJ033rUaE+teim51FYwV0NHnrGubQZ6IZB1zhJRC94dAED/lHa86YB
4j6T4Ct3RAsRsuk264+0w5E4neKonvLrALtBkyk7NsG+Ynseb4HN8aPcH/7cOdQI
22wLKtWJ0rMAFfmhvJEidJU4XN7UjZJnxtOEw/5bN0ZfDqB16ga3d759KxBYCdpe
X05v8qP5vKFB7Q6XOX9TuWpKoPs9yb/YjqXbMwT2eYpb7E6M3Z4jqPslBWdLJC0i
vYLAzf/1cWOGAXQrVXoqSVcDRl2XoBDpeYVbpmhjXGWLvqGVG5zKFyezlQARAQAB
tChUb2JpYXMgU3Ryb2VobCA8dG9iaWFzLnN0cm9laGxAbmV0Z28uZGU+iQJOBBMB
CAA4FiEEV/k/KmWFzy35o7MfE7n0XhImmNUFAmPOX8sCGwMFCwkIBwIGFQoJCAsC
BBYCAwECHgECF4AACgkQE7n0XhImmNWMUhAAibA4WHEDldDS4iJeBLl5i9Cky2hE
GpN2DH1KjXuISSoEODbQjpdbiNjVStg9sKNnVo+S+1UjCXMhaziaIZYYm8HrlItQ
lqNlH/vPEWwj+tXVMPYh9cng4hRTeuzmIMGImDKVoeXpKpO+uHRyJ7fNq7+1y3Bb
91CRdD84AfULZB8DSR8iWvXKq9NevwwV3d2MeZ0WElLn89dNekM8M3G/Hrrl5gWq
9QZtvMy3ym33Uhzjf661Q6lrm2CRXx2ShbVsOTfjy36EUUjOTDYHbBEeoEzHgng4
BIu4Hy+38chnlulvpgkC1l6bPm/bEnJ/VkH+3NIA/8ZXdYv1QdlKUPg+mP4Eg8vF
ZmcDD/WKCrjnsd/jbOdnqiHD8xwVaKawtMV2AP+i0wtoRH3fX6Jplp8ZCgj5h/96
SNpYKDHqJmoNBPUhUMIOlcq4PSi+NcqhmgtCM/yTMaoz4qw9Skg4gzTES8A5CrWC
nHwb46kzi1T/HkWXQRtIDGqUx+nt3m2EtiX5abdU1u6xkcgsYKTeK5cXrXiqiEnQ
rnWkzp8SeBJQO7bb0SYiQU42TCIzTf+gWZB0pHH1tUpUEON6rbHlP+DFgz2SdrsQ
VOl7Z46mID1YEGaJijYNkbYOBP6Kml1hCVMSHY/SFD1U/Nb9SFeZEFnU02WnwYt9
eVC1+yD0ej4P+8W5Ag0EY85fywEQAMJYUCsz2o3p/t184+hze4GaanxlyuhttZZ+
8+vPp/3cv7S2J9Ckztn7PeRVF1cyuAxzr4oti7p+3MAvj9WJJoXHkr5U9ctqDD5j
kPqnkjXM38pnIlV/jVwv1JAvCVK8IRfYbdTn1WRNQn+nBuuTy/Yx0L+k6X9bKX1A
3huRVnAjKAwhyqq3iUZlv3j40Si0zy9x6isgMuK6ve15G/Q++xeGeTr/wl+kOclM
R3yRrc2SC894ey+JKNbjQn7mCYwkTSV/eqFUE2xXFrinqNPOFUOyHIaTX72btP58
ZQF5iHswBoqz3PutlDpNec4NsdCyEL0rO961af+3zpTevj1tn+G+5JG2mWuSXP+H
QaRO+MfdhJj+VbjigGow9xr+gg0vaxnY7AQ2G9Uo8B9FR1S308RdIaYvCPq7ePiH
c86lISY1K5FggGRYlZBU1Hpua0wW4fF3dWMoY+e+pp+KqYeAngLQQKvCY6lcu7DB
aO1RyVlhhrECqQ8v3DHuM6PXIgCJLVRPl6OMO7eTTlw5p03GmiIT1bjkcHMUFjjh
qW31o33OzJDZpbJvECAWKnY/Th9eSPOeyg69Di3Gso3HHZPPF+QixOiBFaRamyJH
jWpacBICdnY63M91+yRYCftAmww0j9omUnBmKaqwbUHcjdrKrB6q/576gYZnRfDg
pLW+J87vABEBAAGJAjYEGAEIACAWIQRX+T8qZYXPLfmjsx8TufReEiaY1QUCY85f
ywIbDAAKCRATufReEiaY1QAZEAChzmH4niPWI/yzBPAvwNK5q/kyngSz29bmB2ng
8+eUBHryq9jE946ttFS4mg9jJMtwHNclvntkcZSp4PUxOdYuUlh7xt+B4n8tTJgF
KGUwTHLFpJ2pFC72X3AtPjvzVGaMnh28E6VLCW92vB6SlLVjUwX1BQxuRXRJ4ke1
YGRKZE13C0uXwfLtpXRsfZwtxj3UfyELhSSYIr59jM80o4X2SBklpoFvAHK7PHN4
kn51MGC45cYBcVDpnBOg3oXlnYJSR3yF9Y1Mj/IdF7xET1zb37I1EnOjepdgMWB2
F4LeGCWRTJLlgeWS2J3RpuyZ8S7vIb2pKuTTGdhkzKgMf/ENAPWbG+p4Av/iQu2E
dahgrRfylVFcDjhcaBBpr9EbY9oUFlRzi3vNQUBokFrb2iuVYAkdjt0ZfxPvb8kO
vs4RW+voZYejcrFQN1CIR+/4uFZGGRQpyCCkGlfTdlteGOih2lMxNLKq3sbLDbGE
rAogZm3ihgFIjp5UNTonDN429PPzzT9X415bESTRoLYDZiT9rs8n46FaenLTdcDj
NFus5wGUvQpILXCptybfHogp46ksxoUelmmtP/1COk6KmsqyWK+G1CCZJOJkHiHu
IezDhPL4zFF3Bi1ZUvl50gG7vDx+UyzEkpkOgg0GTvaCGJKHDLeph6k5o4f9RGNE
/chkgw==
=57sy
-----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
# Fingerprint | User Type | User ID
# 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>
# 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>
# C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8 | autom | devnso adp (devnso-adp gpg key) <NSO-Team-DevOps@netgo.de>
# C903C046A063DFBF8F41C6576B26CF496812B00A | autom | nso-adp-staging (nso-adp-staging gpg key) <NSO-Team-DevOps@netgo.de>
# 98235A419EA3586BFF4E3FC692D4A5202A0D9519 | autom | poc-workload01 (poc-workload01 gpg key for sops) <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>
# DF977A1F65999F4CDD721A27516F64D5932B8AD9 | autom | sot integration (sot integration) <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>
# 9F5341688D2F9024A15541C9E02949D0F7769E2C | human | Bas Cancrinus <bas.cancrinus@netgo.de>
# F7F328F0E4958E4C785977E23B8AA0BAABADAFE4 | human | Christos Adalis (GPG Keys) <christos.adalis@netgo.de>
# 659FDED43DE155FB772A339B343CF1218A664D31 | human | Claus Paetow <claus.paetow@netgo.de>
# 93593B8B0B7B88EA2DCC99F9388B6A662C356822 | human | Daniel Risse <daniel.risse@netgo.de>
# 0143019F62469ED5A6A016C219CA764D37590F9F | human | Daryl Sauer-Neumann (SOPS) <daryl.sauer-neumann@netgo.de>
# 17B8FDF68AC123EB666934B17D0DF6EC048A5D77 | human | Claus Paetow (Firmenadresse) <claus.paetow@netgo.de>
# 03ADBCD31737EB474A4BD235CE615FAF927A2054 | human | Esther Fuhrmann (GPG Key for SOPS) <esther.fuhrmann@netgo.de>
# 04ECA5DBF73E98EBCC1FF0B018F2D15CC56BE487 | human | Hans-Peter Wissenbach <ext.hans-peter.wissenbach@netgo.de>
# 9E561083EACDE14694C73A323A2F6C1D153D753F | human | Frederik Marticke <frederik.marticke@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>
# C19A7D807525CE24443CA9A49372E896B41FE700 | human | Kevin Bauske <kevin.bauske@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>
# 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>
# BB333E772B60EC8A29E8DE641D6B8CC68E09BCA5 | human | Tobias Plöger <tobias.ploeger@netgo.de>
# C191487BB72A3C8BF6B159AC8B8B9DDC9E6259C9 | human | Tobias Stroehl <tobias.stroehl@netgo.de>
# D667348F310C57655FCE5D4EA689FF232FD681F0 | human | Ulf Fischer <ulf.fischer@netgo.de>
# 57F93F2A6585CF2DF9A3B31F13B9F45E122698D5 | human | Tobias Stroehl <tobias.stroehl@netgo.de>
# keys in https://git.dev-at.de/smardigo-hetzner/communication-keys
creation_rules:
# list of keys for encryption in stage
- pgp: >-
533A89DD49FBCDA2BF014A936C962DD77704154A,
EFBBBB131CF1D863005C18868C8C09CA950B1DFF,
A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439,
C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8,
0E8955A79FF4687A3ACF78E50B5E444C75867E58,
C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8,
C903C046A063DFBF8F41C6576B26CF496812B00A,
98235A419EA3586BFF4E3FC692D4A5202A0D9519,
E5B4FE1E0209DFFE320D2A2E47087747D89B72EC,
890B2EB48F343D4C6DB9DA0916826F30002D3C1D,
4069413B74A3AB13E10DF5FD3EA8F0D0FB1CAF36,
42AA7F6BF795490C1A522C730ED842BE1216E0C1,
B4BAA59056DC362809388F3F2119881095EA7DED,
DF977A1F65999F4CDD721A27516F64D5932B8AD9,
AC9B0DB590F4AE2017C2AD836113AEB66C510C3F,
43DE8A01ABD706717C36018C48C47C125C022F29,
5623CCAD4242CC3E0225A62986AF09C173781578,
1EBAE111F6EAE0CF136358E8625C5A3B8DA21485,
9F5341688D2F9024A15541C9E02949D0F7769E2C,
F7F328F0E4958E4C785977E23B8AA0BAABADAFE4,
659FDED43DE155FB772A339B343CF1218A664D31,
93593B8B0B7B88EA2DCC99F9388B6A662C356822,
0143019F62469ED5A6A016C219CA764D37590F9F,
17B8FDF68AC123EB666934B17D0DF6EC048A5D77,
03ADBCD31737EB474A4BD235CE615FAF927A2054,
04ECA5DBF73E98EBCC1FF0B018F2D15CC56BE487,
9E561083EACDE14694C73A323A2F6C1D153D753F,
9F08DA9D42379AFE6610E9E615CCEC6801DBA02E,
B92DDC9B908BF3917758D228446C51E049AE38CA,
BA6328948D50175F196AAB5111F324603D12DD56,
B643A5D780A01F24E95AA100DE6F8E2C149C3748,
C19A7D807525CE24443CA9A49372E896B41FE700,
0DB51A7E90AC6418B7DB83724D38970874850C33,
BF3D5CEA36DB58AAE1063D0BB341078652D87924,
73C2C9954D1BC94DC6682525D2FA233B52AEC75C,
3511D1A5B7B2AC97BAE8AF3EE758168C000375CE,
13E169CF5C35EF164628764AAA2EECBDE0B38CF7,
13D7771BDE5241293F3EDA442AB3335ECC93DDDC,
0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A,
BB333E772B60EC8A29E8DE641D6B8CC68E09BCA5,
C191487BB72A3C8BF6B159AC8B8B9DDC9E6259C9,
D667348F310C57655FCE5D4EA689FF232FD681F0
57F93F2A6585CF2DF9A3B31F13B9F45E122698D5

@ -1,475 +1,524 @@
demo:
credentials:
secret: ENC[AES256_GCM,data:yq37BrlDyA==,iv:3JlfxqnDaQZU2hOV1oUabZX4SLM24OaRAM4z2nG0N18=,tag:Cl4rT3zIykfe7C8499EA3g==,type:str]
secret: ENC[AES256_GCM,data:m3uKjs2CMg==,iv:REr+W6QAcMXjC6kt4+U9W680N7NmOaPCbf5ZsL5v+GU=,tag:JTcpjBULW1tb6wYyQO1cWw==,type:str]
sops:
lastmodified: "2026-07-09T09:19:57Z"
mac: ENC[AES256_GCM,data:BhauZh7kkae8ewSmZd1CWjD4nOhAY563JMIAJnEjWcw26lm3NT0cKjF4C9n6fjLhRVSpBEMYdK0kOPhqJEVqlWeEJ9wMBAhXY/7jmJYs+oaEM3AhVf9Dv82RNgNbzNP8bdp+QQLZEmeQ+oeK3ui8PtgTLxyXwp0LZNlpJ5gCUao=,iv:py/RvJk9qQhXVozstpINjwVgqRfL10xErOEYCtvTeXo=,tag:RHbD8gs2O+E3kGOZmvPxCQ==,type:str]
kms: []
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:
- created_at: "2026-07-09T09:19:54Z"
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQGMA49EwzBHBfyRAQwA1eqcd4G8xy+ExwX0K5gGaYdYe8nRmXiRsfkFez+7Ejvj
SuxQ81Hk9IvkWU6+Ew7fWiZ8k5SaSMw5PhL0MrIBI4iDwLQxZullNhNJzVkb/KEP
mrLBBv8JZUeibG9r8Yga0CgYj3HbpeoyFTVNwn8ZcS+0gYxMPFLbxLxdD7RXtQyL
00rdJJRLhzH81edU+G84eR4AZYgG5SZGcPeu4mNVD1x2s0mQjaCyb0/wblk4WXW0
tV6jTNGZLtXm4743YEaIsXh04lmy21PAD1VJ6Amgfyl0xB0awwInwii6t7kYrbeM
k/bAmrsdNpoUmO+bZmLJTCLq79vaOppYnf1RV30hCD9tdOlfErNM+XSEgkxRnhAB
GRDlSkI5PGsMl7LJHAqEsy8dJQ49pdea9fW6tKDoyeFTagmsZMh33tTKIj/vRtaY
t4gQbk0M07u9FlTMMdLGpD7w9s5lYm8gsqcFO/06uYxsw20mD46RFl1dg8ZG+kMx
cl8KrH+7sm7ABQZW7B8b0l4Blgicwtev7mOzF0AYuM2gSCLATnpxaQXHTxcQVtLh
E+NXdyL4SCBv3hRN+Dv9zxInzzLxQODy8sGMN2RsKiUSsidD2lkDxbzmHNco9yMs
FK/jVAEy4Yp2aTkFu1xL
=4hA9
wcDMA49EwzBHBfyRAQwA59rrxcceb6CV066UH5esTFaElafvGExF5nKTewi0lGMO
vDKjzKSeDHv2GtitqDaxeTamFt7sZEiKV4XNowlRAY2lx9EN9JVgKGTg8ZEmo0nq
NpQW0fgaFNI/xqEd6ravF2Sr/UUUBsYDVl7j2cYIJT+ShHDCA97I7kEof6Z/fu0H
6cLGuv0KA9wHVTj7+q/dBtXJUfyMBBE98GZde9lAJBvjDSa8I9/zm5gdrxtvOG2p
g6N7zV79WvZtE+pwNU8jQKqU6bVzFXNGMtRn6fo6ArUkFxmdzYe2KLHA9KzxVVDp
GCqofBtqYzLTxFNkfgpmvdMWhnrmLbDYJc/r4MsgZR4L5LrP/AFDTOHePcHeo1+I
/H6ZVluZ5QRdijvR68Uo7/j7OzIjSA8OCYPxPSpmUyr3MVGOwWnSDbGcHVu0sB34
8+3sHoguDfKO1NBFLJtoxknJxSEAph6OanNwGU/5tp3tunFfGryrgZgpVpheC0tP
iT7awd3982HxnwC7MJ1H0lEB+MT5H6i8t6Vba9jCl0KTY3+BGzc8rVOSJWsQcsIH
LS8DuNh9YkF5bhXxtvLBQyAtATle0swu8oPHhM9fPwLHdy6+36lwW6H5v77tCY2/
a04=
=Rntn
-----END PGP MESSAGE-----
fp: 533A89DD49FBCDA2BF014A936C962DD77704154A
- created_at: "2026-07-09T09:19:54Z"
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQIMA/3nDyRfgQqhARAAo5PEiqHIjJP887/Y1gF1/oZDbHvwizQXOU97ERsVoy9a
3bhcfzB042l7Xp2s0IIZ79QOorWqRarkea7JxIEHGLWcYo/L7SKh2kKDZqZhkC4e
RVdhpZNzrtdeN0xlpXGMgSNLcUB+UBUR5mAPF25fUylHHiFjZJR29KJHw5xxbzR3
lz1Up7crmii7o1jM3wY8rQ3FlsQMQjnPKbhyoVQCFizEHO29k5TMKIwnDlrBFYTI
vc6EFF6xlkFyz1fofAtv6qPLevEj1K3JlmYJoDqLJAie7IbY45isFq7AgdHVzqtC
5Wbl5IcEBj/Qn6YCOJcPN4TyErYG9AXY4H+sVHH3izj5B7Olzw1VnXVVq5c5Dhz0
YhLsjTySboBqfeGlHSaJ37LWLBhNmpWO/xRGYkm51m0SSWfheqk+3SrBdwPY/BR1
+NcaYeDEXIwxkMDRw7K1XxekpShzR1aPy7OHD/6BMyquNGVSutZMb56lsDC7Mmv0
fdkT5/5JTMzywj5DBP8CcanuWDuQEV/bsasN73mFT3NuGg8dPBMea/eFhs7gyFvS
ePsIWZ7a8tAfTrCvTlilpsb6bA3G44p9C3A0rujeeMt8+/96k7Lc4EHBKFXI2sQv
4jr+ScW9uomllz190fb/cHNh8j6/zwAIDhlfzzEVj45WJzGCUkA8u2pCnPyDXprS
XgH6vu9WUYDVB/eVkOzOREVGrrQXd/UyoNgee371tjQ2f39a37Ql7LppP8FDPnbZ
PP8SUeIfKv7SX6nMGOhho3Un2hYMTm1xKu0SheqyTq3oYphjVkh6BSNIsQl6tsc=
=UkWZ
wV4DK0+AyNumsXsSAQdAMYFNwKZg8MrY0KlULLnfvFdVc/fuXsnYiahI2MYBu1Yw
6Tqaeqf5YCg08kRlDwugXpReiFFKsT1TpjMjLGQf3OxxM45LOE5cUkJoQCYHwRpH
0lEB2m8lED2E336NonUt3fOtvM5vaCS+ajfP320mQEPgEz7QbA2WrcIlat9OJED4
HrnssHzGtEFui9XUp2z5yv8aubkmJXlfP7clnrkY9KJ0MDA=
=kTMq
-----END PGP MESSAGE-----
fp: EFBBBB131CF1D863005C18868C8C09CA950B1DFF
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
wcFMA/3nDyRfgQqhAQ/+IDo5diT1oTdYlbwxRbZKyrRWygNGLrWZjr1/KH1jnxzq
MCUY4Hba3Jvwhxj/Y9V1sQAPAjSG7eFNAWCtbo0UvJQtW6syUyUFBob8jyZXTZo1
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-----
fp: A7A1D860AA45B6B5B29BC192C55BD9B4CD8DE439
- created_at: "2026-07-09T09:19:54Z"
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DuAaR73LFvScSAQdA4j5fweSNIKzWwlZ5uUkcElmP+vPA8PBz3Ci5xjs4EzEw
0UVz8Rd1RF9f2b9z5YAB3KRDiRKvlkru7LHbEvg1Owbg/Py7Sg8JWCKcEL7itf0K
1GgBCQIQSZpZca7KMobujb4RhVnurqn7A3fT0qTwnyDN+cJlcbJALTYoufnRy7N0
CLPALXPYjn3EXOAyY31bUCCxqBt88fTdQndg7EP8L6pU1GmO0M/gjaCNHxdB5Y7V
EOQu4n+uRLiCFg==
=ye5V
wV4DuAaR73LFvScSAQdAsVQhCe2FnHzzNcznoNGXjjJmIVh61Wx0jYlWayHixW4w
My3BL/Bk4oDSxBfUQ28UWkFGUg1IPKu69lAc16rGyTq9RVYGRNl3ZTAUY53+Pp/w
0lEBYxxw1Ohm4gsJpUbqDIV14v50qh+otssrJbbQ/Fe+rPFkzKGydRhOrUYLLWDj
QZruVU2YkHGU809lEW2jJHmcSlDVLUXO/6u9FBGZ1WSj+pA=
=w8U3
-----END PGP MESSAGE-----
fp: C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8
- created_at: "2026-07-09T09:19:54Z"
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQIMA3LBDEB9lMmaAQ/7BJBiCo66cbxzVe5EpN7C8AF2sQR26p1BeCIMfvtVH9M2
oefEQv4o7gY2MdbMNDwSAfskMoXlklT2U0dXKzRBvTgqJZPbkVxupP7EdeJ7a0e8
xsAfNqHgHjFgKmMR+NO+fn6UIi7FOGtnZPXvibURvPgsEnRh3oEPAP4uAkOhQZ2Q
oraC8th+7K4DcjXp88qrtFyHdUM3l7cPJ5PoH4YMjGfU1dbIar6vaZ+zdp6G3F7P
qKza9tSxGKu94uiMNKNyhOcWvKL5m4DCPoZmQ5rFvJZcuu6c0OaqiqRgqm2wwhsG
BUf002nhMRlc2xUGty6Os5N2GnDwny/zYqpERQ8nyNfxYhuti3Ohdnks9WueZy3Z
dc2vPI+UzQTgVHXqB5p+xiDPD174HmeWc9BpGVmGZ+opxflfCZDVoO5PPSZSLcTm
1zFEI5mHb2ANp6FdKME1UKQwOjxRcYd4AScwr9+xW9i4yfSwkTjNNavnZ2fOK8n+
L3bcjhsvzvyc+RPsmpgD/5BFvHd54ncbGRIA5DQeRbu73o25SITHCIiWNddwiiMQ
CHUhJbNHaZgmH2sSYtsZAEcEB3jkD1+rHEt6xMk2bkQzkiV4Z9DDsS353OYjJkif
t0cz3va4fmyE8fzI+qYX8+rigH/J+aNnVSJn8d5PxZ6DOHn18zzb2XoHT09jYLbU
aAEJAhDkUXtGw6W+IrT0Ohr2WrSUjvA/D0dir08n7+ghjvgoc5iIg/xznqOY668O
YcjqHbre0nyVFLFjJ39NbRN1t6a9Oz0LIau6SGMIMMO0N5z/q24gbAKi9HNGwb3y
AfyafOC757hT
=3pm9
wcFMA3LBDEB9lMmaAQ//dT6qK8f0CaddMWsNHvovjITEI9m+oFl7as/JnpFLnU+U
OUQs90dq292FUhVcOeWfPkllh7o9DI4JJYx50bCJOBxKcBTyDjmnsEK+QyB4Ezi/
bgDlUyVNFgj6YER4AJfx55jXO5vBQKjpyFQUAoTUVdeact3DF7VQNsWQop9avSfq
lY/1N3R2PG6HUDKsS4R/dKFbnlkbHD6zq6JA6mFy6HTbdlVUGPlwmfUoYoVTjgpx
tpAOusp7xAlwm7k88g3PeXkSU2dyG+xBia03ySQlKw6UqbQZbshvTvLlfasDEsqN
nVArwTeY940ZjJcoHGBU8YYg4uXi0TMSh7NfWachOXVEVroNwKZu30zJL29QyiJp
cVQT2SOHLdI8X+Qf2NjIgqIABkwOubvoM35gWxqSgOsqJOTNlKc8tCcuvjy3KPvS
YoQSZb75/6T+kghPs4/UMzdpDbLsfftjpxdcnO+DT6ukk3M8lr22aQo6tqaQnFqB
U4+oxg2mmD26KOmir5ctl+qLMlUGaTni54BHxNwivgagkwTL0EgRsy08saZdnoh2
w4Ww2qwlsy2tnHXD41f8g9va/sluzd9NgbO+irSigQVKw1vVCanSXWpUoOPT5ahM
lu0KCq9E3CDqHm7vGDNO7TDskKqVkCQ11C3ge19swHG+YvAW9uYONV9dPh/el7bS
UQEQ23+TsHgVkwLAilxel4hEiQ/giD+x2wInm8JV3mmLuLqBcB6oMzsgE37hxhsT
Khz8+UO4pgn6Cj1G//pyqVlwIqdSFrLJqfSF8unGvTqMbQ==
=1qti
-----END PGP MESSAGE-----
fp: 0E8955A79FF4687A3ACF78E50B5E444C75867E58
- created_at: "2026-07-09T09:19:54Z"
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DuAaR73LFvScSAQdAm6dxvYYe69zu7F2Pp08Swlk6RJ8lec1Zuzq9UXIzm2Uw
GwpI8S6wl6T4PxkDEV6cvYaqADAKNVKfyp/AMbIdkPrRNUNsKnPxKieUtZz3t4hS
1GgBCQIQcXvGPr3yB2X1c2m1hw3f50A3Qb5kfOAsne/xgp6mq26Fr4oF4eXN2tj/
aM3PZwLFHqh+lz4x+ploGw20KRUhDM7oTLl6h2DrQCDPepnLSrIPm4vIOMMP9szT
OU6se+JfLNwqLg==
=RDBQ
wV4DpyXAcYv7T/8SAQdA5zRWWv2VlGjv6HzyVLHyLU2dmBfXuMX8MN+iWecYHGAw
N8MwLk/F5NBHyJiOCS2mGCSRZ9+so1m1DAt1SSJ7xvJ4hKRNL35X65hZG/SSba3U
0lEBmC9MQZ9aOpVScVIe816vTn1GfVKtmakl08b+2WAIu5sY7faZqn/kCxlENyoZ
C48WgsgrAEeDLWL24Ka1EFrhSeTTpWG3qt43VbT+mzwHUNs=
=i/wf
-----END PGP MESSAGE-----
fp: C674EFA56D3EDFDA404B1684090D46D8F1D0C0F8
- created_at: "2026-07-09T09:19:54Z"
fp: 98235A419EA3586BFF4E3FC692D4A5202A0D9519
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
wcFMA911WKxzIy2nAQ//X8lU72Gwrr8xJEf1s4ngqdStGJJC5zQyIWvrC2DdGDE2
6do8Y+PBKOyvYq+VhbVk2dxeCoBJKdm8kq+xpJYY0uYeai2QvTcgItUJR8Q37zmH
LwjUnYAz5vz/ikmOiFlIfAcj93zKLXS5U/DHgAKiSMlMAiH8tRwV9cpgB8DcKYTs
WhWVyqPJfrxuG6zUMUfnjQYt8w+XI3niQm5T/xBBNtY33UMU7v09NSsACjHe0b9z
e8a0O/NuIL5yEEjB08vmH75ENlRYTta/6J7gZsc+BVKDM8GtSMbj0apiYRjtcv5b
o46eReMJpgs1k7zqN7THpif99BfzYthnlL+cO2EjRTd1ELx7pGON0YX1usLNlbOC
L7NgHMg9lt1fsU2xXxCCaAD4YpIFhQr8Gse3bDQmes9XldIGBA4+9O1kRbuYpQig
ezdlX8RPZJaBbexWb93KxbjK6qyBaJ2UJZxE+e3k7r9bRN6XqFSiGoxgpL8bJjMu
7XQlqI3EWS2Xl+VE6NJ+GV5xRAUTrKXTbU5u4NWBxtZZ4E+hFzDhLHAdMYJcHest
Fkqd3iRSu/G8yymvf44xQ7W6DQXaQYrLGOb+d3k91hOU2sBh7H6pw7zcwKp5a4Tg
C5fsvTaHBBWiHpT5B3qqTBmpfDLck2PwAjHRprhNZrQj4oLqPSrfdjzvViVBWKbS
UQGpPA57Dgf53AsObPp6+snyGUkCSOFcfy/CKJIJNRX1NrsfO4IWhWPCYduVfIMC
s4VC+Rh0EeoqAOrhRlsenYhzYE6Ku6WBx2yOayJqAkWgKg==
=UlLG
-----END PGP MESSAGE-----
fp: E5B4FE1E0209DFFE320D2A2E47087747D89B72EC
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4Dq7ZJnmCAxTASAQdATZyruFm+ZvcOIjf4p52yLaFEHSx78w9ov5Ng5PvXCgow
V1ZsjBSuD2xx+oYVqD03vkUXr5fT3MkNtHol6ZZ+rWmiCSEAdmRyQ7xN5doAE+1i
1GgBCQIQamYRGN7+tAhquiyp6Fa4hryyWzP436NAPq6s2gbI5sIcRnFkgfu26qPL
jdqhItfkqxC5rlc2rqnU8iUIsTOAGD3nwihC0r2seI7ff6MRA8sdWXvmxMKw5yeg
sPo4XDHUsUVZ3Q==
=83cB
wcFMA2Cr/drkb+8JAQ/+P30LCNnKXN/o/fzkcXPnXsyV85rcgHSF13722oDO8xTk
2SU/HdiBQ5hXu7F4Zg01314DW/CI4+jWt9gKbn255WnETYQhre+k1prKRSQ1HFYL
qSkbaFoW1NM3+RoM1hUBojVJ26+APjwNqn/+nx3QSKsirgCUynvJTTI479bvY+vL
S+DiSct1UYyqsZpmUDxLL/0ta60ekWzOaGMzBAaSmdlg9sSRslX1lZkicwLzSC/X
0BfuBXLh/KvGlcAUh7dubFWeae3CT8oMIPHNdQLQZKFtfg10vgboZXsv+Zu0vE0P
wRxXfc+cz66NzKBuBDna2c1wTFOxzfJLd7jFBnHKavbFwGKQsumMNCOMGA6mP0yo
Xt/4j/7NonwG7hHPTiCxlN3viVM8j52H3ExLwoaOhcLALzVaJbM66bLGFUI//T+J
MjAfdl8ixtiqw0iVR4Zu2x6PeOuwbwuRUuRUMauBFHUKqi/l9QXpOQenySUlqU2w
nSDawTEW7pzHxwuC4KrAUdEOml7+VIyv3RSmLeIbRhhSm5DT6wcQrIPk24o87ujR
enbiWDFLdqPUBostnwiz4D0AanzQpinb9WIr23kBI2OmTMvlwu0hlxALUQ/mTBwA
f/oKp6BJZBqyPyr6pZoiUPElgALh/83D4w4+xNxfjXTD7ZQSQSVYHQ3mFiW6CXrS
UQEzbFCPi0cz+PAeUynGtyVh+R5FQS72JaGFTqy5+ggaqyxowtgeGHz1X/hq6y7J
IDCX4rNTx8DbQjoFtntJloMWcvfAiaVnYMr4ghgKRmoCiQ==
=ugtl
-----END PGP MESSAGE-----
fp: C903C046A063DFBF8F41C6576B26CF496812B00A
- created_at: "2026-07-09T09:19:54Z"
fp: 890B2EB48F343D4C6DB9DA0916826F30002D3C1D
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQIMA911WKxzIy2nAQ//WKRjv+DgHZec4UfE57zHtXntj1v2m6X+H4GEX/otK2Cr
y7L6iASfVIaNDKugaEJX8ZtKWmoXih+hp1nEnT+BPbATxQlaui9kB4initp14Kl/
4ZMU2uJYzb0r71+Jh63bW1Q1/aAiiKgQUMbeQvxUuqUWvFBpI1jHjc30vYlzIm10
/zafLax+i0GmxYrrnc5e9WGuHPg7NkBarJ2cWPEhYqDAhH2Z+DAqBWcqJI59NPfj
3MuWoiGNaHIIp2TG9Y7wsPndTqebjLrFLVlpHHbyivB/c1B29653VJzvPz5bw2vA
s1toDIB+rGqCp/grBIq3KO+ASDVJYvAGGOouQoRTqqP9rqxqinAsgsaWpYQ6YuSy
Moyb8k//v66MUxdir2BQU/NOPBkBpWbvRoPhFP24SP7ppkd8e0YqnAtJWLKx7Dk6
otBG/lx/4HqnguV/zW9IAuMDH2/utXXjj+pq1npK4Yuq4HhjV7Mxc0nUF9z2yGUt
Dyh7iKwVGHUxGBbI3TY6gftdXqcH5lC2UwZz1mOcUXLhNekqutXXyCnxiX0la+s9
Zs3kipA4ZhJ+dNgcqAlFsY/b0I3ANoNv0k6LGSrtRFddcGOGKWGRDRLcUJ2Fjwn7
V/ewMuW4N2q1uZHbUrxSXdruQf7s/01MxOIxbPvL8NmOpikeSjK/3tjYm9/gB9vS
XgHWwlvsYELtgxo+pvt5F3WrsMF49ybngKu34OPqseKCOoDGNlm2++U/RUbuzvmD
aTBOpWH0Df8PZlvwkkfGCENDLGa1gciWjPfuhUg5vY/YUkl+hebWNNzy90C016w=
=trD6
wcFMA3Zl11RyMNviAQ//fs7kWhDVa93Tm8BwbVBnAm1fl3SLT67hpOsFKgyPjEIk
4tNl0HRSzvFrMok/Hy2lIDOKilmM4/mBR55jdEgNN5JGK5GFOiF97j8KJr3YepH9
BwVjsTSqR29bWol/fCJup22RGfVP08POEr5GXGYsbKnG7tkYbjyGITx53JdOo7rD
+ozkx6gHD31w1khMNXj17RvC288ilSnXKDdzT1QIRZf3pa30b7pb4wAaj8wiBJ9u
vmv4pmpgcFRanvRlCjcSg08jX6I8i+iwIBEDvm4IA+i5/rfFeV+Ugbx1C5U9u+8M
s1IAsdH9fHn4zTsEQgwZ+/dekDiw2HGTpsJqkhxjm2cI+N4h8TqD7jxuffbPeKJW
USmMHoSMrjRNTERjHAFoumXLcFLw633kbeYnQSByfGHZJvfPBnMWA7TPxCjPHHF0
Y+BJ24+7p3xr73etLP79P7Vc6THBG5q/3xHpztEv45ZleSzXYrgRDC/zoetk95c3
FMdxUURHCiS4QwpeTMPFloV/XkKG7qhqVXrJEsd9Gf1QKG94Ep5mllbIhOfGX2yz
h/kzUD/+z8YD+IoUXFNSAnq+9HTxB3LzvZKSvTFH0zUIIwXPcFOoUymh8bJOdlGf
AL6cy0WQ9lqoT0/ALCOrxQu0l4nfKM7RaPoJZHiqdntDr0gykpfNtIAY92nPug7S
UQEgwnE690QBTnyOoNJrcvs8zipV8so2VGKxRARDtrbUedI40a3g3Vax5fTLPHWb
EU9sUde4Q6msevEmrTKFCzPe2zHSnq6pLEpNhLpIUiV9SA==
=P9Me
-----END PGP MESSAGE-----
fp: E5B4FE1E0209DFFE320D2A2E47087747D89B72EC
- created_at: "2026-07-09T09:19:54Z"
fp: 4069413B74A3AB13E10DF5FD3EA8F0D0FB1CAF36
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQGMA5pTFdxsndstAQwA6h4Vzl0iUViPuYCs3er0WFt8gYmfXSC2u0HcMlSYxqsA
nOQb5/W1BpLdRTbMSZB32iYTEg4TyMhGzrmBiTYR6BoTPvzKNCbd5o0Cj3Ew0p0p
Vcytx6O2sr/D911zWnEMXDERdHrBAeyCybpt5QaV8LVnTMTKZsEEvST9ZCeVkpwz
95A7vruXSsJy64IzOX7UCO8zcMU6VaRC04aEdTLkeYsiPlHSLhXSzkbBtqyhWgYA
WWQeuJeei1uYiCU0gbfHntbHIzOUyjmox1luOnI0VRE8ZZ88PCaFoAr8+pqLAnIY
sM9tBaHQhO8f6boeZWYOrtx8jULkiCbgBGzAE6XLYUbflgP2aPZ4U9vkDhpKt+Gt
1sKJ5zow4rls4zU6FtJ8o6x7wgVskEGqRnoxQRWgErgPATsuyPQN2sszotWIgcBp
1VpnbpAzece/YfXR+K+iwJP5aFhI3SnIKvhM6gaEvZFibGwZto4UedW2S1RTO8HO
SVBLon1HnVhb+fkvF8BT0l4BoApb48ki1pHzE0lW0RJQQUwY4LIWaoNmq1Du2EdY
joI0bqyrWqvn1tFcV4yASPaD/BmCfvIpIWhv3cjAyqFWK3R9bXnTWmmjURweU5Os
sHKbh3JtXN3qgt6fQzAY
=nW2W
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-----
fp: B4BAA59056DC362809388F3F2119881095EA7DED
- created_at: "2026-07-09T09:19:54Z"
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DwvSwby3S138SAQdArIEvOD4TCyWo0fI+yqo5F9LtEksX5V13xFgSdM+RpAIw
WbTDwti3aA3oYfnjlqJTP53nj9BrmzfMJaIImKmmgpucT3H6hte2FDcDXj2bUhkk
1GgBCQIQWGdlnMwJ7R5a4OfsWjYuRT/JWNqoBmGiXliCkbUyJO+I24km8plIZ41P
JDJOwyBJsf4Den9LDMG2AbznO99kVGmJQw4lX7VH/QbAL8csLn6QKcjlCxYd8CHD
paWvhhAXDpf5rA==
=H1D8
wV4DwvSwby3S138SAQdADSwT2HHeiE3R6m9m3Agfcfj1x6uYRkvovSDW1OKFZlow
0Jv5Vr/59L4RnIanZ7zBS2/axzk0JDGzgURZFh+KSV4tGuGttLWnWlPrAFqLPmLK
0lEBMbT9fjxCO3itbexnUmeOeBSCspJ+PlmTxzLp610Aq8Jjrx7at8I/wfk+EDgo
8Th61Jt6qmsNDOrI/Yn4D9fSZzQyjORA4S8k0haZ0mbNl5g=
=kWN2
-----END PGP MESSAGE-----
fp: DF977A1F65999F4CDD721A27516F64D5932B8AD9
- created_at: "2026-07-09T09:19:54Z"
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4D3RW6IFeToCoSAQdA3L+KQlNWzCPn3BegE5lSkmgoxzjjKTuTsbYx2EbnWxcw
qMGk4IV+PF04PXWOIhcYJJUuQhpMEj5mJyKEK4mvF9W3HVXqGjhKsEOd2suRDiXQ
0l4B2dUo6X3HuqOvmwVqVCaeZETTbV/ee3GL+LrStZhubQK64M0RlUQo4hg6m6bJ
N58BF3ULsaCTvfhSBDZHimZrCrTcENPhGXeg2YQvd4qQyLZ9cLJox7Qpu9D4uIfm
=hCIJ
hF4D3RW6IFeToCoSAQdAE/qpxjjka0byA0qRiMtvCc1flWMH4EWBMmxJSr24dmow
dyPYx4SALJve0C4X50hs8WTDFj9bdlVBAUi6ros42XgjUq0omiNcCNMNLNliXIre
0l4BdnSW0oVXJgo4GgLAw3ldi6chzxtKz2/XMiNo+T5yfIKDdqn1So/c829J2kH9
CwPY/vvaIVvpbjDQ2ovck6grtbelBuLS/pXG8j/SlLMQKWXLU8Yh5a3QGQ8+QP8j
=KNuv
-----END PGP MESSAGE-----
fp: AC9B0DB590F4AE2017C2AD836113AEB66C510C3F
- created_at: "2026-07-09T09:19:54Z"
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQGMA3n4x8uRQRGSAQwAnPFXFBSKpzB1ERq6hYjgMoLZu1lbBzol2T1VlMzs4hua
QyoCP6LBvUtpGR6qdyLJKGl35KelFt/V33ooo0EVN7QBCySzfb+UADrSjeskcLoV
NG38+0g/Ix4SdS/R7kC20gosFoJdbre/TrBaVRUyTuz0vyVM+ww1I4mOnjhWkOdv
WY/lstphdt0g3E7o6ZEKdUvMR9XzQv7upvWyq1ws2ckUl6Z/WF1aHwBu4PfJEzIn
6QsY1jfUWCcJ05UYNo8+tGZ6XOmXPB5wFqaCK3Kn9Vkzkf7e0pPEDQcRbFFRFE9X
36ZP6K/MFPhXQGqkdj/BcwLzd8cep+L5RgZbDt2r0xby1ZIG0agPA7P6u3oyB5Tf
RYxFaw22m75WeptauDFioI/zMd7Pvd1O8SrZlj5o9EE7XyqTiZKjig9nRrfG3PdV
U/dEvvqE2l/+TdjWTD5KLlEYw5B0OyA3RAh9uJBqjemS2ev8+omELWpyKRRYjgpe
5If3oY1DQuz9FIntk1T21GgBCQIQBB8QxEvcoG8dPHZnaXqDewli8+L/T2Zg+H/e
1ornxXKGYdY68piE+W7mbcIHyQ7psWBbgJUdAupaeI3z2hAkC6TjrWCnsksQo3nJ
7MS88Aa7SE+km4BvJurvi/JMsjzEyuaMvg==
=s0ox
wcDMA1j++ZN0cDPgAQwArsAQFAnZIyrgbxv579qdfRTGavcrxPpP2bjYUHW4DF8t
YzgD1pGPqt3Ypq4dn611lY8RUfLZ8JDUlYQTC1dLjUrtRD24UiFwHAtnBKd2PURm
xmi3LZVWZx9/ko+vUykq3DKGMeFkmqr+ZSGsjV0BMNylwJ543Fd6uuaRCymkqhTm
4y5nvVnchWHhv2qdHW8R5nbrjHhcx+pEsqhH1v6o4HXVDqwdb2n3Tkqv9ogbqO1q
nKp+fTJ/H1Uo1fljdyrKskEArvaYv/lmxY2xSnDDTDcEuHUv1ES18KrGjflxIwRA
sZYbHp+1Fbb5a2Zh6ySrg723C0lQOi8jWyr0pZmrFkH2EUXc2nLeFykYAaQVV4Rm
igISVbrPqdnd30Ppd9KhKCRFVqzLu0TQvtafcEoFKCNi6wYMBakJOEZXYJZ2O66A
DTrFRTYut8DufzHuj89iJ9cxeUCAlIcYS6JvKmjRCDyizzsNrgeSdpyf9LRp4Ba5
uRaOK9wrpyX1TPCnAfxm0lEBU+pqhcsxdM7eNv0KvYJOIj7aQzWgfC44hjlNoFOa
7/O19kTASE1SrR+zZqC2H8WMG74lk63Uw3lRXPSpV4a2bNVoHkxMcO9byODcft9M
fo0=
=k5Fc
-----END PGP MESSAGE-----
fp: 43DE8A01ABD706717C36018C48C47C125C022F29
- created_at: "2026-07-09T09:19:54Z"
fp: 5623CCAD4242CC3E0225A62986AF09C173781578
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQGMAx5drVN5V7yDAQv/f0xQiaSw3hH0O/RY3eLLcrUaBFIqMgCxfw4u5Xg8AQWT
FUgoX7gTwjJYaorPVgDj6yRNuYvY6k5MVbLeR4F7YIF89+NLi/SyIB58hTW3Ti7s
MhIPtkpQ873rWzYNkEzZ6tu+NcIVA1FZZO77yfr+SBz1Pu+yGOfzXjyVfEJ5qTiZ
ax606ho2PJL0DC/q7WcWZ1ggwDBXwDbhVqGScosQHuneuNuUbN9R99QXttThNGdP
IFgO7+0zt3sEe5JRHx/Mh78uUZaZAAeqv0tQcQrcbd8fU8SPvsJZvm5v87wF1DL1
66MHgp+oVPXDnBvTOl5z92GyxCX0Px2XECUjidvhjlVRGPH4NZvfemDMNQRtlEPi
LWqFwkz0fNMbyIqNgvj2L3v+knEL+XqVScUV67QffbFiEMnpFrRflWhdgXb+GrAo
uJ2uY5U9FpuR4bQLgDbYNOCg0NAxUV3GvU4g/FaBJTDmsKw+7KuMrrbud3ajjHIq
IohiPXR7yX9nji/EEm4w0l4B2bgZ2VIAgZnFNRHH+5dQ+Od5+Oznefz25IKZ2zr1
5nsEMNhnnnDADtRUOMJB7megvXDZBp4+fde7f1P+1ouNpgkGLBksnBeWyoDGnBHf
8ZwftqlB7q01tymYZASs
=0+ym
wcDMAx5drVN5V7yDAQv/R5AjSEZhrkQ8v1FC7zVaw2MNcfJQMiX4Q8ybnC4G2bbi
UL1Mydiphqh0tdjsPClDmYyVxFDCYuTQACw3HIJRrs4QCEThtI1gpTLcuWDcccu9
h17kmNGrOLoelGpZZr9sP1nVQBhc1T1aAGO0f3z/MvEbSMLUcp1+AXSLrtuxl3ME
1xw201q4571MA2xReAiCC+HGK8SJwpdpBr/W4YBajJB5LWBUbKJ0P411VIGJYRV5
VUrB0ctyuGmNqkwkqBlvl79eRS8N6CW0adWY+aIQ6cWGxcitKtN4i/BE5cIre5Fe
a0Wa67FGxSI74MdN0uxRgbE7TkHBHhiHp3RaC7l3vHfs1LVNuoB3AoEcAc6Mi/dN
QAhwAOWJd6Um4FBqIcSDe2N9gjIoqhg+teZVoF8HKcatU5p9jDm+R60fO4DRys8e
Rq5CPEjRVTDeUT1Nv6cgq9QJ0LmWVz3VUbHRhFbAjZ0rAzqpXe+HXDmOC1+DMTT/
aXsLqP3VjE8y5yDK98Pf0lEBrCUkCAKm/woq70tv53MjRm88DyU0NFvT69BPieH3
lrc/q9Q8Txr8LzvOyjpS/mPj4ORulInMPc0n5vYBcxQQg7+M9P0JnTy+ckNWBkQ/
Lq4=
=gmlL
-----END PGP MESSAGE-----
fp: 1EBAE111F6EAE0CF136358E8625C5A3B8DA21485
- created_at: "2026-07-09T09:19:54Z"
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DRPQAGSQLsJYSAQdAp+bmqUtncn52593x/EnlIA3jpyRUb+YbR0heuFvZ91gw
PRV7peph37w54Bjbf3BQTxkJH5iBZm1GRb29G4dKQu6rdGpnxORFtQE+EuJRjtz6
1GgBCQIQ3hHqEuRovjH2YjDn5F600DxtuAjWAzJ8bZhqhXqHci5hJgEhFplvojPI
e4h+NeJX4VVw7RDZDqzNN8Z4ibwPjQEVUD0Y8qN7BoZQUOqIE94IosnFNQn3n0Tn
z7IBgpUkMdvAKQ==
=+lT4
hF4DRPQAGSQLsJYSAQdA5WWyS8peeuXEesR/Ts5Gupa+bReYqJ3ocLw2tenrjiEw
za1udIqbwwgAdp7TQ+8GXdN/uErM+o66PE7DzQMz53pP4PLWyfgNeR0qHzlu5Zec
1GgBCQIQfTaLmc6+U4G0QiTtW+tuUIlPySgagN2xZmVr2Of75mfaWSMQV2FbbVId
S4laxU+vTZvZq7JtAuieicAA5fPGq11TVPkbXkbwbVLe/UfbUqnB1Vhjn1C/vKQ1
Jxxf9oTCSRduSg==
=M9yG
-----END PGP MESSAGE-----
fp: 9F5341688D2F9024A15541C9E02949D0F7769E2C
- created_at: "2026-07-09T09:19:54Z"
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DqL0Ka4V5gcISAQdA5qFazez9ndCwr6TEFg+MyFOOaaD3xcNnNjfBpeXEOxgw
sKSOvs8tlVBLyeVkYRm4UZquyCasSZoiFenlqpvhynfDQoAb6q/60FDv2waInO+t
1GgBCQIQxhA59mLrpEsYdJbmBK04eK2vZ9mwe1wNDYT+V3wyku589ykcRjscHaA+
X9XbTQYkxQRzM7WDERQb9JeUCPkmSNh8vW3EX5TwMFocsmB7+A7yl0SX3imDISil
Ck/w+GKXC3dkfw==
=ahne
wcFMA1kDHheI9SLWAQ/+IW2hkHvCThxNheQj0jwdcYF9sUGzVtfG69edWujpOcJ3
OQIEaHn/igp1Sog6oU5/JWhNL+tq8+67WoOakI88+ljZYrh0XgolcaB0chnLoXAT
BKp/J3KyyS7RHMWbQpuBHsGF/YTpfyYSjxk2pzRgUiJ6CBGWJ9yDmo/WuNuUJl6m
X7ei9opPYiiFzQCRUsORgUv61iWqsdP3uPqN6KTQJ5CELqhxyMPn5FWtFSmeVbw7
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-----
fp: F7F328F0E4958E4C785977E23B8AA0BAABADAFE4
- created_at: "2026-07-09T09:19:54Z"
fp: 17B8FDF68AC123EB666934B17D0DF6EC048A5D77
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DbFrAcOA5jGISAQdA0D1+2NCTCe4CChTZf9eSjOXiZU1xLypyIc5PGloNFEMw
owiGb9QlVUSCISXGFQZaQ9UCv/PzyzldSvz5QSP0OqQd2EGAUapd7m+2XbooiDPv
0l4B6kW5h/ojelU/rW5HABUVfzd6EbivLj/DljoDw6We6pmbzXYuqA5nKChGAxM8
cYVMpa62yQeI74U4HCUhenV44M5aLvlA58qHdxsoq5wctqBb6PSZJnY926NpMPg+
=pOxb
wcDMA195cwtvYnl1AQv9ECVPyiqv8m+f44zOhB4+zFLwOmaOrW+xRTxJF1yDft8t
NHayPc3He8+BXdS2dHerN5hDuH+ZoT6zFf0heJGLN2KHH6zRjQ95FH/SkN7Ot2rg
tC2CmmuDxnwKhdngv/Sr4mtdeUj4sQtmsgbAxKuIxMy1XO87wi2+lepl6mYaU1HZ
Xb7Ju/Z/z6QEKi2WUhd4MlLlmbKGJ7f/RXYjXe44e2ZyE2rwylMHPolQ3XwEwqUg
vCX85xAS4nThWX6DwF2t/LmW36vJhj62zTJU56Hns9RuZAKgIVsABZWwT8quOcX9
2r5dwI3lmoaY9cUQu6hLv9dRsKRlHvCveaRJb0Rq4aWkU/EIZgEobMjIJbdVDPDi
nG2cZ1YC8gGBNazt1Ypy7iQOpQDR/0yNOwvQksveKigpiyuMOkdrKITsD0hVh9dt
RrqzHvRyZkiEm5KvDP4T7FYaMkTG5z8gd+0gp9FbUqtdivfaRr8Ewqz6DL+mLGWx
9bH88IIDAtZk9sdkYs+S0lEBzvqoZQN0QUhaJWjCfbYk3QhjxRifEDnzK43q0ESZ
KJCMqB+ujsTFsZOEbk2hdbB0GtkQ92fazi1ADbg9eTI9hyI0nYVHU86NQws6cYol
jQc=
=2xds
-----END PGP MESSAGE-----
fp: 659FDED43DE155FB772A339B343CF1218A664D31
- created_at: "2026-07-09T09:19:54Z"
fp: 03ADBCD31737EB474A4BD235CE615FAF927A2054
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQIMA0JLr4yo8A4WAQ//Wat8TkSIAFd3t1v27bOX1MLRTcBIqvyfWB9YIlQOuLCz
4K4d4zRyq1G8n2ubzOfRGtypMkDgk2p+Q5ZRK4H/8Vh5dJjN9zyZacAo8ncQNXuq
vxxI1BQdZi5o9eN5ohXF8LOmQ/BqQn6cdJlFr9b285mqRQVkf9tXsoHW1DkZpw85
CPKwMnc2dmxfRhOMB4GpxEyXMFi1l4nC2AFdPVl2W4C5nA8d7/4Kq5WVhtQrM7g6
KAJve6lCagfmWa+2tvVnhWyX8R7dWjwbI7fw8WcUTzypt6XeOAMjL3pHKxEFbZiQ
ed8ziYMCl2zh5lF5PmpRUwmOeAl5e3/3EdjAkgVAgAbZ/a0iWZ+PYb0Ewnk914Hz
ki0ELbf4mKQWck5wv074tWKUql2RizA7OWAXsu+e1M3W5P7BzU34ZfJBnc+e5ZMw
G73TH8mMtwJM9LYWYMi35HStQeI/F97Th35nfq1jM8ZDZEuvOgBNHNYyVP5HvrgF
p4eVBIEh3h8wycR879RA+WFO9wdaWbhSYM+jd0bPr/cn0/y8Y+zhcrJ1fq4HmrjZ
5eamajUkB8ekfeiZhlAc2e7RmdRtBUACSAkDYSrwuwTGgrhpJLbBIXuxJEnm2mV/
YjBZI23rVesFge4O1zNeMKwN3DFiexBQS9ymMmjjvV/ga4VbN6ifJsIXkXCJ1CPS
XgG1XDWU+/G9GViYfATu/h6A0UZXs0EmK7rTQ/Pmbb/ZHnAV3/v3+ZdmYv4HZvV/
jJdGOondT9jWrtfH5Sx2FdvZgb0NF+BstwE1nuZFEPiE3vqugy+YoSBWrSfoMB8=
=b2Ba
wcDMA/IHQvF5YsEcAQv/UMgerVrfVFuNjIurmlsc3lTz4FEa8SWDo+4FzWkcpDVU
oeGq4S9RoX80RtzW6QXmHA/dwnNxlAVFivNykCDXYQmPsUr3k1VX7lENWaDu9B+D
2Z4RxoPwRN5jxSo+wFj+y3G1IuYFRaAk4Uy6tc+tG7K470JIzciEkN8zVxAuhd+M
ajgC3+wbRYRYbrAZT3t4NVoyDUTAU0lmTlRG/hHx/uLCR4QItL5lWeHfulKX3gQn
fq4hhhKMC3oqrdGrqoPL9RT0U7dSAVjyFMCgjWDP8IFS/PcK2tvJlAYf6vlm/FC1
4/N5XiW70F/jwXhPjnnoDZsd/P4wQUdkaMXjNtC0xWhOjsopL4J00KP+i7QLgpg5
i7WmF7FcWUcKpxIQOuKYUocsUjOELXIo3cBTsGPXNZdM/thE6kM04kHIJ3P8CiSJ
pzXOmskOlUFZ/btC7ctwEPq/BnADE54t1yyaN5iSEUdXjn9izv3BUyK1GVlxK60V
4LRZ7FrAWE2szXRsLGur0lEBamlOdPrpe/u17GEK5PekTA/s00BoWfjXmep9j4Ti
8LxtAoIgVWN25i8uYLulqNHXT2eT8sWPHw2YEVzNGPaxitsDEwUsOJZL4FXmu25C
g4U=
=SLdk
-----END PGP MESSAGE-----
fp: 93593B8B0B7B88EA2DCC99F9388B6A662C356822
- created_at: "2026-07-09T09:19:54Z"
fp: 04ECA5DBF73E98EBCC1FF0B018F2D15CC56BE487
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4D9oMBxyVlaokSAQdAxt1SQv7fV09MoX/N+QX9u3iPPFJvhYTQKd8FZYj/CDsw
EAd/KJ/nRYivedukLz4BIb//CJeHmRYRln+Zvpfv948W/RGV2/zqXRuFX8oArBEx
1GgBCQIQB1JpXVuV2DARNhO+yfWgLBh5KHJUlQ/avG2q7fs6KJZL4zKOVtfIBb9G
xx1LqTlbxONJ8+eeMn4yG1GKMbWJHXdDyEo/nwIvagr/URDl8RsZ1zIx0Xhgv+dI
Ap23XWR7rq8LLw==
=KU3n
-----END PGP MESSAGE-----
fp: 0143019F62469ED5A6A016C219CA764D37590F9F
- created_at: "2026-07-09T09:19:54Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQIMA/fyan/DNa3uARAArTrtEOKSRdUCBku81E/rP6dHtx4jWVbRFTq95nGfYGrW
W/UzXUpb72OUdmfUQEIxRVaKnf2+DQR0mzoHB5VPosJj86gbk4LspJ+BzDBgdM9a
MDZAkLze67IQmf+EDQZd6SdvUkek1i5XhpMzqO4Um1+IQFK9Y43q5l1prnY9Dq5I
s8miFcmR5m5SWkNr/F0Pec72y8HR231Y1MeAHxpTh85MtIV8sm/Uf3f7FWe9DIyf
Optigx4qTSLngslr+TqqKLHbXdP/Z0hnIsfxs6An//dpcMz07p+NOnTNUyd43dg1
p/XLJNcz5USTVwZ9PkksA0RO47STdtBLTYbnhvKBC7bYdcVVgQHhx4AMGtlR/Ccz
Laz/Rj+jcnF1qFIQABOk4nC+D5mrSnb0vGeY90jGDw9syqaiV+3FGdiB3faRK8e8
LUXlyotpznQBhFCqK5kw1+hBDVqNVEA6EtcrVNGglvuDE4Js7RyWl+VM3HlKqPvY
rpcjelXgRTr2f3dF4Z+0m8qsj6r5Ox5+EbPXtpBERmD/pzbjYqcTL4jvAtUf9+XD
q1VOiucAbm6MLYdCe8gg5HOyz38kW4ZRXoaE7l98qsT15TfkD9DwcGylieu8TYXZ
a4dS3aJBrcuxsYA7LE68tvB2TzS8abuh8jA5pjLKhGnK91F2+jFADSaWKsTx4e7S
XgEqFcbsvDmaB8+3C2ZE5TUcnMGjLJgLK/9ssU9bUTm4eKKfiFCZeAZD9mJUE0qq
hAihSRNQpLrcpDFGjaNn7wC9cqM1QCclTzlWS5N5gfPz7ULlyI43DhuOGRN6akA=
=KVMJ
wcFMA/fyan/DNa3uAQ//d3+Vg6+kbssPoolgUhc1vcd76ZXQ3MbfJdUpn1Y38Tsh
1Rxp2m+CHSbp0a2ljTFtrbyvcXE9Wy4ovjRXy6DR1JWOpACWO16D1tQY59xcw13i
oBnnsBY1vEutckPPK5F8jRF5dpNfsSuzUGThqVZbERZ9RwEbOsQH8rK2FIXWIUDi
Kp6I4rKqH875JkEf1/xOtZ3FO73QY3OEelW4uESKhteN3Y57zeib6xCv3K0Fo2LQ
WqEBO+w5s312eS4eKnSLUfcbrD0Ct4Cvqqh1AA2nexnLcUjue4cOTXPQeJ84rML+
eRp0uvs1gU+fB4XQiaPqKhGqa4NRd8N6hx+sOLjnn612CmrFs3q762Lx92MuZf+R
AWdsLoiZq0jFPQTEqPUP1RdCt8682y3JPeig+QV5XpNo4rBXGOnKKRkCXkUemWoz
/YjnGv4cFJf4t8MxjYSCKFWpONbmVWhFVXOnVOolXSUHtV3fI2toG5b94g1EeQeL
Wuy83nyd8lm0OmPL9gmCgQVCBrP4u5tVInWyyWhF+I/CxL3wo4J3CUpbD4WjsY8o
xke0o5uU15B1SlYxPBJLmUfNDiygjZQyB/lOKZ3BI5zuXUDJyb1FcP169WeQSUZP
EkaRHkVj7pqqyMbjunF/2ZP7r21SYk88rToinH01HqQV8G2Fmxw6MBpbfU9/91zS
UQFfxsGD8sJmSk3XjigjVeoXLkO8KWfFGbm0lCoa+TI0MfiamYEMhJPzQR8gwtxi
DEsaz5B0GVwrbMOHG54MqPUGxPV+cHtnuWxbtRmxG0oQ1Q==
=cPOL
-----END PGP MESSAGE-----
fp: 9E561083EACDE14694C73A323A2F6C1D153D753F
- created_at: "2026-07-09T09:19:54Z"
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQGMA+cOSmNXMUmKAQwAhybBGS9zA55NOWk7Ofvx5wxbgz0dNHM3iM6qC8VRe/19
QppLz04oA5zggkG1QqWaLR7ki2/SLWa4dSF2ag05OpVCvieC2xns9UMbnRmkQWEQ
KHfWSF0HfpgNNkSj6Bc+TCpdszNclhtsp3SBfGQ46HzBYi/VdHloigqS2xzNfLKg
x/XDaONquoDlg666M4YrIFPCG8jNSurLttOuS/KWear5ExmtdQ/E7lsb7QbXAEc8
Mb/WXouAVT+06m3jzdDvsAn2x1rJJi7mqJpnFu1Ojck0uyUKB+0K6QvYcuWEmfUH
sKiw34S4UQJDVq2VUYPItc+GhOSM1dLi6e/s1OM2KzerdxdvvxD/Ux/qnRmyJkDB
bJvwaOG5UzVELIjQ1xbDjw6I/BpzmaTIiReP2p83zwQ1tZkiaeng+l7jv/tkRqDU
U912FVMKtby6RVK2c4fSEa+vawUQvnBWTJmFB4F0oI6Ctxgf2loyCL0oPtXhvsRC
Ez3XlMu8vdfl9eog0qn70l4BTSJF3S6e1jB/6zRzTWTlDKGjIIGtvLh/4BhE+QuB
giJ6uQH+Vloz65ddRDnzzmHoDrZJiE84+V4citSRu6S/sxEe8mj565PN3t2Th85W
sIffKjyvAfgAkimzlxLF
=DCce
wcDMA+cOSmNXMUmKAQwA1PRef5Kz4hHgEmui6uUioadp7ogQ9T30l2JOPnghdg8s
YRuOgjirBJqkkaBO8iz+l41DvTNQHAwkPV2zoCKCpHHyeM/hNy0LK8QfyBadGoSB
ENxnre8WvwCQAl7w1jUzy9rR5ugVWd92K16DE49BMR3tczfmOt4GVegG/CknJBvD
4KPcancT+KW5PBOsnefu7KqEMDVl0wtEC/FeCVQlg7pECIcrEqB7i0lfCqHJBi0x
ZAb+QAKyKImIToxPbSmGKlIbnICDlHkLrjR+b1lee7FysBWswlXC1I9sZCSx991h
/bCk5sX9GgRVkeOfSd/DJ6jVIdxMlb6PtI6Yr3cKjdJHxroLdKd9GqT9TsyKxsNi
/6IPo3ZiNsKtVj0ax6V49Ep7+0HDdFJMKosG2N5mqLwGcyl5Vno4PD5lCiCyLAsA
Rpp+KUTTihWOcKixdmrup2+IfgHPx8EwbtCtl2cS2POKQCA1qZv6UK5qoncx8+ez
/Sld5DXucNsYDto8XcGs0lEBmksc668Jrcj/PAL0pXXTLnziuQhFMhL/9T8dFjvB
MvMVCFwQc4m3/ebFTddsYtlN2PF2rlSaOikijclN7hLT9bUPQJVr0SITiPolgg0y
v6U=
=KacW
-----END PGP MESSAGE-----
fp: 9F08DA9D42379AFE6610E9E615CCEC6801DBA02E
- created_at: "2026-07-09T09:19:54Z"
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DrMuSzhFbHkQSAQdAWCM2aFq78BQn4+HSK5w65cXzSkmXmEs7NFpJvvLlHzQw
SsctuSJ/HgLDURG6jxJxBgGwDq3DvfvP2HdTttAgnnwX3fsZrGWNQ7Q/7/d+tQTr
1GgBCQIQmhU5eN/ld+/gqVc3SL4b9XxCdk1tMV3JqABj54AER3eGgIlpCZe160I1
BkCUnOMznWRWdJylRDzNiGh2lSky2G17BPAuINw6Larh/Rqm8XNx5nPa5SGEnM8i
jk+oa8SAFqs6Qw==
=5Dx8
wcDMA5bUWViEqX+EAQv/SyHaPsOtqYugafiYw6M5pyIlBdUlVDgh19+e6eWjVLLR
nwrIsgHvWGi4+/10pSJGXJIPXx0u2a7etrodKPM1TjJLyMUz2MEQOAVv5pPT7lE4
9KESZ/c41SSnjmgS+bhvTo6J0WAg/yMzGNahNAs5ZPqSuWWFqLIoeiHQjvPPZ1eF
szo1wqKZz/Pe5gNEVKenN7+EhMSU0Kzya7U3yErxsjtkMSf2vOrlKkXyuTgsiPXQ
LyrG04EnqRo9AZQgR+3BvOUxAoJApjBgeIteKtqu+qNI/bHh1f4EiVrkBk008IY/
DM2qIiX5/EmT0l0dtpwPYbmfdqnKqUNygE3eGiCdizmceTnkETHatX73g7UBsIul
3BFWSjD7svl3onhocygIo7aCQVgDDULm+t/SJstXYIh4lrjqQmswYM0VDzfaiCne
u/lrdBTvSSlnilGk2GbJNJx1oaUU9gERqYYUdUTD1t2/JmAaudTTqsHhFsKWPnqu
lDA/idHZlfQeFexW6gBo0lEB9XBd/jzfCUw798EEuvgrMFre4UGo16obVjnxWrJ6
WLqbDRNWPzT43uAAW2Os9aezL0qglXcNX5dI/ve2revJOyVsIt6CkxvjlzJiQPZn
q4A=
=D4n3
-----END PGP MESSAGE-----
fp: B92DDC9B908BF3917758D228446C51E049AE38CA
- created_at: "2026-07-09T09:19:54Z"
fp: BA6328948D50175F196AAB5111F324603D12DD56
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQIMA8YZutSkx0fiARAAw5/kBlIIaitQTtLY6V0SY7s/wisp0euecyM/LKJ1ZUh8
Ripi0naU6Sbzn2dDkfEcULcjknc1MWdLIaqgbUgdNcpL1U08s2Hnz5iarl+9+GBY
/VugptmuvZsfAWI0CvQbQhJ6/NnTB4rAmPR6ZXD6tRg8qg+AI/GVpS397AR1dFtH
e6Es2yzgAkPcgkk12xaAYbm2zrFuqugDGiEjGpC85deVwH+RB/Gxl2QAPNEbF867
S3gUOqDxtjma8m2WNWTdNHIkcgOMX6wi4N45rE+abX5y0VoGV2LzfSuU6UAsYCOe
rTfmk7BIFPYvwUuVWMG9k7uwlwivA6nNslunyP81TlsHXuTswTf+bcb+xbwCDEyj
jgCrO6bBzNRwopldWmgbzgX4F91qKTp2enCZPhXKgCKFsK4/NEu+i8/yg595H5Na
Ct37BtWCa32tSy22/SW1HuMnvoGERw+KNxQFF4vYy2b4WKsWjNB/1rVaon9p3EXm
19ADLQAKYXDwG9tQVvQ9Ltjn6jdtSUTCaTp/gGJ0AKs6pQEaTt0FLMe1CBjS/MWB
JFQBkRfkzjFCgIuG3TI/uWWJAlwgQWe5N2zlbOxm+BOm+g9VO+UfTv3KUWXkhI1c
vpTz3jLLnS/rq7WLmWvHHt4gXk6Zjlrz3qo4NaSSWsWHTFlaFdc67O5ZP+oc68jS
XgFEPwH80HGqB+aNCJgZ0Zb4+/zBau3TwHCgduBYGqSXn/lnNC2d8jloQ21y16Po
b5qXjSUSQmABcvEGZHrJezrWy7adZapb5kwEfNTgIHRVeC8xCFS7QZl/s91DQQY=
=oLTt
wcFMA8YZutSkx0fiARAAmwvzEOXs0PBK5w7h/38B9GRgmFCv84CL7XKn4uYXW9jA
rzvSjj+dj0/cIjCLEo+6RqxahfHqTsGPlzCtEm+BI9mJX8RBpEkclnkAQC63EO/h
/vl04Oztu3Sg1ADTEeyEHvx+bhaE1jJ6LYcc74ETsJNQqTJmAsTq/tme73pEWHpU
SZeFg9RCs3iFLGG+FkJsoOv+TmUF5u3NzAz7DZJi5gB+LgzJ0JukL1LAQ3o+un6e
qN4yZOhc8ZeXVK9X08MMZ4a3ErsWmTXzywsWie8dWxDAA48n8wJKgt2xExygywW3
36Ugk2WNfWY4TlrXYNtG90/22BHOXDRWTrw7NrHUYSUf7MzhfkEu+IQNYtY0um5D
9aqwa6mLComBuYlXOu5ItPQfy0q+TF5sURXLx45TKH/KtQVVEJMbe0frwDZWLCsh
GZ6F4X1/ddxlNBOLPm/ysBA+9a0fvNK4tlsdeD55vkqjY8o0iBK4GfzNYLGSxhs6
AiMtGAIhDQejaldsV3CUg7L2KSA51KPx7Db7FlY0KpASPZrh9ADePbkgv1vBNMBp
pxDXdxBLakhwgruJEcMQ24vjdNF1U2gAuzcOMmUz4P5mKTqgLoBqZmbAuUMaRjm4
z3D6XMVFhWIj9HSesbnOg8REEfh7PwMgER2QGSyolTKomd77Qa1DNw/RZXyPI/XS
UQFlSb9MVVjmKswCvAUHayjpVimTqBQqmbRcR4PQsLmKuylC/mueAlcawfSjjKli
vW9jMuddQjLJAxih1GhVJbLR6xQZhM/3vzG5Ovt005Qhpw==
=vQIB
-----END PGP MESSAGE-----
fp: B643A5D780A01F24E95AA100DE6F8E2C149C3748
- created_at: "2026-07-09T09:19:54Z"
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQGMA9vEXLVODHp3AQv/RWtfW++ecd/3BWzW3t4NFaGCOdbRN8B2oVmL0i7qXSn3
uIB1orFkqBMw65a8fPnuJwsayYkGNHUt/TiFns91BZ4brywAtYrbT7xFHEY/8iOm
D0dIJz14zGf8JtKo2+pwhhi3HfVX0l65y9GFOIBemX8gArwoxk9OZnV1E02mBsCt
hBqUO71TLo+I8jmpcO05qGytNU4Qgv0pwA8SndEjZgC90BxtD3xpdIZ5SPXDxHzb
zYMl6NN1m8kc65H2EFYRqyHCsen+WiBKnbZoNNaBnrjuAt57ZgaBiKaPq66A5YVQ
2E/rHiNHveicmlOJK6lgb8qb0FICVE+k/6HC9llpGifso/Ec4v2t/+oKqj/468MW
/BTfo6ofscmdqDQo9CmSee8m2V5o7fS9mI+wdnhS/Wo3LsGmQHQKmZ/2Y2/t3xi2
yJR2tbKNjRnw9U0UuK8D9WV8Ab27bB0xjrvaYpOrZpXyyOhQg8lyLS6WI/ctZyMb
0k0oH1qaD1s9j1oDNNx50l4BSxUokNz4vJQI2nyzCrUKbOogcssTgzspQdeigMFV
qCslWVZ9bL3TLRomC47E58hewj8ZnMGH/5AsOKWVCL/7f6Eupq0n/1dKi/582bSA
CKqo4VXFNwKKE/56ej4L
=PdDY
wcDMA9vEXLVODHp3AQv+LOnf8kWrZoWoxnED1e9BDtuitn8Q5AVB07e4u8RA+0oD
ALOruldWTMzEWMzfZESz14gTF+A7A5LOemmiewZwjzu3QSeANvwZfItjeqkm4Vvi
3CNB+I7KmZ1k0p/RmKBiPqWjlFYLplh68e0Ivc63R6bwfbJWmYPYjm78oFqq7HTs
+WoUkSzmZQdWhVjCG/qtvA2pEq9kCTzIqgPWL+8+O2TPdbZ+xbYF2UZbvd/UQ2xI
3VXAV1GkKihWaQmr7nVhH2QZpw1Y8ER1EuixVXi8LloiD+x8KyA5hbjCh3RRvtMr
UyphedMIQLFkU5cf99YvD6gqqAcnB50yX/mPYtbQR2RzAUuppnmyUg4O+ouhmL/r
CJC1uiRabspZ7VDHQKVyPcjP5g55gZPtoJJqJrkPr5rBIEE6v2UFPq9isUhn4+tb
YqenVTCg8X+sgjiqeEsyMKNCqwOlBK//mNcXmVTJelHQzRJgrMSzOi+5yb5whgNs
wlwR3w0EPqRpTyJu8fxw0lEB4Y2mF7FWiZ7GUe/RiOLak92tja7VWt+xcr2baPIt
0E1XpI/aSrA+sReH74iRC+unmFRagkdo/cUYfCX0WT9ZKAA5OHYcFBOCbCMkTX9p
u4M=
=GPTC
-----END PGP MESSAGE-----
fp: C19A7D807525CE24443CA9A49372E896B41FE700
- created_at: "2026-07-09T09:19:54Z"
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQIMAztV5cc72nziAQ//YFptDd/+LtKSzESuc47V0CWzr/lhMfuz9qXDOavEs5B+
ADCytBBLa2t5H+clsNmoPkKNKTSjH8n6ij8korFRF1FdUWEm17iVllCvcJQlkkIJ
Sjh/H+3qs8nBqzSUKihQnomNzpag0OjvQkLO7iBfU0yTqvUEf0odyn1ILhTmoZGW
Op20c3CNjyl0/5PcHa36EavK88f5kKTpfZ8425sVLDGzy16Nn3p52HwMF4ZI0+kb
wtA37M4P7CzZ5u/D9bDvKQHcmLsiNQ6f7qM3bkFAnvGMFaBG3DMtfu8efI+RXa8X
oqqNEOLB0xTBtPu6bO5apWAv2VFsY4YIbCyCr1Dj62kqAMRexawrqpYvqA3tcVna
dZQN0MReaw1ugt65dCg3bMQtDmiuIQMYoMfIf70gq9+UHzT7dVXkulumQZe2ZUBV
XheGOUZ2cwBIc1Ym+fugco+wqNJdmMaUi8/SlpA9J8/Q67XjkPkA6L73xdKpYFLt
tjhuda7wtv3wIlaNwUd0oGaX8yAdTA1fwiJ9A5eEhIQPbJe5jSGgjivnYLv6iWjs
8oK6occnbd/xraRf35iySH5WDQeLO2O5gWRHUFmpSSVSCGQEF5ML2WIhvuPG/zCF
DWVWdoHNHUFU8a0PLt+TitR4rbd45b6miWiqJtJRXif0le9CIWm5Hn+VemWmSvzS
XgGbeY4ePnjCwakRjNEqx6QyhXvZles5uxlyzYUnHAXq9Yty8RF1U78S5Bjy9Jwh
P792730KSnZyKii9T4D8Ey0UihlKa/GPfGPnGJ41lc91s5k2PjIIOnmnGWpkkQg=
=Ewd+
wcFMAztV5cc72nziARAAmlYtXpJOJv3KzfYdO2opekdIupkW4p2TSLaXzKsmHaoH
wcz/5M0+yJq3UZcOpcYZ1WQt+LrIYE7cNdh+tDEFohYE4kLHFRJYirdASgd2Ez6K
xZc5h612MS644uSf2c7dvyEniOUNtiyqHJadL+/BkXpdECvfwDAuff7vrYgPMLOI
H3pUD16ng+7cF1mSq9dnoKGJN+qajFT+3DlaZrBnSa3uMFAQw/SIGknIGpBzI9UJ
ZV9qU3P5+/3cpEq+xYsRjylIqzxIbhV4OehIgISFdh8MvLmPAxLx/vEGh2wHyPK8
r134kD03wyX6Dkfqe1QkTLcvraAEiNsuWW39MIoh61mFBD+bx1SPXAMkEaotyEhA
0Bg+LuoRkoNEeghXvUz7V7dP0WfufHjuWY5mNHLBfkc7jbx6ETWn1KHZmTMrpFno
S46qpZnacVGQOcPs8PoOZ7FHhr6GMnHsZXdTkVJW53PrrJ51Sf6wiTGq2XWIcXjR
PIqfPej9JtWp+dpuxmOZYW1yMwTMrr2lsxQ1afEGtTIyF4+WYwrGiqj+6o5MJ0f5
MphpD7iLwJTKo3JW6u+vuJ0um1i3TTvlhIgxO0vQZ5XX93rGZydNqnPXtJJk9wV+
RMZfGAwy+xCpcW3rpmtzLm93JyU08ttlpfpcQKZou+/CUyQQHWTtvjGN/ZpXM9DS
UQGvX7FTCvLwvcIvtn2wHMuWmnHSSALrcbU+vY6CV6GBHvdsl/ImJ9Co0rq+M3VY
t/tolxsGPSRO981BgWmz1BNc9TahsosWShFS3mTrwPbMoA==
=v/V8
-----END PGP MESSAGE-----
fp: 0DB51A7E90AC6418B7DB83724D38970874850C33
- created_at: "2026-07-09T09:19:54Z"
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DZmNQj/lmIGsSAQdAQJ4CaKv7cEM0/feqljuokfuwIUvPLb8236ohfhp1GCkw
UgU8oFDeKBByof8kO1kOMG7whSRciKuDO0XDRQ4TnrDwZCWEXOwaj3Rx6RIU+Xgz
1GgBCQIQbmW7OhWiYcRPOm9v/qupfRIvEi+CTdw8br4tT0dEWdMRmpP0Fd9xK7/i
/dj3Dsp63mVc26SXuyCXmAtUl7fwhXKEOoWlm/p7t/vw/5usep7PPVyl5W7kFkMn
VrRDC5MFhXy3BA==
=Ygb6
hF4DxQtfVaqAjfQSAQdAxexVKG464D0ioLMokAOrzNihI91cFatH1FTMJAb5fzYw
8hpnBiccDrbZHotReamlNaoJt7jGn0Qbm9NtJBd4fmui+KX1ebcbc/8BG+3mdRna
1GgBCQIQtHx/QUdWkOIlA4HepwkxbW8iQx43na6T984cKerAsy76hQpualuwjol3
Vo9t3dFzS/AuqbOY2wX6TvWrXKvamkcKhlmTaGiqVikYe2Y/tPWhB4lHNSMWheZB
vVHnbym+rixhjA==
=Irjp
-----END PGP MESSAGE-----
fp: 73C2C9954D1BC94DC6682525D2FA233B52AEC75C
- created_at: "2026-07-09T09:19:54Z"
fp: BF3D5CEA36DB58AAE1063D0BB341078652D87924
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQGMA6r2J+JSOMNuAQv/bgybwwuzqnrQJSGvFP1VhNyr6IJuoqYKq/qcoEFz2WXp
DDzshYkU4CqIUwf/mx2538QaYs+LmQgJYxudzUvEj6S4yue1KYO3KhzZyzmtcIIM
QP5ffkCHk1Go9HTyvEAbbUyCR2bSVrcrbwLjGejy2aZbwDI5Xyh+9ClMs4lX2iSp
jGwtUkaTxVAQbdGHhQ4MMk242H/6z07dQSpYx3MteppgU1/IWpqQwxBkdZCYJFTA
FQA5eBcALhhuD4TCHNYvUYEMtBcLdpqz/5ozcB420O1lSxmbue14Rv/d2FzH/AwK
dp366NMKh4pM2t3BVrfcFDfEneunFquGevMhIw3sw25gMf0Yg+T3ttBBpdfXi5F9
Rhls5/5ugeiWvyAXGPUd3mXAoLCqtTG4Y0gOf8QdW1OyvjFUKx0fCTUVT0eSqZVj
l/paxcbGgmwN8jSa2Rpn+GwGLrVhU36oHcA2z7oU5WEPyBg7XKgcxzXcYHBHSyMP
+JN/YYgw71o9X02j6iug0l4BjA67O3UbXs20yr6iwsYci8CC89lSW6co8nMyhFOh
aMTuU5HX4yKE9J0IJHtKUmyoMrDyjxLqmystgKUOHgQ5KoqGbjZcJf3GAcrZDy/C
/VGkczH0U3uLtBJExrOR
=gXUz
wV4DZmNQj/lmIGsSAQdAWVdKmqeffNGzocmRTUOVYEAN4XL/z82Dk/IuCY7ryAkw
dCokC/yI07J0fj15TKnetYCdpa8jTKTXoc3Z4uLSn0T1aKg1+FtvoofC3DlsYszs
0lEBBGlM+zxriJOlOkPWx++tvOSxAKpp2HPO/0ElcZU6npDK69L7G3kIW0gzjQ5Q
KH2rjxPC++ThCFhAwwjwSLbIryGM7vKk9FnCgGbran1t5h8=
=V7BJ
-----END PGP MESSAGE-----
fp: 3511D1A5B7B2AC97BAE8AF3EE758168C000375CE
- created_at: "2026-07-09T09:19:54Z"
fp: 73C2C9954D1BC94DC6682525D2FA233B52AEC75C
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DAQRCY74qADkSAQdAdDTKwEoqoDKtaN/7yyAmMrGLk1Xa0p0wr9g34Myien4w
n7W+W+OlQzZtsaDHxmN7vZy9+YLkm/TjsPKvwnfHjicqWmZLMsY56AGGLtESl7UC
1GgBCQIQ7GB5EBIpxLzfAqIwMzqVUIY3QpovAoFYbozfUthrgszcrPF8J/F9pOy7
Cw+9r7IzCcddLQg2Oy3XpbCHoC3HwY8u1xtAZhn5R2GDr7Eb17IK2U5lTXQsaBg+
R372ZJ1DwUoS2g==
=55V1
wcDMAxSu/PO9GEkJAQv+N1ZJ9h8PkWI9MuX5Ba3oAFxRzq6ghc6J+8nz1J64FjzY
HI174WHdjIrD3l5xC2//9HybWJETV6ibzJ8bNtSiK5mBrfrRj6rKKePv+sp1lr6B
YVZtyWyjMaKSVtX5fmSFxrBxM1Y/8fEuBp3O++SzJvud8P49M+FYB6/nviB/yDy0
vC99Bts7txkjGURKAXQmycGRVYfLeGDHWDP7IHR3LVOPaZ7aas1waYLk/ZVIL6PB
LCOWVwEaemFBfYlfdu9Ll9V4j5aHvzDh3ZKbGB95k0ievGn/KA+jOnW2EUNa3Rsq
xURs6gnzX0fo7tSIxY6AXUl/B9vQwxD1DDeLt/qEvc4kPmGdPlHME7exndTDEocZ
CyHk12F77BK62zTqyPTdQHy+4EOxKpIgrCUhG/QbCm5F1FytD6yfor9GzacSCoMb
Ot6Ute+sjLQZFO7vaXka/V4eGNJbc5DOFbtDqPVcuUKbdtVVYccKELpCaE0AxBGj
Blc/eyeZo4Wluh7tHbfw0lEB2DcyrFcBRDPBSeAybsTLR6UC93P+1cA3lRotn7HI
h7mhHNGeohFBXFQzd5yV2g0FAzMwBTC+FVIOxNLONVP1hmBorI/R7PwOPDXDkcis
Dm0=
=NVU7
-----END PGP MESSAGE-----
fp: 0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A
- created_at: "2026-07-09T09:19:54Z"
fp: 13E169CF5C35EF164628764AAA2EECBDE0B38CF7
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQGMA6N7K3Tfl3HGAQwAtqCcyt7xeK8dOvMi6WphW2QRyqUDphiZMOAgutE4krcq
wLl6myB8ma7LJJB/4t+MUlmQIhYQ/VDfBPE+fBTU+1R/ImU/ewkHrkuwElJR2JtY
CIYfM5lvN/oH4YMcTHfpT0knU4L1Iq45R9F4uv8UcVZmVdup1/SSPhQksscXAxio
LD92s6NRlN9PPAac3o5WOkbfVkHIjghMTOWgUG86BgBQSjDY5q1YZ9d07d0+pRh+
mJceaEhkCF4CHROqqOQeJzjQhptkbGK0iBvz3DM3tkt0DW9gDpXyqp0KPTrHAVFx
U/OlwGpW3bV8qSdRM+O5LzXWLYNP1lX5QVI252Cowdh6FXgczxIPjWztCiMSahBO
7YQ6JsXmrkgNuSGG8zX0+IlFwqPzzf8ey4tjwPScOkPFsFDE/PqisIMTd/vhlVKK
eQFRTIFIBIHN/NxCEqbKxJLTKarBiqIygrd2ZMhJeY+pzSwU/bAlJSGs3VR2JlKm
SD2m81XRDjseUl0oS7731GgBCQIQaohZvLJkz7Qvzd35KafFNQdEfcekPrLK2idn
ycd48IR2eKyNMghJKSecYRiZnle3TBfrZesbEXr6zU2iPCw/jEC3gg8cGNQx9rVx
bs2MZtcXXi4KzFWfWI1YFtzs7PFV1s5oFg==
=PlEi
wcDMA8b/EJ6Mi55zAQv/VYLKEqNrBQo9iohdC2KcEng98V4Ez3VfEKQjydB9T4w7
nF4JLq+OF/sW7CkAhOUssuJct3zEawNu/W7HMcbtD5XWsb2GRevWFv6w1VG2ANWu
5UT7rKmSBw20gFtxw8VLFX//CgZCs+cN0PZcMzXiXdwr7HwEgzZbZc3TtFtNUr1q
WORua8Lswhj2Uu52euK5k0JUJdzsxop/p8s2OSYOItKl2CcqbzxLngbMcDIUN3vt
/8Yw9mnKGsvaKT0B7x0bDSMXknfuq4No3HUH7+FrsIDhs90XD8HOqUS8eaNKwezS
hhsPlhhSMDczqKCnu4NfWTmDgfiRjR6sNlYngtVGnseG2JKTxC68j/5LMrNOiL0v
EgH2EUGphg0yupTeuUsVu/JLDvPq6DRzw/egwCwfeInS7TPFHwBK+5wAxCX+3oUg
H5XuFiM6xAmJWzYsuZQ7i82WS79BkLMfxKlu+1FGWO0fEQMlTxYCFNSdUfGBHnqT
QElvhUiWj/03CA2iUx/V0lEBU5JACYpml2V3uwd1dlQQE/OFlBrwlHzf9oIY3Pq1
s4Rf+gD5wdX1PI3K/68mcQNedfXvmwv+HGhTSfzAXwom65jPYkaTOBj5TtNfdjxU
dzY=
=rMVG
-----END PGP MESSAGE-----
fp: BB333E772B60EC8A29E8DE641D6B8CC68E09BCA5
- created_at: "2026-07-09T09:19:54Z"
fp: 13D7771BDE5241293F3EDA442AB3335ECC93DDDC
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQIMA5srXAykbUR0ARAAmRaLvYx/VkXrWNuv8rtv4dukV3pqBTug8rRZTg4uKIFM
8wTOLUGRtZC5ZDnfnVZr7aLdVeWcib09zm8jWK6ES1kyHpuZjTvHVdm6J+/2TwU/
sit3XU5UZtG+HEqu449KlFPhlMZ7pqagjRkWE3uC7b0gjJovvDa6Yqo+jY7AAP/M
d1As+UpNEYEZ11BNYJZJsWEej8gQldLVUWtJlQasY0tNK0ha3eSrbNBgjuzwBq8h
vnFALIuxrwwZ0vVujxOVEMVpWqYZOARhXhJ/2dfBKoc13WZBepgW4RyFSLip9WTD
4MHuUOv/Klt7XBzEyzbfvzkW55078VZ46h5HlLg2p+iJcq992oc6aSwZ9pgQ7GUg
6X+j9dT34Hxryh+5kwOtYmLAjIcz3WmKJeWqSOVt7biNinecOG0Y8tLsMmIwpqls
vUoxEs2dn8KZjuwrOSVp6YEW0wL1NqZ4hBICCd+nESiFk6QzZ2jpOBfB14ogU+7L
Cmmz0sBYoZAAV88AX8olxnw/MNy0lL5Z1biaKNZpdTUKJp3ajLBI4LmI78q0zQIQ
NYPX+f/q+e9URdcGYOADS0vmSgnrrghZlqg4NqkLDdVK9pPeOl/Q5lyRCqi3g5Y0
C1xdk4NsH9ZsGpnMR/QsrfWmFB3rh0bg27hIaiOuugsvdUbCuQDBOoheqTQDMsLU
aAEJAhAfZPyjz3TYbNVg/PJcnkDfInLvORbNYqUyo61NO/iuTo+OjJxJQPiGvGpp
uJS7pBGJUWkc65SglKsfz1oDPwX27dbd4FOBLKLL2g8M0NqE/NwoUG5tBkWt6PZf
GxE2siMCPFwJ
=Yg8C
wV4DAQRCY74qADkSAQdAM15Z64heWtFlCMworwtlRTCziwpS/JyQp+4VOQlDpz0w
9dO6QL0rHr6/RYj0nQ/fb00Y9X90Kq9XEG6GWFYjkiQGeJ7DYooNPk4HWV4HTkOG
0lEBinuysaQ+Lonn+9y2JsnV83L4tf2awTuSpsqRVLYBNAKHfsgcYc0Z37FfURxf
jns5ZFOch04oWRKT4Ufw2sMHgtaqV6+8Ri6tFWtHS8aUMgE=
=CWEz
-----END PGP MESSAGE-----
fp: C191487BB72A3C8BF6B159AC8B8B9DDC9E6259C9
- created_at: "2026-07-09T09:19:54Z"
fp: 0C136F7514100470AD3EC8D37BF1FAEDB2ACCA9A
- created_at: "2025-03-04T17:44:07Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQGMAwTtVaE3mgdcAQwAjBekoHEVIGMX4Pv0AxJ+pDSbSnpGHisnJGaTuWR+BnE5
1e27i/DGmHfUHRcRYO2VXnBUFxfieQ8s4DEPncDlwXUEjOTNotZRDjBQleldKfNi
MsWbnxirYdwSZcpcvvLa3FyEL/pUBrm2/g+g3H68dOBj1OTXJUUT93qNb1pwXImP
0d8vMZ71apyrO4HvDxLQ7sd8YdzAC48hwRZgi83r+mjtil/b4owV224XEenBngWd
s8BZOuKb/XYMbgWqSXbuxmn3CHk3fzb5zGFUojgwePkQIoC5wqewF/vpCxRzwOd3
nVx4G0tb5fFM3aCzMCoIOxCYGcywM9srAhHEPreG5lBw+Ot/Ps9/TPxLTG8qyeMb
AO7NtxU7nSLHq/XrUIBo+uS2iy2qcjUupKiCDk9GDccM//hYLd/DLDsu4goUKfSO
366V3eMPn0QKzz1/Sc9iM3ZkZKImuoRvWTuLNtw0PqdxcfrM5bTZzmeu6AmGAtGf
0CYyFtXhml9rPLGbXodm1GgBCQIQY4ydDA05nlhEo3deMQip2VPBWib8c6nlm3HD
TzjATrOlaAvk321mOGSPBs9Iufrz+y/oKsXqZPcDPUK1H7oSP7yFMHqZAPEVEbLK
SxQ5ttp2kNjqB5ppO7MlC/z+ty/ppXze2w==
=9fmt
wcFMA5KoiSc3R+FfAQ/7BFHn9U5mrARB3hFmzMp2mhEer1nnUgEh5InbbgErPkZw
FydX4ikmK9xLyIxF+wUXNQTtSW90y+s3NS+ZhAQXbGwToyNEYhO35ngp0Ju7tjyp
zp8Q82fUVI6r1UrWkddwd1QLigd3BE4i9I/xrSyv3sjgufOXwcHGpzOeLt0QFy0T
KG1m7F/Hx5KFtpCmhpkVF9zcrImgMXeNvS1B6iVe3Y0elvzOqZGviFvXqXuCVd9G
+MNqEiKsHZ8ongHqPW9UA0N51RPtWqZ5ANul2+kcFav0UsVIMGDvt6VHxm1ysQsT
FPw4M6jXN+bCgYKguRQPxIhZG2Qv2MpkGR2nvkFN1+PTF0tZ9I8X/wfUZSH0QnZL
Z2HNobmJEefY4hilQ/QvBzQpVPVz3fGiSlwXGzX3FHURpibWfKzk8Lw29HR7kVUt
cJjJKeuHwnMg5HkyoRWTlFEe8gVrDJkBIe/MYkjoF7+ROcEn0yz9egGcawnIAOjH
rcB1HoJvl7Vy+6ybteLncvtxEgREMZ2AuihIhVzxOHCr6cUzFu+dp/u+zAQ6LtWk
ws3/KOiTT+YCWxNWuvWE6QDyM/UCC1YFJ6MoPe14xiAqafU/g43DEi+4P/Cg7njr
kQC2C3t4n57UVuzunBGZj3fKrTlB2dVYA/zkJgoUZP5H0pXPnr6iMZpfKcWER2vS
UQG3nfKuiQ87axXf9YebCNzC8QXUVqaUdEgXBo2bLX63CA1OxtrAmEZQeUqxXIJ3
uVtGMVQ4QoTknW1+XS0MUqrzvAblSzf8N353hS0L6pTwow==
=bHwT
-----END PGP MESSAGE-----
fp: D667348F310C57655FCE5D4EA689FF232FD681F0
fp: 57F93F2A6585CF2DF9A3B31F13B9F45E122698D5
unencrypted_suffix: _unencrypted
version: 3.13.2
version: 3.9.3

@ -25,7 +25,7 @@ mv .sops.yaml.tmp .sops.yaml
# define "fixture"
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}"
set -x
rm "${PWD}/.sops.yaml" || :
@ -39,10 +39,12 @@ function fn_test_create_sops_cfg_default(){
# enmesh: restore, since this particular one is checked in
git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1
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}"
set -x
# 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
# enmesh: restore, since this particular one is checked in
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"
set -x
../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
# enmesh: restore, since this particular one is checked in
git checkout "${PWD}/.sops.yaml" > /dev/null 2>&1
}
# ---
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
}
else
>&2 echo "# INFO: skipping ...."
fi
# ---
function fn_test_expect_error_invalid_file(){
if [[ 1 -eq 1 ]]; then
>&2 echo -e "# ---\n# TEST: induce error: invalid file"
# dev note: ':' is a noop operator; could also just temporarily disable strict errors
set -x
@ -115,33 +88,11 @@ function fn_test_expect_error_invalid_file(){
# not necessary, all tracked in git
# enmesh: restore, since this particular one is checked in
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
>&2 echo "# INFO: skipping ...."
fi
# ---
echo "TESTCASES PASSED"
exit 0

Loading…
Cancel
Save