From 60b2093a02c2b067e75b0ca2c82b096a2f8748a8 Mon Sep 17 00:00:00 2001 From: June <june@jsts.xyz> Date: Sat, 3 May 2025 23:08:41 +0200 Subject: [PATCH] netbox(host): move secrets to SOPS --- .sops.yaml | 15 ++ inventories/chaosknoten/host_vars/netbox.yaml | 2 +- .../netbox/netbox/configuration.py.j2 | 6 +- resources/chaosknoten/netbox/secrets.yaml | 238 ++++++++++++++++++ 4 files changed, 257 insertions(+), 4 deletions(-) create mode 100644 resources/chaosknoten/netbox/secrets.yaml diff --git a/.sops.yaml b/.sops.yaml index 98c8e21..21f0134 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -102,6 +102,21 @@ creation_rules: - *admin_gpg_c6ristian - *admin_gpg_lilly - *admin_gpg_langoor + - path_regex: resources/chaosknoten/netbox/.* + 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/netbox.yaml b/inventories/chaosknoten/host_vars/netbox.yaml index 2304112..7fcadaf 100644 --- a/inventories/chaosknoten/host_vars/netbox.yaml +++ b/inventories/chaosknoten/host_vars/netbox.yaml @@ -1,5 +1,5 @@ netbox__version: "v4.1.7" -netbox__db_password: "{{ lookup('community.general.passwordstore', 'noc/vm-secrets/chaosknoten/netbox/DATABASE_PASSWORD', create=false, missing='error') }}" +netbox__db_password: "{{ lookup('community.sops.sops', 'resources/chaosknoten/netbox/secrets.yaml', extract='[\"DATABASE_PASSWORD\"]') }}" netbox__config: "{{ lookup('ansible.builtin.template', 'resources/chaosknoten/netbox/netbox/configuration.py.j2') }}" netbox__custom_pipeline_oidc_group_and_role_mapping: true diff --git a/resources/chaosknoten/netbox/netbox/configuration.py.j2 b/resources/chaosknoten/netbox/netbox/configuration.py.j2 index 789a539..287786c 100644 --- a/resources/chaosknoten/netbox/netbox/configuration.py.j2 +++ b/resources/chaosknoten/netbox/netbox/configuration.py.j2 @@ -3,7 +3,7 @@ DATABASE = { "HOST": "localhost", "NAME": "netbox", "USER": "netbox", - "PASSWORD": "{{ lookup('community.general.passwordstore', 'noc/vm-secrets/chaosknoten/netbox/DATABASE_PASSWORD', create=false, missing='error') }}", + "PASSWORD": "{{ lookup('community.sops.sops', 'resources/chaosknoten/netbox/secrets.yaml', extract='[\"DATABASE_PASSWORD\"]') }}", } REDIS = { "tasks": { @@ -23,7 +23,7 @@ REDIS = { "SSL": False, }, } -SECRET_KEY = "{{ lookup('community.general.passwordstore', 'noc/vm-secrets/chaosknoten/netbox/SECRET_KEY', create=false, missing='error') }}" +SECRET_KEY = "{{ lookup('community.sops.sops', 'resources/chaosknoten/netbox/secrets.yaml', extract='[\"SECRET_KEY\"]') }}" SESSION_COOKIE_SECURE = True # CCCHH ID (Keycloak) integration. @@ -38,7 +38,7 @@ SOCIAL_AUTH_KEYCLOAK_AUTHORIZATION_URL = ( ) SOCIAL_AUTH_KEYCLOAK_KEY = "netbox" SOCIAL_AUTH_KEYCLOAK_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAi/Shi+b2OyYNGVFPsa6qf9SesEpRl5U5rpwgmt8H7NawMvwpPUYVW9o46QW0ulYcDmysT3BzpP3tagO/SFNoOjZdYe0D9nJ7vEp8KHbzR09KCfkyQIi0wLssKnDotVHL5JeUY+iKk+gjiwF9FSFSHPBqsST7hXVAut9LkOvs2aDod9AzbTH/uYbt4wfUm5l/1Ii8D+K7YcsFGUIqxv4XS/ylKqObqN4M2dac69iIwapoh6reaBQEm66vrOzJ+3yi4DZuPrkShJqi2hddtoyZihyCkF+eJJKEI5LrBf1KZB3Ec2YUrqk93ZGUGs/XY6R87QSfR3hJ82B1wnF+c2pw+QIDAQAB" -SOCIAL_AUTH_KEYCLOAK_SECRET = "{{ lookup('community.general.passwordstore', 'noc/vm-secrets/chaosknoten/netbox/SOCIAL_AUTH_KEYCLOAK_SECRET', create=false, missing='error') }}" +SOCIAL_AUTH_KEYCLOAK_SECRET = "{{ lookup('community.sops.sops', 'resources/chaosknoten/netbox/secrets.yaml', extract='[\"SOCIAL_AUTH_KEYCLOAK_SECRET\"]') }}" # Use custom OIDC group and role mapping pipeline functions added in via # netbox__custom_pipeline_oidc_group_and_role_mapping. # The default pipeline this is based on can be found here: diff --git a/resources/chaosknoten/netbox/secrets.yaml b/resources/chaosknoten/netbox/secrets.yaml new file mode 100644 index 0000000..7673b44 --- /dev/null +++ b/resources/chaosknoten/netbox/secrets.yaml @@ -0,0 +1,238 @@ +DATABASE_PASSWORD: ENC[AES256_GCM,data:PL+VW8UlAdZbL5CxneydeW7FiDWv0s76rRkdjRT6RfSjN6bHyL7wJfv20cc8QtE/7ACdVFoYe6uXnfygRRUCgQ==,iv:wQP9VzAH0eTDyDPQpYmsKeVThQCzdaHDvcX6eFgjUho=,tag:4jc7Wx4gY5r2XpEHhHSZ6Q==,type:str] +SECRET_KEY: ENC[AES256_GCM,data:5jtW/ymn/k20bTvdx+fUMJZZBwxclqyZwpRF3+DRJiABZehUYByjwuLe+GXiCaKNjI8=,iv:fz85tWdSaEnmx67NUqoekcVB8meZnMahmeqw5bNRp/4=,tag:veo3Qc3dwGeSj4YTDDL/vg==,type:str] +SOCIAL_AUTH_KEYCLOAK_SECRET: ENC[AES256_GCM,data:sUEvuYWlx4B/vjYdm8hZym/R3D4BIKVMTZuLZTsnL88=,iv:bbXbHY010ASasJE7oz1q585yg8KRTDcE1rFVk1lzfRs=,tag:7e7PWvwVtng1Azy5C9C3Gg==,type:str] +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: [] + lastmodified: "2025-05-03T21:07:10Z" + mac: ENC[AES256_GCM,data:PKLClihEdwtcTb20/b6ChsiqKDUesOevL5+5IEKi7D+KfCOVP7tNnjwxtsMrAUO8+ng2Vh560640pZLVMeLsO5CS2+5b6NkIJeFYyBQeOxCJ0ykuTI9d+pJ+X2EXVUAXLCpiEAywiJeWHunh3JsLAryObxn/eljDqvE5tPX0Yd4=,iv:X4FMyelmNAf37eozHjx1sO/hi6aqrcWjqGpM7kIoKL8=,tag:pMkCNAsMq0F3RPdOaZDjJw==,type:str] + pgp: + - created_at: "2025-05-03T21:06:24Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAxK/JaB2/SdtAQ//e1l1vASGqewH6svL6zyKdVbar9z/r8lpSSVyWifmYD8P + zNTBR/sYUt3OyaoUry9oFl9XyfCKTlypLi+zTWlurMDgjres0gcCmHCTKermU1sU + U+dRFyZcRH5+4+GCKEM1Yr5SY5OZEwRwgJBI4vd8m4b3POa9ivsykCiIJVtPvNFf + Nd4ngfgIAkL6j4QXypFfDqbsKSrE4luPL7MVuw/FEdvO20PubKTLGyAo2TxLcq0e + A9n9S4rY0Ke4meLUrZsb3lq3SnBN9rOvIN3XbcmtmvO6jCmenLArzQaL8cjx2EKy + DmqhPqTrkbJgy0utMGvosyaRTGsjvvxk0fU1Olpl7MzhagX2U6nKP5s+Qk7PaBsK + TEH5CSrr8YbptDUIbJqao1A0z1hkv6kODITdlxxdK+iXsi6VKcvEzFs2PTDTqPIT + lnhlzlZLypdQhx/0/DMKsIOHrvT3BgQgMDj9Vt8cA/UXjnGK6rmX1VyXRC5MyBqE + NsytdKl2JUAFUJ1+PVcDefQYgo2ceQK86ZQ0Ol1yf9sOY/GW8fCIRw1TPy30U5sr + SOVGtBIj8Hj/Xwx2Sw0DzeBwyPNa2bth26+Sc5nWWXbMnBLaa79dOOVWs9A4kSEw + qT84xg5fLH+lgQkuKHZ6YJcXA5V0a8A9fI+9xnLK2totJxtMI34VdHEozTYmrL/U + aAEJAhDnZD6rDx2Wm3S2agGmCYVQBRYluLZCGVGPFIWRgooUZh8T+PJmDWKGfVN1 + nSwyhGJptFrGP0d3nbnJ/ayK1f3HcqGuqG2WbQZAg0dR8oEFUwgHX/72sKK3mGq1 + Gzq1z7TMgU90 + =ZDXX + -----END PGP MESSAGE----- + fp: EF643F59E008414882232C78FFA8331EEB7D6B70 + - created_at: "2025-05-03T21:06:24Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA6EyPtWBEI+2AQ/+Lv5wak+JKDhr5XCCnc04KBPNFw0sb0NFfdLzwHXayHGY + chMo56UeX5UsmOCtlFqcEC+2QpXnvqNKhI+kjMa7ARcvs3ecDL0Z1cvhSn9nMKJK + Xi/IxJaGAEEDii/AL00G8M9LBXEg2eRXeuWvoxU1Lt8Id6oSmSgL1BbBPLWPLlQf + ddCCAzBajvnZ8tYDIHV3eY1iWKH2MbCqV9eH3hP48l+maR27DaT+z10s2AvtOucE + P1n3Q0QsfUrfM9XLldak4fhWq1ykmj1NyHrcLmV3ySdufkJ7amThlPiYl/2g2QNY + 0TSs2/R/VvzpveTFGXxcVveS/1KuLNzOTEwSoRnkoAqxbXb2aFV/7H5SWUDQADvB + qAHTLlN9lH0fd4adN8Liq7SgWd29pGnHaGCmZBEPExrRnKLv3mjsb4Me9B6xzHiA + f6/4cI97mCHiin2T9gxcDBvOnO3rcjWalTlsA24aO+Z0nXorBcJzoWITH4ZsluNj + Zau73K3qe2GBPtYsRyHR7nUgxpTAOXeXeO64+DepYCC4czZ2iEmtlf+xWJ3Gy8FU + nlU5ysoVVvkAtX6LZCbelecyX853f8F1B5kjkycqERgIKEFAxSo3OJTCzDe/PbCc + Pk/Zs+5enAtN8+dD+jTrHLHX9gSOZPdT32/WlOua38ELsfoSCNqsj0HTLuM/ORjS + XgEEitd3eb9U1YcGYJ258/x2v+ELhTiEVY1hYqD0j1dabZiNEpd2+BJ8tJY44A1a + 0ZOrevMWFLiu6aE5Th+xw1DgXpmrMuxtxSHBJPzs3kZaxWQ0hiTJEGs/RKjzZ8A= + =vc52 + -----END PGP MESSAGE----- + fp: F155144FC925A1BEA1F8A2C59A2A4CD59BFDC5EC + - created_at: "2025-05-03T21:06:24Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAz5uSgHG2iMJAQ//TPfUT/jQX6rf3QiAyQPq4tHghd4QUx6o3giRAANW4/Qw + EKB7/kTwPjfwXbsoLLcFf38kf6Nr7a+NkkgU6BUbRouTW+SFFKTQSVfslQfF2hyu + YlN7sQHL51e6s/geuKU9/4X9+wGECLXJ+bEBD8z2O57vvI3nHHx607EnTW7ZU6G4 + H9QR8CfQvXdOreuxJHuSxReWgivbH+4JIZSQROUqeHbAsbdrtQkpFM2njPvknO8g + a8uklHLVyFlbJuCHVeGDSgqKIRg/wGHOBsPUR8BCow16TwfgEzFDE2EkqPkb9h03 + DfpbMgYycgAp8MVCQfC1vvxG5ysQTbQ5fGTCJ48bMB78j8VxtvkfyczBmG7gw22t + gwg+t7eBhOuuVHkBBjuAd2Vzt7x3n+FrPIst3NO7UiGG3Ctf2tnSa69ZqTy3dVhh + j4USGTNetXzIdAb5ExiqLir1M1hFq/vSE+yg7q+ktt9afXrFLVgZ98zemDsVqhsj + vwsPTGBk+8gavChulmxnUCQgunpaQ8nokHVC/dbhtLM7ZIyV1QLMj40Fsg6J6X93 + q5DWPX2DPi4zqCWvZCJF18YSWR45XcsOtqkzCJbAdJKs029Y6oP92Nq8k/gRf18g + j1EeYHm5nJLySsdTB+aQ2cKmA7eIQ6gadfGs4o/Ge4Sd2RwcX0ch+dzHvB6YK2HS + XgFpVWTm/z/XCK0nxo9eMPltPL0jEM0qMpk8flVcqQMVzba0hVq5MCzkQycFsfg/ + xCzi40J2e/Feh02TPA2picple/C20CcB81Ib3m7CyKCnUf+evEmKr5scwdsdB0s= + =laDO + -----END PGP MESSAGE----- + fp: 18DFCE01456DAB52EA38A6584EDC64F35FA1D6A5 + - created_at: "2025-05-03T21:06:24Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAw5vwmoEJHQ1AQ/+N9agBO50stdifyK81Gs/u9haLtSJvt+qVv6uMaP7i/yT + /p2KmJ40SdpmN890Wvqgz5SigWeyEnhzoJuymuTwRLzYcZiEl4pQpKF/FFBokO8i + 6gDxMgXM75UkDQ0C1xv3US7zw4ePSshSaKC6t0q8gF16WIbVLGM8a9zWutTbbuYD + fMVfCLx/n+z1xGw40qGLI0NKvV/jMNRhcXc8bOmyi2A4CkTnBLwyrfOzkMQSC7Fn + yS3n4XCe/S1LAHNkN8us9iPlFzwjG3nwBeyS/vnPnF7Cy/1DvysZCmoCMAm+DN9g + jYdjO2kd8MxnYpueYzJ8+Hwka5q3yZjBAYXeaY1VIiI4AaQSo9W3qc9BPda/lunW + bW5hvVAGZ3NmjkrMSDoyUVjBJFan042jQhZjB0vU52TMv+MWpUbwqEHu+caO7N6e + 5M9nyZ39Sauvk3mD/f3OtSgRZRWwQ1dgER34kMmvVCDBDECfwNBfk44jLzzUvkpp + oFjz5PaBzdmUW9qKhCGu+2v90C+EHje5yf9N71kgVj3x/MHPooeNzhfy8X9cZ0hf + TB/wa6AGwHGGQYZcO4qLWtFJV0XkSJ2tim6qR3q21mBkqtJqnjATiOEcYgDXXN8u + pv2B+DxK5fZIZH8X457HFmVzjLqsrLJtuLvVh07Qum2fLhqWbUb3oZM0I/S5333S + XgF+YaV/cViGp3a2lGd9Khh0yJmKaDgPX83sEpBmS32kXegvBaHeLSm4CcTwmrFZ + q82qJdZzGh9w+/Ah1C7dUp8tv4oiQmtnHQ4a86Ir30BFQdgVmcvDXTWN28k28Ss= + =D/lR + -----END PGP MESSAGE----- + fp: 87AB00D45D37C9E9167B5A5A333448678B60E505 + - created_at: "2025-05-03T21:06:24Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA4HMJd/cQYrVAQ/+JMHWk7uwJBuVpOTjD4YtwRAV/tKYBzBGJ+UqCcG/r9XK + VprIs0mXljcjdvbc9udV9tXSXI4JsrBEDpUs2yW3OVVpH6d1lPo05Rj4c8b/PIlU + 8KoSvZldR679g9qocUHpCBRRNQEZJ2iZm5ISVJVCti2G8C2zrE1jin+GWlmJ2vjK + Nk0CHKb/c0GSBraAyh2JzInd6C4UJFW/ZaAhrbwYUhTo6wpJiEGTIIiV3hwEQ7Ao + Y1JVxlqIGdL9kJ0l7haLKqHLFgXQ4iItCsw5hRqeBLLzAN/NwAMQu0lqFe44v13G + RfcoO89XMn08QVAHkTT25TzT8viiKtaOS7fZhO3eAJkxWligHhpTosy0dBofqUqY + HGJh5dG7Hlm+MWUAWVQBJz8/UhkJ+CQcYWShVXFx8RqCTtxiFpLw/kTt45s7DPv6 + kzkIFsRHXK302HlaEv8f/UvRuYNFRmrGrFpXOdF9ODCaeaxm5E6A/FeJXW4KonOn + /butppRe94MaFf/aYfZL+g3VeHo9eT9HXLcRcekm+oIeWEv5t15oZ+w54aqjYOno + 8rIxC4a8eWjWdU9c6LjaHWRa5tEvGP+vlfsV4yH6wGiOK6xPlME+ikYrka5PDSOG + xEvcCIG+KrugQZYgfvH/6fUKsPRitDQHQjG6HNTSVfIHnHoqntlbtuvA3ptSnKzS + XgH5E6gSyOaJH4asmXKT98HX87iBTa4SmEYuwZqjRKipUPHu7ZBO8rHrCv3VEaM6 + btDgJG9rePCSwg+WP5TaAhFvw/5QAekmydSz9SKgS3PenzeFa0tei9ylwGAaib4= + =Mbmt + -----END PGP MESSAGE----- + fp: 91213ABAA73B0B73D3C02B5B4E5F372D17BBE67C + - created_at: "2025-05-03T21:06:24Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAxjNhCKPP69fAQ/8DCABJ4gv/PzVBW51rq41776U4UxAkt0u+VEZNlRsuQRk + Zl3osLjxVagOiTL0hjpsqUq+2DPwLmpSGK4Xm+u0lvXViZR5TNe9u7YHZ8oPCmUJ + 6hCvMyeX9UwprQBAHh9TqeNu/ZxWaVJjYhDOWQOeRCNbQpav6JmUAw30BsFDpg5z + /HhSEPxOxfPsjwFmNJ0/eHFj5PtKuRP4Fq5459EaeqUokHiTNR6+1sWjOYjXydEq + /m9XKugXxrjDJ6LrockjFXldZqfgzIUfN5Y+mEo7z0aqg6IupDg4y23p1BSxF4zN + 1wb7y2vAhAu3QZXRjF/QIjJXSgTwAsZ0d446sHGdXY+/RppQDU5eH+fmVlh4LZAf + BZnV/oFpaXuU7bxyUpyjvZuZpkq8pjtAj4sWfMGSte81KdJ2fIQwjUXJL0/2B+z9 + phl8ZZ5ceVDgfzSf8RdJC0HFf/2oy6fEMRWG0B/8BONKBZIGtSoEJFrXChadZNlq + u9yTNm+HjXPjrq6jKTgxkYd0XLv3KWuzk0RIPKsnHaX2bVpJ7zu6KMna8tAJ5UZ+ + Y04AJyCrILpGFWUrNYLNDqTxgY0wo3iPq3UJIiL3x2chKVr1kE//HtsqGq2Ebi8h + 4O5GyaH+/CO+KI1PX11HrJYBDWcKblbu50/DgJ0ADNtJYvIpv/66MKRfvAhUf43S + XgGewkjx2jTiy9u77ywc9mzZNGgvvbAlHH+HjePNm1pNklHqY6AEeufadwuc9A4Q + lfj15OcLdrsno1Kx+JXY12X2UHeyY6fpLFaJDqmOCkDULhN5EmQT66eKw+Xuqh0= + =YHP1 + -----END PGP MESSAGE----- + fp: F38C9D4228FC6F674E322D9C3326D914EB9B8F55 + - created_at: "2025-05-03T21:06:24Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA1Hthzn+T1OoARAAjQyI/TkO4z3Jrbcwl2YBm4OqeM8dVaBrhIwfkkKBodiz + uN98KGinIMs78a7SL1/7G5G2/xs9zG6kRJnhEdnsjbtQrg4Z3aifojiOvXItgf7L + JeBSh9D63UPiY7PcM1nL/7KDeq0CsA/DDQQKckpG9f55SsXhrwWjyprPlQDE8oqS + 4QOJ4I5obLDfN/3MZtjde8t4ReLQ70QQDaHG7jPTiAwJJMkFosulFMrGCnW6sF7p + uj+505uFLmsW28lK+qqf8D1qh2RlbO0tTyjNdEl63eUqQ9a6MymVeEY+SpvgEXkg + bJyqqCC4iZfO8nATxWlx8lXhcPHFL/B3uuENM7+79z2draaCgvzGE/zIY4ebp+2S + fHt9g6t+kxY+W32+tj00nTE+L3k2OOp/lEEXiJXfdf7rrJb7Mc3u80Evlw1d49aX + MXWw0nk/yUpwnAD0Tq6zXBO+lst+CIqLGlrxPbWXb+iAovSHrSj2WbmCTH2P4KsA + lC1V0rwUddP9rmdIJjbjEChCQcYOAAIGJcPGVuMeTGm5B8fXl0SwnCeSZ36RWl58 + QybH9ZUobIl0n1OnuiUncB0/bQG5wGLFj7Ett5dWBNW0er5x2eBTlQ+lEEPNVzxc + 491jO+YNqWHwL8/wqZzoid5PVRfR9f+bEjIbcFfdd5Oq8Ocq4o/heemMNu9oNzTS + XgFicp6aTdkEbaHhi+Jw01DWEIltO2o5mlZcvXRTaZjwKRL4BMmwKxfGJAYUkF4K + /OlYm+rWtv/q4qHXsejLx4Wn+pzcZJxQcIlo1c/iup+m/tOmvWhWdWuI1G9+oa0= + =J/ki + -----END PGP MESSAGE----- + fp: 5DA93D5C9D7320E1BD3522C79C78172B3551C9FD + - created_at: "2025-05-03T21:06:24Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA46L6MuPqfJqAQ//WVexFLcpNsUwSQAq7lN0M3aBVi2+V7kUcPF565ltzjNL + Q9QnEM9a8HtUkkxca6IlTFPsigCxeBxEFAvXcUydubo9xplbmDoKXas+6rjF8shF + rlvMfqsvrmb2slPdnf+/PsehWld7rHq9YjeHb9Boz1pBK+MrsIUblzEd3dDvXRWZ + 7Qn658/pd1s7G8z4o13HhzhEHQlNSRhU7RJqjVLkJvnzLt/l1I135lw40upVQV/+ + h8UUbkLr8pkhRoEeyGfWuI3Ut0d3/xFgYV//3NyYWewvp7CvKl7ITnKJI0dO0RsQ + Ci+Dp540CD292hxHTmeEE6oscOF2/RspDnu8xvQl8JXCrBIYXSJXYAjIpmFTnOXd + FddG2PuecH6lQD/U2QZjQwkfhGD86rBw6G9vtVxQY2vKs5/+0liSwMOpueCRwlxE + 0uODApzFOHiK25jK0K7in2fYGDWjWK1YgPJX6zgXeIHIgbqjIju5d9XwPcjqOCqO + Yqr9JunLWRKjal2FJy0pOkQoJ/uu5czBic7k/fB1De3Rp84Lcf9iR3KNlTnXsHqP + XoPbGmtZycvXeovh4Gh8YVPMZir9vRwuAGmZJ6Ot85dqdgHxNhW3n2enrkrlX3c4 + m+Z2xQn8fFVNWHepuFuZ5w1BoVa3I6G6p7K0AyaaBDXcxGnOrif4WYz0MQ5f8onS + XgG1DJaoidGPwCNhPsctxazcjulTONAGoLCquEidMtDSrRxLqxXL/cWjhnYphaXL + Khnio5A5Cpm+Jq+Hp4pBdMmRmy5upD3I+Gav13uT5lBf/9P+FHoWT4lzRvSIDZM= + =u9KE + -----END PGP MESSAGE----- + fp: 8996B62CBD159DCADD3B6DC08BB33A8ABCF7BC4A + - created_at: "2025-05-03T21:06:24Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA4EEKdYEzV0pAQ/+NP27FFnjzBNDhobG9wRZ/LxqhtNicRuamag/+Vq50l/X + KqRHJgf6B4mpgK26m3OmehBat/HNYi/A0ZReV1GlB2eTen7Fm8YmA0QeNuwSW5TC + fjlccV5uAwlwcCrjXFm3fngYA2gR6B1s4qesMmIycXto3KAGytWSSv2Fosj1ciEW + xPV/iY0X1A3dBmocBig+WMiLKl/3/J2+0DoibbnJd2BsxgWSVynHwHvVeud9zb7s + NpImqGOjIPEbCb/g0JqHoLcY5Wud9GkpBnMPzKDT0hGyAD/uLzsPQYKnxocLV3GS + 8gIl2Mczz3DJ7/QpupEm/auP788q9802tvaeZL3J/zVYeUCI9AVjcirmO62lsWMa + dPCurVdSrGQtDjiMb0LEEXUJStMR4jg54iNjX3ZibiWwZCmcWSVb3rTdNQ3/ulf8 + /tl3zcmz231BpuSFEL/FMqmQRyTWnhcxKdjbFQkhn1wj/zDpoWWQrJOEZPznfDaw + qmGUJtqH79aW9B/UjBT3o2F+hYTJT0C4M3o/FzWoL5c9N+BV3pkChwcu5Hpzp7w4 + af6TA32+wOGN+clDCw1GdoY7nwnIuOXdr/RsJwaCEClfxxmv4jtaoeN/jw80ZkhG + EbEt6tmK52E5acaJ5+DkdQaCJgEqfuXEbDD3Ff18ogoCRPme97fA9bT6w4EsJL7S + XgGoza9GZ/6cY1qxbsDGLfSAsO1MZtF2Tdi6VYCQrmbPpu7xIoLkSpstUErefLPS + rlhIzHBJMuevAYE3nj64ZRZn0LJntYqUA6J9wqxjFKcRooeNG/ZzHWdrKoCdqfo= + =evpb + -----END PGP MESSAGE----- + fp: 9DFA033E3DAEBAD7FDD71B056C7AAA54BE05F7BA + - created_at: "2025-05-03T21:06:24Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hF4DQrf1tCqiJxoSAQdAEnokPN5Twc4NuFqnxUUsz41bFJAvb6Yo35z0QSONZmUw + LrdW9IYb/VzENu2kyBZjus2WzVIPkZuPNTogekkvZEEbYEtgX8zhOzw8KJREWcru + 0l4BVwK2WHhmfeLSuFg3C6bB+b25bPzagvpW2sQjkrJUStDneKwOEywgz4J6SGLj + F6Lyi085evOtfmt/Bwb4HT4geUKN2iRevWHSXTmnXYbI9eKR3peWzDmt3v1pFccD + =1hh1 + -----END PGP MESSAGE----- + fp: B71138A6A8964A3C3B8899857B4F70C356765BAB + - created_at: "2025-05-03T21:06:24Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hF4DzAGzViGx4qcSAQdATvO0hpZrB9DlwhBc9i7ewDgHxO7UZnerrmIMAtTcVwIw + VNtd22roiR/VPliu2owkEAirTkZ2SQdsWDm0+wfASiY7D9+ZT5D5etBOwqKriIHu + 0lgBsoDwILXs93TKTIqjd0klQCoKm3XYSZpSkfg80p0gJqIT02gH+ME1bcXaOdEv + wnZyOI8apbwiRj5tx+OfrPenTwn9zBcrN7wm43RHnZNwVRIeeXvJUlj2 + =eGBC + -----END PGP MESSAGE----- + fp: D2E9C0807BF681F5E164DAFC5EE1B61CD90954CD + - created_at: "2025-05-03T21:06:24Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMA2pVdGTIrZI+AQ/7BS2IddYDV/BRy+uMqpKDYNVfygxrjNmbQkmhcmXa5s4I + b04niRWP4JD0J+bu/B2gxQqPQYJym/fTKnw3PYiPsk6RmCbs0vp4KOL9aMFrtP3V + lAWxSOkt63e1MgDtyqmmmbkb9ZJBBsiCbkrSCDn4UQsjhwiTIEqqJyk9maY19+cl + XgMfY4IrLHy4LpmvGnYBrhNqEL5btCxYyBXhihf1DVePYEnCJoAxY+U4ToshUzUu + 2HttOhoE8GrgN1wqsO0CEZwtS+PeBsI4Byk7TxFDRyNj9R2uUs/2312fVe2PD27Y + OrxpuvwbxkBH+RGYPpEHt9LvZOicaVOD9NJ/31kQO/I2MkRXrDan6mWMyl9vpdNF + zoVgm4kuqqe818GYKpQoU07fduOKmPK3LsKCPKvfUwHXDPyDJoTtiMhIna5ekTju + ceFi744cfQ1v7KJdXqUVEaNX5xfwFkFWonoyQ6Q/7qZjT5LAIIvAtEtDopdTVNdA + PIEh+XMxwLeXrBU0b/9dZL/s1Jz6RhAtjM2EsJX5ufpZ00SGwixv4sbVJgXvx2SU + oosDHcfVQ0gXwpPIekxQakAqfDJrrASasxA7DrHeU7ORGMBhTCDdVTmDXBOCGok9 + pWABWZLtn3P2ituPXagrvOJ2LT+BP8t1W7yI3ifoXintcnWJxrAmH4g0DnYsoJbU + aAEJAhAw121YavqAps9R2CMrWi6DxP6kFuWfdioUS/wEyEg7oXR5OeF4FcTFqPge + 4fT4um0hM4sXT24aNmRpjOmG4PFuXMegTC5YThjM6Qgd2MDzhqe3tXgaChKvMZQg + zOWvdN3wjYPb + =re5L + -----END PGP MESSAGE----- + fp: 878FEA3CB6A6F6E7CD80ECBE28506E3585F9F533 + unencrypted_suffix: _unencrypted + version: 3.9.4