diff --git a/.sops.yaml b/.sops.yaml index b170df0..3a4509e 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -42,6 +42,21 @@ creation_rules: - *admin_gpg_c6ristian - *admin_gpg_lilly - *admin_gpg_langoor + - path_regex: resources/chaosknoten/grafana/.* + key_groups: + - pgp: + - *admin_gpg_djerun + - *admin_gpg_stb + - *admin_gpg_jtbx + - *admin_gpg_yuri + - *admin_gpg_june + - *admin_gpg_haegar + - *admin_gpg_dario + - *admin_gpg_echtnurich + - *admin_gpg_max + - *admin_gpg_c6ristian + - *admin_gpg_lilly + - *admin_gpg_langoor - key_groups: - pgp: - *admin_gpg_djerun diff --git a/inventories/chaosknoten/host_vars/grafana.yaml b/inventories/chaosknoten/host_vars/grafana.yaml index 50a1290..00b877f 100644 --- a/inventories/chaosknoten/host_vars/grafana.yaml +++ b/inventories/chaosknoten/host_vars/grafana.yaml @@ -50,7 +50,7 @@ alloy_config: | url = "https://metrics.hamburg.ccc.de/api/v1/write" basic_auth { username = "chaos" - password = "{{ lookup('community.general.passwordstore', 'noc/vm-secrets/chaosknoten/grafana/metrics_chaos', create=false, missing='error') }}" + password = "{{ lookup('community.sops.sops', 'resources/chaosknoten/grafana/secrets.yaml', extract='['metrics_chaos"]') }}" } } } @@ -59,7 +59,7 @@ alloy_config: | url = "https://loki.hamburg.ccc.de/loki/api/v1/push" basic_auth { username = "chaos" - password = "{{ lookup('community.general.passwordstore', 'noc/vm-secrets/chaosknoten/grafana/loki_chaos', create=false, missing='error') }}" + password = "{{ lookup('community.sops.sops', 'resources/chaosknoten/grafana/secrets.yaml', extract='["loki_chaos"]') }}" } } } diff --git a/resources/chaosknoten/grafana/docker_compose/alertmanager.yaml.j2 b/resources/chaosknoten/grafana/docker_compose/alertmanager.yaml.j2 index 83aeaad..ad10a96 100644 --- a/resources/chaosknoten/grafana/docker_compose/alertmanager.yaml.j2 +++ b/resources/chaosknoten/grafana/docker_compose/alertmanager.yaml.j2 @@ -34,7 +34,7 @@ receivers: - name: "ccchh-infrastructure-alerts" telegram_configs: - send_resolved: true - bot_token: {{ lookup("community.general.passwordstore", "noc/vm-secrets/chaosknoten/grafana/alertmanager_telegram_bot_token", create=false, missing="error") }} + bot_token: {{ lookup("community.sops.sops", "resources/chaosknoten/grafana/secrets.yaml", extract="['alertmanager_telegram_bot_token']") }} chat_id: -1002434372415 parse_mode: HTML message: {{ "'{{ template \"alert-message.telegram.ccchh\" . }}'" }} diff --git a/resources/chaosknoten/grafana/docker_compose/compose.yaml.j2 b/resources/chaosknoten/grafana/docker_compose/compose.yaml.j2 index 3ef0a0c..f5af854 100644 --- a/resources/chaosknoten/grafana/docker_compose/compose.yaml.j2 +++ b/resources/chaosknoten/grafana/docker_compose/compose.yaml.j2 @@ -36,7 +36,7 @@ services: restart: unless-stopped environment: - GF_SECURITY_ADMIN_USER=admin - - "GF_SECURITY_ADMIN_PASSWORD={{ lookup("community.general.passwordstore", "noc/vm-secrets/chaosknoten/grafana/GF_SECURITY_ADMIN_PASSWORD", create=false, missing="error") }}" + - "GF_SECURITY_ADMIN_PASSWORD={{ lookup("community.sops.sops", "resources/chaosknoten/grafana/secrets.yaml", extract="['GF_SECURITY_ADMIN_PASSWORD']") }}" volumes: - ./configs/grafana.ini:/etc/grafana/grafana.ini - ./configs/grafana-datasource.yml:/etc/grafana/provisioning/datasources/datasource.yml @@ -50,7 +50,7 @@ services: restart: unless-stopped environment: - PVE_USER=grafana@pve - - "PVE_PASSWORD={{ lookup("community.general.passwordstore", "noc/vm-secrets/chaosknoten/grafana/prometheus-exporter", create=false, missing="error") }}" + - "PVE_PASSWORD={{ lookup("community.sops.sops", "resources/chaosknoten/grafana/secrets.yaml", extract="['prometheus-exporter']") }}" - PVE_VERIFY_SSL=false volumes: - /dev/null:/etc/prometheus/pve.yml diff --git a/resources/chaosknoten/grafana/docker_compose/grafana.ini.j2 b/resources/chaosknoten/grafana/docker_compose/grafana.ini.j2 index 65f7bed..96c445d 100644 --- a/resources/chaosknoten/grafana/docker_compose/grafana.ini.j2 +++ b/resources/chaosknoten/grafana/docker_compose/grafana.ini.j2 @@ -11,7 +11,7 @@ auto_login = true name = id.hamburg.ccc.de allow_sign_up = true client_id = grafana -client_secret = {{ lookup("community.general.passwordstore", "noc/vm-secrets/chaosknoten/grafana/KEYCLOAK_SECRET", create=false, missing="error") }} +client_secret = {{ lookup("community.sops.sops", "resources/chaosknoten/grafana/secrets.yaml", extract="['KEYCLOAK_SECRET']") }} scopes = openid email profile offline_access roles email_attribute_path = email login_attribute_path = username diff --git a/resources/chaosknoten/grafana/nginx/loki.htpasswd.j2 b/resources/chaosknoten/grafana/nginx/loki.htpasswd.j2 index 0c2f8b7..0b887fa 100644 --- a/resources/chaosknoten/grafana/nginx/loki.htpasswd.j2 +++ b/resources/chaosknoten/grafana/nginx/loki.htpasswd.j2 @@ -1 +1 @@ -chaos:{{ lookup("community.general.passwordstore", "noc/vm-secrets/chaosknoten/grafana/loki_chaos_basic_auth", create=false, missing="error") }} +chaos:{{ lookup("community.sops.sops", "resources/chaosknoten/grafana/secrets.yaml", extract="['loki_chaos_basic_auth']") }} diff --git a/resources/chaosknoten/grafana/nginx/metrics.htpasswd.j2 b/resources/chaosknoten/grafana/nginx/metrics.htpasswd.j2 index 6ccb7d7..4a1f150 100644 --- a/resources/chaosknoten/grafana/nginx/metrics.htpasswd.j2 +++ b/resources/chaosknoten/grafana/nginx/metrics.htpasswd.j2 @@ -1,2 +1,2 @@ -chaos:{{ lookup("community.general.passwordstore", "noc/vm-secrets/chaosknoten/grafana/metrics_chaos_basic_auth", create=false, missing="error") }} -fux:{{ lookup("community.general.passwordstore", "noc/vm-secrets/chaosknoten/grafana/metrics_fux_basic_auth", create=false, missing="error") }} +chaos:{{ lookup("community.sops.sops", "resources/chaosknoten/grafana/secrets.yaml", extract="['metrics_chaos_basic_auth']") }} +fux:{{ lookup("community.sops.sops", "resources/chaosknoten/grafana/secrets.yaml", extract="['metrics_fux_basic_auth']") }} diff --git a/resources/chaosknoten/grafana/secrets.yaml b/resources/chaosknoten/grafana/secrets.yaml new file mode 100644 index 0000000..4c8b251 --- /dev/null +++ b/resources/chaosknoten/grafana/secrets.yaml @@ -0,0 +1,245 @@ +KEYCLOAK_SECRET: ENC[AES256_GCM,data:NIj8QlKUAQRR2/d261B/Dw0kUBRhK02Yu+exEK6Wa2Q=,iv:yku1vV7OMZM+Nu+p0ARLhBJaONmar/bMLPJ4B5M0ZyE=,tag:J86R36s3oNjPJmDSAU5i0A==,type:str] +GF_SECURITY_ADMIN_PASSWORD: ENC[AES256_GCM,data:xua/P7Bf/KWaZA8WPz/nZra+L5nGdlnS,iv:QLvhdFqCirvilYk3MLJWThZ1R29HBoMirjxJGQj2UU8=,tag:vOFCPn25/4cAT2p1GLnJ+A==,type:str] +prometheus-exporter: ENC[AES256_GCM,data:zQfc9NwHSLnJCDjnS+gGTjxXkEUaim2Pusv48QydYe6sErjRrw35bEfZyNlP+SyffPNY1gD90riuuM/QjIUIsw==,iv:TG41lDK0evzMU66A/rhXLCjSysbTpP4NrzEvKGznQzE=,tag:pIGNSG/ZbTFgdgb5YATwqw==,type:str] +alertmanager_telegram_bot_token: ENC[AES256_GCM,data:MzTEoeTyd6lCw9oFgje6CWnSk9G9LNJ5CE81VxvflAVQgqsDAGT6VFJxDKa2Ew==,iv:VbP3xie4MF80Hq1C3RadRAmmamtHewhKUwT7uHTPtKk=,tag:usAfPWVU/OCz+eEUOezWyg==,type:str] +loki_chaos: ENC[AES256_GCM,data:kZP2qoY6u1VpVgXejCOksxJwbcCl71Ou7LzRR//n,iv:TPHrRnUemVWkuijsKzI68hnV9j9YuoalBZ0s+2g4LW8=,tag:7XvjRfpWiBptx5ZIOEblEg==,type:str] +loki_chaos_basic_auth: ENC[AES256_GCM,data:O81XiVhZUFw5MelQYeU2DGmYW5h4kK05ZzqM1l8OVQhMSuX3Xw==,iv:blfCQcFNl70SxdgR7QWKp2kGls2tZlrq1BPmwu81cXM=,tag:ytQVh3yicsPlEHgmCKwqvA==,type:str] +metrics_chaos: ENC[AES256_GCM,data:B+T5cql7i4vrXzn0pWzExTZcXTGewGDGap17c6so,iv:0QVxT82KKBZ6rV7PbiH+umAA7fWSHfWlN7aMCGbljOg=,tag:joJagfmPa4rePrtm7DWwTw==,type:str] +metrics_chaos_basic_auth: ENC[AES256_GCM,data:p7B1UsHexLQwI3QDNOHXthhkioahtbtHbhb22yz9zo4aCTp1BQ==,iv:uwvHdzZGifVj/WHFNAvR2uEvYpX1T6joIMVMqzW0Vzk=,tag:6PB0n/Lu529hkOuJtfms4g==,type:str] +metrics_fux: ENC[AES256_GCM,data:/bpIyeW1zCMOXHSbS7cFllrZbHh+3+QSp/oU79kn,iv:ylcXL3Rq+oATWlspfj25qhRA1HHmjXGYwBaQAcBMeR4=,tag:og8Yqp5ylgvoEpvACLOF7w==,type:str] +metrics_fux_basic_auth: ENC[AES256_GCM,data:YqIxyr1TPWiwV7R5q/9o4hJliePmU/+OZpKD47SzjpOltdTC7Q==,iv:BVjXxEAfkJHM1JvP78rN/PUeLRUyDMR6zVmsqDhmi2A=,tag:4+LGGeJ3oDuUhA9lNFZ3yQ==,type:str] +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: [] + lastmodified: "2025-05-03T20:17:48Z" + mac: ENC[AES256_GCM,data:h2+Y5NjBoscFdp4rcSSkm0s2UMsDnjr5P9kPXcLgaGa8BG+7uEILZuCl3Tb60CnqmWeXXT6OxJsouMIN6JkoOUieZRkqXe5+6PHZ0HthO99JZtz1cyb5ERhB2Sco5gv7ik+Q8i9qRX+YWh2zIpMq68lmKxJUuc0p++n6DAAHRps=,iv:SQS8szYbDwMTxltfhS9zkHnA0rXOtgcsst1sPEMFxGA=,tag:fLRLTOvkBFbmTlR7o0wBAw==,type:str] + pgp: + - created_at: "2025-05-03T20:00:01Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAxK/JaB2/SdtAQ/+NUs4UDPZQjMo1H936WFcQnvwwvzL6+DHzkh/K2p880VT + 7Crk0krfa6raPhWqLAwLxzscnTOd5U5TR50aCK9weRdHwkr8eNcfnFx5GvnRXzun + i/IL+/7QErhSRDJTIuZ/dR2/vRqvaxysybDOI7TQkQCuJjOtti6X0oY7wyT2k67z + opmt5CKkL7f0GRDWrv6Ej8LOB66EG2L4IvzwCegg2ASHSYVkZUSDKa81DXptdOGT + 9c5ekOMBRYK/YSq3N1XLW8bqMg6/4de0es75oqtlTItVzd1muni6DmGnBxL94kM4 + KnCLrlWE5/zA3MAG6Lgrcypf/7/5VB3fcs+0cEj9/0Is+hlr7gUIoNM7BHy42D8Q + Z+Cg4LJIyD5p+no+wPI0EO5ROEJh7FkhxrDrwqvyJy2R6MB9qy7DtR1zze9fuy2N + FvWL/nk2gjyLYNc0Q9qt/FBPOJY53e2CwsL6zS42TZScBPC6klQlaQ0BbcrID/Ng + YxG+LquoWdOerMTZdm6Npkhw9hh8HMhIb8MRq0k5TrRlm6MXexfZaaMA3WAvbJJP + E5T6N+1cvEqaGOpjDG0+OXqaZbGXqLFYTHQnyl7Roq1CITr1yuZzU6vo35cTepeI + saBIkHb64QhzBjYNYV8+aUZMEjc4HD2ey4xQRFoJoW7diT4ZamlgbV145CYTBJHU + ZgEJAhCWWrfjM8xeLQQu+6h3UYAlDmMwMky7Ri1twkhenm/Ck/M9Jpcp79Jjb1MW + TYnVVV9yoN7C/WFuXfYHMd6QwOvH1xX/98vRn+77XxlGfson4dzLC8ydqzKqoqzZ + PvIYE0B48g== + =s8Mq + -----END PGP MESSAGE----- + fp: EF643F59E008414882232C78FFA8331EEB7D6B70 + - created_at: "2025-05-03T20:00:01Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA6EyPtWBEI+2AQ/8ChGGTFU4krb99SLaEVmQ5cFb0GA+YzDuN/+c0vsobq+g + LfyU/XiUHpJFdc/bBVzipjLQPPlEw42kd0kswOMb9zTbG6ytJzPGMMqEzIy1ID6y + lC/q3DHgjWQtYFndjs13rQxRkbN3xKPP+07VzZGXt2896j/xL3XSm5TXujpqIIJy + erS0BsbYFlAT/qdJdFkoqJa7c6j4/kGMMgl6rUpHovIOzBLWE+exnef+eOdzJdS1 + Kk/3wdzx7mItjQ/eGgs7HnyD/hfPCRzyRnoOEvKLS2MTLL5hhtVEWI6E47HxsdKF + z/IHE9JAYtfXB9WlAU1+v6qVRTY2YbKqhJvoMEWUQyjWlPV5zQC4H4fyeYCpEL7/ + 98UEY2lkCXfkxQNFRy6gTnuVZXfiu9V3ba4rdN13F2RZ2f/051jzo4HASWIHGQGU + zxp0T2x/7g9bradsnAiZSAa2iS7T9F5qtKHwxgfQLnhZ7/w33tZxmnGhG3M4O21A + wQgm1DZprEK92jMxMkjmY+cPad8Kp9ptuFp9sX5sGwwTaYcCWAkycphKwHuT7HYY + K2HvzAKEc1Ga/vLpb5HGVNuB7yntVFWAoN41A+zIhn9z6/qiPZms8oXw948CD8xT + RIb8Mkwtx3tQdNozkmT5NMM1NwsnndF5GmbKWgcc0pchQ/CGHqPLaiigWf+4qnTS + XAF9EMkanZWyLb3+NyQAZed04fi8GOqpaPRdPCHwxNG+LGdLqtfMYpk9rdkqMtVP + Z9oSJ5txuFXFRPhqpQBgQLC/DPOXT3Lz87FWoGjqL4OZEPqsHsFGfBt01PCy + =FnWf + -----END PGP MESSAGE----- + fp: F155144FC925A1BEA1F8A2C59A2A4CD59BFDC5EC + - created_at: "2025-05-03T20:00:01Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAz5uSgHG2iMJAQ/+PPlENzEAwKPC+u7UaUgRDnPRoOK21hcS/LVEsO7MqWus + b0d7qVT1hoCmsHRI3kQu9B5p9obZ3Ci/gsaocZXNIoXNadTmKlTlEWjXdK84e2SE + /kLTfpJMdb7H+h0TjsE/trnzZhUCyBt5mRYNCYmhxRfoLtjyw58YA5aRXsGkaJJ/ + FbZPiSxIYlCdC/Ptih50ONYtmt5YXkILGF2Zc1bAPVkToB3XvLP110eeTYqDahLk + 1iAGCYJ938O53PACbU8wkocxHvYgkPkY7wN5WM6LgUTqHTgmCTrnTm6tnfLi7dMB + UxZPrVW84t8afdipC1xsHlZXr+XeUG2ogHs5OLDscZCNE2YLTtacuW7Xain54A5r + E8F5FVqmv8o5huyqiff6SFxqqXCPdQSI3aDwBtRJh8MwGzNBKTd/KQQVThNT3PDX + km2V9Fq2MoIoKYqJkX/Qy3e8weqY+mBNXFEDlDr3lyRSFT+R5WSXH5WPr3hYcGHW + OtRgJTTrlrFfRA8RVlkk5oPg7ZjtQg+Xw4zGC9kxTXk2uEvMxEZke+wtHWUYIHlT + mxtWLGjQIh4OPOwqlz9eM+4DiSrru26OUiXZu/KzMXpGyfYqhqPqRKrpfQyVzc2N + AYv0deluEZY5FiqaCd+Xn5ywC16SNxDG0uIjsWJlUNzuYVMlVW2F+bQJR2I7tZ/S + XAG9XxQXz5+sy089kn9m15woYfvSCvf+GAJl5df5FTnenjZyS/cuC9L71eTtPRpQ + EWdwJWVk24uZ7ZXhimnexkTQ+p1HNLCNJ45orLd0kHYYi3aCmQKOINOIFqga + =mRPc + -----END PGP MESSAGE----- + fp: 18DFCE01456DAB52EA38A6584EDC64F35FA1D6A5 + - created_at: "2025-05-03T20:00:01Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAw5vwmoEJHQ1AQ/+KFwDbiXnhzYszP8By69MKyfWqmLbLW5V2yNxY1Lb7wVp + kzRXZmrRmQ5cTmo8UcPn7+V0EWTv10RvrBc1wEsSNDRhszAvPBdhiGH9QeqI+R1M + t7ohFuTKtNEgg1fEJv0mHF2Dl7pg/nDEs2xYhGFLa6gHQH+rNKDEAX2Wr/JlFPIf + Zn+uOx2GtkfZHQs3vQ088mhfvMaIrSMozEDnFHKSuc4ZDh7Uo8+tfeSyG6HFa/oT + t4k6xt/0MpHEvyEStdlR8lcF69o82DHEBI1IFSR1tu+80X10LT6cptI37H7Jo3vp + eLU7I+BDHKX1T/LEF702wabm0H7A3eaE3RLn8LIM3TF7KAW/286TQ6aSA4KHRMpO + Y4cGLkLuQsg/HQaeAYLepJS9qOS68xLyHFSUxKK9oLgr77WvTWt8kJC2TwRKTSeA + hrBDuPeymU/0ljub96YXBvA27QgeGQxyAII2rBDxlrlvoiLgbEdF9LzzN3/l2oXS + +GTOv/odiMshSXZtjZLC1bSjRlhepmXOX/rc6sIBfbFU+4s+sQvQiIrugqo/bZZS + cmHT5SbRLlknTLTMibu3iJYVLgyK1148PeFimheS/xYIiMJ8a0zXMAVVJa7Iw7je + sj8Jglvj4Jyerx0EHXIBbXaZ0tmIM0colGDt3WyMhZ786Wsaf8Tm2vg4+vXofdzS + XAHAUO60LHQdnyFNMMICfhSZBCewnzGsaf4XDtbhoC4MH4KMboRfr3Lj6yPHSxAL + htSlOKwHJ1mtKV/j3aXFr2ckSIjBk0O7qe+NhjgWyn/ei2auMzUAYh/gpMKg + =cR1r + -----END PGP MESSAGE----- + fp: 87AB00D45D37C9E9167B5A5A333448678B60E505 + - created_at: "2025-05-03T20:00:01Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA4HMJd/cQYrVAQ/8DJhCD5zkRdM4yyl5uIZV2k7WdA+aTCtGR4+lR6aKKib1 + jNnzIT4C1tBevolfv1Qm9h0/dTvre9DmhuQzKv0/T83h4NzWVQj+U/0xDuGuydJ2 + NGKwWP2svKf0pF6LcCfsmCIjfENgjpMvp65wDfQlHYCP1VcyRcKINRTVYHSX8bGH + LUkMiW7zy5gnV1PWl9oRsIG/lVGvVB5uKxv6LAPj4wFAEN+fIr2x8uBH1DY2UFyI + A3gfuSvKFmcV3c6nfmhQh5ywxIU0oguuwZOs8zK9nx81RmmiJvf8VXusGtZH4Hfq + Gx0GbpzoMZBmKxgiOQ+0HwV0UT2upEIYPnKb5sZyaLwmxnKW7FPxTwo6vN8QzJjy + Ep61YFv3Sy09RccmGHJsr/FcDdfP4W7S1gIJqO9RgFcC3pJh1CZvoc3+NigsoyeB + MjRBQLA8eoO9AEvH5RMtiGyJPl/vPrc2WlVBy3TaRznJIdUo+WuoUvaW+QvWdulW + F4XXosgoaeyw+AYSA0nEV0qR3YZXNkJY/+r/mZGfi0SIEccztlq/BPtpMDgzxYjG + mj5GvT6Xg4q0F8RRfZLCqQ7yRhFBIsR6+BIJulZj35FELF5oFAvB7fxdZ2gHChWs + fg6kTRI4QcTBLLkoWHUCgrpEw2+O2UXQRSZZaiYmhCb3eynShBPGbWPpbXAPKmXS + XAGFafpworKosNggfs3piWGs2b7MV83tz5uf7e9QPGs+c43JXICuQS00I8Hgnwzj + ybdbM1m9bHvKucH2eWU9Ks9yPreeIbCsQ8MlSX4RyIDcECW9eFl8rtfqC6LF + =h99J + -----END PGP MESSAGE----- + fp: 91213ABAA73B0B73D3C02B5B4E5F372D17BBE67C + - created_at: "2025-05-03T20:00:01Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAxjNhCKPP69fAQ/9EkRT4O3pmCq11RH/doz7eqabPGWwSY9mpwNZJVjdP4Op + +3zzTeNAu7+Yr62g5LhkC/uTu5y4BCFHHuuRdevLtwFJ7H7avACQF3hK/bM5rjN1 + MsdnkhtNpyvBKV+RaE78Ji3/AuguEBenwLhwadwFWuUItSfmAuaLKTQsotDZFzh/ + VroiTqtoLV5AxYTluNoWK3+N0TG/z5nMg1Ui5DiWlwJ3Tgg36SxqogF3LKXAqZVJ + 5X7TLSivxptgmugZjua93iqyBCyNlktj/dNrqd0/YIg6xsznNcKsN23jQgQw2Ku0 + BcdO/WgV42hntzEo99iPn67B3S0O82H2MKno7AsQ9fZ9UjznQ712S547656PHYAq + gSCSolaI5piDDPLPrp78jm4MTIsnfngaslyPK4WzOIkq0d0kPA8LGwhtuIM4mEgs + Wu33Ir9N2yeDAE2MnJ7ySv9fSs1SJenw9jijRywCgy/vDvQaMa2czp/kqflhW43u + HcVrW0Tc3FHz8nIkDya0QXrSt1fj3eLREhNinbr+G63uBl5UCLcvh9e3sxtAgSZu + XtHi/krLkAS0r0rv29y6ap6adtY0VloBgOxZhTYPu66Pha5werFAeOGdXX/ONdTC + ql5KDMMEa218/ORRDLeexmR2PrrLgsDp4NTtiUw3GnYDN2iDO5e9xEBtRiWAgiHS + XAFuGmfCQyTR5qXCFT+ZCa6eKL9XoOlSa4cbef4HrHCyLV86BSS2eLQ3/kr09RGw + 6AwV0PJAKhtCSk1F4OywOnJJXyrk3uM3hcFKs/+ciwuK4qVi1YdKocuzwbXN + =cvH2 + -----END PGP MESSAGE----- + fp: F38C9D4228FC6F674E322D9C3326D914EB9B8F55 + - created_at: "2025-05-03T20:00:01Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA1Hthzn+T1OoAQ/+KXpJutmLY2Kkf2DhxAaq+/vuIhlT/pNAb4xbzzhcOvqF + Kv6r/y4qj/I7Q3QTbSX9cnvYoRDnnBA6WTAKCs0Q2SWOK//zT3IZ7cl+hHaVcIK1 + SFcog5hwPOyOe1RJaP4tQzj3Ja8G/UxA0DbtSIAkZ0srDcv1nm8+JXMiw5iJkQ+0 + AZvmTIwDsGqmWWAN5Q3sl5eJE5qwFqRUrRVc4xCNwYLUYG+8iinFvBI+0Bn2+yNs + JnMeFDJaatmSZUv5qVUpYZ8dX3OhPhSYzRbmiDKr3vGsKtl3l2BGE1CUoXQvctDr + YKWvl2aI9gP1u6T04yAuZBnaX2UwWq/pMvlVghQOfBvJv2R7ScN8fAn8RM6PYaGz + HSAP5Iit+45/i7GtPpBAB0Oqd+6gtfF67ujMWDB73AFRt0uKpLnwQnYbs5m9YJQT + Pgq1YWeH3hA0amlseuf8AZjkZJr/IqBhGvYD6zm90nWTbZHMrcKDSlL2D0QwOuas + u4SEwpDPzanXyGF2wRAm134ClYljFwLAjoVuk2v8BEtlXNCz7bcRuFVkHLHsFGGF + kczStk9y5BUn3Gwl9IvypO0dfsRYBYWdiu/GnZptiFyJ+m64mFb2cUdu+FoiQcyj + fgz4eWg6FxPWdwc737IisbFCfo5qdR1tfiusPuiMMFgpuV0rlAkIme9QqtYhZSfS + XAGLUKC0wQ3nwlXoV5P4ixjH5wFwkUnUJjnYMA3y+CxWks83LkXW0SqDPTTIuUcs + GYaC2uxr60JFJqeGz0PG6Ul4AJX0iXCrzRaA5tLRFH++esQr1SUYuExSOuvl + =jQg1 + -----END PGP MESSAGE----- + fp: 5DA93D5C9D7320E1BD3522C79C78172B3551C9FD + - created_at: "2025-05-03T20:00:01Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA46L6MuPqfJqAQ//fVJ+MdZXrxj9XTS0zIjnms1IjdrvQSe1KDQPAM+4v8Ef + d+8oE9uKBOiPvkfLK9X/soM2LVi5knOcjFIVe60/Gy+/RBLGeemga9lJ8YP3O2h5 + bKlErkYTufXW4V8ieXciAcbK9D4Eh1UOt/MnAMy3YgQwh5x6uNTvHjhNPk5JJt+R + gsL8pZ86bbSfyXLnR/j3eO5m/vUfE9j21rHrsB0Krj1McWjCzuvNg5zsmyzs807j + ysqyj2XLBiK2T3+86OV0fCjcZ/padeNE8y4nVgpIqTu+nPk+qwsUYRwBdPtNgxmx + ApRPiw+6VdOIWasd/OVG8aPnQPgFfOyqfzof1RsTiYmixR6hnGZj0skCCkrcl85k + vPZECREW/X70Q4jCJd65Ca2vfHwukVgsqRjkwfIatvE+qOv408NJFIFArwwdWPa8 + SQmia0U+/ESbQOGY5jvGOLWrYaGwPm/t/LPDaJbEp23DmYtAiK9hGG7IQIpG9+cO + l3Edtxki1mE/wAnhQcZC6aSYHPrT2v52kACiV5V4CB3kZR/anqho1Diaj874N/IT + g5w/CiFysOAb9RKydWTSPCSPjDJRGtvhjeZAyee7ejl7ArJbsoZ1t4+gDaijIOGF + v59+SJ96DccwjWjAHL1M6jxwn69+clcfRNnBTdTJIHqllppa63YYiVxjCp8yflPS + XAEbxPZ7/dxDXMmq0StTPn1hxeZgLcipx1NoPLzRSniZp8/WzeG13lOb7RzRZOyo + sWU4rT7OZuhvT4dxDsOcnMdfZLp552ipWUXjXfBYQrW/0ct3fGoQfixuepiR + =kUQT + -----END PGP MESSAGE----- + fp: 8996B62CBD159DCADD3B6DC08BB33A8ABCF7BC4A + - created_at: "2025-05-03T20:00:01Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA4EEKdYEzV0pAQ//Rods7PGeRCDf4YLwRBNPQFfz67K8es53RmWZ9oCKiLyA + gt9cHF4JeMgKMX20LtF6VUFtJjT1SjkVpw9z6ZDkVMj0BjZ3OPH43mQDkeWxHuwD + /CIkvStntx3Yn7vruz/PT8H7Jhfj9oOnaS5pgHCbqmadq/k6qE886DXOXAeq3R7e + MO7/3VjsSbdldfJHXVvmsfeJUdwGkXjJUCiKjnpY7ZmQeSqmDjKHOKYlhseowCNl + AOK7Nfq6MhyQBlN9FQh0JAkG0cBYW4sR3zvoZCbxMY7siHH8UkLPzltSTFYUW90P + YWdyjr1hPJkxUTWvq62EwM8vDuUFKwaJaGAEk91IgqIu0d1d30cR5UxJB0DOoQVb + sHUD84+zTrQuEwDixgK3XZYBW78WFM1vUCHNcA942E/hEQkjTz4zaLB8sPh5wAV9 + RME8CNcqXAecjCtQu1SHWUY0V2jYfeDkxvvfjuscvFpyobwiKb6cFKDshygHYa83 + 5lwJNmwaLfkZbyN0yOh+sHl/RotpVgP9UcP2/+zLW1wGb+EP91VUe+cxo+nrtNaA + xjS8u7yjx5jTdxb5k1vPfaWLAGQwjowhN2z2ht741pYJHp8yGGaQNblyTOm0YAi3 + 6Qznaog128dupKKfl33aPttfCATcS6EZGSwFogS70GFWXTPKu+I2EleUjgi9AQfS + XAF+kDjRMiR1IiKQkcVichkKo09P+2rBD0puo17nE4v1DPeu67f0UgElY/dcmHuD + anxTlCt1Lspqf0G1EjypDIlHtVgUjPpsudFOSSd8QqUjHGUMwEW4CXaD2d2B + =EZSN + -----END PGP MESSAGE----- + fp: 9DFA033E3DAEBAD7FDD71B056C7AAA54BE05F7BA + - created_at: "2025-05-03T20:00:01Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hF4DQrf1tCqiJxoSAQdAzl/SXf4vnc/vpZMYZVjV9EkRUIs4G+11iAUGFgTMoG8w + Xnq/dLi59VpKcXwBp6+NQy+OchDRNfVwxcRDUBpetOwidt1D4K9CDrEt9vFDyCJx + 0lwB/fJHu88keeS7s9jD2nNwGeCuZvdlnIvgag82BnGkd5zYPYnjA0lbeUXywuaa + R17Y5caW+N4lslwxnp6UDLzQWJGl9HcRwK5kbxRH6HaYkU6CyFL5EOKs7w88dw== + =HvK0 + -----END PGP MESSAGE----- + fp: B71138A6A8964A3C3B8899857B4F70C356765BAB + - created_at: "2025-05-03T20:00:01Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hF4DzAGzViGx4qcSAQdA4zyupzL6dLotZwQQC/AZ2vklAGwbpaVu9XgH9H4WH3gw + SG74mn/Ze5YJYR1dOfEKmk2/mFZD354v38nf1N9NdeTpRT+3NVXy8EYHu7pGNHy+ + 0lYBT0Bm2ZFxURsAbGtduD7SUR/Z7cbq4ZouG3Q3ZOvOLoIHDcsAohfr45vvqa+l + Yf2JvBgpgietM7OP6KBJIrAmfZnMlHKKcMDvvGO87BcOQl6qgjiqkQ== + =tZvL + -----END PGP MESSAGE----- + fp: D2E9C0807BF681F5E164DAFC5EE1B61CD90954CD + - created_at: "2025-05-03T20:00:01Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA2pVdGTIrZI+AQ//eNA2kWh8DCMa4Eed7zagOMM1MSmCbX11NYtqOWEaN1mL + dDSNwONujGgLDJWJIWOvD38iJ13ZOr/R469n+Q0yFlSj5M9ARfXtaXgSB4vNkOWK + OpPZZJUo0rC0LA6qLke9ZV9McbaGGgfUrAtDd9CwO95h9LGD/i4GoHiwSbOz9PZr + V6jZU0AWr0vVL8jjdRWoZ4U/C0NqngxBPqaZPcmwdRQoP2P2gP+yt5cbULYrk64+ + R9WL+m0zZaIp+fhZjZBDzgBb0//FxdMA5KyhX5sMn8gkxwjV5+at2roqwFkawnjV + lRgVrKWr/wo6L2rnqp2X2VuuU84EnxSw+jOWpc8Q1HNIlwKte1dfp7QigtEjqEI6 + z120khHBydlyqel5kOwFqr/Mrem87IUjzqAJdxn/UHolEMoLpVXQofqNYIwXUAWd + iEuAcGIXXVwtK9GMBhDbM1RbGc1ELvwjllg3Cs2cFzKHhAcFV8wuNufwZqBd8eo7 + B5kY0DkdJseV81BauaqecRnTPQok8ELXZLQ0+YkDfrTWUu26oPz7kSNXOeYby6m9 + qkczZg/qiyxi0BnO/QLasUPfG9N83zessGfwPw+t5AsIhHbHSM4JdfzQObHDgSBf + QGiso8QjBmcLVnToBIIZriYqM7svtoykY3Zrh58MAl4/Yb/fNNHvB8TyBmP5PCbU + ZgEJAhD0xdSQDsPzXxaIeFEiHOey3p9eP78OwwgQxo/RzAHw+4FsT0w8ncQc34M0 + xaJTV3Fl6rfqCjEghRPT93AhLR8EU8gsPGf24qFImOBtYJoDmixMkjaR+jC+pE1C + Icw7BRUf2g== + =v352 + -----END PGP MESSAGE----- + fp: 878FEA3CB6A6F6E7CD80ECBE28506E3585F9F533 + unencrypted_suffix: _unencrypted + version: 3.9.4