From 33dd7b5e9f1cf5e63c3a71813fca6c61a87b9c78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 13:14:21 +0200 Subject: [PATCH 01/22] gitea: also allow words that contain "clan" as captcha --- pkgs/gitea/0001-add-bot-check.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/gitea/0001-add-bot-check.patch b/pkgs/gitea/0001-add-bot-check.patch index c60ef91..6f25b41 100644 --- a/pkgs/gitea/0001-add-bot-check.patch +++ b/pkgs/gitea/0001-add-bot-check.patch @@ -21,7 +21,7 @@ index 007e790b8..a8f3ba7dc 100644 ctx.Data["PageIsSignUp"] = true -+ if strings.ToLower(form.Notabot) != "clan" { ++ if strings.Contains(strings.ToLower(form.Notabot), "clan") { + ctx.Error(http.StatusForbidden) + return + } From 34f17d8dac957de5f00211b2814dd024af1e38cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 13:14:46 +0200 Subject: [PATCH 02/22] add buildbot subdomain --- terraform/web01/dns.tf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/terraform/web01/dns.tf b/terraform/web01/dns.tf index 9858708..43cb504 100644 --- a/terraform/web01/dns.tf +++ b/terraform/web01/dns.tf @@ -7,7 +7,8 @@ locals { "matrix", "www", "docs", - "metrics" + "metrics", + "buildbot" ] } From d3afa7f13d3f2ef1b70047ca4cd6978cf4b798d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 13:17:19 +0200 Subject: [PATCH 03/22] add buildbot --- flake.lock | 27 ++++++++++++++++++++++++++ flake.nix | 7 ++++++- modules/buildbot.nix | 42 ++++++++++++++++++++++++++++++++++++++++ modules/flake-module.nix | 6 ++++++ 4 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 modules/buildbot.nix diff --git a/flake.lock b/flake.lock index d1e1e24..60293de 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,31 @@ { "nodes": { + "buildbot-nix": { + "inputs": { + "flake-parts": [ + "flake-parts" + ], + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": [ + "treefmt-nix" + ] + }, + "locked": { + "lastModified": 1714469730, + "narHash": "sha256-jdTHiOGnqo9S4lzSPsGZECUIePrOE0/COCCP4lzBW9A=", + "owner": "Mic92", + "repo": "buildbot-nix", + "rev": "508ceb885636a0a949793f5c7924091b532fa10f", + "type": "github" + }, + "original": { + "owner": "Mic92", + "repo": "buildbot-nix", + "type": "github" + } + }, "clan-core": { "inputs": { "disko": "disko", @@ -148,6 +174,7 @@ }, "root": { "inputs": { + "buildbot-nix": "buildbot-nix", "clan-core": "clan-core", "disko": "disko_2", "flake-parts": "flake-parts", diff --git a/flake.nix b/flake.nix index bbe4db7..69604e2 100644 --- a/flake.nix +++ b/flake.nix @@ -24,11 +24,16 @@ # Use the version of nixpkgs that has been tested to work with SrvOS srvos.inputs.nixpkgs.follows = "nixpkgs"; - clan-core.url = "git+https://git.clan.lol/clan/clan-core?ref=synapse"; + clan-core.url = "git+https://git.clan.lol/clan/clan-core?ref=error-handling"; clan-core.inputs.flake-parts.follows = "flake-parts"; clan-core.inputs.nixpkgs.follows = "nixpkgs"; clan-core.inputs.treefmt-nix.follows = "treefmt-nix"; clan-core.inputs.sops-nix.follows = "sops-nix"; + + buildbot-nix.url = "github:Mic92/buildbot-nix"; + buildbot-nix.inputs.nixpkgs.follows = "nixpkgs"; + buildbot-nix.inputs.flake-parts.follows = "flake-parts"; + buildbot-nix.inputs.treefmt-nix.follows = "treefmt-nix"; }; outputs = inputs@{ flake-parts, ... }: diff --git a/modules/buildbot.nix b/modules/buildbot.nix new file mode 100644 index 0000000..2135239 --- /dev/null +++ b/modules/buildbot.nix @@ -0,0 +1,42 @@ +{ config, ... }: +{ + services.buildbot-nix.master = { + enable = true; + # Domain name under which the buildbot frontend is reachable + domain = "buildbot.clan.lol"; + # The workers file configures credentials for the buildbot workers to connect to the master. + # "name" is the configured worker name in services.buildbot-nix.worker.name of a worker + # (defaults to the hostname of the machine) + # "pass" is the password for the worker configured in `services.buildbot-nix.worker.workerPasswordFile` + # "cores" is the number of cpu cores the worker has. + # The number must match as otherwise potentially not enought buildbot-workers are created. + workersFile = config.sops.secrets.buildbot-workers-file.path; + + gitea = { + enable = true; + instanceUrl = "https://git.clan.lol"; + oauthSecretFile = config.sops.secrets.oauth-secret-file.path; + oauthId = "adb3425c-490f-4558-9487-8f8940d2925b"; + topic = "buildbot-clan"; + }; + + # optional nix-eval-jobs settings + evalWorkerCount = 10; # limit number of concurrent evaluations + evalMaxMemorySize = "4096"; # limit memory usage per evaluation + }; + + # Optional: Enable acme/TLS in nginx (recommended) + services.nginx.virtualHosts.${config.services.buildbot-nix.master.domain} = { + forceSSL = true; + useACME = true; + }; + + services.buildbot-nix.worker = { + enable = true; + workerPasswordFile = config.sops.secrets.buildbot-worker-password-file.path; + }; + + sops.secrets.oauth-secret-file = { }; + sops.secrets.workers-file = { }; + sops.secrets.worker-password-file = { }; +} diff --git a/modules/flake-module.nix b/modules/flake-module.nix index 1605dd0..f56d5c5 100644 --- a/modules/flake-module.nix +++ b/modules/flake-module.nix @@ -15,6 +15,12 @@ ./initrd-networking.nix ]; + buildbot.imports = [ + inputs.buildbot-nix.nixosModules.master + inputs.buildbot-nix.nixosModules.worker + ./buildbot.nix + ]; + web01.imports = [ self.nixosModules.server inputs.srvos.nixosModules.mixins-nginx From 86bb85c49b3ddf73ea8789ead78b7574ea3a5193 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 13:18:26 +0200 Subject: [PATCH 04/22] gitea: fix mailer fix mailer settings --- modules/web01/gitea/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/web01/gitea/default.nix b/modules/web01/gitea/default.nix index de2f9c3..e907691 100644 --- a/modules/web01/gitea/default.nix +++ b/modules/web01/gitea/default.nix @@ -29,7 +29,9 @@ in settings.mailer = { ENABLED = true; FROM = "gitea@clan.lol"; - HOST = "localhost:25"; + SMTP_ADDR = "localhost"; + SMTP_PORT = 25; + PROTOCOL = "smtps"; }; settings.log.LEVEL = "Error"; settings.service.DISABLE_REGISTRATION = false; From 3df073bb448024792941d8389ad02313e653b0e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 13:28:19 +0200 Subject: [PATCH 05/22] Update secret oauth-secret-file --- sops/secrets/oauth-secret-file/machines/web01 | 1 + sops/secrets/oauth-secret-file/secret | 24 +++++++++++++++++++ sops/secrets/oauth-secret-file/users/joerg | 1 + 3 files changed, 26 insertions(+) create mode 120000 sops/secrets/oauth-secret-file/machines/web01 create mode 100644 sops/secrets/oauth-secret-file/secret create mode 120000 sops/secrets/oauth-secret-file/users/joerg diff --git a/sops/secrets/oauth-secret-file/machines/web01 b/sops/secrets/oauth-secret-file/machines/web01 new file mode 120000 index 0000000..a3c776b --- /dev/null +++ b/sops/secrets/oauth-secret-file/machines/web01 @@ -0,0 +1 @@ +../../../machines/web01 \ No newline at end of file diff --git a/sops/secrets/oauth-secret-file/secret b/sops/secrets/oauth-secret-file/secret new file mode 100644 index 0000000..ab86208 --- /dev/null +++ b/sops/secrets/oauth-secret-file/secret @@ -0,0 +1,24 @@ +{ + "data": "ENC[AES256_GCM,data:58ptmutnKoe4R6IE053eEm1gtgY1evYQM+WJtMRTuNm9Z1lE40Q8VJ4gDZ8xkc2ZWssizEgB0Iw=,iv:pNEUemTqKU4joMU9mJI4yYrLGfoHsD10G7BFbqsbSVA=,tag:oJfePGGn/OXJT7l1cugnkQ==,type:str]", + "sops": { + "kms": null, + "gcp_kms": null, + "azure_kv": null, + "hc_vault": null, + "age": [ + { + "recipient": "age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBeVpORHNpdk1TZURNQlVE\nRFRtb0ZMODZ5WXdPOHoyVm42TUxnWVJRTGhrCmdOcndyTHlTMUdKYlJnajF0bXRj\ndDNYTmNNanpUbWF4NDJIdlNVQVpZS0EKLS0tIHRCYlpNMHVIMklQbkc2d3Vaenpl\ncysrK3FnSFpTdTVsQUhWTVRmb2h1eFkKmhJdVLu1zb+lEIlDHeoeExaiRQW075mY\nw6dM9dSW1BXTQmKT9q3WsAfF1SDafhSvBpphXTKBI58vrtFNFxJquQ==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age17xuvz0fqtynzdmf8rfh4g3e46tx8w3mc6zgytrmuj5v9dhnldgxs7ue7ct", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPc2h2VEErMmRpMndBY3hN\nMlJVM3ZJTHJSQWppQ2wzV0V2T2xiS3BUSXdjCk9WaS9RL3pzSUJCakh4ZkIvQXk0\nV3VweE4yNDZZUHViZHZ3clNHMDB4UEUKLS0tIHkrMXpib2pneHl0a1kyM2VreGty\nMzNQMnJVaXRCT2ZneCtSNlFwREFza0UK2QUqLP6MfsJD1zsI5w/Oq/t87L3k4z/6\nxCe5ZTSBJcksV9v3E20jmFBcJHN/7Yrvp/FeQZRTUr8J9xY5DTBPHQ==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2024-04-30T11:28:18Z", + "mac": "ENC[AES256_GCM,data:umJSHZSWw/EYeinv2QCsJjq7t+awSj4LY8dthXWrX5nLPEzuzGpQrGfAGNle15SudfpZ0XpzeoiFrK6LqeQUr6BwlyWRjuwZjBD0Eo/RG5zvv0lEcQ666KWVlq8v7lP1rNuXIXGSef4ZN/Oqel0HAJW4d05YedwShD6/99HyLhw=,iv:VusNFfl5MRjv1Vrbkcw9auY4DxW9tkMvEJ4KPDEpk18=,tag:0yESnJbjneyG5PQagcsSOQ==,type:str]", + "pgp": null, + "unencrypted_suffix": "_unencrypted", + "version": "3.8.1" + } +} \ No newline at end of file diff --git a/sops/secrets/oauth-secret-file/users/joerg b/sops/secrets/oauth-secret-file/users/joerg new file mode 120000 index 0000000..4c1fba9 --- /dev/null +++ b/sops/secrets/oauth-secret-file/users/joerg @@ -0,0 +1 @@ +../../../users/joerg \ No newline at end of file From da6d74e8adafd93fa8c1353e566c8d2f408de724 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 13:31:38 +0200 Subject: [PATCH 06/22] Update secret buildbot-worker-password-file --- .../machines/web01 | 1 + .../buildbot-worker-password-file/secret | 24 +++++++++++++++++++ .../buildbot-worker-password-file/users/joerg | 1 + 3 files changed, 26 insertions(+) create mode 120000 sops/secrets/buildbot-worker-password-file/machines/web01 create mode 100644 sops/secrets/buildbot-worker-password-file/secret create mode 120000 sops/secrets/buildbot-worker-password-file/users/joerg diff --git a/sops/secrets/buildbot-worker-password-file/machines/web01 b/sops/secrets/buildbot-worker-password-file/machines/web01 new file mode 120000 index 0000000..a3c776b --- /dev/null +++ b/sops/secrets/buildbot-worker-password-file/machines/web01 @@ -0,0 +1 @@ +../../../machines/web01 \ No newline at end of file diff --git a/sops/secrets/buildbot-worker-password-file/secret b/sops/secrets/buildbot-worker-password-file/secret new file mode 100644 index 0000000..ac51364 --- /dev/null +++ b/sops/secrets/buildbot-worker-password-file/secret @@ -0,0 +1,24 @@ +{ + "data": "ENC[AES256_GCM,data:KjEnSY47zmWeClLEibUle5pjBCTr20pAAd75tJIKqFJIzCEArphpuloZnKPwI2A7YCWXxwISHEZepFsXvXtfKZ62iirrdejElPvWBw==,iv:mHImaRKnUPqUC7iYuZ3A2zrQPOERRirW6pzwTefoBms=,tag:eBw9VgyBV+tjQaIPP4MVdQ==,type:str]", + "sops": { + "kms": null, + "gcp_kms": null, + "azure_kv": null, + "hc_vault": null, + "age": [ + { + "recipient": "age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvNWZRUnJpY1pLZ2RKY2Vu\neXNQUXdzTUNEbkZyTFFRWVVFRDhCQzdjWGlBCnEvbXlzKzBwQ3c4T0R6RFR3bTRz\nTXcyNEYzMGhoOE5KV0pDTXVBcVRiVjAKLS0tIDBHWTByK0NmRlZLZmxudk1XMFFP\nSU1YLzN0WElPbWk0TTlOMlE5azcrQzQKDBP5mZGRgR9W8jN5nC0SifqR/x5poMOy\nUPsAQx8JVarvbAAXn2btTkjkUCG0ATdIxPDeJenocMzLX8kFOZsV4g==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age17xuvz0fqtynzdmf8rfh4g3e46tx8w3mc6zgytrmuj5v9dhnldgxs7ue7ct", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwNXpBU0x6QkhwYWpMVVJh\nTlllS2pkbWNwa01HZjNwNHhNemFlbVNSZUVnCmUrM3lpL0FtdjVwanN6YWJFMjZU\nOUV5ZVIydUFrYWxKNDJiMGVOc0VaSWMKLS0tIGhocjg2RkFDV1IyM0Viamg1QVRX\nNDFTN1M1clB3NHZqV2NrcFBmOURkc0kKmrFWs9yEJ7gyWdyH15HepzYt0d9jkx2w\nqVqYfLx79GHmrZVyzM+10wHrkjP+LJBorcz6QR68JMgagcAbPxi6nQ==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2024-04-30T11:31:37Z", + "mac": "ENC[AES256_GCM,data:dZL73ZHB58dFOH3OS+yOKk0ShlfwuD4hF5CMsoTfJJvTb75leUNS1HoolScqc9GKowaah08ZBmxvSIHnmQOLXEuPMHDgRGj3sCMOUymzjMv2He/ltFzBMolLfCX5lioxj6rtntU3FV0lsD0sxxK5zGehjgAkpfcIrW5En4zrw+o=,iv:Dc/Y9IYwk/YpvhbPP4040hVRBzO9H29spZomRKl+njs=,tag:0EzPHBuaz37StspMO0nfAg==,type:str]", + "pgp": null, + "unencrypted_suffix": "_unencrypted", + "version": "3.8.1" + } +} \ No newline at end of file diff --git a/sops/secrets/buildbot-worker-password-file/users/joerg b/sops/secrets/buildbot-worker-password-file/users/joerg new file mode 120000 index 0000000..4c1fba9 --- /dev/null +++ b/sops/secrets/buildbot-worker-password-file/users/joerg @@ -0,0 +1 @@ +../../../users/joerg \ No newline at end of file From 3bb5f798fca2261ee5af920d147795614aa8d520 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 13:32:02 +0200 Subject: [PATCH 07/22] Rename secret buildbot-worker-password-file to buildbot-workers-file --- .../machines/web01 | 0 .../secret | 0 .../users/joerg | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename sops/secrets/{buildbot-worker-password-file => buildbot-workers-file}/machines/web01 (100%) rename sops/secrets/{buildbot-worker-password-file => buildbot-workers-file}/secret (100%) rename sops/secrets/{buildbot-worker-password-file => buildbot-workers-file}/users/joerg (100%) diff --git a/sops/secrets/buildbot-worker-password-file/machines/web01 b/sops/secrets/buildbot-workers-file/machines/web01 similarity index 100% rename from sops/secrets/buildbot-worker-password-file/machines/web01 rename to sops/secrets/buildbot-workers-file/machines/web01 diff --git a/sops/secrets/buildbot-worker-password-file/secret b/sops/secrets/buildbot-workers-file/secret similarity index 100% rename from sops/secrets/buildbot-worker-password-file/secret rename to sops/secrets/buildbot-workers-file/secret diff --git a/sops/secrets/buildbot-worker-password-file/users/joerg b/sops/secrets/buildbot-workers-file/users/joerg similarity index 100% rename from sops/secrets/buildbot-worker-password-file/users/joerg rename to sops/secrets/buildbot-workers-file/users/joerg From e1b2ee4eb30d5fa205a643c036e96a43241dabbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 14:05:14 +0200 Subject: [PATCH 08/22] flake.lock: Update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'clan-core': 'git+https://git.clan.lol/clan/clan-core?ref=error-handling&rev=5606101ce80063da40e7fa23ae993284d449c64a' (2024-04-30) → 'git+https://git.clan.lol/clan/clan-core?ref=error-handling&rev=b5653c169b29de01863f67991b0dae6f8a0adfb4' (2024-04-30) • Updated input 'disko': 'github:nix-community/disko/285e26465a0bae510897ca04da26ce6307c652b4' (2024-04-26) → 'github:nix-community/disko/5eaf747af38dd272e1ab28a8ec4bd972424b07cf' (2024-04-29) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/2b1f64b358f2cab62617f26b3870fd0ee375d848' (2024-04-27) → 'github:NixOS/nixpkgs/cf8cc1201be8bc71b7cbbbdaf349b22f4f99c7ae' (2024-04-28) • Updated input 'srvos': 'github:numtide/srvos/71a8e8ab6e4763714d20c22f42ba8860369a1508' (2024-04-26) → 'github:numtide/srvos/b18e74f2245eaae150bc753821079c2512fe1516' (2024-04-30) --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index 60293de..5a06a0b 100644 --- a/flake.lock +++ b/flake.lock @@ -44,16 +44,16 @@ ] }, "locked": { - "lastModified": 1712910239, - "narHash": "sha256-0Iu86fs3QqmDTEBZ2kJFYeNQc59L0ncW22CnJItDIuE=", - "ref": "synapse", - "rev": "e22501799b2409b9c1db340a25acadc5ff730e4c", - "revCount": 2473, + "lastModified": 1714478689, + "narHash": "sha256-Z9x9FtQUOEAa655hMMDuZGbQBOEk/P0wwn99C2diOY8=", + "ref": "error-handling", + "rev": "b5653c169b29de01863f67991b0dae6f8a0adfb4", + "revCount": 2651, "type": "git", "url": "https://git.clan.lol/clan/clan-core" }, "original": { - "ref": "synapse", + "ref": "error-handling", "type": "git", "url": "https://git.clan.lol/clan/clan-core" } @@ -86,11 +86,11 @@ ] }, "locked": { - "lastModified": 1714103775, - "narHash": "sha256-kcBiIrmqzt3bNTr2GMBfAyA+on8BEKO1iKzzDFQZkjI=", + "lastModified": 1714405407, + "narHash": "sha256-h3pOvHCXkSdp1KOZqtkQmHgkR7VaOJXDhqhumk7sZLY=", "owner": "nix-community", "repo": "disko", - "rev": "285e26465a0bae510897ca04da26ce6307c652b4", + "rev": "5eaf747af38dd272e1ab28a8ec4bd972424b07cf", "type": "github" }, "original": { @@ -158,11 +158,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1714245158, - "narHash": "sha256-9P2M0+tf1TE7Z5PwDVwhheuD2mFf6/phPr0Jvl7cxcc=", + "lastModified": 1714314149, + "narHash": "sha256-yNAevSKF4krRWacmLUsLK7D7PlfuY3zF0lYnGYNi9vQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2b1f64b358f2cab62617f26b3870fd0ee375d848", + "rev": "cf8cc1201be8bc71b7cbbbdaf349b22f4f99c7ae", "type": "github" }, "original": { @@ -212,11 +212,11 @@ ] }, "locked": { - "lastModified": 1714143163, - "narHash": "sha256-WMAziIBkwX//WUGxH49ZSm0yaPS6/PvNWUMMut8unm0=", + "lastModified": 1714444742, + "narHash": "sha256-FOWYXEEtwYKAGmXgKVYli/VsA8XpeR+4wNKt+3M/9b4=", "owner": "numtide", "repo": "srvos", - "rev": "71a8e8ab6e4763714d20c22f42ba8860369a1508", + "rev": "b18e74f2245eaae150bc753821079c2512fe1516", "type": "github" }, "original": { From 8e4cacbfd7ed982fa67166a1097332f7dbd9ae64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 14:06:49 +0200 Subject: [PATCH 09/22] Update secret worker-password-file --- sops/secrets/worker-password-file/secret | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 sops/secrets/worker-password-file/secret diff --git a/sops/secrets/worker-password-file/secret b/sops/secrets/worker-password-file/secret new file mode 100644 index 0000000..38636be --- /dev/null +++ b/sops/secrets/worker-password-file/secret @@ -0,0 +1,20 @@ +{ + "data": "ENC[AES256_GCM,data:iQx68Ctq2g2YnxZ+g9ifEpd36S163DysfnM=,iv:najdFdcezfJ8wuuBozlymBUzKFzXiba1e3mX3RhL7Xo=,tag:qhbX3j1+vcP6kpKcLKGpbw==,type:str]", + "sops": { + "kms": null, + "gcp_kms": null, + "azure_kv": null, + "hc_vault": null, + "age": [ + { + "recipient": "age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDSndURmpBZzhGSm8yQzc4\nbERvRGk0OHdBODl6ZTR6RjNaSS9aR3ZYOTE4Cmo4VjdOSmpZNHRzVWNnMEFSTmVD\nVTBSTXJrN0UrSkRJSGxBellXUU9VN2MKLS0tIHVndkthRUNMc1VEcVFUZHVNRWgr\nVzJjd1dUSzJLY3llT2pNWS9aNWk2ZkEKEKrQ2f9eGHasxsQd3mHab+DQNCTtp+O4\niEJiuqTvb+GX6v2ZC4S2ZLHAttI3PvrnMoy/bAIA/kdnlLidnA681g==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2024-04-30T12:06:48Z", + "mac": "ENC[AES256_GCM,data:pypZUEInify4Ok+8acVG5720MzEcQg9SRodgMDVKArWj3YMgaHWGtFWPCxdor64XMtvxaSJNk/DsvLNUwKyyZHGnQ4XVl3qTxjelrRV7/ao+QFv+/RVVj8lCJboG/wi9xpBPounWh96Uj9oeSKLHrmm9fXC0N97tc6oFU4N7eMY=,iv:oddw67tAc9pQejqchKAYc8Es507oHZfvCXfwejyoCfA=,tag:SJ5jPLv+UaYH3aZl1EpbNA==,type:str]", + "pgp": null, + "unencrypted_suffix": "_unencrypted", + "version": "3.8.1" + } +} \ No newline at end of file From 3f4bc64d54bd6f2d12d68cf8cfbaf40c5993f3da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 14:07:02 +0200 Subject: [PATCH 10/22] Update secret worker-password-file --- sops/secrets/worker-password-file/machines/web01 | 1 + sops/secrets/worker-password-file/secret | 12 ++++++++---- sops/secrets/worker-password-file/users/joerg | 1 + 3 files changed, 10 insertions(+), 4 deletions(-) create mode 120000 sops/secrets/worker-password-file/machines/web01 create mode 120000 sops/secrets/worker-password-file/users/joerg diff --git a/sops/secrets/worker-password-file/machines/web01 b/sops/secrets/worker-password-file/machines/web01 new file mode 120000 index 0000000..a3c776b --- /dev/null +++ b/sops/secrets/worker-password-file/machines/web01 @@ -0,0 +1 @@ +../../../machines/web01 \ No newline at end of file diff --git a/sops/secrets/worker-password-file/secret b/sops/secrets/worker-password-file/secret index 38636be..f7ba50e 100644 --- a/sops/secrets/worker-password-file/secret +++ b/sops/secrets/worker-password-file/secret @@ -1,5 +1,5 @@ { - "data": "ENC[AES256_GCM,data:iQx68Ctq2g2YnxZ+g9ifEpd36S163DysfnM=,iv:najdFdcezfJ8wuuBozlymBUzKFzXiba1e3mX3RhL7Xo=,tag:qhbX3j1+vcP6kpKcLKGpbw==,type:str]", + "data": "ENC[AES256_GCM,data:Ylx/ducjNBQT1IJ8bidZOYGPL0GirpYmbyg=,iv:Kysq0cSB7la3m6E6bxwH8oZbidgGzR5h4omowdZFjX0=,tag:l9oMkwt5h1W/S/HUCarWpA==,type:str]", "sops": { "kms": null, "gcp_kms": null, @@ -8,11 +8,15 @@ "age": [ { "recipient": "age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz", - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDSndURmpBZzhGSm8yQzc4\nbERvRGk0OHdBODl6ZTR6RjNaSS9aR3ZYOTE4Cmo4VjdOSmpZNHRzVWNnMEFSTmVD\nVTBSTXJrN0UrSkRJSGxBellXUU9VN2MKLS0tIHVndkthRUNMc1VEcVFUZHVNRWgr\nVzJjd1dUSzJLY3llT2pNWS9aNWk2ZkEKEKrQ2f9eGHasxsQd3mHab+DQNCTtp+O4\niEJiuqTvb+GX6v2ZC4S2ZLHAttI3PvrnMoy/bAIA/kdnlLidnA681g==\n-----END AGE ENCRYPTED FILE-----\n" + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBET2VIbit3ekJXaE1pb28v\nN29HaGNHKzRXZk1YVzhVdk5PeUtVTlpLOUJJCkZQcmFzVFVuV2NXenE4VnJnQitI\na3M4MTJOampNWVBnOVY3MVdiMnk5aDAKLS0tIEJZUDFzZWVoZW5sQ2VBSGUrRCtL\nMjZONHRjVTZGMlJkcTlyWkY0SXVSZWMKA3O3tklgpGEE5741ms6xUe3Y2QSwk0eN\ncGMb3+J96Ghr58BgdmXstDjWIlC0AnMFQPRSJ31s8b6X2Ys96MS5cg==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age17xuvz0fqtynzdmf8rfh4g3e46tx8w3mc6zgytrmuj5v9dhnldgxs7ue7ct", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrRlJrV2VrcHoxWUJlZDVZ\ncm03d3didFl5dFYzZzlPMGhmY0tVVTBhTEg4CnpvWmVkMGh3MVhIc3FaMWZxekZO\nWUpqNXY4amVDekoreUE1bUx0S281L1EKLS0tIE0rbU92ZHVLYjZTVGk1QkdCbUdx\nSHE1M05Qd2tsMU9Jd3ZLRFhWUUNBLzAKcp29aHrVp9tSEDZF65Wp0A7Bgem0PNJz\nzTHAVpilWx2P1O+t+FzbChFZmjgX9z/mA4T+s7Cq37VWZWB8Rw+rjw==\n-----END AGE ENCRYPTED FILE-----\n" } ], - "lastmodified": "2024-04-30T12:06:48Z", - "mac": "ENC[AES256_GCM,data:pypZUEInify4Ok+8acVG5720MzEcQg9SRodgMDVKArWj3YMgaHWGtFWPCxdor64XMtvxaSJNk/DsvLNUwKyyZHGnQ4XVl3qTxjelrRV7/ao+QFv+/RVVj8lCJboG/wi9xpBPounWh96Uj9oeSKLHrmm9fXC0N97tc6oFU4N7eMY=,iv:oddw67tAc9pQejqchKAYc8Es507oHZfvCXfwejyoCfA=,tag:SJ5jPLv+UaYH3aZl1EpbNA==,type:str]", + "lastmodified": "2024-04-30T12:07:01Z", + "mac": "ENC[AES256_GCM,data:McdoNe9j1yDykNa7gN0c5EAcD/p2a+XK+QT72AMT/At65E2y4ImVrnuaLMGZ4OX0Im+7Y5mHbXB/IZgpYOzRl0j48ooYBowLHkp/ECVJNg8rIqm7IRAPQIIjabGr7d0LubcuOsWo/3LNqJG7BnSo6NJ5ax0z8BzWL26dyl1oWoU=,iv:jGY4GhHP5Wj4gJG8T2IQzoXMA3EpCv3qFM4kaGNWWK0=,tag:t9Dar3tD3vlVI3SBNGfdLw==,type:str]", "pgp": null, "unencrypted_suffix": "_unencrypted", "version": "3.8.1" diff --git a/sops/secrets/worker-password-file/users/joerg b/sops/secrets/worker-password-file/users/joerg new file mode 120000 index 0000000..4c1fba9 --- /dev/null +++ b/sops/secrets/worker-password-file/users/joerg @@ -0,0 +1 @@ +../../../users/joerg \ No newline at end of file From 03f326afaebe41a8ff1f9aa2f8661ba32cae2430 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 14:07:13 +0200 Subject: [PATCH 11/22] Update secret worker-password-file --- sops/secrets/worker-password-file/secret | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sops/secrets/worker-password-file/secret b/sops/secrets/worker-password-file/secret index f7ba50e..bfdf7cd 100644 --- a/sops/secrets/worker-password-file/secret +++ b/sops/secrets/worker-password-file/secret @@ -1,5 +1,5 @@ { - "data": "ENC[AES256_GCM,data:Ylx/ducjNBQT1IJ8bidZOYGPL0GirpYmbyg=,iv:Kysq0cSB7la3m6E6bxwH8oZbidgGzR5h4omowdZFjX0=,tag:l9oMkwt5h1W/S/HUCarWpA==,type:str]", + "data": "ENC[AES256_GCM,data:BGS/1SxcsBok70/9vfry84mewhtpV9bPKPw=,iv:n4tBNyXgiMfszGDCwkQhB62DGIIisi2lcRF6nZ2H0hc=,tag:sPLEnrt+FEXXH8bU8Ay3Fg==,type:str]", "sops": { "kms": null, "gcp_kms": null, @@ -8,15 +8,15 @@ "age": [ { "recipient": "age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz", - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBET2VIbit3ekJXaE1pb28v\nN29HaGNHKzRXZk1YVzhVdk5PeUtVTlpLOUJJCkZQcmFzVFVuV2NXenE4VnJnQitI\na3M4MTJOampNWVBnOVY3MVdiMnk5aDAKLS0tIEJZUDFzZWVoZW5sQ2VBSGUrRCtL\nMjZONHRjVTZGMlJkcTlyWkY0SXVSZWMKA3O3tklgpGEE5741ms6xUe3Y2QSwk0eN\ncGMb3+J96Ghr58BgdmXstDjWIlC0AnMFQPRSJ31s8b6X2Ys96MS5cg==\n-----END AGE ENCRYPTED FILE-----\n" + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBELzFKcUpMMjRWdlFRVytJ\naDZCL2NtV2k0bWk3a0o0MUVjS0gybXYzZFFJCi9yamVIUUNKb0xXWkd2OEo3UHJ0\nSzZ5Mm9ON2w5UnFRWnZTekVhMnRUdGMKLS0tIGRYb2RXNGNrOWo1S1pSSGdyYlRu\nUGhJaXhMLy8zSXA1WVowdWU2UHVJVFEKtemlwnD3GnsIA0ZnLz0piW3vMQRcv+e4\nyXFuqApqpTPCYDBtIHJB5ZX+zwZPnafMPAqXe/f2Wu1Pr4XiScH05Q==\n-----END AGE ENCRYPTED FILE-----\n" }, { "recipient": "age17xuvz0fqtynzdmf8rfh4g3e46tx8w3mc6zgytrmuj5v9dhnldgxs7ue7ct", - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrRlJrV2VrcHoxWUJlZDVZ\ncm03d3didFl5dFYzZzlPMGhmY0tVVTBhTEg4CnpvWmVkMGh3MVhIc3FaMWZxekZO\nWUpqNXY4amVDekoreUE1bUx0S281L1EKLS0tIE0rbU92ZHVLYjZTVGk1QkdCbUdx\nSHE1M05Qd2tsMU9Jd3ZLRFhWUUNBLzAKcp29aHrVp9tSEDZF65Wp0A7Bgem0PNJz\nzTHAVpilWx2P1O+t+FzbChFZmjgX9z/mA4T+s7Cq37VWZWB8Rw+rjw==\n-----END AGE ENCRYPTED FILE-----\n" + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBINVRpTGpjNU9HN3o0Z2Nm\nN0JWMkRmbFBZTmg2Y2FIYWZrSkkzaFRTQlNnCkJ1TVo2bkxRZ2oyYVE3Z2txaCtS\nUjN6UnozL1RSM2cxUnpRL1ZiWWdzZnMKLS0tIEdNTzRxSmwxdXNvbThGZTBWTlEr\nUVBKeW5hWklGV2ZjZzFPcE9aQWVFUXcKx1sk9US91Lf0ONuriPbXMQRQGOVvRon2\n7XTGxIJz1Vm9E6NZ3ysQn5L/3EuwMy5Fn5ovR9vJ92mBE8jUU4N3Jg==\n-----END AGE ENCRYPTED FILE-----\n" } ], - "lastmodified": "2024-04-30T12:07:01Z", - "mac": "ENC[AES256_GCM,data:McdoNe9j1yDykNa7gN0c5EAcD/p2a+XK+QT72AMT/At65E2y4ImVrnuaLMGZ4OX0Im+7Y5mHbXB/IZgpYOzRl0j48ooYBowLHkp/ECVJNg8rIqm7IRAPQIIjabGr7d0LubcuOsWo/3LNqJG7BnSo6NJ5ax0z8BzWL26dyl1oWoU=,iv:jGY4GhHP5Wj4gJG8T2IQzoXMA3EpCv3qFM4kaGNWWK0=,tag:t9Dar3tD3vlVI3SBNGfdLw==,type:str]", + "lastmodified": "2024-04-30T12:07:13Z", + "mac": "ENC[AES256_GCM,data:LQlfvECeVJy0sCOPwTq+hAsolBhownffT/xNxjCf+PFLQZx4/zARaXbVgNTDvjIQXfj+SntQbkY/t8VV81Hf2REF7CdyYCC7eZuR71wPRYcqy0k2dznV7sx350ZLNANn2wggsHHFPIEaiDbKP8NttXwVL3Dyf+lVU6S7pvIq8uc=,iv:VBpdFi2c5p18Om15XarLQLM2BlNNeQwcbicd1/toWa8=,tag:PWCWbksHUteSvzdGLZrfUQ==,type:str]", "pgp": null, "unencrypted_suffix": "_unencrypted", "version": "3.8.1" From ed64744c3f794530a7b5fd3f6f931850277a5f5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 14:50:38 +0200 Subject: [PATCH 12/22] Update secret buildbot-webhook-secret-file --- .../machines/web01 | 1 + .../buildbot-webhook-secret-file/secret | 24 +++++++++++++++++++ .../buildbot-webhook-secret-file/users/joerg | 1 + 3 files changed, 26 insertions(+) create mode 120000 sops/secrets/buildbot-webhook-secret-file/machines/web01 create mode 100644 sops/secrets/buildbot-webhook-secret-file/secret create mode 120000 sops/secrets/buildbot-webhook-secret-file/users/joerg diff --git a/sops/secrets/buildbot-webhook-secret-file/machines/web01 b/sops/secrets/buildbot-webhook-secret-file/machines/web01 new file mode 120000 index 0000000..a3c776b --- /dev/null +++ b/sops/secrets/buildbot-webhook-secret-file/machines/web01 @@ -0,0 +1 @@ +../../../machines/web01 \ No newline at end of file diff --git a/sops/secrets/buildbot-webhook-secret-file/secret b/sops/secrets/buildbot-webhook-secret-file/secret new file mode 100644 index 0000000..399ccae --- /dev/null +++ b/sops/secrets/buildbot-webhook-secret-file/secret @@ -0,0 +1,24 @@ +{ + "data": "ENC[AES256_GCM,data:Bzc+7/1WPH1P9L9B/fzhtD4PAtsvplXU7SKVyC2o,iv:aLq+EZ1twpHa47nvcIv0M1SIb+IzzIa0lYiu92/GMwI=,tag:+zXRw99x/E2R5MZqIXgz/g==,type:str]", + "sops": { + "kms": null, + "gcp_kms": null, + "azure_kv": null, + "hc_vault": null, + "age": [ + { + "recipient": "age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6WlBpTXlhZHBsM2VsVFAw\nUlY3S2l4R3hDZmJoM2lJd0lkNXY5YUNiRVJzClc1b0NxYndEYkZUMy9TS1BmdDBO\nTks3Q2llL1Jkc2NIeWV1QWVpdVdZYVkKLS0tIFovMEtBbU1hTURHZDNzZ0drUndY\nYVU2YTJxVENXdkFTRTdVT0FWa3RoU0EKqZ1XST0fbbagViwG8xtAjjts9AA/Hn0m\nIO5mpZNYNUzf+l0Zi/AjtAnaRrpZowV0gcskfcj3LX30CbwwySH3qA==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age17xuvz0fqtynzdmf8rfh4g3e46tx8w3mc6zgytrmuj5v9dhnldgxs7ue7ct", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEMjBoZHpBN0JBZVFlUnd2\nWVpYMXNaOVQ2eExuWlBWYWppL2ltYXBnRWlRClRReUcrT2RYck1XQlFINGUyVFNn\nNGdiSkQzUERaTXNEaUJycHBXZ1pXelUKLS0tIDUxMzl1MzBDdmpXRnphUkdhRzRz\nUm9UbWhjUFA4M0JxLyt4d1pMMFJEbUUKwiJziQs5qqTc6Tlm55wHobu5PKGpsoRm\ndKTjasrcUEFWu0cNAxdGXvOUipT8hPazvLl3Ajdo8KYXwP7/LVaTuQ==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2024-04-30T12:50:37Z", + "mac": "ENC[AES256_GCM,data:vOuXOCzTFrS4M8ZKWc8wVdccTfcqiFjtuRAAPToLOVk1AlY97cT0SIMCNOniSmChYIHIx1rvPqmc16BWYZr0AhYpw8a0XH2XrpCo3M3oLJ8UMiwvn5R2FdU3P9Q+feDpWL5KPy3ii/OuoQBCAovywSs3fhi/dQZfjIQHVs5bqvs=,iv:F7egkb6zDIKYAxRJwRYChR1dboeHGgqS85Er23YT2es=,tag:0UurFP2e0vFw0RbkjnizcA==,type:str]", + "pgp": null, + "unencrypted_suffix": "_unencrypted", + "version": "3.8.1" + } +} \ No newline at end of file diff --git a/sops/secrets/buildbot-webhook-secret-file/users/joerg b/sops/secrets/buildbot-webhook-secret-file/users/joerg new file mode 120000 index 0000000..4c1fba9 --- /dev/null +++ b/sops/secrets/buildbot-webhook-secret-file/users/joerg @@ -0,0 +1 @@ +../../../users/joerg \ No newline at end of file From d3969c5164d7bf735f99b4378d806c43f6803380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 14:51:00 +0200 Subject: [PATCH 13/22] Rename secret oauth-secret-file to buildbot-oauth-secret-file --- .../machines/web01 | 0 .../{oauth-secret-file => buildbot-oauth-secret-file}/secret | 0 .../{oauth-secret-file => buildbot-oauth-secret-file}/users/joerg | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename sops/secrets/{oauth-secret-file => buildbot-oauth-secret-file}/machines/web01 (100%) rename sops/secrets/{oauth-secret-file => buildbot-oauth-secret-file}/secret (100%) rename sops/secrets/{oauth-secret-file => buildbot-oauth-secret-file}/users/joerg (100%) diff --git a/sops/secrets/oauth-secret-file/machines/web01 b/sops/secrets/buildbot-oauth-secret-file/machines/web01 similarity index 100% rename from sops/secrets/oauth-secret-file/machines/web01 rename to sops/secrets/buildbot-oauth-secret-file/machines/web01 diff --git a/sops/secrets/oauth-secret-file/secret b/sops/secrets/buildbot-oauth-secret-file/secret similarity index 100% rename from sops/secrets/oauth-secret-file/secret rename to sops/secrets/buildbot-oauth-secret-file/secret diff --git a/sops/secrets/oauth-secret-file/users/joerg b/sops/secrets/buildbot-oauth-secret-file/users/joerg similarity index 100% rename from sops/secrets/oauth-secret-file/users/joerg rename to sops/secrets/buildbot-oauth-secret-file/users/joerg From 8ca68caacbc1fedde6566b9772aaba909025ae5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 15:55:35 +0200 Subject: [PATCH 14/22] flake.lock: Update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'buildbot-nix': 'github:Mic92/buildbot-nix/508ceb885636a0a949793f5c7924091b532fa10f' (2024-04-30) → 'github:Mic92/buildbot-nix/5d2711a5871b8c767567f8101968b1e6b52b9cd7' (2024-04-30) --- flake.lock | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index 5a06a0b..60ddac3 100644 --- a/flake.lock +++ b/flake.lock @@ -13,11 +13,11 @@ ] }, "locked": { - "lastModified": 1714469730, - "narHash": "sha256-jdTHiOGnqo9S4lzSPsGZECUIePrOE0/COCCP4lzBW9A=", + "lastModified": 1714482180, + "narHash": "sha256-sHaMH/Gqz/hH1uhMTSroy/a+WV0Tj7noS51YBdQlbf0=", "owner": "Mic92", "repo": "buildbot-nix", - "rev": "508ceb885636a0a949793f5c7924091b532fa10f", + "rev": "5d2711a5871b8c767567f8101968b1e6b52b9cd7", "type": "github" }, "original": { @@ -44,16 +44,15 @@ ] }, "locked": { - "lastModified": 1714478689, - "narHash": "sha256-Z9x9FtQUOEAa655hMMDuZGbQBOEk/P0wwn99C2diOY8=", - "ref": "error-handling", - "rev": "b5653c169b29de01863f67991b0dae6f8a0adfb4", - "revCount": 2651, + "lastModified": 1714471693, + "narHash": "sha256-LbFYT8T8SLZ6FLTmcF1bfO0PZqbpjuoc3LKWwyJc6rs=", + "ref": "refs/heads/main", + "rev": "3da411770275fbf0dd4036bf741606f9eac00642", + "revCount": 2649, "type": "git", "url": "https://git.clan.lol/clan/clan-core" }, "original": { - "ref": "error-handling", "type": "git", "url": "https://git.clan.lol/clan/clan-core" } From 610cbcd1530ccaab8a5153b01a8592df0dad91f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 16:56:01 +0200 Subject: [PATCH 15/22] Update secret worker-password-file --- sops/secrets/worker-password-file/secret | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sops/secrets/worker-password-file/secret b/sops/secrets/worker-password-file/secret index bfdf7cd..49e4fd9 100644 --- a/sops/secrets/worker-password-file/secret +++ b/sops/secrets/worker-password-file/secret @@ -1,5 +1,5 @@ { - "data": "ENC[AES256_GCM,data:BGS/1SxcsBok70/9vfry84mewhtpV9bPKPw=,iv:n4tBNyXgiMfszGDCwkQhB62DGIIisi2lcRF6nZ2H0hc=,tag:sPLEnrt+FEXXH8bU8Ay3Fg==,type:str]", + "data": "ENC[AES256_GCM,data:iKHPOFHJFfqoHg7n1w790dbe36iamWb7Kss=,iv:+eOuWALwdV9Ih5N5v0NibYLqWhWe9lLuncoSbjdReUw=,tag:swFSrRz502q5GrBthAqcew==,type:str]", "sops": { "kms": null, "gcp_kms": null, @@ -8,15 +8,15 @@ "age": [ { "recipient": "age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz", - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBELzFKcUpMMjRWdlFRVytJ\naDZCL2NtV2k0bWk3a0o0MUVjS0gybXYzZFFJCi9yamVIUUNKb0xXWkd2OEo3UHJ0\nSzZ5Mm9ON2w5UnFRWnZTekVhMnRUdGMKLS0tIGRYb2RXNGNrOWo1S1pSSGdyYlRu\nUGhJaXhMLy8zSXA1WVowdWU2UHVJVFEKtemlwnD3GnsIA0ZnLz0piW3vMQRcv+e4\nyXFuqApqpTPCYDBtIHJB5ZX+zwZPnafMPAqXe/f2Wu1Pr4XiScH05Q==\n-----END AGE ENCRYPTED FILE-----\n" + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNYlk2b2xiR2RERWxzOTRM\nZEpMZnBENGFkV3BtelFOQWZ1aUdhdS9kbnk0CkdGbGttSjhnTE5KT2FkQWFsUTI1\nYytISGZza28rRFJFZC9ZcmVKazNFZlkKLS0tIHRReGhoNGlhZ0crSnJHZWRWSk1v\nd25FQzJ2cE9Ka0lqZENkaEtDbjdmWEUKZIEJY7oWLLOI1X0E5Qrate82lSLOQG8W\nUClq/xHZsTH7E0D4ejU8CN8/Pb8RCw9JOB/8CjaoXIIBGBjrGfXSmw==\n-----END AGE ENCRYPTED FILE-----\n" }, { "recipient": "age17xuvz0fqtynzdmf8rfh4g3e46tx8w3mc6zgytrmuj5v9dhnldgxs7ue7ct", - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBINVRpTGpjNU9HN3o0Z2Nm\nN0JWMkRmbFBZTmg2Y2FIYWZrSkkzaFRTQlNnCkJ1TVo2bkxRZ2oyYVE3Z2txaCtS\nUjN6UnozL1RSM2cxUnpRL1ZiWWdzZnMKLS0tIEdNTzRxSmwxdXNvbThGZTBWTlEr\nUVBKeW5hWklGV2ZjZzFPcE9aQWVFUXcKx1sk9US91Lf0ONuriPbXMQRQGOVvRon2\n7XTGxIJz1Vm9E6NZ3ysQn5L/3EuwMy5Fn5ovR9vJ92mBE8jUU4N3Jg==\n-----END AGE ENCRYPTED FILE-----\n" + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPY0ZEYlpoT0FCdG5Qd2VF\neDk5T3ZzS2VNdVYwcFIrZ1RGem14ZndZbFRZCnFGcHRZUkJvdzZ4VnVBem0rNmlx\ncG80V2JUYU9YMnBOdHJ0QW9pcVQ0YmMKLS0tIEQ2YXE2R2tFZzZwdzczZjlwUmdO\nWUY1M0hQbFpDVDVLZ0xiSFFMR3BLMDgKCHLON7lfE+ECDWufohr64+U7ykzTGBOd\ni/e5wCDmkpQQbHjXHEoQXK6wc5bTqkjXux+TB2qDCJ5EGyTFo2t0AQ==\n-----END AGE ENCRYPTED FILE-----\n" } ], - "lastmodified": "2024-04-30T12:07:13Z", - "mac": "ENC[AES256_GCM,data:LQlfvECeVJy0sCOPwTq+hAsolBhownffT/xNxjCf+PFLQZx4/zARaXbVgNTDvjIQXfj+SntQbkY/t8VV81Hf2REF7CdyYCC7eZuR71wPRYcqy0k2dznV7sx350ZLNANn2wggsHHFPIEaiDbKP8NttXwVL3Dyf+lVU6S7pvIq8uc=,iv:VBpdFi2c5p18Om15XarLQLM2BlNNeQwcbicd1/toWa8=,tag:PWCWbksHUteSvzdGLZrfUQ==,type:str]", + "lastmodified": "2024-04-30T14:56:00Z", + "mac": "ENC[AES256_GCM,data:7I95OTWH0C22Lygv4x1Pmvvx0rRnNK7ugN7eQTRbCiQA9yCVG7i1bCDaNtCNaOda6oHuBvsFzQAvfehRv2P89D+Nna6anw8yJZ/DCc1vkwCT+psgrcorweYjaNkO/DW6TTiJx3zTZOrttBuScCGiSZedLIoQqGRYdEuXNkLGeQo=,iv:/q7biMeZFBUWXkU5MFM1yAbXE8ncSQY+J/Tzb+rn/w4=,tag:DzmX7xIJAar71EK/O1vwCw==,type:str]", "pgp": null, "unencrypted_suffix": "_unencrypted", "version": "3.8.1" From 3eee34b474d94edf791cdf2d062746a812d52f3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 16:56:44 +0200 Subject: [PATCH 16/22] Update secret worker-password-file --- sops/secrets/worker-password-file/secret | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sops/secrets/worker-password-file/secret b/sops/secrets/worker-password-file/secret index 49e4fd9..ccd5dea 100644 --- a/sops/secrets/worker-password-file/secret +++ b/sops/secrets/worker-password-file/secret @@ -1,5 +1,5 @@ { - "data": "ENC[AES256_GCM,data:iKHPOFHJFfqoHg7n1w790dbe36iamWb7Kss=,iv:+eOuWALwdV9Ih5N5v0NibYLqWhWe9lLuncoSbjdReUw=,tag:swFSrRz502q5GrBthAqcew==,type:str]", + "data": "ENC[AES256_GCM,data:rbKMhNQwkuMFJCQHXiwxyEpQLqLsLqBeE6o=,iv:Fo8SoR9wPV0e7r42zpuELHcr0r5YwWpAWhVZJy3rt4Q=,tag:sGHXyai6d5VLMotE1P33Fg==,type:str]", "sops": { "kms": null, "gcp_kms": null, @@ -8,15 +8,15 @@ "age": [ { "recipient": "age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz", - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNYlk2b2xiR2RERWxzOTRM\nZEpMZnBENGFkV3BtelFOQWZ1aUdhdS9kbnk0CkdGbGttSjhnTE5KT2FkQWFsUTI1\nYytISGZza28rRFJFZC9ZcmVKazNFZlkKLS0tIHRReGhoNGlhZ0crSnJHZWRWSk1v\nd25FQzJ2cE9Ka0lqZENkaEtDbjdmWEUKZIEJY7oWLLOI1X0E5Qrate82lSLOQG8W\nUClq/xHZsTH7E0D4ejU8CN8/Pb8RCw9JOB/8CjaoXIIBGBjrGfXSmw==\n-----END AGE ENCRYPTED FILE-----\n" + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWQnNiN0FXZ0Nkek5DVElW\ncUc4MmNBa0pHOUFsclp6ekZUMWdBVnNjSVJVCkdlME5sWC9rSGhUdjhRSDY3S3Jt\nQjBWLzRIbDNvWVg0eDNITnBnNHlVcGsKLS0tIFFWVms4SmZjSmE3RGZSbnVCYnJH\nUFdZRm1aSkVWZkRLdmlEQkVpa1lQNDAKBomS4CHmrfwiF5UTzVZZsCFqZ2wyCyQE\ndzFQe0ysLekbRTw1FfHnz/vJYsOV1Hk5PqTEFdTFNrYO+I6Rh/0ZIw==\n-----END AGE ENCRYPTED FILE-----\n" }, { "recipient": "age17xuvz0fqtynzdmf8rfh4g3e46tx8w3mc6zgytrmuj5v9dhnldgxs7ue7ct", - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPY0ZEYlpoT0FCdG5Qd2VF\neDk5T3ZzS2VNdVYwcFIrZ1RGem14ZndZbFRZCnFGcHRZUkJvdzZ4VnVBem0rNmlx\ncG80V2JUYU9YMnBOdHJ0QW9pcVQ0YmMKLS0tIEQ2YXE2R2tFZzZwdzczZjlwUmdO\nWUY1M0hQbFpDVDVLZ0xiSFFMR3BLMDgKCHLON7lfE+ECDWufohr64+U7ykzTGBOd\ni/e5wCDmkpQQbHjXHEoQXK6wc5bTqkjXux+TB2qDCJ5EGyTFo2t0AQ==\n-----END AGE ENCRYPTED FILE-----\n" + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0TmVtbXl4R3QxOGZ0VmJG\nMlJWMFJGTDIvS0M1cVFmNjFXMkdCR3RDaENZClFac0Zxc0gwUkpHYkdVZWg0NUhs\nRk9va2ZQVFlXVG1VZE10Z3ZuS2NheUUKLS0tIHRhNHlWQ21JNkNnN094LzVwb0tJ\nMUQ3T1Vycm1yQ1l0d0tNdytFcFhoVDQKVaGaWAOXwHWm+FqxILcPlZ+7eDSeNftZ\nZFAP3ANmPMkl311Ucl8kub0a9bY9RhU0ZZn1WGgJD/qL/EAtmudFSA==\n-----END AGE ENCRYPTED FILE-----\n" } ], - "lastmodified": "2024-04-30T14:56:00Z", - "mac": "ENC[AES256_GCM,data:7I95OTWH0C22Lygv4x1Pmvvx0rRnNK7ugN7eQTRbCiQA9yCVG7i1bCDaNtCNaOda6oHuBvsFzQAvfehRv2P89D+Nna6anw8yJZ/DCc1vkwCT+psgrcorweYjaNkO/DW6TTiJx3zTZOrttBuScCGiSZedLIoQqGRYdEuXNkLGeQo=,iv:/q7biMeZFBUWXkU5MFM1yAbXE8ncSQY+J/Tzb+rn/w4=,tag:DzmX7xIJAar71EK/O1vwCw==,type:str]", + "lastmodified": "2024-04-30T14:56:43Z", + "mac": "ENC[AES256_GCM,data:sH/X2WLD3OCJ4Z20s+Mqnoe/xDZzfp0DL0w8HhBshbRu0NtTbQ6MyPwZ7ar3Gl6wBVBVXDfHTX5x2/6Vs/C59NIJCKjeDrkuRWLL1qd1kF9Iqf5CyBjv3Pv/bZVGRkFSQ4IG5SZDRrGyz5+FZEGUbxvYOzZWW6gDrBWsyNn62rM=,iv:ITVFQJEqhqO3w/7m4+tH2d76FI4mghNRd+Em7yZ3QiQ=,tag:kq/rD8MUuWorSDKWGKQQnA==,type:str]", "pgp": null, "unencrypted_suffix": "_unencrypted", "version": "3.8.1" From b1013153c48c0641adbe583ac7943fa884942645 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 16:57:52 +0200 Subject: [PATCH 17/22] Rename secret worker-password-file to buildbot-worker-file --- .../{worker-password-file => buildbot-worker-file}/machines/web01 | 0 .../secrets/{worker-password-file => buildbot-worker-file}/secret | 0 .../{worker-password-file => buildbot-worker-file}/users/joerg | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename sops/secrets/{worker-password-file => buildbot-worker-file}/machines/web01 (100%) rename sops/secrets/{worker-password-file => buildbot-worker-file}/secret (100%) rename sops/secrets/{worker-password-file => buildbot-worker-file}/users/joerg (100%) diff --git a/sops/secrets/worker-password-file/machines/web01 b/sops/secrets/buildbot-worker-file/machines/web01 similarity index 100% rename from sops/secrets/worker-password-file/machines/web01 rename to sops/secrets/buildbot-worker-file/machines/web01 diff --git a/sops/secrets/worker-password-file/secret b/sops/secrets/buildbot-worker-file/secret similarity index 100% rename from sops/secrets/worker-password-file/secret rename to sops/secrets/buildbot-worker-file/secret diff --git a/sops/secrets/worker-password-file/users/joerg b/sops/secrets/buildbot-worker-file/users/joerg similarity index 100% rename from sops/secrets/worker-password-file/users/joerg rename to sops/secrets/buildbot-worker-file/users/joerg From 6a31438f0e68a436e1b05dbf0ae4e0d8c4621bbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 16:58:45 +0200 Subject: [PATCH 18/22] Rename secret buildbot-worker-file to buildbot-worker-password-file --- .../machines/web01 | 0 .../secret | 0 .../users/joerg | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename sops/secrets/{buildbot-worker-file => buildbot-worker-password-file}/machines/web01 (100%) rename sops/secrets/{buildbot-worker-file => buildbot-worker-password-file}/secret (100%) rename sops/secrets/{buildbot-worker-file => buildbot-worker-password-file}/users/joerg (100%) diff --git a/sops/secrets/buildbot-worker-file/machines/web01 b/sops/secrets/buildbot-worker-password-file/machines/web01 similarity index 100% rename from sops/secrets/buildbot-worker-file/machines/web01 rename to sops/secrets/buildbot-worker-password-file/machines/web01 diff --git a/sops/secrets/buildbot-worker-file/secret b/sops/secrets/buildbot-worker-password-file/secret similarity index 100% rename from sops/secrets/buildbot-worker-file/secret rename to sops/secrets/buildbot-worker-password-file/secret diff --git a/sops/secrets/buildbot-worker-file/users/joerg b/sops/secrets/buildbot-worker-password-file/users/joerg similarity index 100% rename from sops/secrets/buildbot-worker-file/users/joerg rename to sops/secrets/buildbot-worker-password-file/users/joerg From 8f32b44616524ac225cc6f530d56062a6da77d1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 30 Apr 2024 17:23:54 +0200 Subject: [PATCH 19/22] Update secret buildbot-token-file --- .../buildbot-token-file/machines/web01 | 1 + sops/secrets/buildbot-token-file/secret | 24 +++++++++++++++++++ sops/secrets/buildbot-token-file/users/joerg | 1 + 3 files changed, 26 insertions(+) create mode 120000 sops/secrets/buildbot-token-file/machines/web01 create mode 100644 sops/secrets/buildbot-token-file/secret create mode 120000 sops/secrets/buildbot-token-file/users/joerg diff --git a/sops/secrets/buildbot-token-file/machines/web01 b/sops/secrets/buildbot-token-file/machines/web01 new file mode 120000 index 0000000..a3c776b --- /dev/null +++ b/sops/secrets/buildbot-token-file/machines/web01 @@ -0,0 +1 @@ +../../../machines/web01 \ No newline at end of file diff --git a/sops/secrets/buildbot-token-file/secret b/sops/secrets/buildbot-token-file/secret new file mode 100644 index 0000000..25823dd --- /dev/null +++ b/sops/secrets/buildbot-token-file/secret @@ -0,0 +1,24 @@ +{ + "data": "ENC[AES256_GCM,data:MpBCFPDXtqh5iXRMPyyKZj/Hwk3miBCZ21f1DYOSXvQXfATwnkiyvgw=,iv:WADOb2mICNApHVL75mS08GpARU1yTYkVo8QwbCFMsiY=,tag:nQlO6zaSTU630D/k5D6pZA==,type:str]", + "sops": { + "kms": null, + "gcp_kms": null, + "azure_kv": null, + "hc_vault": null, + "age": [ + { + "recipient": "age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTa29QelppdVhheGR0YytK\nR1NWNTU1MUt0WHY1cDBqN2YwRURzN1lEVEhjCmpvK0tmNEZReWpKVGlkUWREakpa\nYnJYbGRUcGJHdGVnYmhKTktVckpKR00KLS0tIDZicFZERnlNckEwTUFaTk11bWsw\nb3hjblFvTWwrZXJLNFp2SkhuN0c5aXMKkYTrgforNlHLf14TLkV2G2qEE87u4dSC\niiywv7ltnotTiAgG2RgQwkmHubpFaEhVyhRskNmVjQI8gZ74AxmC+w==\n-----END AGE ENCRYPTED FILE-----\n" + }, + { + "recipient": "age17xuvz0fqtynzdmf8rfh4g3e46tx8w3mc6zgytrmuj5v9dhnldgxs7ue7ct", + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwUzlmMFdySGE0UjJlWEFZ\nL3lNbWpHYUNNTDRHTUE1bVNvMnkzOUZzOEc4CjUrYUNnLzNxQXlJWGJvY2RyU0w1\nWlFpTVFybXdEUVB4cHZIUWFja0poSXMKLS0tIFErMEk3dS9qcWhUUGVnZE41VE0w\nQlBpUCtlQkR2RzlKSjNKMHpHd2xaMUEKe5DRJeyGqMeGWzzWXrdhzLmriXs6BDMq\nA8s4AApF8ojwZdZ7K7k8lslof/kxuFhD7KLhrOJmSgvfRZ8a8vcz7w==\n-----END AGE ENCRYPTED FILE-----\n" + } + ], + "lastmodified": "2024-04-30T15:23:54Z", + "mac": "ENC[AES256_GCM,data:MdFMPt7xH8gDAyKYit3xpxL83591stka5+s7dwzEhFdorsXwqJGvdRGyIjMcAV7tnXDnm3TMFYQgP6lXf03ggCfNlRZIfwJGbguA4e0CcnwBFt1PE+jtHokjZE+oXrOy+OThmTcqgr12mAYtw0XGkRQRGPGCYtOpUK/y/WZ8Xzk=,iv:P/+JQFr42iSijEvyT/+foU5rBW4VGGvidXOz8xt7NeI=,tag:JFAKg0NcT+a2LhqPDcI2cw==,type:str]", + "pgp": null, + "unencrypted_suffix": "_unencrypted", + "version": "3.8.1" + } +} \ No newline at end of file diff --git a/sops/secrets/buildbot-token-file/users/joerg b/sops/secrets/buildbot-token-file/users/joerg new file mode 120000 index 0000000..4c1fba9 --- /dev/null +++ b/sops/secrets/buildbot-token-file/users/joerg @@ -0,0 +1 @@ +../../../users/joerg \ No newline at end of file From 888233b990eac84b7a344fcbbd980e7d72b268d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Wed, 1 May 2024 11:44:51 +0200 Subject: [PATCH 20/22] Update secret buildbot-token-file --- sops/secrets/buildbot-token-file/secret | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sops/secrets/buildbot-token-file/secret b/sops/secrets/buildbot-token-file/secret index 25823dd..c7c85a9 100644 --- a/sops/secrets/buildbot-token-file/secret +++ b/sops/secrets/buildbot-token-file/secret @@ -1,5 +1,5 @@ { - "data": "ENC[AES256_GCM,data:MpBCFPDXtqh5iXRMPyyKZj/Hwk3miBCZ21f1DYOSXvQXfATwnkiyvgw=,iv:WADOb2mICNApHVL75mS08GpARU1yTYkVo8QwbCFMsiY=,tag:nQlO6zaSTU630D/k5D6pZA==,type:str]", + "data": "ENC[AES256_GCM,data:wAUAcK0gtlCSCuXUMp6w/MBnn+J407iObssBVFjR7I1VUe9enghf4/Q=,iv:nbcgGyOCt8iO1FLPnV4aakLugr6/7fj/DB75KwqC93I=,tag:1D6B38fKIpQFdxobQ89mrg==,type:str]", "sops": { "kms": null, "gcp_kms": null, @@ -15,8 +15,8 @@ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwUzlmMFdySGE0UjJlWEFZ\nL3lNbWpHYUNNTDRHTUE1bVNvMnkzOUZzOEc4CjUrYUNnLzNxQXlJWGJvY2RyU0w1\nWlFpTVFybXdEUVB4cHZIUWFja0poSXMKLS0tIFErMEk3dS9qcWhUUGVnZE41VE0w\nQlBpUCtlQkR2RzlKSjNKMHpHd2xaMUEKe5DRJeyGqMeGWzzWXrdhzLmriXs6BDMq\nA8s4AApF8ojwZdZ7K7k8lslof/kxuFhD7KLhrOJmSgvfRZ8a8vcz7w==\n-----END AGE ENCRYPTED FILE-----\n" } ], - "lastmodified": "2024-04-30T15:23:54Z", - "mac": "ENC[AES256_GCM,data:MdFMPt7xH8gDAyKYit3xpxL83591stka5+s7dwzEhFdorsXwqJGvdRGyIjMcAV7tnXDnm3TMFYQgP6lXf03ggCfNlRZIfwJGbguA4e0CcnwBFt1PE+jtHokjZE+oXrOy+OThmTcqgr12mAYtw0XGkRQRGPGCYtOpUK/y/WZ8Xzk=,iv:P/+JQFr42iSijEvyT/+foU5rBW4VGGvidXOz8xt7NeI=,tag:JFAKg0NcT+a2LhqPDcI2cw==,type:str]", + "lastmodified": "2024-05-01T09:44:51Z", + "mac": "ENC[AES256_GCM,data:Bofuu/7Mk1qbsFUE5HTeX9daEQg2NDby0ev/Q96fiLKwcg0rpIFk84NxwPKB/hLGAiUoHEegnzrCFCcAmGPaVQtr/W6dEKsdeVH3R3UBTekEwkXGAnKvrmcS7Vbd/bzvcSA+NuuO93laAgeU/HjMOmkwZwR8GN1LkxGfinVCGhM=,iv:mqMoCB5welSRzSzaIgi9P+Y60n+/ZrB0LlR8Mx2bIRM=,tag:Ytvv38xMoXzHow4qheRLQA==,type:str]", "pgp": null, "unencrypted_suffix": "_unencrypted", "version": "3.8.1" From 62d9938a30e5f2a95dea3ca16d4f3545d35df008 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Wed, 1 May 2024 12:05:01 +0200 Subject: [PATCH 21/22] Update secret buildbot-workers-file --- sops/secrets/buildbot-workers-file/secret | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sops/secrets/buildbot-workers-file/secret b/sops/secrets/buildbot-workers-file/secret index ac51364..f09dcbc 100644 --- a/sops/secrets/buildbot-workers-file/secret +++ b/sops/secrets/buildbot-workers-file/secret @@ -1,5 +1,5 @@ { - "data": "ENC[AES256_GCM,data:KjEnSY47zmWeClLEibUle5pjBCTr20pAAd75tJIKqFJIzCEArphpuloZnKPwI2A7YCWXxwISHEZepFsXvXtfKZ62iirrdejElPvWBw==,iv:mHImaRKnUPqUC7iYuZ3A2zrQPOERRirW6pzwTefoBms=,tag:eBw9VgyBV+tjQaIPP4MVdQ==,type:str]", + "data": "ENC[AES256_GCM,data:5IICNx79F7NM4LzU8dWgnmkqn/6zgx/m9swqHsCo6wrqV0C+OCC9lWsBGbQ7sGDZHP9OPo4xXijzgBPelceb6Tb2CrwDo3Ud0UCMNA==,iv:wUMUI6gqaR1it4CaT+qbJfSIKDAXuLIPrfGDpwr+TwY=,tag:pIPF878PCJc/HcOfTEoA/w==,type:str]", "sops": { "kms": null, "gcp_kms": null, @@ -15,8 +15,8 @@ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwNXpBU0x6QkhwYWpMVVJh\nTlllS2pkbWNwa01HZjNwNHhNemFlbVNSZUVnCmUrM3lpL0FtdjVwanN6YWJFMjZU\nOUV5ZVIydUFrYWxKNDJiMGVOc0VaSWMKLS0tIGhocjg2RkFDV1IyM0Viamg1QVRX\nNDFTN1M1clB3NHZqV2NrcFBmOURkc0kKmrFWs9yEJ7gyWdyH15HepzYt0d9jkx2w\nqVqYfLx79GHmrZVyzM+10wHrkjP+LJBorcz6QR68JMgagcAbPxi6nQ==\n-----END AGE ENCRYPTED FILE-----\n" } ], - "lastmodified": "2024-04-30T11:31:37Z", - "mac": "ENC[AES256_GCM,data:dZL73ZHB58dFOH3OS+yOKk0ShlfwuD4hF5CMsoTfJJvTb75leUNS1HoolScqc9GKowaah08ZBmxvSIHnmQOLXEuPMHDgRGj3sCMOUymzjMv2He/ltFzBMolLfCX5lioxj6rtntU3FV0lsD0sxxK5zGehjgAkpfcIrW5En4zrw+o=,iv:Dc/Y9IYwk/YpvhbPP4040hVRBzO9H29spZomRKl+njs=,tag:0EzPHBuaz37StspMO0nfAg==,type:str]", + "lastmodified": "2024-05-01T10:05:01Z", + "mac": "ENC[AES256_GCM,data:evJedhmyh4E8jHr4YZzaexzoeWok3imHUBBNwKNXwxip0X/BpWdBV8E0+uVMIxhg5PMI58VzRVVrSlcuda2yLBT94+iHWPXIedbk0RxYMhyw21oR53OAgN5/CM5SjfvBB58tr9r1X+kdB6kaCEbH2nVUfsax+A27AGh9m0IcQtc=,iv:Q4PLC3dml+RcSTYf74k5bnoikJX0wwM1pLaiWayOfnM=,tag:eWY312KepmAHiUMFuvhLsQ==,type:str]", "pgp": null, "unencrypted_suffix": "_unencrypted", "version": "3.8.1" From 3f836fabaf51ce52fdb3ba9e8a4b2ce7ae476590 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Wed, 1 May 2024 12:26:28 +0200 Subject: [PATCH 22/22] fix buildbot setup --- flake.lock | 15 ++++++++------- flake.nix | 4 ++-- modules/buildbot.nix | 18 +++++++++++++----- modules/flake-module.nix | 5 +++-- pkgs/gitea/0001-add-bot-check.patch | 2 +- targets/web01/secrets.yaml | 7 ++++--- targets/web01/terraform.tfstate | 12 ++++++------ 7 files changed, 37 insertions(+), 26 deletions(-) diff --git a/flake.lock b/flake.lock index 60ddac3..4f05130 100644 --- a/flake.lock +++ b/flake.lock @@ -13,15 +13,16 @@ ] }, "locked": { - "lastModified": 1714482180, - "narHash": "sha256-sHaMH/Gqz/hH1uhMTSroy/a+WV0Tj7noS51YBdQlbf0=", + "lastModified": 1714557645, + "narHash": "sha256-iCbmdbJULi4reK8qfkvvc3U9T/yKawBA3pbwA4y5kRQ=", "owner": "Mic92", "repo": "buildbot-nix", - "rev": "5d2711a5871b8c767567f8101968b1e6b52b9cd7", + "rev": "4f78c6e7f79b936c8169c0ec4ad379a9d304a208", "type": "github" }, "original": { "owner": "Mic92", + "ref": "gitea-fixes", "repo": "buildbot-nix", "type": "github" } @@ -44,11 +45,11 @@ ] }, "locked": { - "lastModified": 1714471693, - "narHash": "sha256-LbFYT8T8SLZ6FLTmcF1bfO0PZqbpjuoc3LKWwyJc6rs=", + "lastModified": 1714488864, + "narHash": "sha256-Z9x9FtQUOEAa655hMMDuZGbQBOEk/P0wwn99C2diOY8=", "ref": "refs/heads/main", - "rev": "3da411770275fbf0dd4036bf741606f9eac00642", - "revCount": 2649, + "rev": "480bb396ed2a080472df5ba6887b5b91a278a7a5", + "revCount": 2652, "type": "git", "url": "https://git.clan.lol/clan/clan-core" }, diff --git a/flake.nix b/flake.nix index 69604e2..890ae50 100644 --- a/flake.nix +++ b/flake.nix @@ -24,13 +24,13 @@ # Use the version of nixpkgs that has been tested to work with SrvOS srvos.inputs.nixpkgs.follows = "nixpkgs"; - clan-core.url = "git+https://git.clan.lol/clan/clan-core?ref=error-handling"; + clan-core.url = "git+https://git.clan.lol/clan/clan-core"; clan-core.inputs.flake-parts.follows = "flake-parts"; clan-core.inputs.nixpkgs.follows = "nixpkgs"; clan-core.inputs.treefmt-nix.follows = "treefmt-nix"; clan-core.inputs.sops-nix.follows = "sops-nix"; - buildbot-nix.url = "github:Mic92/buildbot-nix"; + buildbot-nix.url = "github:Mic92/buildbot-nix/gitea-fixes"; buildbot-nix.inputs.nixpkgs.follows = "nixpkgs"; buildbot-nix.inputs.flake-parts.follows = "flake-parts"; buildbot-nix.inputs.treefmt-nix.follows = "treefmt-nix"; diff --git a/modules/buildbot.nix b/modules/buildbot.nix index 2135239..9a86ff3 100644 --- a/modules/buildbot.nix +++ b/modules/buildbot.nix @@ -12,11 +12,18 @@ # The number must match as otherwise potentially not enought buildbot-workers are created. workersFile = config.sops.secrets.buildbot-workers-file.path; + authBackend = "gitea"; + + admins = [ "joerg@thalheim.io" ]; + gitea = { enable = true; instanceUrl = "https://git.clan.lol"; - oauthSecretFile = config.sops.secrets.oauth-secret-file.path; + # Redirect URIs. Please use a new line for every URI: https://buildbot.clan.lol/auth/login oauthId = "adb3425c-490f-4558-9487-8f8940d2925b"; + oauthSecretFile = config.sops.secrets.buildbot-oauth-secret-file.path; + webhookSecretFile = config.sops.secrets.buildbot-webhook-secret-file.path; + tokenFile = config.sops.secrets.buildbot-token-file.path; topic = "buildbot-clan"; }; @@ -28,7 +35,7 @@ # Optional: Enable acme/TLS in nginx (recommended) services.nginx.virtualHosts.${config.services.buildbot-nix.master.domain} = { forceSSL = true; - useACME = true; + enableACME = true; }; services.buildbot-nix.worker = { @@ -36,7 +43,8 @@ workerPasswordFile = config.sops.secrets.buildbot-worker-password-file.path; }; - sops.secrets.oauth-secret-file = { }; - sops.secrets.workers-file = { }; - sops.secrets.worker-password-file = { }; + sops.secrets.buildbot-oauth-secret-file = { }; + sops.secrets.buildbot-workers-file = { }; + sops.secrets.buildbot-worker-password-file = { }; + sops.secrets.buildbot-token-file = { }; } diff --git a/modules/flake-module.nix b/modules/flake-module.nix index f56d5c5..75c9140 100644 --- a/modules/flake-module.nix +++ b/modules/flake-module.nix @@ -16,13 +16,14 @@ ]; buildbot.imports = [ - inputs.buildbot-nix.nixosModules.master - inputs.buildbot-nix.nixosModules.worker + inputs.buildbot-nix.nixosModules.buildbot-master + inputs.buildbot-nix.nixosModules.buildbot-worker ./buildbot.nix ]; web01.imports = [ self.nixosModules.server + self.nixosModules.buildbot inputs.srvos.nixosModules.mixins-nginx inputs.srvos.nixosModules.mixins-nix-experimental ./web01 diff --git a/pkgs/gitea/0001-add-bot-check.patch b/pkgs/gitea/0001-add-bot-check.patch index 6f25b41..2779e4c 100644 --- a/pkgs/gitea/0001-add-bot-check.patch +++ b/pkgs/gitea/0001-add-bot-check.patch @@ -21,7 +21,7 @@ index 007e790b8..a8f3ba7dc 100644 ctx.Data["PageIsSignUp"] = true -+ if strings.Contains(strings.ToLower(form.Notabot), "clan") { ++ if !strings.Contains(strings.ToLower(form.Notabot), "clan") { + ctx.Error(http.StatusForbidden) + return + } diff --git a/targets/web01/secrets.yaml b/targets/web01/secrets.yaml index 898f161..5fec2f5 100644 --- a/targets/web01/secrets.yaml +++ b/targets/web01/secrets.yaml @@ -10,6 +10,7 @@ ssh_host_rsa_key.pub: ENC[AES256_GCM,data:Gqk5+cDBsYg84d5Y5vowhnPyGncW3bycpeZAsu harmonia-key: ENC[AES256_GCM,data:pZObqfbLogp0DYs47Tg2STKT9HptPSiP4sgcf31FD68PKSWhkgJbdY3gO/pfa0zsnvZTrAiljR8Ugh/x9z70T/XhjgZ/dIKqtcrGw0or9WPDmVzD4UHYm6iWR30MZLa9EBK0GFInlcSa/g==,iv:9HRnOaqP1iKMyyRX7evl6woZgfw9h4t7mBD98v/iBng=,tag:MQDio//aEOAOTVWlgADYDQ==,type:str] matrix-server-key: ENC[AES256_GCM,data:0148ezOFk8jX5KPQPCG0jQK9ajSfe/iOdUqlvys5/M8DrIwPXH9GzrkknwH+l8kF9ViTRDC/q5md8J2bj3/FBR/RW4rwjDrYx9cBEFm8wjHrywUlwON8kNKtj9ycJmXgtRyCrVGv7sBmODy0ZC5ZfWbhIQh6xWBkX2/rsSh4zwi/1PoHLpOO3u4=,iv:IwHPDi1E3R9LAY/seGpvx1U+N8mB9NMrUjLg4KMA1UA=,tag:pwRJ/CqkFN2eedrnMAaj2w==,type:str] registration-secret: ENC[AES256_GCM,data:EvPearZAxxb2irZFYgvy/tFA72h+IABuzwCbvy94IYR0eoHjuYw6GBde8CNUWG4SUiwyXJr4v438o/YThDhehsZ/cZFjg2o=,iv:ogN4/Iia5Zl95a3HP1KZoy86K8LyBFYw50cZUpkDNQo=,tag:5wU2OrNi7b5gWPfFZcGLjg==,type:str] +gitea-buildbot-user: ENC[AES256_GCM,data:GsSP6YMfFoaYslLwceRh9OU6lNYUWQnpTi6Fazyxz/NF8bpy3wbYe+I8P1OlE50rpQ==,iv:ZFnFwXBXZc8c3Q60ZnG7WgcLXQNV9iUhjQxfu3w1lh0=,tag:6WlZkgwA4YY1C3VOEAx4Ww==,type:str] gitea-actions-runner: ENC[AES256_GCM,data:JKXAa7J1V3GH8lp3UtHTBmiezJlqxX1ItHLE7UcaIeNFQH8We2imaOMVftMpVCeXTpRX,iv:W9+4wH4asw3+w28i5om0OcJFHrABC85bhjhbgGWEs8E=,tag:Rf9XBeiEoJ1Pt8Z1TDIyJA==,type:str] merge-bot-gitea-token: ENC[AES256_GCM,data:ULHcaNSYJwMVeeEq4bSiRcVRuUkE9fFUV0AkWW1wM0yHQtD+dmo1GcQ=,iv:dujDWGZ+seoVN8Eez1w3tUuMpGeOHtNLMaa+f2hOpAo=,tag:WoDTsZegC6rrbh7ygWSk+A==,type:str] clan-bot-gitea-token: ENC[AES256_GCM,data:J+8AuAT50Xh4lKUWmigZQ/QBfNuaNKJDVuPj6jAOx06XZDwLEFtE8R8=,iv:8OGDcHbGfv6SOxe6+UBU7rTNgzYJYNJtUysSLao6H50=,tag:LxzSogjPBlxIrPcsgRU2Zw==,type:str] @@ -56,8 +57,8 @@ sops: TGk4dUlwcE9XWWIzZE1nQXdXcWY0V0kKJi5yXdrsEOP4Z8K6k/sPA7yadNPKQtzo Iyt//Y+Y7n55KwuO8Doogu42SiVTUhHDICM9lezQmcugFqCoh3Lk4A== -----END AGE ENCRYPTED FILE----- - lastmodified: "2023-07-28T09:00:40Z" - mac: ENC[AES256_GCM,data:EJGv76KzHaWG80CZy4/1n9JmDl1JafIR4mfNl4uWJeeZqvJm3D47WbXXKeOVnMGuSvElqxnLELpXG+aSxkbxBxc7fGDTwXPlnSb6N81OP4lZ9NfA0VvXo3dQY5vjunGUVhkK+eyVDeE/pIaO/EpIeUiCNug+OzpM5AjNU5KQXYc=,iv:upGfihotn1k1v2QbSapRv1O6aynNRnKW0mqDxJ4JIQg=,tag:ZJTQlwBvRSaV4CK3V2hoRA==,type:str] + lastmodified: "2024-05-01T09:44:24Z" + mac: ENC[AES256_GCM,data:jH1w5Xk9aAHQreykHiG9PMfljaWO5tm0rIWx1avLntbGVs7Ov1kIuAQ1U8otLMmjI3vA1QXGRMTJFoODqNEMxpBvER60dPPtkwkgnSYE1v9C88PFp3xBDeryrh4aLE9PKxZcY9kf9f7anZ8p1+FL7iYo25pDygD+bHvT/y+qM1k=,iv:L0oI5D5jq4n0x5KsveotGc91+M+Y7EVO6UIzLFfgW98=,tag:vTekW9SRjkdJkIJqcoXa5Q==,type:str] pgp: [] unencrypted_suffix: _unencrypted - version: 3.7.3 + version: 3.8.1 diff --git a/targets/web01/terraform.tfstate b/targets/web01/terraform.tfstate index 51cd736..20063f0 100644 --- a/targets/web01/terraform.tfstate +++ b/targets/web01/terraform.tfstate @@ -1,5 +1,5 @@ { - "data": "ENC[AES256_GCM,data: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,iv:Q8hfdKgrQaqRzlNz8d+mKvtBmwtUFdXhrDueVYHY+is=,tag:1Q6JbEXJYvNJ8B4mriOzZA==,type:str]", + "data": "ENC[AES256_GCM,data:9Fikbj3oieQRzwHaPbimbANvZdZSAxOl/2xGcflzjduMfxOmciQQ9chjnyw7m3jVDVrMF2MjVzXaQg6ge95+i4WQhfmwkVTZYbWAWZ0XKwkARTiYpqnJCPAIfmAhv0gUWEvyL9ntAgvMBBwOC8aslX0+LODjaow6eR6Sg7vXv9RHVdQgk7BtZ9UiL7Zz5dxyvsjc8WJJCC5l4EFh+c2IwEHpW5Ao79eagRzKxJ7p6eVfXFWU664Bs7V4k2yKyxZi2uGZgqJK5RUAeGj/kI6xeIUaE85X+LtugNM9tlCYVsasEcjrVWV60ohJ+7+HAM/uO53tNvc6gc3p2mioXDtGpnYYk7V95LFXkmXpLC3RAJNL+DNW9ntENuf5IQFt6ChgzUf2cQ5Uatoq/9bzS2w3JAM1N/OtZZ7vHPZfI6QVW8S1mhLzmIOBaMZPsTcMp/ZUbI9IjqkW5dqZ0DeNJkSjwgqx171lRt512Z6T70/hdYUAZMz2aCWrPt4faa/zB+cwQqgLIuMVCU4McJHwCI0wV7aXG+GRzrV+ig/ApWu0IVvRoKFrJwRv4PTJ0BLQxyvKVNxcWfxSJm+AJMuJE9isKdTDxdI5+NKgz6wkudGbIkh9jgwzICVt3G8J6JHtuTDsuMz5C2Ppnz2YCv4smkBzWdEaiV/gdabfjQ0+fNFgfkxM4xORywjVmp5hk+UpSvUDuf+hIckl/alYnj1ndG11Pu5i0iy9X719NPWiTgpviMY3mdyB+cLx3+1mFT6BSaPZsVGxfxT7HhZIVk+vb16ZhgqAOmuR+nf4vsIZakvL7ilcsMedialgGHdeoBzsrvXBiXSkMNltlmAWao8LR9iBzvhfUrVxm9XqXfZGAaP14jk9n1LD0/lKVMEHllO1mSQ9LiLaMflTbfQugi/KBMWWSolEOlUSO8dtMrBablx0lIoNQeuzl6wMx4Pf9vnWIR6tHncnpSGlmA/ihpBvIQG+z8YBT3Zehsn4IAu6TetUFryr1kIYjvSHOxequtWkDtujR7Qx8vJInSuj3e7TcTGE5rFNZ7wwcWVDc6u2thNHK7Q66heE/MTUcm+hlu82e0BhBezFUEFfXMwNI/vk7ugwngESO3JxvToDfBa1T9dZWZbpk3XZzEKsSRNZC6OWj/LV4z64ZC5dPYrcuzbQcESDmk+5Ocqnsy4DuwHmv9c4rME5peMo+h/+4C5dcUm3FQ/T+uemrOaJoKbROiioYpHQ8ZqAjqzlYjzbtmu35uAO5V7OvjW2awHkUkUnFkLDxIkCY2vJm4kRalCr1avhnJosyUZPJwvti4AEDFE/Euqk+0EsoAcTNAAsVARJjcXF2+Atbh8KQhMizQ8ROzaWuILmLlfLcmue+UPYwzSUs9eTOikjNAET3wtwm12fPWtPQT0HLo5alsA2nYrFOkDpo5E1oOO9hUycs4mA+AurD5qjTjORqqGpg3Fu9gAcpEfT3YY/UjwFtUgZoPCzyHaS9d+t8PRoowsDOfWGej2A5aVsxkjHOoXSWTP5Y9jSq/ndssB95wjx4ZZarCztjxy3Rqaj/cUCMoYoKQUuN1Ha+fPFK0PsdKI3GcGSWodbxc7XtRIbKM6IdKjNTngrkVgRQhBAA0LpqSJACLnppFKefYlfXjsUh5gkmihkeJ7Z9OTew8ZH5eRRc+cvXNZrD7hxYrpjOF2kiKdhOmVVLu7PQQKH2xT52i21yraeP8fex7TLDpHoUncepuNx624JmxC2HRZJP5s5dBTZ2pYWvIKznareX5rC2JNS2J57VMjEjKp39STYO1loATcnPCBLhApi46HHHNtOml/EJYaveA4g+Fiw4Q27/D4NK7XerECa1cnS/g4SnYCMkxc+XHwpz0jERjELtJC832edpcNQ1LKFEu6EEK6ztXRwwl1ZnxnyhwWB+ufC/d/9JyPiwh+A0+EvM4oMEXpHQp4HY5GZG0ynjEqCsFxm5hOdl75Anbgr226mq1F9MMgbcNWfE/IFkqJt1iond4aKYe9ckyfkI6qIhwevL8IvpMN5Npi0rHAauJJQJk1Dm+EX4+iDAirPfDTRInuqYhNyL7E7Rtq+m7f2fUhzfGM58DFAArJ8FprvWVyp9vAOKeeU8RE9KLaSGTXoZo2O/KRHeWRYdCq+BlWjnFTIpHQlKRNyYryOR1l8Y/9NfSxeuHqPr9QdAteSHUg1SuOd13Sn43IzE3Ml1JqwiHnBhQ8Mtgg8I7wK2P49ddSBIAP+/tPoxy7gZnQdqYnNmqWzLQ21AtEqCP1bh7vMKUTQLseGmMmDt5E3hdpuS2Ur3DrLTqKCTBvm2nL2VXCbC6P22+keAhlhGT2lz0WI+/5rbQN1aq18f1itcgeDon3m6wTi3v0ZlunyFjw6L5ObFCn4Nfu7chtwYTeZhxlKgqMgXtDltrJLww2vEr82DgZlW2Yd6H8EBheOMBvfneazzJ3Vc0YIqQ9b6LjZJkynG9ca8RMzh6paQQmGLcuA06+rg9BlzAlqVpoyW21oIb1c9I4h3AqXHylXRNt5Orxv1i/lARnpgc+Ivlv6j5gNmrkzTrsQM3z8SyX4BaYAW1UpG/tMHKNYUYGRyfSaI3OyOz5kSvobTnrdvoy2+zRf6FVjfvNmlcpwuFeK3jvVf06Hj/wkFRxOWBKR58i8Ww3a4jVPqCGO2XJsPasP3LMQ/shR9OkMtYHKqBPDo6UESrbT1iX02m9HWGCK4LJHgsRepp9ELDbDHt4SbDmsaF0awbQggLdfzBSEQQEAsNToyTrAuUlJxsdcy+h8/EN/Cq1QQ+BitJ3gjfgWxp3gNHvrFPNIr/RlgozjP3LQr9TIgqvtc3ld2fKjLdoIGiv1BdTr58Q0oG3vBWT70NG0JPZaJpAl9dJ9Pilrey+zF4hiZBOlxcgtJ3mP2mMuo3lpLUSso9R1QyDjd+o759mfni8Qml2SonEdb7uvEE5nKll5hDbe+FZJLbleZIXs+Piqo6UNg0Ar8XOdvwMDNuFyObsS6TAiiluqHvCjJUohfVhIgqN1KaK2zCtKrbnyEPzWMtrzFDvWCpXlTXhHf3I2P0CVf0MsdOvrmVJa79R7NqSF9frJkm+CIcEIGrjh8B4/4bohLo5MYGP4Klm9DL0c6oPyckk9zXYzb7vGP6z/fJAQ+/UnNg9qKnbxo5jq5oIT/KgRTOA5dDSZr/QaKesAYZBjivUEJmKoszDYZzDSc1PRaYv/j+7L1cLXIIAs1kqRi/5FHiYgT0wjzvaTMLiPgwwMfpLCHQoMyTrNWgNjonn7UeEOSvc08LCqcvgM6asu8nZto0EzwPAbZljLI419escwzyhx2YkLuM40N8S/LVemWb4/B8jsQBUQkaBgFRZO4COqLqSLfpI3akJ/Fv8SR5y+p7lznGLhsBQ2MOcAo2GIM1tgZXamvBapBLicCgkPAEhZvYOoQSJB0tfyYCoc3NB5PBUDt/FKaegNYKqPp3rNwnfY2RxNmf7Wpe+nVRYESdAdKQwOGmudAaHqIznPsRWS2w34FkzDek7A7mYra0246kRdK1OHyiXWjuX7sw5pnWnXCP5VjZED2gsaWcQ0hoKW/SqvtFURDhCIVuh5DWzGqSo1mwmZ8fn+se8ppRDMpJp9tJetQ7zp/YS326o14m3lV5rWqdtAOyJ0+0i9CcPl+sY6A2fkAL+YTzLBhH339CD1wJy25FujMltYU19bBcomN6IYAvfE/U5B3LZzB6+GJqLZ+iv67ouDYs0rrHdo6H+AK4Xjhm4HK2bZfGTYN7VnipvdDOPEXcc+67MW543ZEFXGVhDii69gj17xahU38g9YBnJ+Rs4bAjCgRBtsI2aBI7Ycj2cGKd8fPZ0aYfYf4eNftWlQn3UUxaA2jW5XXezMguQg1TDtixI1sDqPaYoBuSV6lA9uTU6ZlqasoZ2NDpbwGPaR/38eH7hRptwNw/wjXR1JCThlqBfciureGLUL9Yv3MDueJ3REc/RWVjfng2K+j1DeysFcxAWoXjiogDOAgZUPa+9lGd4QE4GDg/rykGTMOCIgzNep51uEu0FRJbgg3RQFYfj2ShRmzGFJuCtGIAJNY4QwhjqOpmaf3vFjj1TrR9Xfjzxxaz6a2qexYnfTm37d1G7UDEnfxkjC07P2XU4O1QcxngTaZq/MCy3aE/m5vSII8GWfi1EVy48PE02s+xzZ9MSqalouCsV4iV3dEYdWmuYW5KHJ9feDYPzf1SHu9GSEXK2MZZqVpGTOcJ3n53dKPt1NRrCnvC/KcMuVEbj8sOXkjBnuUEhvxFTgPuKVaGBfzeDdXfPEyjuAFtOFGbjJsP8IOR2R5EPCzuLHvBJMySVJCvKxbXSHRpus6n40KmsplLaKlI3cLWT/UNrAJZ2Txk9RUxx3zZzpiIE15yNUfDEy11/yQKvgClMYB6aNNajs6DqI8Isi5T2hgTcpvmZUfk3YlmUF2e9b4uhBs5TMUY5cjcl9eWV4mwiPKwOI0wUkosZujfbXmHVDe8wieF7ZXFWGbxg/zMNM3rWMn7jQTLFmqBWASqq+LTt5wGLBO0wFn/b41YZM+1c+YDZSAaITL9jWuphdxn0ycKras53yH/41tWQxY9LILRGs7hbS6iGmVWPEkJU3xudkrarU3ODDh821WXIhaNPUUTpyE1j3D7ZQqPG7z7vKVbHeFRar6SP3ItwqkqTghow21JNv/TMOLbX04g6r/iR69cUGDmZwqJOu1ZlVFrWXYwjk22MuBsQfzHhjXH6GptC3gat8dKqgQLyjMFA+YC5ZHf/1Yy676bEheeN1QvGVBSEH2IIg9qi9v1vYVoLYYyQHJqWlZ6Gpqd0NvvCrffrcSZ/zBeKwqurZaixpSW47Jj9g34f3j8gf6SCDxidg//hTlE8QHhFp1g0Ja8dGajEQKJkSIc+F5mP+3/vim7BrC607fER4EXRskXqr5pJj8caeO1eiAENV3yrLOYBDyHYXDOtweQz1JSovsymhx6+LPhOCPdZP35nd0n/mYxWAQDz+tUndTwjq3OSOOyhuUQ3r3NVS6JOvP0yAeQ8j37EKpr8m5ljO66kgPLuveW2ipGDrYDGt44PleXW7ORosMw/Jx53GCcVgO/a3JSX58PXDzhkc62AXnL3HFlrqhMyqKLs5XKwyX+Lbzf+d12Qafc6YdBi1I+aLZA4gwdKS9aBtaIgrxcNdM8gUL+qWirULGIc5qtdOlgVfsCKMyBINq9dxeyKtZzTyA34bf2HeH2TRKJlzyU/5wR3TDqieOxcGKHFnbnhH63PQQ5dcfMeX/CDFmemRDQEjscN446hhIsfI5BFrLsI7lhwTyGI8WKgWDal5mJTDaN/lxas1Qe5g3cxSvEa7opBW8Bk+FD5sPnjgVYQAN7JorWk9ObEuhlKdjKe6aEvhR3PUKm3Eycv8qgV1Si+sBzFvJBIiy990jswAgYBCHShJywM1NuJ66qmpn/RqkIVz/zSYcMZiBmzvf6mi1OFJcFvl2YHm9vTXXSgPG+lzPZAw0bIZx1ZkFXVGWXl2F1+y1TzaNJ1j8yjMEdch+uNid42JPm+o3fFREd9o9Kig/VdvlwrSIi/A10wB7Pa2jwv+iMY8FQCwAhL0Ly4E9ClC4IiVWrmk9UFnCYpKHfLRSH5ieCjSexxxM8XU5BQKagIY4Wbet2HaX9o6RfXHRfnThJPo3v7+8YoHHm+V/QNZuZJa/ArZBinO+OzKMa+jdnCxRJbeaFvF7oOlCsWSUKMeSmSzNDbyMM4px+oFkwqtLsHAzAaHwxSAU3AhE/ur+5wLBx94v/IqTxEOvsI4nMLCtHy5einfreP1afceQS06Q/zJA2AXGCeuHw82IhJeS3S5uFEQD0W7G17AhXhwhTSJtlLti46BbCmoZ6mpCNKOaB9gmXvnB1BsZwHa27U0AhvjaRkVoE0giYq3s0y+JVOlWbkmpEJGE67+n0O9Xn8sBCwI7XDgiBDRx/eKqVuQpY/h1730gXsXZdlp4cv9JrKo9wC/aickGpz8eUzQZPvkcJ1XVXKGnKPmeAjmWwcWFQmVQ6wm5GJoG0hOtzlzqSOOC0IDJ+sUcIyzMcfQWtPSyr0C2QezHOvToHarUPD2/S85XdgK/aYp5Oysz8dzYLQE8A/i9HlNXJfCMDke8kqFv9tIL9ZO9HoV+ndxOxMZbLeBR/YVabljo0yjWtjVzvAvDXh3hzAAjPhmLMfSggQXckKaBw/3ZTo5+CSqvNDPJR4LI5mCQvttg0vhQ5lMHdu5hQF6zUVUnqzckctjWhAK6wW5Y/dYsBhGDwfw0ldb8nRgHCycjXLZOxuUpanxtBY5dDg51gPo/1Yzc4udFxlZozES9ktM5aUosDJlH9J6mBaZhw7da4CzD/g0GaMKsRaLQr4H7bskudvnpPZPbMa95JGrEQjUIfcaS7pBomYGubJ2uPj53/5QB562BYbwKLSW3txi/qxaT9aCN9ozD327Y1P2aHyBfwxEcXLrE2RKMrYqs4fwThbQyGqqiJkSYj+VKaXUIRGKd8owxW9Yw95rkf24tjXVKpx8JXcPK0+B2FXAgKFlwL7cRLhh/PT61tyy/oTZYDAIz0vr/zyQhXNFaVc7PoHyljeIA+dvlk0e13KoE6ZNqL/+nrTMX+Hw/4nghNqAFm6uc3weJPVTopiYy4MxZjOPhRGFwUufBHR/+JOemISPqWX+fx7/+H2qT5stDWNrSyGBcT0O0ojgAeUqfIVq4X8S4EUUE/78Fj4d8g5R5vRQNyfz8hMWrQMV6Q+i6opdLK7KzYtCdfBI6OE4ByEFiUfg9T4Sz41q/X24yFWjAZLFztzlzSAtma1G/7WedLOARawv+F85WxvW2ciyBqzem3O4JSIWDc8VSjEoe9PhAQ9CAynTxs1rt5hunvZKn10hINebVRHP7bRRyQID/VE4V/7KeTGcw6Y9zuHAb1GoFpynJw+4aU5zUmBdNGux9+xwSQ3ChYr55nbF3sgfvDbGqGc/SoenPRBA9mhSRszPsKJMXewaU6TfjjT6M3wQ2crmuqliRR9GVpL0beTJW/MiZ9ZT+4sZnPiO/mktufcTd0a+q6B9opbroIMI/Kf0QPvsLc2M+/CRdzTlS/2oAnNDqypiT9VTs8WGZLk+h/PMGEVpe4MIyN6uOFu2xVIR+P1vQXUMVdfr1n2STdTt7iBX38m6T0fhHZP64dYg+l/dBBodUYUuvkLZ+JcanKX3eui8Oi0JE8BKkUGXoN6l5tv8/4by7p+VeN3WA9PnGeuUlAamVFaZvWbDm/d89Pd8RRo4u07wuHt0MViZu3o/LRa8/Nnl3ozK+kfPq/mL2O3HLovlba4ODYso+a/CsdHDrIBtCsRJ4YqVrKl/QGFLu61j5WgtocL+/HLGUA+B+wPIdz1UBLHxCH6Z7P4krN9LCm7OPJGA0MXZeJ++T/mSHi0YX2RobSvwTYT6ZdqCWv+kEhZ9KNsmSdscMK49/umoD+W1dL4OSsft80IsgjpKkfaX9mvwuTkiie80JtYvaTnXob9TuAp0Un/YA6duQahUJS4GuO3w1G/sbSCaHwqFZbUEjcM3EAo7vuJaUZxqulTZhtIG/gQ+vxOAGDdqUJQ95fQNZVxOJYcOX7QlzW4DPUvpyYJg0GDoePi7VDME2K82yjkkrQq2OhjKsC8nvhkqbtHAa7cpt4o7HB44ibIH/UxlsTFWCqqKS8T5eIOpLoNoQ2DlDJD1EuIW/oywH8u7NGe+kqxObZ4wrUQuor7YeTK6ukrqWlBeSoK3D/qRnwuzm+q48bV/tzNAejEchqwxgEDCCFqLYXHhH/uRNROXx+H2oyiubYeYL37oS9MBMPajfMN+FrfRttuwWNnpMOKOA9IRwFzF5TGBJeW7HnEheEp90NC0LvZOc+FXqa95GTRdkdfCLWx3bHo0KfNGEMHPWvD7jIY9vWfu8OU5AncVi02tgbfoXN9FEEYLvDsUohjjMQHRXGcSGA276NX/i9Hs1Xlnm3JK5IVG7MVFOaV3khEdCVedPz8fQI++P8JX35efulFXmerW+N3xADw6C2NoarHLsqQfRps7IcAfiFePEeMGc8H4qQQ9KdPWmW3XNiJnJCsV+OiEisyOJfRv7IHEf/Du49SZT+rDBOvNvOsea3i1v9jDqovfjnLifzsGLjHlUIuq8c/9fjjAvPWZbYlVI4pNyvkhUoU1HBO0MELF35HULQ+C08QeyiRClUCEwql9nvXKYi+Wx/jKIKdwBVzal92Y5Q+naxca/xuLSEQGE+79VGM9ZwwIbKS+E04CdPlkDsr0VPhvQWMZnGIXWTIIULDt69F9N/+86aLiwuVphKyP6tW/WWaABkdI1RcT3ouRvwgY69v2GTZuDVUpsIqnJMFRvAHjhkPhDk2i59q+uMidC8DK07bZ1A7AqQM3qd2NpHRR6vrt5P7a1uxvdlyPBU//MYOsTJMCqwCLN/kaDkemq+J4philwvazD3vX8iR04rw1ZS4lbSu/Ge7l5aphjM/pi92ynHcif46kVuqMj3c0+yj24/MEedIwc1zQqRDE/lNiUc8aOqq5vFq/GiY8/6PH0S5ZOkaqpRMEaJjD+fc8nBptgCxbwtF2UeB6+zpODKsDhLEulJ26vcj8TwNgop2x0ktoxbrzvhc9pJpZCU3liRD+fllABV4upgJ1T9BagralqLZGTrodIbhh4PhcYh3PHEuXYSHp2mdjS60oPr4KybfhQ7XmNWnsPxbKNhWJ71a49jzFDYz2A9iK3WkNSWnMkqNLMIca1IidxVk5sgzgsg9DIDZyRkjYyEcs1J6h4i6Bdo+1ZHhnJEXKa/we9QHr4Gp5DpwaJ4aeQPdtBUcPLZT0dRVPXKo9prLbtqF/e/N7M2p3dOQ4hH94rJg37gVk6FfC7kbcpRkf/nwSFYUvKYuMYqNhKd0/4znjyIqIfsSB3BeOudvofTqHJUznBV7FBPkjqERJ+A//B/QwSCZluqBTV1NRsYTViJ3eXpjwC03qCwOX5oWd/s2Ywx0D/GkmmqT/6h12mDjXtAkuV6pFSmBE02yUhH/p6F6Zs4k94QZ4ojP88u1anXT0E0ocL80R4gsKhJ/YTxYzVZz3iiYGtMS1BlrUxr1DABtw7IIi8CaNrmCAwThRC/JM4ZKbrhXaqL5zEJAv7dt5uLb0gREabco8kaPemWVN5cl5oHOAQJOPuJPsnWbT/AW5lfKhDpi94S+M6HTutl9j78nOCpKxkiPZmmchy48Bd7VDMhfyvnjv0YFNA500ngRa3xjH6RGV0qoyVrEOpwlHTUq5MmhTaD5x9G3O15BhELqdMYv+6TSr9TvFMXazrB8Tmm31GGvU7va9RV3kBrptOxNUuDUWOm9C99uEE7bpRgz6gIIvxAim0QIM01MCOFytot6OOMIGZa45GlLlOYvnwftJSun9c5Gcm4lwWL400q4erKggeTulGBNj4vjfnp8SMotA7qfhdpbXbTOOicS5WSCvew31IpxVs57YuhjjC/3Kfuph+LjVMx03McjYx6nnfUq9GRu9lmahpj0FhxOnuNDaq5HnxXP2lwKIpP32659hskjZfy3O0cz+MWcX+kv9lwT97pNZXP22oHW7R4WGs93eC7iHklQpnipg24M3lvunByONHmqcNAV//nQL24tZz2JM79wCoC5fLjDkGwD6N+50eSrFQqee6iyzjwAlbtzLnCFj1qXo5CQt+NFnLmmXBkOvZrzQWKsXS29l7X+2agJcDNTA9LJUB8Rr2H2XiSju38UIsFsy5v4LOY05t8MkziKoqWFPtt01hegKwDqhNnGSLIH3cynsiaSGAhAUmW67jpgv8iO8SevmrgeqTOcRR9dSVkbgOIYON8Etne86GyeEtG5T+1h0PBWKJhuYPDPD7esv0Y+e9R/VYZ5FXk36foDn0G71ISKMTTqaRqNVpH5JcqLIw0rVmJEAxY7obG9mpbbWnud79CcpCZv+b1SVZmFWVDc2PHOIaGC70yEd24t7VDWygJEqmYpTY2aAQPf8ytxZl4WlMLqHfCQjKkTP91UgphyYbMPmAujEYH13JY/thTphYJivjxeKIFv6zA6xqW3x6RcnNzG4vC0OfC1QIYbFjNRrEKh7YAJyX/RXiIqj7CK9Ql/OQDB7WxI7WqUyX2fAvKm18NFxnxOLyLsHp6g9rC8x7J0IxulsVIDMIWO6Fad5BMVD/DC/lDOTyvj2NC7rxtrjc/w2IleawB+n/vX6/O00qeoGptaRVjpiD2X6LV8H9XenVbfwyg1dbS2zK9ladToHsjPyKmp+z8L6Q5xIHUaFyp/EP5Qo/zOP+OdXbjkNoVOcJaQzm7F+xqrwG2vbt0mjEWDTtvbkTAX2V4ewKqIRTxq70Nc+JFeQBxn65aDM9/VgdifzQAO8ietfastPt3JKWGDFQg3TQF+iZoPHJ3tV4BafVwV4KPSh9VV8wMD1mAWgJ3UV20idFhlz5iWxO2CSQxJWJ5bvUfhDCjLDAxdX3uFUFSPMfMtuZOI/QsQjXFG3Ki/iGKz2/R37EO4Cla7QdH3zjE81c7gUhSCb4i1Ls1Mn6NOTZh3Dj4wu2MMXWbm0IWZHdyJNUMpkHOkvUDjn/cnsYaVyQNUZbq/4k8JvtCyaiP0XTABFxZjbYJDow8NmXwXxHo8F9CVNYXRRSop2dOeACceR+SEtPhiRVufkJbitVnvriFObkUGpqzmGKHgxn47bEz0h4mUPkLfjqjhshFeBpOpWQlSGDSG0PRc1dg9CVuDDvhV5xcpb7h1eibFR56xQtWjLLU71gsJXsXhRVNWDFwRFVQQlenEye5UdexFnQP/P9ywkxoRq46Fqk+88C3neZy6FzPK2G/ujl+EVZ5VPwO4AxiJYwPCbg63ocWcuHPa8gK43BDoxkvNYfb2pYV+NX81DCQaEAmsMfxXFr4RT06SWrhFn4T4BbJKDpZiPtGN4UlTN8OxXCo9btTU+in9PV4STjczHTlSS31et3i0ZWlLChbRluCTm/WoCAhGSX437FYD/wTZPInNKk108EAV1sP921nkHXBCmA93obCdLp8km5CR/kZ7RWmbQlnRdJn61OGyUQGPFOTDvu6PMmnF4SVlLBjEwWnuQxtfN6Z0QaBDC4x44t3AGEFHHm8uVUz5kxMEN3c3w+gmoGI5oV+JTloebQmu3wyOYW57GPxg54Zsr4gvIaxlzEBtrh7hNIUKDkMJMzdn2fRKtQUS32gyDqy7KtdcMqiQ/YHcLmIa0VFbVb2+txioi9ZREf0syNg3U1PG+EDrCL+sDazwmzQnEhaEFnvw82rgTz9Qt1PPPfoMjMnx9a3BTKpGcpM7DbDo+V2Q/VYvuGLgk9TeSqmmD6ksoYXsOONAbW5clfgrSZVTDGypkRVYvnw++8RDvIubvHdbjfq23EImG6cm8sRaJiZflvvcZRG7Bn56gZlr8vBtkQSSHmoR3W+zWNYZ6VFEyPs6ieFlFS1UqZfMnhj26ZWiG9c0GuACKwpSamOQJOkLMTKlaatCIgBdH2mCosNDc+zMwbCQviWX1VTukg+qS2F6KR+Cy7eMCXET+S/CO9UO3XzMm78fof896h+GGY3GPHDU8uLGF+FyxMjTWCnEM+s5AGVhW0MXtFypgJNGdKpkbGq2uPdDX04wH+nvTxHJ7aZKcAVwp1TEyqa6lPBU4eB7Jz7fooaXij51FDxSlzJfEmjJfdPA6QTb1zTeC6aOCMX8Hu1lBc3kXfPLeycM/frv5o+eTtSiYuWcdCXoD72Uah4tNrMUBZWrd8w8/fYv6A5KfMJYTKrgoFebluA6mMI1jy1ReD9q7FXpmjzOkwN9ay05dRyRyeRrmjvW533AdkXWp9LlYcfRq2ue2idv/bVeqvfXo74HxPXaIedvb6w/lAnpVRo9LENIhjC7d6s8A5mp2jFMSiNKqqRNsaWxoFdf2UXe+nG8clXyF3D1KLslcHIGqZWImVI12n6oFaVL/7MFPl4+fgGUrfEthJ0iriDIxdirDPa7UCX4qHOcrku99tSTJvTLYC0qp7/nrhjxhHAlzA96nvNi7NGOZ+4+TldUcvn/owOXr2J6H4/JDwHcPNjXooVnwiUFgnNID5UoKR/89EyUTaF1xJvAwsbghW79INE/GkCaaxpqS/0zOofHfOE6RZpCSb7P+AlY3sxiN9EMajmSQkHbNqBHl97t9aOo6m5EuefQhyWPv8EoDO6zaRxLGMgECx0RkN21dLge+FfTkJ4/lbDbINl4dulgZkSJSvOw0UdD88MdVUaKeNJoOqxyEn54jRrQkWTAl8fz/5XsrrrW/8r7wt1/G8tYWMCnU/nWn8V3OOLNTp3qp1Frkr5SjAT75eCnRSE6NgggQM9JDMa1nYuxdl3enhSo18hwc8bRS0sNNSEOiaAELrhLO5PoaAK+PpKRrIZsSJamAK6jqKGzBQzPX8LpTdcGJ1z2wqGDqHdeUE1igPOma4pf6ldZoZjR8gDwW/fpFCz6HPiP2w+BRbRxAPNi55vU+8DOcT6OKHE3GqS1mG2xUqNBD9e6XZAi0jGydEdOHkzhx++hemGSrugd/D1mH4Era/00yOyvNiMr9nTwgHSxsiTzc2hVML256xhLG8ZoxjHAeZKUjmNmWfZlZ2TsydcWm0KcR/FxzEWZcUV7VIkNUzSI/bp5nCxI/sCuDlxYmtgNXV3DaMPKO+U3wmxW2ecdq4uKrAV4urPg9nGZjPNnztKpQA3hWFTBg89eTrJjbxssCMqiSaJLRnXMezIrjLm/hLSs2HEgjVfu+yhvfkcCiEGCMBepAQ1Ur1JTc32OCY7ai0zTZ7C4vSFSESKcYe6k0M8DP1UzBbDV0gwTX+zAttziBmwVzEZhAy3aKxSo9r1y6E0YulbVuofGwMmqgIIS8blmDgWyzW+vzlbXhXEC2it3osthZHYU/dIY5UF8J/eIsEJX+6zHS0Y54eI/ya40IEkm2xtnjLVQgoajmkE/XXl73R8Hll92x93Ol69fdT2xNlvw7rr1xwX01dI2it85VA9e8lFM7J6DtAF4YtN3/xrLOUdtBjtvvqBksfbExuAXWQbb2e33UKfYE56S+NvwXAzwiyXQh8GnOQ5BFMX7+vDrg5XnGAlg9Nw1r8Tlf7zBeKBoqpJg4PfRyrgSFO1t/63hFigtUDMhBhq5WmNjA6qEMy22FJBAbkrhTEsw55ObVzZE4ZvpHIvjCigGoKBz9AB54kaYfSn6IpwR43nuT5EEZZu6+BNwPShlMCUTXg4eJrIuZpIkeRpK8zTj8Fo8RI8mim0gGKcMLmOty1zxlH6E8WVpVLkQyjqbQ0Ll9lZoBVYcJ0YJkkYpNgdFA9vSqLzDh00QtRWdPN2D1e5zHfMLI0pr/10+SLohbVQOLTz3lidtPq0hNfSYIw5KmVDKOf8sLJJcD5vANQxgNx06E3WFFlPV1D7wMUdsmiSCSv26uO/tef5u8bCyWol7qgel/asZOHRckEJhOq4a8r0Y45Ev80ei13USiDSoGGUExMPTF8yap2q6t5b9oSBMMnQWUv/ZF3j6yo1kk7skov00FOZo3M+fHo9NQnbwxZpP8uctc32t91/6fWywVjP7G+UObmHfeX+5kqm4/ARmhsGJ5Of92hqlVDVLEAKJXbvq5gYZYAladt2sbzNLK3vr4EWwnfbWkvfAqQRg7OZWSP+7f3WOuRwksGMW4+VYmKxPze8Sa+qsgF2y/av8wEfCo+hW5RJRg1z6n8g0PijXQqLljbed7TUHqWXxaLcTpOdhzdtncyX4kVzhQugrQIw5HOArlbf/hI4+JRtG9VwmBotkY39GDUEIMq1R9rSWcEt+fzt+N/X0XOa4LS56CGF4O6WLk5kYY9s+CWIJbKCd8ofHw8zBVhOnyJs+u9KwPDoQbAve7Y17i1IjBH1gxNSfLAgnuIcW59LepAl+apDR+sRJoUk4u5XZq866xl4FhrTSdXXH5k5bgePl4vyyYgfMLec+E1eSgV20/qTwpjzmx+zLregaBlyx/dU+jr5lGQLeO+xjCx4sPK0BASea5sCWiJyqAv1l87BbbbKq4n1rkHkxK+jlH9xHmeIXtOkvEGLDIcE7teuPv4TyqSAmaD0z80yacCqDwRXPMErUFxBhjkP025YyHXe/mCRzfFmjNTmSN/W5VwpHjxLE3q75TG5mPCkhuPcIqKlWa8GK7m4tCtyJtz7Cb52U3v/iqm/6FzPB4TgscrC03ocvkuxrdpMCfGJKpaPz47QP0IdolKyL/+yiJDW53+IlY1tS6Cs7IbZ+mc4KhevSH3fp6mCU+9IJSAk5ux/m4TYZEgpzlAtnx9phLlhhshBQAH079gS9UImqYhZiwdS2bTA0uOKfYm7GVg+Gt80nHL/80zf1Mp4YHKY+bHIRMQ1otf0xAswU7pkS+J92J0fkSqzn9OPwRMzWJQ7uzHY9R5xAjrA7PYxevvQUXILd/NbwDoUeuKCs0e9jG9e2S3cagpEEft5X4/j3jIXCQjbU4lc5Ju4IVLiU0OktExG1v+CWvLTPEbwqcKbe7Ke4g0/3dmy2H5bE36shUXtl67jJDvywRYBSkWVBVRjzON8M2OoFlCiCmM9hlwPFPLQQLHUEeRark/9DIxLfVBoow01MNG5ryIIgIhiCOiHD9F6IKkjeZ1oQZAs1XCLz8dt1CbTTtXvnsaReDvyw95scX8i3vmX+MCvkHpdI938F2ViKL3tBSPTBZTO7zssC3BrocQ4k6N0uZwXW6T472VaxE+n9Jj81x5vzsOny01cdlsHbgNGVEg91yOyov792JjoXAHova7uJCoU3RAbplEUgEr4hxg31XX/uDA8qWBjVm67J3w1EKlyYv7kKL6XdyKgeqzFOlTaheAhDr3z7/2/soQwK+BxI2WGaoEnsvcBEmyPWzP9ycnVDUHxuxoBgQAFDe6vGp+8hLbyHYVL0gtJThmv+XxOY6d1dghHMPPQJNCt7BwiRjmt7+88kCyXxH5548OyhUpfwipySjMjKx2Qr5zIvT1tBbX3xRYt23KD8mEgM2tBH3qTX86sc260UXnVY7cJkQFU0P1jEyzpBxrbpIh0Id+XyRB+vIjQgpWiNSS/hoPVFMk6s/fk/J1ZZA9wbO4LG7EjVblyC5pF+dptFyEE3YAZfv4BoTkugqdqn52bALI4XRrsUNWhwBL8977wDIZjVEVg65yBdU/VkdFKxEuXicPyO4fw0D6vKwOdN8jLR35nZ4k1aA2UkGT0DGsMLAIfEzjRtw6slOupvv4LfgyR2Q6idc61PA1l8HdL9MlLM+6wQ7WfxGWTKfjrc80exTXGSKJXl1wNHL2glrQ9ND28U2SrJm3A5BBSepd9bnLVgywRoO/x8gXWDODL+grxw0LbFHHBnJkfgMisLvbeM/xnEsiQoczzhN5Vhjqr6Pu84fXGMkpqfohjq7XxSf2ETEh6eN6n8feMaU3DVXP8c5WYSg2MjCGaJ7M6a6WgjmmAoYOH48BSSSLMdDcwLAmHxI7FrCvJy+oR5F722w/1I2++mpCaGAsqimoTBxaiyFnN9ig3NRu3w9mlkCkhwWOrlaVfUT/O9kIGzYedderSxdqQ+8NtWKL5aqvrpvZkgEYe8Navp7yF/EKI4Chm6T0B73VhDLdY+7FPEchr7APP1W/LkU0J9SglV2dO1+KmKfdhRGMCN60wivJKEqMB4DRKDa9Cifo0klxfuUFFYnVp8JJtuIwTG0PhreZK0O6Tgw2ui3FRv5HioQiCe7xfPyMOcRdsLAFewLyln6gfGCEHCXAszGhOW2hPFHl0g+ZHMmeN3rkOj70XiMRbJ1F3DDqZp3qIMrUXA1rf6uNbYnYHih1HIhoLaK860HM0/nZIqRiCCknN0B/7RjckL4UtxzSghfHLUv21ozvBDMZaCKftohRYUyrWYvhJL03BlUV6fhpM+vdjsA8RaEdimdvjrAAlIU/7IahGpX5LRITu1uHDKZ6x2NRKzwSOJcL5mEW0qGUcAUVDQcUuaqWfrcHGgfLeDfTSC0RcgUTQhpANBkELadj9UBNSiHsV0TaY7kJEYB1Lk3OTiqmN76obxCILvTH9Off2VUiESg9g5noi4BoxQyf0scwP4GvlNiVyTslKTF+gJzYV00fn675R26HOLUQT7z9VqBWcQfvK7BoMOEUSPSM2NMHhh7zmVU8cGNydPDA0JnaMcfqKt6nLl81p/1GxrUOTi1ZfECE3aMk3Ywvn+dGTN4v4u24oW+j8PQFrVPz6vd/JTt2IjWjsi17GJl/IxZR5E2HE1M0Nq24Lxu0QjW2QiWviKV8+qDp+REePOhWs/s9PORcYECf8WhXlFDd5EXn/TTtbkNR106P79EMz0s86H2hhjWc/kewgjSi35yuBHqXer0WwakvjmCreITCFnLtJDVGsdFT4CucQaSCwcFlQPZAkyuU6WaTegdhrVvZGgif691Tt06z2UxziMtWgJgBIGkyZYwPy7rgd/nziAwK2s1AUOpuzHP/Mxr8p4C/ckKpY6zycoLI3/8+BmmCXoCkwOT7hvSdr6CVlsR0RZPC3ZwC/y3uYBdGXueXAGcGxS2i3dpR996FbsVeEqogulnjcMuQ0NpTkhoPispH8WzR7AC25LAwWGLtk8QNjcKsubeyFDzLRnWZkAm4omAOEvOOYo4hbYgTfxwdz1t++d/VBb3iLUl3sGOXEgMcaofpr55dwz8l6TwI6XIyAjoEDZTDNfxVvHDNFO6/ePrabgK8zrBGQgZJwagIUdkRrOg0rAkuc+C8fIPjskuuWLHLqwCyx//vqsUzEXlJcUUCvfvGE/K5lM+85NyMG2kWFuBoxxR0DXd+xbH+RTGR/LPRHkeATPTBeiJSjS0u9qx6tZ50DPKb9U3KBsf7fapfo9bt+AWpus3gOtvAgDERAt5GW0JyYktwXSARZ3vz1BurW3kouhpNroUlIHnnyJYYnaN2tV0TkJrdUZV6nFsZxqqYOzuUnsq8g4GAg5B3GPp5KPrQaZd4XPryoGx+14MsvF4OPjPAwXyihH5cVejlUxL8AIDdOPL5lot8iATSlvJLZmrW7YC7X6rYrNwDaQ32HHjgbd/IZSQUhAW+uHmrqRz8khJPXIJtxF2kKAXqNaY6eN/j+kz0ArjKwjKPU2X6v4CxvNxfTRx40MwiDUEL4EUipUgRGp/qDPgzV2+GOj7QZkirX1ZZwiyUeOT6u0Spk7E1jUiRq79HDV580Ml7o8JoBY0QcYFrqkv1OOUpjue7B0hADvtocnLs7/zu/aBgJ2/e70p89ww3JGRcq9rheQwj2xq+UmRWI/LoIeCNMYWB/pmS4okVmu9A96iaR+vW5p45er54hAjyOseIjTr4vTCxoJuN7CpzdUKvJgQuxBzh7UTGk3qXs9yZu//wfwxFqAoZNMp9ijhpPSJDOeDhXiFh2PYX0rjSxRG8ffqp9JtV5SZRufdWkq7iMa1mW80ELv/MNP8571a05EfGVfgVH5PuKa26/H60ER6BxcCP+dDDktSdCoVNy0XZ/NqGdtpnycys0S03NI9W5bKr1fBLVVSd7UlwGMWGOm5nzRWjZsBBk9tH3ZOFI2Ut4SG3cfgmco8AJZehTMkDEXX6WmEFD9sE5A/AatbpTYCsH0RBbi8+CXT798VVX4G+Rw954f19J9/z9jINQoEMD4Ode7J+fI1hnck3LlqIzAas3wKdkL644DNye7yj2mmGZnhZsJtn03s8t/lX2vMzWcE7goQUDvUE3/ieRLqMvexpEjVnn5iMpa2qKCOHLCJar+s0Pbcl+LLgXuSsYAkSvAHuLKWBTYNOSFu1A1xAw90VZ/xUnCnVYh2XxGR+tW6R95L8qujJZlIQedDf0zkylg6meHDI7yPU6mulbpHPrrCVEUiDoV3ICDTwfJ2Il4B9Vfk/QQEm8GJo6A3CvZOVU9hca3qGoPe7C7tyxIZW8ciME3zf+dltTqzFIGjHeSEt7MyXtOXpoW1cm5NOdfTGFfmyYd0b5o7Yh+7j1cCIDmdFzzD9gK1HGZZIdahoLZrElC+roniagQhNFfEFYXxMZdgAycxOT5+CkoqWBE6DV+MQAZ3TwJnMepSmgVAAc2t8z5v1kNYmzIaiwKw/pL8iLzjyTzduJk9/YSofFazm9QzivLGpixymCfEICxOYu0TIaWmCckiVM5Kq3RYYY/h0c41GlMH+K3EtXQ1bdCmHIIIcOrqYXEHGyLeUyBEjnvoZ+R7bNbMa8/EoBmS+5x9wkjLAui8kXgOA+e/9AuvwZf9hUxp61G0xmCUlkk90PhTb8EvWO+QlVvzEgBX3txb3oEHlm2RaOcItdD5m/lS9aGCWCfDUzG8lktLoHB5GLFjupO041JWhuZugUjfQIfgWnupoYdZS7uFCTB9ZLegoTzrLNtc4Nf/VHo3wKXeVKouiCkmoaBtP7fZiPrd1Vp1ABX+q3kwNuvTUhyZz5NwZVYSdihVqT5PYgC/D6cRpAlvE+VUruG7EK8ArLmlLXmxpfjmEvAFeqn+cz+Pt++zENSdLBVGxb5+EoPb6KiCDQFwfHLv6Nodr6byefODcjUYHONvdqsYh/NQPHTehCLmrGuSfal7Q11mA/GpnU01YhQ5vQU4jn4JG4pArIrOgjg4AriQD+vbvZqVQEDUMJyIzw3kLaDgddHrtniRg/sxk/py+PyfbyHvC7Jh1NcxdKoKIyd2Tp86Tljtbgn39ho688zvh9Db2R0kVsj6AhYBPWqHzZTTHsJBAWzAFZfGy45dW+2YVIS+eIjg1yuywEdveUM+WWqEwArX3nRencjh45vd8UNQuL9Ks2jYcMGEL4mG3xYqIBW3NY12SS+5JNN27tktrg/l2a99je3iOn2f7Xug2bNCo/nU+EOBdiTkCnXZnVIka8iqxwCtz9hSH1OChBQeSQ6vZxAhyzp5IX0dkbjiys4Zb0UXeqXlhmSde/A8QHXuJUDPp6FxZkErJP55qrF+G2WGRsurUZ7vWwEaAWINPnPuBdvWXBGqP7AL/aB8Tp+8F0vGeLCMQvuXOAAc9PnLZ8OjQDlcg0kJY5KNX+SuCl2V0j2okz+4PAS/i5DWYS6o9VDZdQMK9gy40yLKA3Qq+d9AnNNRu7W8vCCyxvwM0f+eilbaayJJ69omg2kZB4mcwrKedCPQd2N4VUodtpS1F0Lp4wOddHxq34hQ6kUc2FRWniWAUq06cLW6LeptmKeudx2oe5VHJHSZdvVDvc37F6byn6/AfO+YVoPDKCxIg0lrqvVStpMCU7fSlw93bbXLsNXr5Hu1PH5ycZ1e/x2Oy1GCYAJnyVzeZAxUVQtBLwr3FLmZ2Bwk95qYdo0p+u2EQ6s9V779BVFPGu2m3pxPwtgF2G/zbgnjtUXgeQFZNz7JcqCURYZhQzSHpsPyg2CdALSunX5HWOqoedF2JEUQ9Ga8w9LPNVUbINFpnyI+UW38ueJ8XRRH0wKU3TD6I650A8LOr7i5zL2e3gD4Ajj9DbqaEdRxT7cUjBTj8YuzMadjaFZzHYqMW7I7WtTrnGv7N8G20tMk+76EpWT/iSg1oYg5GB8mK7RX9ZR+FexGp9lsQO4OhsG7y++WI/qwFGWwppSH7gnCHO7oKFzf0tScMuBKBufzsQ6XAdW065N3poAeq4d7/BDWX0pCDkq46HgaEHKew9Jycnpuqo0MSdR7foedjI6nZlvqBoAcPZ/JKvM7iaiADqAksYTibk+8GLBqhvZ/W9oTX/V/K0gJV9+a97jMoKXHO+YRmHAAMzMzVb6veddoMTH/aIzdUTlEaZG5wg5C2wRU5t22uIgimtGx1O6wMo8DvUQ+FkUqx0NtWMVK/HKDC6U2wGP9z1LG3w0VckUTmHnoNWiVJnDQEDzuIqZ6kRSNJRYCrYBlWVEdwHcN8pzkhYQLH5yjUeTB+mYRtlNmkAYbrFlpD+EyQ0b0jr78VreLAmyqlxtNzl8EoUvmFJ9luuD4J+B/abiGQQSLe/tgVIRLVYJ/Cor5TAX+x4hfXYnbruFh76xdzqKHEWW/tqJpywQZDP6QkxLNB/zEN1P7i8+lBnTqN4U75o7csKqwXo4vQYelFuTXP+Ca3pbYKziiUB5GvB5UfMCBTNEhakVhaJgEiChldWHaTSeZSS4ay3z0j52GEYCMfnPA9aqQfTMU7/7qAIRSIgx/N4efGuccJxzt9io2vCcqpvcx76u3yHT0sFPq7rpKuhS3yb0a10ut0xiLssVe4g8OQYGnbby7PuPJc3HBSnlLZpIsPCjt7zCdo1o8wQIf0mtzVCMUeTvUijZPyPXr7UYhoLfFVR675MOUVIOxPLuI8SPaxwYM60D+XVctOtQgZZOzQd9DHL4DwrCs/9FdVEmgY8YvHP3EKsqzDKPrUDoqSvuHNSzddoY+KrqrkkJGW+oHkTIZ4muJtt6JCTSezuJ2xVpBsjKOC2ZCdYklefbITxJ5PpUlp1YLprJQqKCqi9GEyifPcYcgNhFk/JHqitCmav2feE3mYHjKsmRt/uQRwwd9la11qAcQnz6Zvwu0iNaF2laG8sqc0MGbt3UP5zeI4FeZR9GkLCoA83lzHwabvcl61GyMpncluSXLABbUej4MSCGSGeifD5uHK6FQ5YaISJCedHO3NSViDv2+2nytbX4CRMqQ9wQ36ki8Sf/ekuRQ0H7XxwCy1KuJIos+0NSSsPi9kZVpJvQxDX+Vyxef5C5aJC/WXnG92D3m935kzvy2Ps8H6AmDx+eE3pBfERcHX7AEm03QA4M2jxQVIYLzsK8UiALAAgPnLhuHH9Bwkyo4IK7HJXihyw3KoTapWtZXbI4YZvoeHisDaNoCSHggaKVMOosERSgaN693o6P3xuYgexwxvXbZV9Km3/UZu1ROSJmr5JssCrKnQszQ7SbSoP7v9iNIzDBUr9KeuLvyqYXN89tA3PmkjKx64DTyWZzf+jB+9bM1urQLW+UBGp7B1KQsZq8lXNvO/7xOfkOo7ClxPeMaUrFA2//fdrX89jSm+rUPJwo63JPXYavYvTWL3TCkxiNFoyjHpiGEK37Lu9vjjyZjEXmycpxzFcTyzENGxph4xTOG8zxOwu1iXZfkx/2INpFgJPOjYdVK+OAWpAfxZLY9Wuvd/kZh16MI5F6PrT22YNTdiW42HXwXl3W65iqT9JHs614C+ZJmobaaT8Kzc5rN+CNSMVbtKS3itM+PpxUQyeoS2AgFfDDeJGxRWsEHc8BuMrPzOgDnWv0S8lwSnUeSLEhmQGMFKOcIrrugDl0ZGNwYATNDT6sw909ndgyHFjc9tNh0QHIMh2FG1y3s/72hbwpbVV3/6JIUqDx/YinEqAYNZKNH4H5V4INK7L1sB8tX75C2U2lfuhPjuHKGOzKvjrIVYBP9natdDruJS4wYb0W57dWfUPqi8WytPIgTTxbI8tzcBWpXgXFd82VPzUebNP43KLl/hbD49Db8GikdGl0C+U5ouYdMxurJAdSSrOs4+AtXqr6qT6DwSnpgrxvJNmDAi0WewnANggXOi6y5htpONNu9rJ2uIYA29uzU6SkT3csdt7RkBDEeOpvof2hbObmSlaGR7t79rXNvpeoIBRUKvxeVLgjqWOHxbmH8nrQHSZmJO0ruy0jsAgZ1Gw3t4RPE8w6BdyPYYnJRZ9jDIM4CNc/MWLhJbygeI0qZ3lQRaerpYaIrR3thVjPO0nG+z09x9jllivCEzt4RhynpkXFtjHXNXKm8DECL7QDe5M+UyF/Qh/2DsXrLRQyHnhAecYfkHqcprvYxQOpYFs/8jSOI1znZlC3aiqdq9ACAnTrxWafnXQbJ7yk00FCRfveONK3p9TyLGhyc0xMmIZiuuFUrEQ3y7t+Znt1zpz3XgymB2vG0vyGPcKuA46Zs6dx+JAGxvGJg0BNmVNmDIbQan85v938pJt6FsA6D6keAYmxV1yuHsNx7nNQjxhBlRgoYEvEEqrZqbNgE17wh7hmGX87p4hnd2nGU2IUzXeLOCqQJtdP5FL/LXKWFzVqDeZsqKEQ0bIfDKUwD9hKVtNzjEuxNnVm1EWDyr4KJx04ahmuSqQdsJBcUGL2nN3RRVx417mYIo6Gc2dPm+359yNnIzX5PZPwyFoesYksDPH1MJx3YTRnioLWS4rbMfHMFUEdq/gBhy5BE4dJY+AzmTn2az4jLxwO/fYXHdjK0S+hgfiyeXiMT6ku4Ql1hRIdbmBBPcqE8Fo0JoRhHOD0RnXAA8PchZPrzm2L2i3E1FLrj0FyRjNq96gwo9Sd3SvabWRXEz+xhDD6qyinijud2Hh21kjQkLaPOP3FJnhy8CoxFXw6aD1a77ZjVVnMIpOdXujmxpxV6MXj6qpwSnc3OJsQi4T1I6EpB9Arh/TJZHt7FHkX6aLQ4LT2TFSLokPylhmx/Ruv1eKUl7KrXHIeHAlar6IS2zaUVRj/H80HWxMZeII3jn38rmFQTCDAF2xyBDxjbi3yN5lmGu+o68XlcIj4HyQ2RuAvjBn/zzFZZrZQNK3CpL2lqBCMo3Q+xIuKMmGuH6PSVrG1eHuRdyqLCQBjUC7tk34UcdupVC3OJ4PvCLjjFYvR+fjD8/whfBUXw2V/KhJ9HB9LjrnVAbobtGMCr9cpucVUpgpWe5r4Hj5PUSSO+2rusZoK3HUs/x2n1IWlok1IKiprCvJpDNXQb3dh0VAlDHv9ZlXTragPyRIfso4aBQqxm3AOIui448W74YK2Sk8h824tT2BQ/syc3HvbdZb8FLaADf2CYuKddmByBh/gzUg0JqcjDnF4LkU9lOWg4KJqLeca9SlDBV9LnB9IiiokWNiZ4bSLn4li57cyGDTj3qqM0LDfhk/kH0nuxf74FAO6MrP1wmBIbIPk9zMG1wfuQR7ZndYaw+L1hqOqdDhRQv4W7J6RFajtXS2KztD63rpTgGQBTnyKN+fqwVUwFyiqLjl/Hdpg7lnLNcvw3iLzgYkg3mcNR6FuJDPHEnKWRaZnYylI6tSmwEDo2Mkew0axnk1UEBNxLHG/kgoa7oiP6lQkBDlcH+5pqedtEafhgoNU/71Az+cHVJK3vKh75zyolPr+SpMeza48f+tLy4WtN9zuOjPmfXlOZNAmskm4025ie/hcj8iLSRA5bYIb3LmcL+/cc7W9Tz5sLASAOeKrc59tAa9f61ar+GUg0wCAObihDM9H7Q6XfQeyS4N9zi+HxK5hGa0qgspd2tbL47w/X07L/f51E08r5qVpeIrFEuTCLVarlKC3fPvmgfIn27fVnCQoLHMsoNg31emOLnFvbe7lWF6OYMkODAqCqXtZ//Z79o0XURUHfKb93ny589LvXJbwpzMrpfsL0QxCP1apUF5dsRQhHePbeAUCEW//m/kAG5kwjKjIFqIj4QuyAcjr9bTcAej2gcWouHGpoejWvaNR0LZu/gZPZJ+jvC4bkvRNSijo63RMucWmvw4N+iqxrCDS9CeFIX9RjRTmKLB/5lNURyG34E2ogki2Gb1WlMKHEcpor0/gqJ2l/B8CyvQvXibsxiCcxVYY4iRVGpXFloslXPnbaTTSAKO7WKxQYdf8eJgXO/oYZgDyDjQq3xgU+g3AJnAOOFIGFPFTKwLnWJtHx8dnpnHZJvCcSVq/I1w/+kA/aCKppxZluHv2Gn2xywrWWntxbjBzpd7p7de6ifSifjtEL7TRV9UxSdjJC1E9A26DronXpwXmKAtE++3WHpuY3/jgNMhgZ+WovODPrwStSjhJghBuuBuH3n7ACRcrm/K/ukyZTHPPoaGNodK96z3vCK4Tc2bfxaYtscUrpZrirHXG6VUqkFrqGNvvMMe+lhEq8d/0leykt93Or+QlbaBSUkSsgivBnOU3ru1NN3ftTsrvC4vxd2ncggnMuAvoJwtUs36/Q1xJYzMPfEKct5D+KZRGx5iOlM6eUOJuPLemlyhFpAgk8ixb5ByV7UANvwvMtTeoXa239cUBsh9FwQYGyltKg+K7vg3TW4RZ3BofRPx04T7pXsXtv8s4QU1EY+fkCmLpOUo8GEvBZ3adF9uSK9Ri6Z904XWDYo/q86wX3U1RuO4oPtOMOUKK2r6dRyJijeLU9H4t6EumqQNfpOgQv6AeRC+mVKppkK07bNeVyse0xiUiTnjL2eRfLdAKd5Zqzf1TQ8VBJPvNT5EBqJG2w4yrDKu3QqvDXU2kHywl6hLX5kPpgb5P40W92TIEahsEAyGnA+bMPVJXgmogVIVHvjkGleuJ/sHsFDFutNhQ8SQ8NW1/QUivqNOQmWBxuHc6FUnKHabxZaTIjfnkvDXNpu93WZ7TxSO3EM+TxYhP6srY9Omi017i7h6zoJo4uGPcbOf4RmVzuNW8v1hd7VxLSnfkA357AJN9XcK/WcbeynNqp+YsbrVviZUKmMnQSAq+fNnbPsz0gU5fMqJpru+hQ85LL5QC4a473WBudeWiiM+9ndVPUgLm0fAtUDp0pXd3psVVWZwr+xcArC7HxmjrA7krNDzj/kyeO91Y0Wnc4vLFk3TqOXtfsASut0/H3roOjdwflKixmsjs1+xRzBc1gjsGwMyMVIT+QIBB5Vv+nYTDAlHq3+aTgcpmViRx8yWM7OQqLwRaHr6NBbS5jAXNUKifb1ywG41N5Zh8gSNXiCUe/mC+rz1nugnNBYDuMJZgIOl6gM3rge3QRuq/ehdAYeaI/TM59ffJ8msJJk4IW0cskQmYagJMJs2mgNzJB+5PRURLK6PfRLxcH5HxThcQq0vzma83gCr4FJWwpBhuiOub9aFaRJBmaf327hOa7bqZ09u+ep4TG8Wl96H9YaCC/QpGK394cIjT8Axh28Cy/p6p3pDorSeyeEUjbM6TYVsSDtIvGbLbZyoU2ZvBQBKEKSPbJZJjs8zWvnClNiK+Nw6/2wk8r17K6FqcHNuJABJedcNE1+Uib28nulK70S94anR7YPeUD+f8y1QunX3fd9K9NH2truel6CjAiLGZdbS+P2pgPCASBfQOwkQHKUpuuboMDp3j5VdRrNGzJ2+ysNi4coy9zIUzcWY75p8L6neLy7zA2WlOp+aZttyCc1ByZazrbR17S9PvJcRumI31Sp/bwBE79raaNLT1MJIS4H9LHNCf3GBsbaJvynUhiDZvhDx6+bOy52T4pQIp3EiwqSmbfLEbY3XPhJwaCSGMtanaKcN3CP7TnAj7n+O17vGV4mKd8e/faHaI1m1XB/TI/zu6qMJR1Ppp8,iv:7egIXI0F0Ld4lDV4cJhAjtdVml41x1hr5knXVpjUdRE=,tag:vBrdp9RetBWbK0BSTN6zJQ==,type:str]", "sops": { "kms": null, "gcp_kms": null, @@ -8,19 +8,19 @@ "age": [ { "recipient": "age17n64ahe3wesh8l8lj0zylf4nljdmqn28hvqns2g7hgm9mdkhlsvsjuvkxz", - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwQ3FOY2dkREN3QkF5VmpZ\najlhOEJKWElIbjhlSXJKS1pLRmpqNUFtQ1NZCnlDOXRvWjJmSE8yUGdOSzdwd1BE\nR1N5VUJMY2FLV1pYaEhQaHRmd1V0RFEKLS0tIDhZVmFvazJNdGtLemdjelBEWkxw\nUFJhRFVmUHdpVWhUWmR2ajJPMmRKcjAKboVSrZjR5sIfgjZTsfhVKRr7irlbgVhh\nQZRkFRj+i1LnkKKvuQA/mYTM6yPDujWfE1Jd+nGYJKqDd1MzIL5sEg==\n-----END AGE ENCRYPTED FILE-----\n" + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1bEFyUCtQZXBUSjdBMWRv\nN0ErTVNNVk15WUdEQzY1M1VRSzBuTU5oR2drCnNEVmlpTXRLTlViZ0lzckNiRlg2\nTitqOWVNOXdJcm5RQUJCTzlsV3c5ZnMKLS0tIE85TUJHMVhYN292TjFaMFBRcEYy\nejlKNlJydktFdm50MlB4M1g0RDJDM28Kjkb5HxDgiKJHuiIRd8/ju9DJ3qljD9u2\noR6SMNtTSl+fIpQmDGPxc7E+WkDD68fwFlku+/P6cjm+3Xco6D3K/g==\n-----END AGE ENCRYPTED FILE-----\n" }, { "recipient": "age1eq0e6uhjj2tja8v338tkdz8ema2aw5anpuyaq2uru7rt4lq7msyqqut6m2", - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBT2Y5emFoTFMxNVllRzFu\nY29UWm1HUE1FS1hiQ1JXTnhoMDdZeHRVM0hBCjh4VWNTZFR3V3FLUWRMZy92cWFh\nZHJuODVDUGpBMEl6RmgxY0RjT3BDcWcKLS0tIEd2WVNtcmlUaHVGMG50UTFmaC8v\ndE0rR2FJdHNyS0w3UFI3bk9RVDROT3MKp2VGhzVMmrK+IST7lr4hUcJGNM+WxMQy\nImjtbC8oVcOPeAHkfUC8oJEZ7NigDkVTatve3s8a2cxiB27v9RfaqA==\n-----END AGE ENCRYPTED FILE-----\n" + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDUUM5V25ya04xdEdnQmJR\naHdITzhwS1NTeHRWbUlKaUU3TlFDcTIxK0FrCkRjVnhjNGFMOXdIOXYzMEFDRjBC\nNmRvMmpZN21SZDg3YkRhNGhSd092YjQKLS0tICt2aU8wU2hDQ3V6Y3psNG9TOHdZ\neGdmVmJVdU5MZUVMR0J0NE5HOXNCczQKY+aQq10kz/R8peujYG1QG0ZBYDWHgh8K\ngcakEha+HQ421B9+Wpe7C0bUksD0NpSwEKukDd3ZZDoeUdarZRKTDw==\n-----END AGE ENCRYPTED FILE-----\n" }, { "recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl", - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3YklsbWhxYmZTRmpnOWJM\nNzJGUTU2L1hISlgxQ1BoMGJ3MjdpbEd4WDFjCkR5Mjh3OHpZbjNPRVJSTlVjUFdM\nS2dRaWVOVllSN01QcGRjNVl3b3FObjQKLS0tIHVHc0hDTG9EZkpJaklFQ2lENzND\naDMvKzhwazZtZWpnUG0xekJuMFlWUVEKXqjmZ/DfJefRs0GDeP3A4Qhgp7PCZ3lq\nNHT1RH6GX3/zRuQpGUIu+ulWYL07G6Mpq+uUGAbPSJPXCrxJnthaLg==\n-----END AGE ENCRYPTED FILE-----\n" + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvWlRLOU4yZE1BZkY3VHU5\nUU9heUh0dHZWdVVlNEpZaVhpSmRwL1h0V1NzCkJYd3h3QXJ5eE0ybGJzUEhiU0hu\nMGMrZ0JTTUxMNkFONks4VFlIUWJrT0EKLS0tIHJ5dUVKZ3JienpQK3RwYW16dW8v\ncU4yTGhVT3JidFZuYVdzeDdhaUVMd0EKp4xFp5Pejge+xa9sFawIL9vslsa/nw5u\nbQQ6623XGkQJABhAEB0nviL3OX7UNlUbIpl5YOe8Sv8Bd/IOW6K4bg==\n-----END AGE ENCRYPTED FILE-----\n" } ], - "lastmodified": "2024-04-13T14:07:59Z", - "mac": "ENC[AES256_GCM,data:S1ntKE5Z1M5NMs/gxXW7DLoXV+d/c/xJnjjVWNlZs+pwywzVX8pRpGH6rhEf27JevUcbnOk3HlRgYSVZzqtA8Xdlt5oHjmMANtS5S2jDiMW/kPKtXvc3m08rOQsxaPCMDhwLNhKvASeEX1FFK+45zTO6Ajxyg3XrgU2hO+5PxCk=,iv:3A0LHbGcwxXtypO1c62heAAH80I9QX7QcO4oEi771DY=,tag:/9Ht4l86d6LEY7m3UGMxBA==,type:str]", + "lastmodified": "2024-04-30T15:07:37Z", + "mac": "ENC[AES256_GCM,data:0REuFHG0j9o3SUC0m+GG4SWETBbdNMp88jzY4LD29HC1SoeAaDwYTHo80+8ovAarJhr2cIYhmAeodIZrYV0Iklmod7e7RHwMt/nGonDJ3G6k0uI8+0wN4/N/qX9KGWXeezFZIoMSX9PI8wLAlMCWqbUFcKTbHJIxu6axFJOOni8=,iv:tCFa7IneYFKvwEbUiJWMigUFpJECHzk8CJ3AbnMVp9w=,tag:eaapLhvpwH8JMVdma5ug1w==,type:str]", "pgp": null, "unencrypted_suffix": "_unencrypted", "version": "3.8.1"