Compare commits
98
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
68475ab2ba | ||
|
|
c0c83bee1c | ||
|
|
7ecb9d0a2b | ||
|
|
7b505fdcfa | ||
|
|
f13f513c1d | ||
|
|
c9b8541224 | ||
|
|
4bb3fe1efe | ||
|
|
caeaafe664 | ||
|
|
548558da9e | ||
|
|
e2bc58b7ee | ||
|
|
4c5248669f | ||
|
|
5b973c3e51 | ||
|
|
9a4da3ae26 | ||
|
|
56e397286d | ||
|
|
87ca5e8349 | ||
|
|
5247afa512 | ||
|
|
c9869083f5 | ||
|
|
50a01ba7fc | ||
|
|
b3523208f7 | ||
|
|
c9c967f111 | ||
|
|
58f7189702 | ||
|
|
7cdbd12835 | ||
|
|
7abdbfec85 | ||
|
|
63614d824a | ||
|
|
cc7cb5aae9 | ||
|
|
2f36a34a95 | ||
|
|
85d1591f05 | ||
|
|
9f76f7ddc2 | ||
|
|
ee3059a8d7 | ||
|
|
37496b974e | ||
|
|
452bd5f686 | ||
|
|
d8193f0652 | ||
|
|
ac2b1873b9 | ||
|
|
466dcba07c | ||
|
|
136daea65d | ||
|
|
835373fa06 | ||
|
|
d63c87d0bf | ||
|
|
477af55f8c | ||
|
|
c909e483b8 | ||
|
|
70be800f77 | ||
|
|
e04805f889 | ||
|
|
2b69d0d7c4 | ||
|
|
3612bb2d22 | ||
|
|
d13c64f314 | ||
|
|
32b1d76dbf | ||
|
|
51d7b7eef0 | ||
|
|
a48f1c75c5 | ||
|
|
8769b83d42 | ||
|
|
d19cd6c51e | ||
|
|
862d46b157 | ||
|
|
7d3dc6c1ee | ||
|
|
57e03a0557 | ||
|
|
47ce38ab4b | ||
|
|
e1e4687168 | ||
|
|
78d4960301 | ||
|
|
ea9529aef6 | ||
|
|
9a2f3e1ada | ||
|
|
a460f345d8 | ||
|
|
e4133ad242 | ||
|
|
759e3ec61b | ||
|
|
b99cb381c4 | ||
|
|
5540557413 | ||
|
|
50d923442a | ||
|
|
243c66e0ab | ||
|
|
72a17fea6e | ||
|
|
81f4e393e3 | ||
|
|
ff88a93280 | ||
|
|
9abafc50aa | ||
|
|
08f87d630a | ||
|
|
b848f709fa | ||
|
|
5174234e95 | ||
|
|
3dcc71de4b | ||
|
|
04e1fc2f8e | ||
|
|
6350dff658 | ||
|
|
5bad8fba97 | ||
|
|
9a861fa294 | ||
|
|
4536b97366 | ||
|
|
2d13588f77 | ||
|
|
46ad94c4b9 | ||
|
|
c915103634 | ||
|
|
597f0df6b3 | ||
|
|
7f3457859e | ||
|
|
31ebf2d081 | ||
|
|
b5077983ea | ||
|
|
0a87664afd | ||
|
|
7469976750 | ||
|
|
c95f74be25 | ||
|
|
2e56bfc54c | ||
|
|
b4c197e64c | ||
|
|
0dc7595f43 | ||
|
|
92a3676b83 | ||
|
|
6039edfac6 | ||
|
|
5066d4ee46 | ||
|
|
a80202e419 | ||
|
|
9b0368edc6 | ||
|
|
d525e63050 | ||
|
|
9b8d15d583 | ||
|
|
fa95098b7e |
No files matched your search
Generated
+230
-27
@@ -38,6 +38,22 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"blobs": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1604995301,
|
||||
"narHash": "sha256-wcLzgLec6SGJA8fx1OEN1yV/Py5b+U5iyYpksUY/yLw=",
|
||||
"owner": "simple-nixos-mailserver",
|
||||
"repo": "blobs",
|
||||
"rev": "2cccdf1ca48316f2cfd1c9a0017e8de5a7156265",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"owner": "simple-nixos-mailserver",
|
||||
"repo": "blobs",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"call-flake": {
|
||||
"locked": {
|
||||
"lastModified": 1687380775,
|
||||
@@ -135,11 +151,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1788346295,
|
||||
"narHash": "sha256-k9Ol++FFhQuPya6ZNQwVhqZZkMvE1ytLtbdrbH5zkrI=",
|
||||
"lastModified": 1792819087,
|
||||
"narHash": "sha256-1bxllGymY+u3NvEX4FHMZyE4l9y0nRpvk/qLaPkwAjg=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "b15797faeca7494a7fe5fde2691d93affa3d3e37",
|
||||
"revCount": 15239,
|
||||
"rev": "94862153f6e63016151d7c527f9e7bb3e96b0598",
|
||||
"revCount": 15417,
|
||||
"type": "git",
|
||||
"url": "https://git.clan.lol/clan/clan-core"
|
||||
},
|
||||
@@ -148,6 +164,36 @@
|
||||
"url": "https://git.clan.lol/clan/clan-core"
|
||||
}
|
||||
},
|
||||
"cnx-network": {
|
||||
"inputs": {
|
||||
"clan-core": [
|
||||
"clan-core"
|
||||
],
|
||||
"flake-parts": [
|
||||
"flake-parts"
|
||||
],
|
||||
"nixos-mailserver": "nixos-mailserver",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"treefmt-nix": [
|
||||
"treefmt-nix"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1790583225,
|
||||
"narHash": "sha256-Nhgf1hptHA9pgcGN4U1wQqDg1cc3t6oCT/HCgBcRs/w=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "b2749dcc6ebe5d055b691f32dd47039f745a7d0e",
|
||||
"revCount": 203,
|
||||
"type": "git",
|
||||
"url": "https://git.b4l.co.th/B4L/cnx-network-clan"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.b4l.co.th/B4L/cnx-network-clan"
|
||||
}
|
||||
},
|
||||
"data-mesher": {
|
||||
"inputs": {
|
||||
"flake-parts": [
|
||||
@@ -164,11 +210,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1788308203,
|
||||
"narHash": "sha256-dCOb9YIJv9I2udjqukvjlGiTyOvGnO7zVbot0PxjBGk=",
|
||||
"rev": "644c49bbf121b3e256bc83ce10b5d97813d9181d",
|
||||
"lastModified": 1791886485,
|
||||
"narHash": "sha256-/+7ayxD7PeW6wMQiHw20UJHmSTGN8Y5HXbn0zG/EgoA=",
|
||||
"rev": "8d4d36437f9fff6ecaa34872bd53c3ed09ef5464",
|
||||
"type": "tarball",
|
||||
"url": "https://git.clan.lol/api/v1/repos/clan/data-mesher/archive/644c49bbf121b3e256bc83ce10b5d97813d9181d.tar.gz"
|
||||
"url": "https://git.clan.lol/api/v1/repos/clan/data-mesher/archive/8d4d36437f9fff6ecaa34872bd53c3ed09ef5464.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
@@ -203,11 +249,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1781152676,
|
||||
"narHash": "sha256-RxWs5ND31KzTG7wvMM+PMfUjyNpmIEr999lqNARaM5o=",
|
||||
"lastModified": 1792526520,
|
||||
"narHash": "sha256-3hSJlv8mUVnZPMWK2+CM7a9O+nR6Z4mCh27NfLCmTPc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "ff8702b4de27f72b4c78573dfb89ec74e36abdf1",
|
||||
"rev": "cedd626e11b635470fa6f9fdb8ad79b0075dd7f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -249,6 +295,22 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1767039857,
|
||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||
"owner": "NixOS",
|
||||
"repo": "flake-compat",
|
||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
@@ -357,11 +419,11 @@
|
||||
"std": "std"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1787631179,
|
||||
"narHash": "sha256-l+Zt5XNTD0f0ChkzDJURfQlFAgANIMrGYrk51SZEJKU=",
|
||||
"lastModified": 1789106589,
|
||||
"narHash": "sha256-RMQdAvDaa4eUcdePDqUGAhnyTtzKxc6a8abauy8bzb0=",
|
||||
"owner": "kurogeek",
|
||||
"repo": "frappix",
|
||||
"rev": "fcb797886ae753b26a6e4415a7f2c19ba6adcf3b",
|
||||
"rev": "dbfa76d84df6354bd7528c9d0c407387f66c3e33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -370,6 +432,57 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"cnx-network",
|
||||
"nixos-mailserver",
|
||||
"flake-compat"
|
||||
],
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"cnx-network",
|
||||
"nixos-mailserver",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1778507602,
|
||||
"narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"cnx-network",
|
||||
"nixos-mailserver",
|
||||
"git-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"haskell-flake": {
|
||||
"locked": {
|
||||
"lastModified": 1675296942,
|
||||
@@ -497,6 +610,35 @@
|
||||
"url": "https://gti.telent.net/dan/liminix"
|
||||
}
|
||||
},
|
||||
"matthew-hardware": {
|
||||
"inputs": {
|
||||
"disko": [
|
||||
"clan-core",
|
||||
"disko"
|
||||
],
|
||||
"flake-parts": [
|
||||
"flake-parts"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"unf": "unf"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1789393925,
|
||||
"narHash": "sha256-8PHRxSVWxu1ol1AIrqiP8g6t+h9fLekTgDdpgRa+sME=",
|
||||
"ref": "mc/wip",
|
||||
"rev": "ebee3891bc9cbec584f611b4bcdf12618da25148",
|
||||
"revCount": 34,
|
||||
"type": "git",
|
||||
"url": "https://codeberg.org/matthewcroughan/matthew-hardware"
|
||||
},
|
||||
"original": {
|
||||
"ref": "mc/wip",
|
||||
"type": "git",
|
||||
"url": "https://codeberg.org/matthewcroughan/matthew-hardware"
|
||||
}
|
||||
},
|
||||
"microvm": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
@@ -547,11 +689,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1786845137,
|
||||
"narHash": "sha256-oQFip+v0luP8NIxJzmiW4Wu8bILsbFWom5l0zonl8hQ=",
|
||||
"lastModified": 1792737899,
|
||||
"narHash": "sha256-P0/GhewcEQmAbzq3QunNWY2jLJaYH9F6c/5dEM/jQ4M=",
|
||||
"owner": "nix-darwin",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "4cff07de74b50e64bdd68cd4e722ab5b6b35ee48",
|
||||
"rev": "bb0b90dbd54e207100de72b5dcbe3188c98a4b69",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -690,6 +832,31 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-mailserver": {
|
||||
"inputs": {
|
||||
"blobs": "blobs",
|
||||
"flake-compat": "flake-compat",
|
||||
"git-hooks": "git-hooks",
|
||||
"nixpkgs": [
|
||||
"cnx-network",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1785198005,
|
||||
"narHash": "sha256-falBPi+PJtMx0vwII8L24wjDGXNZMwRiVXsw8WTXLEo=",
|
||||
"owner": "simple-nixos-mailserver",
|
||||
"repo": "nixos-mailserver",
|
||||
"rev": "d357b9f048c5532ec81b0e0034c0b8463d5ddd46",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"owner": "simple-nixos-mailserver",
|
||||
"ref": "nixos-26.05",
|
||||
"repo": "nixos-mailserver",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1712920918,
|
||||
@@ -707,11 +874,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1788775869,
|
||||
"narHash": "sha256-JRf1lSypbvKj6AzUZHpUA6YC1DirVuitZWOnRwcm+Ww=",
|
||||
"lastModified": 1780365719,
|
||||
"narHash": "sha256-QfWfccTN+70ZQ4m2qlU9PiKfz2Yppq94058iJyARNwc=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "58973d74f1893afe13f5902919803a0e99da0ca4",
|
||||
"rev": "ffa10e26ae11d676b2db836259889f1f571cb14f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -721,6 +888,22 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1792773339,
|
||||
"narHash": "sha256-rZLrzrC6i+jnTAlvPZHogKDulY7WWDEv9hJeHieO7Zw=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "3ec636362e1816bc2f0888fa0fa2c69f1bc9e504",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nosys": {
|
||||
"locked": {
|
||||
"lastModified": 1668010795,
|
||||
@@ -809,14 +992,16 @@
|
||||
"inputs": {
|
||||
"clan-community": "clan-community",
|
||||
"clan-core": "clan-core",
|
||||
"cnx-network": "cnx-network",
|
||||
"devshell": "devshell",
|
||||
"flake-parts": "flake-parts",
|
||||
"frappix": "frappix",
|
||||
"home-manager": "home-manager",
|
||||
"import-tree": "import-tree",
|
||||
"liminix": "liminix",
|
||||
"matthew-hardware": "matthew-hardware",
|
||||
"nixos-images": "nixos-images",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"plasma-manager": "plasma-manager",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
}
|
||||
@@ -829,11 +1014,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1788337237,
|
||||
"narHash": "sha256-gkSH8VUtCo6hnysNmb9DbTuDepH2t5pv+QWjP75xKAk=",
|
||||
"lastModified": 1792809984,
|
||||
"narHash": "sha256-KV+CaZX7QS0hcdKxwGKehDb1jmUgx6lbkTPpaoIW5Nw=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "fbf759290e0cb0a98dfc813a4eb7d53ad1dacb57",
|
||||
"rev": "442449fa7b1fe6c692d0103ac9fc8f9e82931cf3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -920,11 +1105,11 @@
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1774449309,
|
||||
"narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=",
|
||||
"lastModified": 1791244623,
|
||||
"narHash": "sha256-uuanbkFk8a313Zfrxdcz8Us/yQtaxNnKJtX8v0ZPpd8=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "c29398b59d2048c4ab79345812849c9bd15e9150",
|
||||
"rev": "d36eeed142f88b5a636f2e3856a53c61654cf29b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -984,6 +1169,24 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"unf": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1779596435,
|
||||
"narHash": "sha256-ztzeJVOQDhQtE0z9DwtSWL+OyoWKZrAD4gzRRvUP9ug=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "4f5ab30ee524f09126b09f42f249c0aba756459d",
|
||||
"revCount": 6,
|
||||
"type": "git",
|
||||
"url": "https://git.atagen.co/atagen/unf"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.atagen.co/atagen/unf"
|
||||
}
|
||||
},
|
||||
"yants": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
inputs.home-manager.follows = "home-manager";
|
||||
};
|
||||
import-tree.url = "github:vic/import-tree";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
treefmt-nix = {
|
||||
url = "github:numtide/treefmt-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -51,6 +51,23 @@
|
||||
inputs.nixos-unstable.follows = "nixpkgs";
|
||||
inputs.nixos-stable.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
matthew-hardware = {
|
||||
url = "git+https://codeberg.org/matthewcroughan/matthew-hardware?ref=mc/wip";
|
||||
inputs.flake-parts.follows = "flake-parts";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.disko.follows = "clan-core/disko";
|
||||
};
|
||||
|
||||
# `router` clan service (site gateway: PPPoE, VLAN bridge, Kea/Blocky,
|
||||
# nftables). Consumed via `module.input = "cnx-network"` in inventories/router.nix.
|
||||
cnx-network = {
|
||||
url = "git+https://git.b4l.co.th/B4L/cnx-network-clan";
|
||||
inputs.clan-core.follows = "clan-core";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.flake-parts.follows = "flake-parts";
|
||||
inputs.treefmt-nix.follows = "treefmt-nix";
|
||||
};
|
||||
};
|
||||
outputs =
|
||||
{
|
||||
|
||||
+25
-10
@@ -2,6 +2,7 @@
|
||||
imports = [
|
||||
./personal-computer.nix
|
||||
./emmie.nix
|
||||
./router.nix
|
||||
];
|
||||
clan = {
|
||||
inventory = {
|
||||
@@ -16,7 +17,10 @@
|
||||
"deneb"
|
||||
"bosona"
|
||||
];
|
||||
w = [ "sirius" ];
|
||||
w = [
|
||||
"sirius"
|
||||
"stellio"
|
||||
];
|
||||
b4l = [
|
||||
"rigel"
|
||||
"rana"
|
||||
@@ -64,43 +68,43 @@
|
||||
roles.client.machines."cursa".settings.destinations = {
|
||||
alex = {
|
||||
repo = "ssh://borg@10.0.10.225:2222/backup/cursa/backup";
|
||||
rsh = "ssh -i /run/secrets/vars/borgbackup/borgbackup.ssh";
|
||||
rsh = "ssh -i /run/secrets/vars/per-machine/cursa/borgbackup/borgbackup.ssh";
|
||||
};
|
||||
};
|
||||
roles.client.machines."hadar".settings.destinations = {
|
||||
alex = {
|
||||
repo = "ssh://borg@10.0.10.225:2222/backup/hadar/backup";
|
||||
rsh = "ssh -i /run/secrets/vars/borgbackup/borgbackup.ssh";
|
||||
rsh = "ssh -i /run/secrets/vars/per-machine/hadar/borgbackup/borgbackup.ssh";
|
||||
};
|
||||
};
|
||||
roles.client.machines."procyon".settings.destinations = {
|
||||
alex = {
|
||||
repo = "ssh://borg@10.0.10.225:2222/backup/procyon/backup";
|
||||
rsh = "ssh -i /run/secrets/vars/borgbackup/borgbackup.ssh";
|
||||
rsh = "ssh -i /run/secrets/vars/per-machine/procyon/borgbackup/borgbackup.ssh";
|
||||
};
|
||||
};
|
||||
roles.client.machines."bosona".settings.destinations = {
|
||||
alex = {
|
||||
repo = "ssh://borg@10.0.10.225:2222/backup/bosona/backup";
|
||||
rsh = "ssh -i /run/secrets/vars/borgbackup/borgbackup.ssh";
|
||||
rsh = "ssh -i /run/secrets/vars/per-machine/bosona/borgbackup/borgbackup.ssh";
|
||||
};
|
||||
};
|
||||
roles.client.machines."canopus".settings.destinations = {
|
||||
alex = {
|
||||
repo = "ssh://borg@10.0.10.225:2222/backup/canopus/backup";
|
||||
rsh = "ssh -i /run/secrets/vars/borgbackup/borgbackup.ssh";
|
||||
rsh = "ssh -i /run/secrets/vars/per-machine/canopus/borgbackup/borgbackup.ssh";
|
||||
};
|
||||
};
|
||||
roles.client.machines."deneb".settings.destinations = {
|
||||
alex = {
|
||||
repo = "ssh://borg@10.0.10.225:2222/backup/deneb/backup";
|
||||
rsh = "ssh -i /run/secrets/vars/borgbackup/borgbackup.ssh";
|
||||
rsh = "ssh -i /run/secrets/vars/per-machine/deneb/borgbackup/borgbackup.ssh";
|
||||
};
|
||||
};
|
||||
roles.client.machines."alasia".settings.destinations = {
|
||||
alex = {
|
||||
repo = "ssh://borg@10.0.10.225:2222/backup/alasia/backup";
|
||||
rsh = "ssh -i /run/secrets/vars/borgbackup/borgbackup.ssh";
|
||||
rsh = "ssh -i /run/secrets/vars/per-machine/alasia/borgbackup/borgbackup.ssh";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -113,6 +117,9 @@
|
||||
roles.bootstrap.tags = [ "dm-bootstrapper" ];
|
||||
roles.default.tags = [ "all" ];
|
||||
roles.default.settings.interfaces = [ "ygg" ];
|
||||
# default 2160h (90d) expired cluster-wide on 2026-10-20; node certs
|
||||
# are only re-signed when `clan vars generate --regenerate` is run.
|
||||
roles.default.settings.certificateValidity = "87600h";
|
||||
};
|
||||
|
||||
auto-pull-update = {
|
||||
@@ -306,10 +313,17 @@
|
||||
"200:c8db:ea9b:5bdc:44ed:ad87:462a:6bd0"
|
||||
];
|
||||
roles.default.settings.extraPeers = [
|
||||
"tls://ygg.jjolly.dev:3443"
|
||||
"tls://[2602:fc24:18:7a42::1]:993"
|
||||
"tls://133.18.201.69:54232"
|
||||
"tls://153.120.42.137:54232"
|
||||
"tcp://yg-sin.magicum.net:23901"
|
||||
"tls://asia.deinfra.org:15015"
|
||||
"tls://ygg5.mk16.de:1338?key=0000009611ae5391dc0aceea9f3fa6a0dc1279f4306059339e84bfb8b74d2f9b"
|
||||
"tcp://leo.node.3dt.net:9002"
|
||||
"tcp://ygg-kcmo.incognet.io:8883"
|
||||
"tls://23.184.48.86:1443"
|
||||
"tls://192.3.13.16:8118"
|
||||
"tls://ygg-pa.incognet.io:8884"
|
||||
"tls://mo.us.ygg.triplebit.org:993"
|
||||
];
|
||||
};
|
||||
|
||||
@@ -520,6 +534,7 @@
|
||||
almach.settings = {
|
||||
exporters.smartctl = { };
|
||||
};
|
||||
stellio.settings.exporters.smartctl = { };
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
# Site gateways: the `router` clan service from cnx-network-clan (see
|
||||
# flake.nix input `cnx-network`, and that repo's modules/clan/router/README.md).
|
||||
# One instance for the fleet; each site adds its gateway machine with the
|
||||
# site's port / VLAN layout. `clan vars generate <gw>` then prompts for the
|
||||
# PPPoE username/password.
|
||||
{ lib, ... }:
|
||||
let
|
||||
# Admin mesh = the site's ZeroTier network. The service only opens SSH,
|
||||
# metrics and iperf3 to this prefix, so the gateway must also be a peer of
|
||||
# the same network (tag membership in default.nix). Prefix derivation as in
|
||||
# cnx-network's modules/mesh-hosts.nix: fd + 8-byte network id + 0x9993,
|
||||
# /88 covers every peer.
|
||||
meshSubnet =
|
||||
instance:
|
||||
let
|
||||
networkId = lib.fileContents ../vars/shared/zerotier-network-${instance}/network-id/value;
|
||||
full = "fd" + networkId + "9993";
|
||||
hextet = i: builtins.substring (i * 4) 4 full;
|
||||
in
|
||||
"${hextet 0}:${hextet 1}:${hextet 2}:${hextet 3}:${hextet 4}:${builtins.substring 20 2 full}00::/88";
|
||||
in
|
||||
{
|
||||
clan.inventory.instances.router = {
|
||||
module = {
|
||||
name = "router";
|
||||
input = "cnx-network";
|
||||
};
|
||||
|
||||
roles.default.settings.mesh.subnet = meshSubnet "w-network";
|
||||
|
||||
# stellio: GL.iNet Flint 2 (GL-MT6000, MT7986a). Ports as named by the
|
||||
# device tree in matthew-hardware: eth1 = the 2.5G "WAN" port, lan1 = the
|
||||
# 2.5G LAN port, lan2-lan5 = the 1G LAN ports (DSA on the MT7531 switch).
|
||||
roles.default.machines.stellio.settings = {
|
||||
site = "white-house";
|
||||
siteId = 8;
|
||||
|
||||
# PPPoE on the ISP's VLAN 10, as on the liminix router it replaces
|
||||
# (routers/white-house); set to null if the ISP runs PPPoE untagged.
|
||||
wan.interface = "end1";
|
||||
wan.vlanId = 10;
|
||||
|
||||
# lan1 (2.5G): untagged mgmt port for on-site recovery. lan2-lan4 (1G):
|
||||
# untagged client ports on lan. lan5 is the pre-cutover staging uplink:
|
||||
# DHCP client into the old LAN (routers/white-house), SSH only, no VLAN
|
||||
# membership; set stagingPort = null at cutover.
|
||||
accessPorts = {
|
||||
lan1 = "mgmt";
|
||||
lan2 = "lan";
|
||||
lan3 = "lan";
|
||||
lan4 = "lan";
|
||||
};
|
||||
stagingPort = "lan5";
|
||||
|
||||
# Both MT7976 radios serve lan as an untagged access port, one SSID per
|
||||
# band named like the GL-AR750 it stands in for ("GL-AR750" on 2.4 GHz,
|
||||
# "GL-AR750-5" on 5 GHz) so clients roam over unchanged. Passphrases
|
||||
# are the `wifi-GL-AR750-passphrase` / `wifi-GL-AR750-5-passphrase`
|
||||
# vars prompts. Channels as on the old router. Check the band mapping
|
||||
# with `iw phy` (mt7986: phy0/wlan0 = 2.4 GHz, phy1/wlan1 = 5 GHz).
|
||||
wifi = {
|
||||
enable = true;
|
||||
countryCode = "TH";
|
||||
networks = {
|
||||
"GL-AR750".vlan = "lan";
|
||||
"GL-AR750-5".vlan = "lan";
|
||||
};
|
||||
radios = {
|
||||
wlan0 = {
|
||||
band = "2g";
|
||||
channel = 2;
|
||||
wifi6 = true;
|
||||
networks = [ "GL-AR750" ];
|
||||
};
|
||||
wlan1 = {
|
||||
band = "5g";
|
||||
channel = 36;
|
||||
wifi6 = true;
|
||||
networks = [ "GL-AR750-5" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# 10.1.<id>.0/24, router .1, DHCP pool .100-.199.
|
||||
vlans = {
|
||||
mgmt.id = 10;
|
||||
lan.id = 20;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
+1
-1
@@ -43,7 +43,7 @@
|
||||
"installedAt": 1775458442
|
||||
},
|
||||
"alasia": {
|
||||
"installedAt": 1778661666
|
||||
"installedAt": 1793077313
|
||||
},
|
||||
"bosona": {
|
||||
"installedAt": 1779098893
|
||||
|
||||
+251
-100
@@ -25,7 +25,10 @@
|
||||
{
|
||||
"index": 8,
|
||||
"attached_to": 0,
|
||||
"class_list": ["pci", "bridge"],
|
||||
"class_list": [
|
||||
"pci",
|
||||
"bridge"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -73,7 +76,10 @@
|
||||
{
|
||||
"index": 9,
|
||||
"attached_to": 0,
|
||||
"class_list": ["pci", "bridge"],
|
||||
"class_list": [
|
||||
"pci",
|
||||
"bridge"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -125,7 +131,10 @@
|
||||
{
|
||||
"index": 10,
|
||||
"attached_to": 0,
|
||||
"class_list": ["pci", "bridge"],
|
||||
"class_list": [
|
||||
"pci",
|
||||
"bridge"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -173,7 +182,10 @@
|
||||
{
|
||||
"index": 11,
|
||||
"attached_to": 0,
|
||||
"class_list": ["pci", "bridge"],
|
||||
"class_list": [
|
||||
"pci",
|
||||
"bridge"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -229,7 +241,10 @@
|
||||
{
|
||||
"index": 12,
|
||||
"attached_to": 0,
|
||||
"class_list": ["pci", "bridge"],
|
||||
"class_list": [
|
||||
"pci",
|
||||
"bridge"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -282,14 +297,21 @@
|
||||
},
|
||||
"driver": "piix4_smbus",
|
||||
"driver_module": "i2c_piix4",
|
||||
"drivers": ["piix4_smbus"],
|
||||
"driver_modules": ["i2c_piix4"],
|
||||
"drivers": [
|
||||
"piix4_smbus"
|
||||
],
|
||||
"driver_modules": [
|
||||
"i2c_piix4"
|
||||
],
|
||||
"module_alias": "pci:v00008086d00007113sv00001AF4sd00001100bc06sc80i00"
|
||||
},
|
||||
{
|
||||
"index": 17,
|
||||
"attached_to": 0,
|
||||
"class_list": ["pci", "bridge"],
|
||||
"class_list": [
|
||||
"pci",
|
||||
"bridge"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -337,9 +359,13 @@
|
||||
],
|
||||
"cdrom": [
|
||||
{
|
||||
"index": 22,
|
||||
"index": 23,
|
||||
"attached_to": 15,
|
||||
"class_list": ["cdrom", "scsi", "block_device"],
|
||||
"class_list": [
|
||||
"cdrom",
|
||||
"scsi",
|
||||
"block_device"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "0084",
|
||||
"name": "SCSI",
|
||||
@@ -396,8 +422,14 @@
|
||||
"unix_device_name2": "/dev/sg1",
|
||||
"driver": "ata_piix",
|
||||
"driver_module": "ata_piix",
|
||||
"drivers": ["ata_piix", "sr"],
|
||||
"driver_modules": ["ata_piix", "sr_mod"]
|
||||
"drivers": [
|
||||
"ata_piix",
|
||||
"sr"
|
||||
],
|
||||
"driver_modules": [
|
||||
"ata_piix",
|
||||
"sr_mod"
|
||||
]
|
||||
}
|
||||
],
|
||||
"cpu": [
|
||||
@@ -464,7 +496,9 @@
|
||||
"spectre_v2_user",
|
||||
"its"
|
||||
],
|
||||
"power_management": [""],
|
||||
"power_management": [
|
||||
""
|
||||
],
|
||||
"bogo": 4224,
|
||||
"cache": 16384,
|
||||
"page_size": 4096,
|
||||
@@ -475,7 +509,7 @@
|
||||
"fpu_exception": false,
|
||||
"cpuid_level": 13,
|
||||
"write_protect": false,
|
||||
"tlb_size": 32764,
|
||||
"tlb_size": 32766,
|
||||
"clflush_size": 64,
|
||||
"cache_alignment": 128,
|
||||
"address_sizes": {
|
||||
@@ -546,7 +580,9 @@
|
||||
"spectre_v2_user",
|
||||
"its"
|
||||
],
|
||||
"power_management": [""],
|
||||
"power_management": [
|
||||
""
|
||||
],
|
||||
"bogo": 4224,
|
||||
"cache": 16384,
|
||||
"page_size": 4096,
|
||||
@@ -557,7 +593,7 @@
|
||||
"fpu_exception": false,
|
||||
"cpuid_level": 13,
|
||||
"write_protect": false,
|
||||
"tlb_size": 32764,
|
||||
"tlb_size": 32766,
|
||||
"clflush_size": 64,
|
||||
"cache_alignment": 128,
|
||||
"address_sizes": {
|
||||
@@ -568,16 +604,20 @@
|
||||
],
|
||||
"disk": [
|
||||
{
|
||||
"index": 23,
|
||||
"attached_to": 19,
|
||||
"class_list": ["disk", "scsi", "block_device"],
|
||||
"index": 22,
|
||||
"attached_to": 20,
|
||||
"class_list": [
|
||||
"disk",
|
||||
"scsi",
|
||||
"block_device"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "0084",
|
||||
"name": "SCSI",
|
||||
"value": 132
|
||||
},
|
||||
"slot": {
|
||||
"bus": 1,
|
||||
"bus": 3,
|
||||
"number": 0
|
||||
},
|
||||
"base_class": {
|
||||
@@ -606,20 +646,20 @@
|
||||
"value": 0
|
||||
},
|
||||
"model": "QEMU HARDDISK",
|
||||
"sysfs_id": "/class/block/sda",
|
||||
"sysfs_bus_id": "1:0:0:0",
|
||||
"sysfs_device_link": "/devices/pci0000:00/0000:00:05.0/0000:01:01.0/virtio2/host1/target1:0:0/1:0:0:0",
|
||||
"sysfs_id": "/class/block/sdb",
|
||||
"sysfs_bus_id": "3:0:0:0",
|
||||
"sysfs_device_link": "/devices/pci0000:00/0000:00:05.0/0000:01:01.0/virtio3/host3/target3:0:0/3:0:0:0",
|
||||
"unix_device_names": [
|
||||
"/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0",
|
||||
"/dev/disk/by-path/pci-0000:01:01.0-scsi-0:0:0:0",
|
||||
"/dev/sda"
|
||||
"/dev/sdb"
|
||||
],
|
||||
"unix_device_name2": "/dev/sg0",
|
||||
"unix_device_name2": "/dev/sg2",
|
||||
"rom_id": "0x80",
|
||||
"resources": [
|
||||
{
|
||||
"type": "disk_geo",
|
||||
"cylinders": 8354,
|
||||
"cylinders": 9399,
|
||||
"heads": 255,
|
||||
"sectors": 63,
|
||||
"size": "0x0",
|
||||
@@ -628,21 +668,30 @@
|
||||
{
|
||||
"type": "size",
|
||||
"unit": "sectors",
|
||||
"value_1": 134217728,
|
||||
"value_1": 150994944,
|
||||
"value_2": 512
|
||||
}
|
||||
],
|
||||
"driver": "virtio_scsi",
|
||||
"driver_module": "virtio_scsi",
|
||||
"drivers": ["sd", "virtio_scsi"],
|
||||
"driver_modules": ["sd_mod", "virtio_scsi"]
|
||||
"drivers": [
|
||||
"sd",
|
||||
"virtio_scsi"
|
||||
],
|
||||
"driver_modules": [
|
||||
"sd_mod",
|
||||
"virtio_scsi"
|
||||
]
|
||||
}
|
||||
],
|
||||
"graphics_card": [
|
||||
{
|
||||
"index": 16,
|
||||
"attached_to": 0,
|
||||
"class_list": ["graphics_card", "pci"],
|
||||
"class_list": [
|
||||
"graphics_card",
|
||||
"pci"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -699,8 +748,12 @@
|
||||
},
|
||||
"driver": "bochs-drm",
|
||||
"driver_module": "bochs",
|
||||
"drivers": ["bochs-drm"],
|
||||
"driver_modules": ["bochs"],
|
||||
"drivers": [
|
||||
"bochs-drm"
|
||||
],
|
||||
"driver_modules": [
|
||||
"bochs"
|
||||
],
|
||||
"module_alias": "pci:v00001234d00001111sv00001AF4sd00001100bc03sc00i00"
|
||||
}
|
||||
],
|
||||
@@ -708,7 +761,10 @@
|
||||
{
|
||||
"index": 24,
|
||||
"attached_to": 7,
|
||||
"class_list": ["usb", "hub"],
|
||||
"class_list": [
|
||||
"usb",
|
||||
"hub"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "0086",
|
||||
"name": "USB",
|
||||
@@ -781,8 +837,12 @@
|
||||
"hotplug": "usb",
|
||||
"driver": "hub",
|
||||
"driver_module": "usbcore",
|
||||
"drivers": ["hub"],
|
||||
"driver_modules": ["usbcore"],
|
||||
"drivers": [
|
||||
"hub"
|
||||
],
|
||||
"driver_modules": [
|
||||
"usbcore"
|
||||
],
|
||||
"module_alias": "usb:v1D6Bp0001d0618dc09dsc00dp00ic09isc00ip00in00"
|
||||
}
|
||||
],
|
||||
@@ -790,7 +850,9 @@
|
||||
{
|
||||
"index": 5,
|
||||
"attached_to": 0,
|
||||
"class_list": ["memory"],
|
||||
"class_list": [
|
||||
"memory"
|
||||
],
|
||||
"base_class": {
|
||||
"hex": "0101",
|
||||
"name": "Internally Used Class",
|
||||
@@ -814,7 +876,9 @@
|
||||
{
|
||||
"index": 21,
|
||||
"attached_to": 16,
|
||||
"class_list": ["monitor"],
|
||||
"class_list": [
|
||||
"monitor"
|
||||
],
|
||||
"base_class": {
|
||||
"hex": "0100",
|
||||
"name": "Monitor",
|
||||
@@ -960,7 +1024,10 @@
|
||||
{
|
||||
"index": 25,
|
||||
"attached_to": 24,
|
||||
"class_list": ["mouse", "usb"],
|
||||
"class_list": [
|
||||
"mouse",
|
||||
"usb"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "0086",
|
||||
"name": "USB",
|
||||
@@ -996,7 +1063,9 @@
|
||||
"model": "QEMU USB Tablet",
|
||||
"sysfs_id": "/devices/pci0000:00/0000:00:01.2/usb1/1-1/1-1:1.0",
|
||||
"sysfs_bus_id": "1-1:1.0",
|
||||
"unix_device_names": ["/dev/input/mice"],
|
||||
"unix_device_names": [
|
||||
"/dev/input/mice"
|
||||
],
|
||||
"unix_device_name2": "/dev/input/mouse0",
|
||||
"resources": [
|
||||
{
|
||||
@@ -1037,11 +1106,18 @@
|
||||
"hotplug": "usb",
|
||||
"driver": "usbhid",
|
||||
"driver_module": "usbhid",
|
||||
"drivers": ["usbhid"],
|
||||
"driver_modules": ["usbhid"],
|
||||
"drivers": [
|
||||
"usbhid"
|
||||
],
|
||||
"driver_modules": [
|
||||
"usbhid"
|
||||
],
|
||||
"driver_info": {
|
||||
"type": "mouse",
|
||||
"db_entry_0": ["explorerps/2", "exps2"],
|
||||
"db_entry_0": [
|
||||
"explorerps/2",
|
||||
"exps2"
|
||||
],
|
||||
"xf86": "explorerps/2",
|
||||
"gpm": "exps2",
|
||||
"buttons": -1,
|
||||
@@ -1054,7 +1130,9 @@
|
||||
{
|
||||
"index": 18,
|
||||
"attached_to": 13,
|
||||
"class_list": ["network_controller"],
|
||||
"class_list": [
|
||||
"network_controller"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "008f",
|
||||
"name": "Virtio",
|
||||
@@ -1079,7 +1157,9 @@
|
||||
"model": "Virtio Ethernet Card 0",
|
||||
"sysfs_id": "/devices/pci0000:00/0000:00:12.0/virtio1",
|
||||
"sysfs_bus_id": "virtio1",
|
||||
"unix_device_names": ["ens18"],
|
||||
"unix_device_names": [
|
||||
"ens18"
|
||||
],
|
||||
"resources": [
|
||||
{
|
||||
"type": "hwaddr",
|
||||
@@ -1092,8 +1172,12 @@
|
||||
],
|
||||
"driver": "virtio_net",
|
||||
"driver_module": "virtio_net",
|
||||
"drivers": ["virtio_net"],
|
||||
"driver_modules": ["virtio_net"],
|
||||
"drivers": [
|
||||
"virtio_net"
|
||||
],
|
||||
"driver_modules": [
|
||||
"virtio_net"
|
||||
],
|
||||
"module_alias": "virtio:d00000001v00001AF4"
|
||||
}
|
||||
],
|
||||
@@ -1101,7 +1185,9 @@
|
||||
{
|
||||
"index": 26,
|
||||
"attached_to": 18,
|
||||
"class_list": ["network_interface"],
|
||||
"class_list": [
|
||||
"network_interface"
|
||||
],
|
||||
"base_class": {
|
||||
"hex": "0107",
|
||||
"name": "Network Interface",
|
||||
@@ -1115,7 +1201,9 @@
|
||||
"model": "Ethernet network interface",
|
||||
"sysfs_id": "/class/net/ens18",
|
||||
"sysfs_device_link": "/devices/pci0000:00/0000:00:12.0/virtio1",
|
||||
"unix_device_names": ["ens18"],
|
||||
"unix_device_names": [
|
||||
"ens18"
|
||||
],
|
||||
"resources": [
|
||||
{
|
||||
"type": "hwaddr",
|
||||
@@ -1128,13 +1216,19 @@
|
||||
],
|
||||
"driver": "virtio_net",
|
||||
"driver_module": "virtio_net",
|
||||
"drivers": ["virtio_net"],
|
||||
"driver_modules": ["virtio_net"]
|
||||
"drivers": [
|
||||
"virtio_net"
|
||||
],
|
||||
"driver_modules": [
|
||||
"virtio_net"
|
||||
]
|
||||
},
|
||||
{
|
||||
"index": 27,
|
||||
"attached_to": 0,
|
||||
"class_list": ["network_interface"],
|
||||
"class_list": [
|
||||
"network_interface"
|
||||
],
|
||||
"base_class": {
|
||||
"hex": "0107",
|
||||
"name": "Network Interface",
|
||||
@@ -1147,14 +1241,19 @@
|
||||
},
|
||||
"model": "Loopback network interface",
|
||||
"sysfs_id": "/class/net/lo",
|
||||
"unix_device_names": ["lo"]
|
||||
"unix_device_names": [
|
||||
"lo"
|
||||
]
|
||||
}
|
||||
],
|
||||
"pci": [
|
||||
{
|
||||
"index": 13,
|
||||
"attached_to": 0,
|
||||
"class_list": ["pci", "unknown"],
|
||||
"class_list": [
|
||||
"pci",
|
||||
"unknown"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -1211,14 +1310,21 @@
|
||||
},
|
||||
"driver": "virtio-pci",
|
||||
"driver_module": "virtio_pci",
|
||||
"drivers": ["virtio-pci"],
|
||||
"driver_modules": ["virtio_pci"],
|
||||
"drivers": [
|
||||
"virtio-pci"
|
||||
],
|
||||
"driver_modules": [
|
||||
"virtio_pci"
|
||||
],
|
||||
"module_alias": "pci:v00001AF4d00001000sv00001AF4sd00000001bc02sc00i00"
|
||||
},
|
||||
{
|
||||
"index": 14,
|
||||
"attached_to": 0,
|
||||
"class_list": ["pci", "unknown"],
|
||||
"class_list": [
|
||||
"pci",
|
||||
"unknown"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -1274,8 +1380,12 @@
|
||||
},
|
||||
"driver": "virtio-pci",
|
||||
"driver_module": "virtio_pci",
|
||||
"drivers": ["virtio-pci"],
|
||||
"driver_modules": ["virtio_pci"],
|
||||
"drivers": [
|
||||
"virtio-pci"
|
||||
],
|
||||
"driver_modules": [
|
||||
"virtio_pci"
|
||||
],
|
||||
"module_alias": "pci:v00001AF4d00001002sv00001AF4sd00000005bc00scFFi00"
|
||||
}
|
||||
],
|
||||
@@ -1283,7 +1393,10 @@
|
||||
{
|
||||
"index": 6,
|
||||
"attached_to": 17,
|
||||
"class_list": ["storage_controller", "pci"],
|
||||
"class_list": [
|
||||
"storage_controller",
|
||||
"pci"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -1325,7 +1438,7 @@
|
||||
"resources": [
|
||||
{
|
||||
"type": "io",
|
||||
"base": 49152,
|
||||
"base": 49216,
|
||||
"range": 64,
|
||||
"enabled": true,
|
||||
"access": "read_write"
|
||||
@@ -1340,14 +1453,21 @@
|
||||
},
|
||||
"driver": "virtio-pci",
|
||||
"driver_module": "virtio_pci",
|
||||
"drivers": ["virtio-pci"],
|
||||
"driver_modules": ["virtio_pci"],
|
||||
"drivers": [
|
||||
"virtio-pci"
|
||||
],
|
||||
"driver_modules": [
|
||||
"virtio_pci"
|
||||
],
|
||||
"module_alias": "pci:v00001AF4d00001004sv00001AF4sd00000008bc01sc00i00"
|
||||
},
|
||||
{
|
||||
"index": 15,
|
||||
"attached_to": 0,
|
||||
"class_list": ["storage_controller", "pci"],
|
||||
"class_list": [
|
||||
"storage_controller",
|
||||
"pci"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -1437,8 +1557,12 @@
|
||||
},
|
||||
"driver": "ata_piix",
|
||||
"driver_module": "ata_piix",
|
||||
"drivers": ["ata_piix"],
|
||||
"driver_modules": ["ata_piix"],
|
||||
"drivers": [
|
||||
"ata_piix"
|
||||
],
|
||||
"driver_modules": [
|
||||
"ata_piix"
|
||||
],
|
||||
"module_alias": "pci:v00008086d00007010sv00001AF4sd00001100bc01sc01i80"
|
||||
}
|
||||
],
|
||||
@@ -1448,33 +1572,10 @@
|
||||
"unknown": [
|
||||
{
|
||||
"index": 19,
|
||||
"attached_to": 6,
|
||||
"class_list": ["unknown"],
|
||||
"base_class": {
|
||||
"hex": "0000",
|
||||
"name": "Unclassified device",
|
||||
"value": 0
|
||||
},
|
||||
"sub_class": {
|
||||
"hex": "0000",
|
||||
"name": "Unclassified device",
|
||||
"value": 0
|
||||
},
|
||||
"vendor": "Virtio",
|
||||
"device": "",
|
||||
"model": "Virtio Unclassified device",
|
||||
"sysfs_id": "/devices/pci0000:00/0000:00:05.0/0000:01:01.0/virtio2",
|
||||
"sysfs_bus_id": "virtio2",
|
||||
"driver": "virtio_scsi",
|
||||
"driver_module": "virtio_scsi",
|
||||
"drivers": ["virtio_scsi"],
|
||||
"driver_modules": ["virtio_scsi"],
|
||||
"module_alias": "virtio:d00000008v00001AF4"
|
||||
},
|
||||
{
|
||||
"index": 20,
|
||||
"attached_to": 14,
|
||||
"class_list": ["unknown"],
|
||||
"class_list": [
|
||||
"unknown"
|
||||
],
|
||||
"base_class": {
|
||||
"hex": "0000",
|
||||
"name": "Unclassified device",
|
||||
@@ -1492,16 +1593,54 @@
|
||||
"sysfs_bus_id": "virtio0",
|
||||
"driver": "virtio_balloon",
|
||||
"driver_module": "virtio_balloon",
|
||||
"drivers": ["virtio_balloon"],
|
||||
"driver_modules": ["virtio_balloon"],
|
||||
"drivers": [
|
||||
"virtio_balloon"
|
||||
],
|
||||
"driver_modules": [
|
||||
"virtio_balloon"
|
||||
],
|
||||
"module_alias": "virtio:d00000005v00001AF4"
|
||||
},
|
||||
{
|
||||
"index": 20,
|
||||
"attached_to": 6,
|
||||
"class_list": [
|
||||
"unknown"
|
||||
],
|
||||
"base_class": {
|
||||
"hex": "0000",
|
||||
"name": "Unclassified device",
|
||||
"value": 0
|
||||
},
|
||||
"sub_class": {
|
||||
"hex": "0000",
|
||||
"name": "Unclassified device",
|
||||
"value": 0
|
||||
},
|
||||
"vendor": "Virtio",
|
||||
"device": "",
|
||||
"model": "Virtio Unclassified device",
|
||||
"sysfs_id": "/devices/pci0000:00/0000:00:05.0/0000:01:01.0/virtio3",
|
||||
"sysfs_bus_id": "virtio3",
|
||||
"driver": "virtio_scsi",
|
||||
"driver_module": "virtio_scsi",
|
||||
"drivers": [
|
||||
"virtio_scsi"
|
||||
],
|
||||
"driver_modules": [
|
||||
"virtio_scsi"
|
||||
],
|
||||
"module_alias": "virtio:d00000008v00001AF4"
|
||||
}
|
||||
],
|
||||
"usb_controller": [
|
||||
{
|
||||
"index": 7,
|
||||
"attached_to": 0,
|
||||
"class_list": ["usb_controller", "pci"],
|
||||
"class_list": [
|
||||
"usb_controller",
|
||||
"pci"
|
||||
],
|
||||
"bus_type": {
|
||||
"hex": "0004",
|
||||
"name": "PCI",
|
||||
@@ -1568,15 +1707,25 @@
|
||||
},
|
||||
"driver": "uhci_hcd",
|
||||
"driver_module": "uhci_hcd",
|
||||
"drivers": ["uhci_hcd"],
|
||||
"driver_modules": ["uhci_hcd"],
|
||||
"drivers": [
|
||||
"uhci_hcd"
|
||||
],
|
||||
"driver_modules": [
|
||||
"uhci_hcd"
|
||||
],
|
||||
"driver_info": {
|
||||
"type": "module",
|
||||
"db_entry_0": ["uhci-hcd"],
|
||||
"db_entry_0": [
|
||||
"uhci-hcd"
|
||||
],
|
||||
"active": true,
|
||||
"modprobe": true,
|
||||
"names": ["uhci-hcd"],
|
||||
"module_args": [""],
|
||||
"names": [
|
||||
"uhci-hcd"
|
||||
],
|
||||
"module_args": [
|
||||
""
|
||||
],
|
||||
"conf": ""
|
||||
},
|
||||
"module_alias": "pci:v00008086d00007020sv00001AF4sd00001100bc0Csc03i00"
|
||||
@@ -1682,7 +1831,9 @@
|
||||
"name": "RAM",
|
||||
"value": 7
|
||||
},
|
||||
"memory_type_details": ["Other"],
|
||||
"memory_type_details": [
|
||||
"Other"
|
||||
],
|
||||
"speed": 0
|
||||
}
|
||||
],
|
||||
|
||||
@@ -17,6 +17,8 @@ in
|
||||
inputs.self.overlays.frappixLibsOverlay
|
||||
inputs.self.overlays.frappixPythonOverlay
|
||||
inputs.self.overlays.frappixToolsOverlay
|
||||
inputs.self.overlays.posthogPr578265Overlay # TEMPORARY, see overlays/nixpkgs-pr-578265-posthog.nix
|
||||
inputs.self.overlays.frappixFixupsOverlay
|
||||
];
|
||||
|
||||
clan.core.vars.generators.frappix = {
|
||||
|
||||
@@ -17,6 +17,8 @@ in
|
||||
inputs.self.overlays.frappixLibsOverlay
|
||||
inputs.self.overlays.frappixPythonOverlay
|
||||
inputs.self.overlays.frappixToolsOverlay
|
||||
inputs.self.overlays.posthogPr578265Overlay # TEMPORARY, see overlays/nixpkgs-pr-578265-posthog.nix
|
||||
inputs.self.overlays.frappixFixupsOverlay
|
||||
];
|
||||
|
||||
clan.core.vars.generators.frappix = {
|
||||
|
||||
@@ -26,6 +26,8 @@ in
|
||||
inputs.self.overlays.frappixPythonOverlay
|
||||
inputs.self.overlays.frappixToolsOverlay
|
||||
inputs.self.overlays.frappixAppsOverlay
|
||||
inputs.self.overlays.posthogPr578265Overlay # TEMPORARY, see overlays/nixpkgs-pr-578265-posthog.nix
|
||||
inputs.self.overlays.frappixFixupsOverlay
|
||||
];
|
||||
|
||||
fonts.packages = [ pkgs.tlwg ];
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
domain = "poy-inventory.newedge.house";
|
||||
domain = "w-inventory.newedge.house";
|
||||
in
|
||||
{
|
||||
clan.core.settings.machine.description = "VM machine that host Inventree system for Poy";
|
||||
@@ -79,6 +79,7 @@ in
|
||||
secretKeyFile = config.clan.core.vars.generators.inventree.files.secret-key.path;
|
||||
adminPasswordFile = config.clan.core.vars.generators.inventree.files.admin-password.path;
|
||||
settings.INVENTREE_SITE_URL = "https://${domain}";
|
||||
settings.INVENTREE_FRONTEND_SETTINGS = ''{"mobile_mode": "allow-ignore"}'';
|
||||
};
|
||||
|
||||
system.stateVersion = "25.11";
|
||||
|
||||
@@ -54,7 +54,9 @@ in
|
||||
self.nixosModules.think-gtcm
|
||||
self.nixosModules.think-backend-gtcm
|
||||
];
|
||||
nixpkgs.overlays = [ self.overlays.packagesOverlay ];
|
||||
nixpkgs.overlays = [
|
||||
self.overlays.packagesOverlay
|
||||
];
|
||||
|
||||
clan.core.vars.generators.greaterchiangmai = {
|
||||
files = {
|
||||
|
||||
@@ -60,9 +60,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
services.journald.extraConfig = ''
|
||||
Storage=none
|
||||
'';
|
||||
services.journald.settings.Journal.Storage = "none";
|
||||
|
||||
systemd = {
|
||||
coredump.enable = false;
|
||||
|
||||
@@ -0,0 +1,197 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
inputs.matthew-hardware.nixosModules.mt7986a-glinet-gl-mt6000
|
||||
];
|
||||
|
||||
config = {
|
||||
hardware.mt7986a-glinet-gl-mt6000.enable = true;
|
||||
hardware.mt7986a-glinet-gl-mt6000.zealous = true;
|
||||
hardware.mt7986a-glinet-gl-mt6000.image.repart.enable = true;
|
||||
|
||||
nixpkgs.hostPlatform.system = "aarch64-linux";
|
||||
nixpkgs.buildPlatform.system = "x86_64-linux";
|
||||
|
||||
system.stateVersion = "26.11";
|
||||
clan.core.sops.defaultGroups = [ "admins" ];
|
||||
|
||||
clan.core.settings.name = "stellio";
|
||||
clan.core.settings.machine.description = "Flint-2 router";
|
||||
|
||||
# Root is ext4 on the Flint 2's eMMC: keep steady-state writes off it.
|
||||
# The journal is persistent but bounded (256M) and synced once a minute
|
||||
# (the router needs logs for pppd/kea debugging and, after the Sep 2026
|
||||
# unlogged reboots, for post-mortem; volatile storage left nothing).
|
||||
# /tmp is tmpfs, no core dumps, and ext4 skips atime updates and
|
||||
# flushes its journal every 60 s instead of 5 s so the small periodic
|
||||
# writes (Kea leases, timesyncd clock, speedtest textfile, journal)
|
||||
# coalesce. A power cut loses at most a minute of that state.
|
||||
fileSystems."/".options = [
|
||||
"noatime"
|
||||
"commit=60"
|
||||
];
|
||||
boot.tmp.useTmpfs = true;
|
||||
services.journald.settings.Journal = {
|
||||
Storage = "persistent";
|
||||
SystemMaxUse = "256M";
|
||||
SyncIntervalSec = "1m";
|
||||
};
|
||||
systemd.coredump.enable = false;
|
||||
|
||||
# Upstream 07d9958739 (mainline 2026-05, not in linux-6.18.y). The MT7531
|
||||
# switch on the Flint 2 hangs off MDIO, and mt7530_get_stats64 took the
|
||||
# MDIO mutex under the RCU read lock that /proc/net/dev holds, so any
|
||||
# stats reader (zerotier-one, node exporter, `ip -s link`) that raced a
|
||||
# PHY access oopsed the box: "BUG: scheduling while atomic" ->
|
||||
# "Unable to handle kernel paging request" on 2026-09-20 09:02 UTC.
|
||||
# Drop once boot.kernelPackages moves to a kernel that carries it.
|
||||
boot.kernelPatches = [
|
||||
{
|
||||
name = "mt7530-get-stats64-atomic";
|
||||
patch = ./mt7530-get-stats64-atomic.patch;
|
||||
}
|
||||
];
|
||||
|
||||
# nixpkgs' services.blocky check runs the aarch64 blocky in a
|
||||
# system.checks derivation, which an x86_64 builder without binfmt cannot
|
||||
# execute (`--max-jobs 0` -> Exec format error). Validate the same YAML
|
||||
# with the build host's blocky instead. Drop once cnx-network's router
|
||||
# service carries this itself (router/dns: validate the Blocky config
|
||||
# with the build host's binary).
|
||||
services.blocky.enableConfigCheck = false;
|
||||
system.checks = [
|
||||
(pkgs.runCommand "check-blocky-config" { } ''
|
||||
${lib.getExe pkgs.buildPackages.blocky} --config ${
|
||||
(pkgs.formats.yaml { }).generate "blocky-config.yaml" config.services.blocky.settings
|
||||
} validate && touch $out
|
||||
'')
|
||||
];
|
||||
|
||||
# The router service opens SSH only to the mgmt VLAN, the staging port
|
||||
# and the ZeroTier mesh (inventories/router.nix). Also admit it over
|
||||
# Yggdrasil (fleet-wide instance in inventories/default.nix) so the box
|
||||
# stays reachable when ZeroTier's controller/relays are down. Scoped to
|
||||
# the tunnel interface (clan-core's yggdrasil service names it `ygg`):
|
||||
# only decrypted 200::/7 traffic arrives there, so a spoofed source on
|
||||
# the WAN never matches.
|
||||
networking.firewall.interfaces.${config.services.yggdrasil.settings.IfName}.allowedTCPPorts = [
|
||||
22
|
||||
];
|
||||
|
||||
# AIS delegates a single /64 over PPPoE (seen 2026-10-02: "ppp0: DHCP:
|
||||
# received delegated prefix 2405:9800:b910:1f5d::/64"). The router
|
||||
# service hands out sub-prefixes with SubnetId=auto, so whichever VLAN
|
||||
# interface comes up first takes the whole /64 -- on this box vlan-mgmt
|
||||
# did, and vlan-lan logged "Couldn't find a suitable prefix. Ran out of
|
||||
# address space": no RA prefix on lan, so clients had no global IPv6.
|
||||
# Pin the ids: lan (where the clients are) always gets subnet 0, i.e.
|
||||
# the entire prefix when it is a /64; mgmt asks for subnet 1, which
|
||||
# fails harmlessly on a /64 (mgmt is reached over v4 and the meshes) and
|
||||
# starts working unchanged if AIS ever delegates wider. Drop once
|
||||
# cnx-network's router service exposes a per-VLAN subnet id.
|
||||
systemd.network.networks."40-vlan-lan".dhcpPrefixDelegationConfig.SubnetId = lib.mkForce "0x0";
|
||||
systemd.network.networks."40-vlan-mgmt".dhcpPrefixDelegationConfig.SubnetId = lib.mkForce "0x1";
|
||||
|
||||
# Interim copy of cnx-network-clan 45643d6 (router/ipv6: deprecate
|
||||
# withdrawn DHCPv6-PD prefixes); drop when the input is bumped past it.
|
||||
# networkd never deprecates a prefix it stops announcing (systemd#29651):
|
||||
# on every reboot the first PPPoE session lands on another AIS BNG, is
|
||||
# torn down minutes later, and the reconnect brings a different /64.
|
||||
# networkd announces the new prefix at once but clients keep the old
|
||||
# one preferred for the rest of its 1800 s lifetime, so RFC 6724 source
|
||||
# selection picks the dead prefix and every v6 connection fails for up
|
||||
# to 30 minutes (2026-10-08 07:57). Watch vlan-* for networkd removing a
|
||||
# dynamic (PD) address and send up to three RAs with that /64 at
|
||||
# preferred lifetime 0, one short-lived radvd per RA (SIGKILLed: no
|
||||
# shutdown RA with router lifetime 0), stopping as soon as the prefix is
|
||||
# back on the interface -- a plain flap re-delegates the same /64 within
|
||||
# seconds and a deprecating RA sent after networkd re-announced it would
|
||||
# leave clients deprecated until the next periodic RA (08:19 today).
|
||||
systemd.services.router-radv-deprecate = {
|
||||
description = "Deprecate withdrawn DHCPv6-PD prefixes on the VLANs";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "systemd-networkd.service" ];
|
||||
path = [
|
||||
pkgs.iproute2
|
||||
pkgs.ipcalc
|
||||
pkgs.radvd
|
||||
];
|
||||
serviceConfig = {
|
||||
Restart = "always";
|
||||
RestartSec = 2;
|
||||
RuntimeDirectory = "router-radv-deprecate";
|
||||
};
|
||||
script = ''
|
||||
conf=$RUNTIME_DIRECTORY/radvd.conf
|
||||
pid=$RUNTIME_DIRECTORY/radvd.pid
|
||||
|
||||
# /64s of the global addresses currently on an interface.
|
||||
prefixes_on() {
|
||||
ip -o -6 addr show dev "$1" scope global | while read -r _ _ _ a _; do
|
||||
echo "$(ipcalc --no-decorate -n "$a")/''${a##*/}"
|
||||
done
|
||||
}
|
||||
|
||||
# "Deleted 4: vlan-lan inet6 2001:db8::1/64 scope global dynamic mngtmpaddr \ valid_lft ..."
|
||||
ip -o -6 monitor address | while read -r event _ dev _ addr _ scope rest; do
|
||||
[[ $event == Deleted && $dev == vlan-* && $scope == global && $rest == *dynamic* ]] || continue
|
||||
prefix="$(ipcalc --no-decorate -n "$addr")/''${addr##*/}"
|
||||
cat > "$conf" <<EOF
|
||||
interface $dev {
|
||||
AdvSendAdvert on;
|
||||
MinRtrAdvInterval 3;
|
||||
MaxRtrAdvInterval 4;
|
||||
AdvDefaultLifetime 1800;
|
||||
AdvCurHopLimit 0;
|
||||
prefix $prefix {
|
||||
AdvOnLink on;
|
||||
AdvAutonomous on;
|
||||
AdvPreferredLifetime 0;
|
||||
AdvValidLifetime 7200;
|
||||
};
|
||||
};
|
||||
EOF
|
||||
for _ in 1 2 3; do
|
||||
if prefixes_on "$dev" | grep -qxF "$prefix"; then
|
||||
echo "$dev: $prefix is back, leaving it announced"
|
||||
break
|
||||
fi
|
||||
echo "$dev: deprecating withdrawn prefix $prefix"
|
||||
rm -f "$pid"
|
||||
# radvd sends its first RA on start; the next would follow 3-4 s later.
|
||||
radvd -C "$conf" -p "$pid" -n -m stderr &
|
||||
sleep 1
|
||||
kill -KILL $! 2>/dev/null || true
|
||||
wait $! || true
|
||||
sleep 2
|
||||
done
|
||||
done
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.services.heartbeat-push = {
|
||||
description = "Heartbeat push to uptime monitor";
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "${pkgs.curl}/bin/curl -s -o /dev/null https://uptime.b4l.co.th/api/push/X0WCHAcY5gPf1U8If7BT1FLjpacZqGZu?status=up&msg=OK&ping=";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.timers.heartbeat-push = {
|
||||
description = "Heartbeat push timer";
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = {
|
||||
OnBootSec = "60s";
|
||||
OnUnitActiveSec = "60s";
|
||||
Unit = "heartbeat-push.service";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{ inputs, ... }:
|
||||
{
|
||||
disko = {
|
||||
imageBuilder = {
|
||||
# Avoid double emulation to significantly speed up image building process.
|
||||
# Update the system according to your host system.
|
||||
# See https://github.com/nix-community/disko/issues/856
|
||||
qemu =
|
||||
inputs.nixpkgs.legacyPackages.x86_64-linux.qemu
|
||||
+ "/bin/qemu-system-aarch64 -M virt -cpu cortex-a57";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,230 @@
|
||||
From 07d99587396024932e02474c3a5bede71d108454 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Sat, 2 May 2026 11:55:02 +0100
|
||||
Subject: net: dsa: mt7530: fix .get_stats64 sleeping in atomic context
|
||||
|
||||
The .get_stats64 callback runs in atomic context, but on
|
||||
MDIO-connected switches every register read acquires the MDIO bus
|
||||
mutex, which can sleep:
|
||||
[ 12.645973] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:609
|
||||
[ 12.654442] in_atomic(): 0, irqs_disabled(): 0, non_block: 0, pid: 759, name: grep
|
||||
[ 12.663377] preempt_count: 0, expected: 0
|
||||
[ 12.667410] RCU nest depth: 1, expected: 0
|
||||
[ 12.671511] INFO: lockdep is turned off.
|
||||
[ 12.675441] CPU: 0 UID: 0 PID: 759 Comm: grep Tainted: G S W 7.0.0+ #0 PREEMPT
|
||||
[ 12.675453] Tainted: [S]=CPU_OUT_OF_SPEC, [W]=WARN
|
||||
[ 12.675456] Hardware name: Bananapi BPI-R64 (DT)
|
||||
[ 12.675459] Call trace:
|
||||
[ 12.675462] show_stack+0x14/0x1c (C)
|
||||
[ 12.675477] dump_stack_lvl+0x68/0x8c
|
||||
[ 12.675487] dump_stack+0x14/0x1c
|
||||
[ 12.675495] __might_resched+0x14c/0x220
|
||||
[ 12.675504] __might_sleep+0x44/0x80
|
||||
[ 12.675511] __mutex_lock+0x50/0xb10
|
||||
[ 12.675523] mutex_lock_nested+0x20/0x30
|
||||
[ 12.675532] mt7530_get_stats64+0x40/0x2ac
|
||||
[ 12.675542] dsa_user_get_stats64+0x2c/0x40
|
||||
[ 12.675553] dev_get_stats+0x44/0x1e0
|
||||
[ 12.675564] dev_seq_printf_stats+0x24/0xe0
|
||||
[ 12.675575] dev_seq_show+0x14/0x3c
|
||||
[ 12.675583] seq_read_iter+0x37c/0x480
|
||||
[ 12.675595] seq_read+0xd0/0xec
|
||||
[ 12.675605] proc_reg_read+0x94/0xe4
|
||||
[ 12.675615] vfs_read+0x98/0x29c
|
||||
[ 12.675625] ksys_read+0x54/0xdc
|
||||
[ 12.675633] __arm64_sys_read+0x18/0x20
|
||||
[ 12.675642] invoke_syscall.constprop.0+0x54/0xec
|
||||
[ 12.675653] do_el0_svc+0x3c/0xb4
|
||||
[ 12.675662] el0_svc+0x38/0x200
|
||||
[ 12.675670] el0t_64_sync_handler+0x98/0xdc
|
||||
[ 12.675679] el0t_64_sync+0x158/0x15c
|
||||
|
||||
For MDIO-connected switches, poll MIB counters asynchronously using a
|
||||
delayed workqueue every second and let .get_stats64 return the cached
|
||||
values under a spinlock. A mod_delayed_work() call on each read
|
||||
triggers an immediate refresh so counters stay responsive when queried
|
||||
more frequently.
|
||||
|
||||
MMIO-connected switches (MT7988, EN7581, AN7583) are not affected
|
||||
because their regmap does not sleep, so they continue to read MIB
|
||||
counters directly in .get_stats64.
|
||||
|
||||
Fixes: 88c810f35ed5 ("net: dsa: mt7530: implement .get_stats64")
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Acked-by: Chester A. Unal <chester.a.unal@arinc9.com>
|
||||
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
|
||||
Link: https://patch.msgid.link/6940b913da2c29156f0feff74b678d3c526ee84c.1777719253.git.daniel@makrotopia.org
|
||||
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
---
|
||||
drivers/net/dsa/mt7530.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++--
|
||||
drivers/net/dsa/mt7530.h | 8 ++++++
|
||||
2 files changed, 80 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
|
||||
index b9423389c2ef0..44d670904ad89 100644
|
||||
--- a/drivers/net/dsa/mt7530.c
|
||||
+++ b/drivers/net/dsa/mt7530.c
|
||||
@@ -25,6 +25,9 @@
|
||||
|
||||
#include "mt7530.h"
|
||||
|
||||
+#define MT7530_STATS_POLL_INTERVAL (1 * HZ)
|
||||
+#define MT7530_STATS_RATE_LIMIT (HZ / 10)
|
||||
+
|
||||
static struct mt753x_pcs *pcs_to_mt753x_pcs(struct phylink_pcs *pcs)
|
||||
{
|
||||
return container_of(pcs, struct mt753x_pcs, pcs);
|
||||
@@ -906,10 +909,9 @@ static void mt7530_get_rmon_stats(struct dsa_switch *ds, int port,
|
||||
*ranges = mt7530_rmon_ranges;
|
||||
}
|
||||
|
||||
-static void mt7530_get_stats64(struct dsa_switch *ds, int port,
|
||||
- struct rtnl_link_stats64 *storage)
|
||||
+static void mt7530_read_port_stats64(struct mt7530_priv *priv, int port,
|
||||
+ struct rtnl_link_stats64 *storage)
|
||||
{
|
||||
- struct mt7530_priv *priv = ds->priv;
|
||||
uint64_t data;
|
||||
|
||||
/* MIB counter doesn't provide a FramesTransmittedOK but instead
|
||||
@@ -951,6 +953,54 @@ static void mt7530_get_stats64(struct dsa_switch *ds, int port,
|
||||
&storage->rx_crc_errors);
|
||||
}
|
||||
|
||||
+static void mt7530_stats_refresh(struct mt7530_priv *priv)
|
||||
+{
|
||||
+ struct rtnl_link_stats64 stats = {};
|
||||
+ struct dsa_port *dp;
|
||||
+ int port;
|
||||
+
|
||||
+ dsa_switch_for_each_user_port(dp, priv->ds) {
|
||||
+ port = dp->index;
|
||||
+
|
||||
+ mt7530_read_port_stats64(priv, port, &stats);
|
||||
+
|
||||
+ spin_lock_bh(&priv->stats_lock);
|
||||
+ priv->ports[port].stats = stats;
|
||||
+ priv->stats_last = jiffies;
|
||||
+ spin_unlock_bh(&priv->stats_lock);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void mt7530_stats_poll(struct work_struct *work)
|
||||
+{
|
||||
+ struct mt7530_priv *priv = container_of(work, struct mt7530_priv,
|
||||
+ stats_work.work);
|
||||
+
|
||||
+ mt7530_stats_refresh(priv);
|
||||
+ schedule_delayed_work(&priv->stats_work,
|
||||
+ MT7530_STATS_POLL_INTERVAL);
|
||||
+}
|
||||
+
|
||||
+static void mt7530_get_stats64(struct dsa_switch *ds, int port,
|
||||
+ struct rtnl_link_stats64 *storage)
|
||||
+{
|
||||
+ struct mt7530_priv *priv = ds->priv;
|
||||
+ bool refresh;
|
||||
+
|
||||
+ if (priv->bus) {
|
||||
+ spin_lock_bh(&priv->stats_lock);
|
||||
+ *storage = priv->ports[port].stats;
|
||||
+ refresh = time_after(jiffies, priv->stats_last +
|
||||
+ MT7530_STATS_RATE_LIMIT);
|
||||
+ spin_unlock_bh(&priv->stats_lock);
|
||||
+ if (refresh)
|
||||
+ mod_delayed_work(system_percpu_wq,
|
||||
+ &priv->stats_work, 0);
|
||||
+ } else {
|
||||
+ mt7530_read_port_stats64(priv, port, storage);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static void mt7530_get_eth_ctrl_stats(struct dsa_switch *ds, int port,
|
||||
struct ethtool_eth_ctrl_stats *ctrl_stats)
|
||||
{
|
||||
@@ -3137,9 +3187,24 @@ mt753x_setup(struct dsa_switch *ds)
|
||||
if (ret && priv->irq_domain)
|
||||
mt7530_free_mdio_irq(priv);
|
||||
|
||||
+ if (!ret && priv->bus) {
|
||||
+ mt7530_stats_refresh(priv);
|
||||
+ schedule_delayed_work(&priv->stats_work,
|
||||
+ MT7530_STATS_POLL_INTERVAL);
|
||||
+ }
|
||||
+
|
||||
return ret;
|
||||
}
|
||||
|
||||
+static void
|
||||
+mt753x_teardown(struct dsa_switch *ds)
|
||||
+{
|
||||
+ struct mt7530_priv *priv = ds->priv;
|
||||
+
|
||||
+ if (priv->bus)
|
||||
+ cancel_delayed_work_sync(&priv->stats_work);
|
||||
+}
|
||||
+
|
||||
static int mt753x_set_mac_eee(struct dsa_switch *ds, int port,
|
||||
struct ethtool_keee *e)
|
||||
{
|
||||
@@ -3257,6 +3322,7 @@ static int mt7988_setup(struct dsa_switch *ds)
|
||||
static const struct dsa_switch_ops mt7530_switch_ops = {
|
||||
.get_tag_protocol = mtk_get_tag_protocol,
|
||||
.setup = mt753x_setup,
|
||||
+ .teardown = mt753x_teardown,
|
||||
.preferred_default_local_cpu_port = mt753x_preferred_default_local_cpu_port,
|
||||
.get_strings = mt7530_get_strings,
|
||||
.get_ethtool_stats = mt7530_get_ethtool_stats,
|
||||
@@ -3395,6 +3461,9 @@ mt7530_probe_common(struct mt7530_priv *priv)
|
||||
priv->ds->ops = &mt7530_switch_ops;
|
||||
priv->ds->phylink_mac_ops = &mt753x_phylink_mac_ops;
|
||||
mutex_init(&priv->reg_mutex);
|
||||
+ spin_lock_init(&priv->stats_lock);
|
||||
+ INIT_DELAYED_WORK(&priv->stats_work, mt7530_stats_poll);
|
||||
+
|
||||
dev_set_drvdata(dev, priv);
|
||||
|
||||
return 0;
|
||||
diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
|
||||
index 3e0090bed298d..dd33b0df3419e 100644
|
||||
--- a/drivers/net/dsa/mt7530.h
|
||||
+++ b/drivers/net/dsa/mt7530.h
|
||||
@@ -796,6 +796,7 @@ struct mt7530_fdb {
|
||||
* @pvid: The VLAN specified is to be considered a PVID at ingress. Any
|
||||
* untagged frames will be assigned to the related VLAN.
|
||||
* @sgmii_pcs: Pointer to PCS instance for SerDes ports
|
||||
+ * @stats: Cached port statistics for MDIO-connected switches
|
||||
*/
|
||||
struct mt7530_port {
|
||||
bool enable;
|
||||
@@ -803,6 +804,7 @@ struct mt7530_port {
|
||||
u32 pm;
|
||||
u16 pvid;
|
||||
struct phylink_pcs *sgmii_pcs;
|
||||
+ struct rtnl_link_stats64 stats;
|
||||
};
|
||||
|
||||
/* Port 5 mode definitions of the MT7530 switch */
|
||||
@@ -875,6 +877,9 @@ struct mt753x_info {
|
||||
* @create_sgmii: Pointer to function creating SGMII PCS instance(s)
|
||||
* @active_cpu_ports: Holding the active CPU ports
|
||||
* @mdiodev: The pointer to the MDIO device structure
|
||||
+ * @stats_lock: Protects cached per-port stats from concurrent access
|
||||
+ * @stats_work: Delayed work for polling MIB counters on MDIO switches
|
||||
+ * @stats_last: Jiffies timestamp of last MIB counter poll
|
||||
*/
|
||||
struct mt7530_priv {
|
||||
struct device *dev;
|
||||
@@ -900,6 +905,9 @@ struct mt7530_priv {
|
||||
int (*create_sgmii)(struct mt7530_priv *priv);
|
||||
u8 active_cpu_ports;
|
||||
struct mdio_device *mdiodev;
|
||||
+ spinlock_t stats_lock; /* protects cached stats counters */
|
||||
+ struct delayed_work stats_work;
|
||||
+ unsigned long stats_last;
|
||||
};
|
||||
|
||||
struct mt7530_hw_vlan_entry {
|
||||
--
|
||||
cgit 1.3.1-korg
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
system.stateVersion = "25.11";
|
||||
nixpkgs.hostPlatform = {
|
||||
|
||||
@@ -82,8 +82,11 @@ in
|
||||
};
|
||||
|
||||
services.avahi = {
|
||||
publish.enable = true;
|
||||
publish.userServices = true;
|
||||
settings.publish = {
|
||||
disable-publishing = false;
|
||||
disable-user-service-publishing = false;
|
||||
publish-addresses = true;
|
||||
};
|
||||
# ^^ Needed to allow samba to automatically register mDNS records (without the need for an `extraServiceFile`
|
||||
nssmdns4 = true;
|
||||
# ^^ Not one hundred percent sure if this is needed- if it aint broke, don't fix it
|
||||
|
||||
@@ -80,15 +80,12 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
dictionaries =
|
||||
with pkgs;
|
||||
(hunspellWithDicts (
|
||||
with hunspellDicts;
|
||||
[
|
||||
en-us-large
|
||||
th-th
|
||||
]
|
||||
));
|
||||
dictionaries = pkgs.hunspell.withDicts (
|
||||
d: with d; [
|
||||
en-us-large
|
||||
th-th
|
||||
]
|
||||
);
|
||||
in
|
||||
{
|
||||
imports = [ inputs.plasma-manager.homeModules.plasma-manager ];
|
||||
@@ -111,7 +108,6 @@
|
||||
keepassxc
|
||||
vlc
|
||||
thunderbird
|
||||
wasabiwallet
|
||||
protonmail-desktop
|
||||
];
|
||||
};
|
||||
@@ -119,6 +115,8 @@
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
# Keep the pre-26.05 profile location; moving it would orphan the existing profile.
|
||||
configPath = ".mozilla/firefox";
|
||||
};
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
@@ -42,10 +42,27 @@
|
||||
dbhost = lib.mkDefault "/run/postgresql";
|
||||
dbuser = lib.mkDefault "nextcloud";
|
||||
dbname = lib.mkDefault "nextcloud";
|
||||
adminuser = lib.mkDefault "admin";
|
||||
adminpassFile = lib.mkDefault config.clan.core.vars.generators.nextcloud.files.adminpassFile.path;
|
||||
};
|
||||
};
|
||||
|
||||
# nixpkgs installs Nextcloud with --disable-admin-user; create the
|
||||
# admin account ourselves once the instance is installed.
|
||||
systemd.services.nextcloud-admin-user = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "nextcloud-setup.service" ];
|
||||
requires = [ "nextcloud-setup.service" ];
|
||||
before = [ "phpfpm-nextcloud.service" ];
|
||||
path = [ config.services.nextcloud.occ ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = "nextcloud";
|
||||
};
|
||||
script = ''
|
||||
if ! nextcloud-occ user:info admin >/dev/null 2>&1; then
|
||||
NC_PASS="$(<${config.clan.core.vars.generators.nextcloud.files.adminpassFile.path})" \
|
||||
nextcloud-occ user:add admin --password-from-env --group admin
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
clan.core.state.nextcloud.folders = [
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
server.wait_for_unit("phpfpm-nextcloud.service")
|
||||
|
||||
# Check that garage is running
|
||||
server.succeed("systemctl status phpfpm-nextcloud.service")
|
||||
# Admin account exists and is in the admin group
|
||||
server.succeed("nextcloud-occ user:info admin --output=json | grep -q '\"groups\":\\[\"admin\"\\]'")
|
||||
'';
|
||||
}
|
||||
@@ -16,18 +16,6 @@
|
||||
...
|
||||
}:
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
||||
(pyFinal: pyPrev: {
|
||||
psycopg = pyPrev.psycopg.overrideAttrs (old: {
|
||||
disabledTests = old.disabledTests ++ [ "test_stats_connect" ];
|
||||
});
|
||||
})
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
services.paperless = {
|
||||
enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
A peer to peer phone relay network built on top of yggdrasil.
|
||||
|
||||
Successor of the `phonebox` service with a global, decentralized number
|
||||
directory. Every box is reachable from any yggdrasil node running this
|
||||
service, not only from members of the same clan. A machine runs either
|
||||
`phonebox` or `phonebox-global`, not both (they share the asterisk setup).
|
||||
Regenerate vars with `clan vars generate --generator phonebox-global`.
|
||||
|
||||
## Numbers
|
||||
|
||||
Each box gets a random 6 digit number (100000-999999) when its vars are
|
||||
generated. The number is signed with the box's yggdrasil private key, so a
|
||||
number is cryptographically bound to the yggdrasil address it belongs to;
|
||||
nobody can claim a number for an address they do not own. Regenerate the
|
||||
`phonebox` vars to get a new number.
|
||||
|
||||
Dialing from a phone plugged into the ATA:
|
||||
|
||||
| dialed | reaches |
|
||||
| ------------- | ------------------------------------------ |
|
||||
| `NNNNNN` | the phone on box `NNNNNN` (line `00`) |
|
||||
| `NNNNNNXX` | line `XX` on box `NNNNNN` |
|
||||
| `00`, `01`... | local lines on this box |
|
||||
| `888` | fax of the current number directory |
|
||||
| `000` | fax echo test |
|
||||
| `999` | hello world |
|
||||
|
||||
Caller ID on the callee is the caller's box number followed by its line, so
|
||||
calling it back works.
|
||||
|
||||
## Directory
|
||||
|
||||
There is no central registry. Each box runs a serf agent on yggdrasil port
|
||||
7946 that gossips its signed number record (`number`, `key`, `sig`, `owner`
|
||||
tags) to every other box it knows about. On every membership change the
|
||||
`phonebox-sync` handler verifies all records and writes the resulting
|
||||
`number -> yggdrasil address` map to `/run/phonebox/numbers/`, which the
|
||||
asterisk dialplan reads at call time.
|
||||
|
||||
Bootstrapping: boxes of the same clan join each other automatically. To
|
||||
connect to boxes outside the clan add one of their yggdrasil addresses to
|
||||
`extraPeers`; after the first successful join the agent remembers the whole
|
||||
membership in `/var/lib/phonebox/serf.snapshot` and rejoins on its own.
|
||||
|
||||
`serf members -rpc-addr 127.0.0.1:7373` shows the live directory.
|
||||
@@ -1,583 +0,0 @@
|
||||
{
|
||||
clanLib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
_class = "clan.service";
|
||||
manifest.name = "phonebox-global";
|
||||
manifest.description = "A peer to peer phone relay network built on top of yggdrasil.";
|
||||
manifest.readme = builtins.readFile ./README.md;
|
||||
manifest.categories = [ "System" ];
|
||||
|
||||
roles.default = {
|
||||
description = "a default server role";
|
||||
interface =
|
||||
{ lib, ... }:
|
||||
{
|
||||
options.ata-ethernet-iface = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "An Ethernet interface that connect to ATA box.";
|
||||
default = "enp2s0";
|
||||
};
|
||||
options.extraClientNumbers = lib.mkOption {
|
||||
type = with lib.types; listOf str;
|
||||
description = "List of client suffix number.";
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
options.extraFixedIPClient = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule {
|
||||
options = {
|
||||
ip = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "IP address for this client";
|
||||
};
|
||||
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Name of the client";
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
description = "Extra client to be added to pjsip config as a fixed IP auth";
|
||||
default = { };
|
||||
example = {
|
||||
"01" = {
|
||||
ip = "192.168.1.3";
|
||||
name = "bob";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
options.extraPeers = lib.mkOption {
|
||||
type = with lib.types; listOf str;
|
||||
description = ''
|
||||
Yggdrasil addresses of phonebox nodes outside this clan to bootstrap
|
||||
the number directory from. Any single reachable node is enough; the
|
||||
directory is gossiped from there and remembered across restarts.
|
||||
'';
|
||||
default = [ ];
|
||||
example = [ "200:1234:5678:9abc:def0:1234:5678:9abc" ];
|
||||
};
|
||||
};
|
||||
perInstance =
|
||||
{
|
||||
roles,
|
||||
settings,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
nixosModule =
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
asterisk = pkgs.asterisk.overrideAttrs (old: {
|
||||
propagatedNativeBuildInputs = [ pkgs.spandsp3 ];
|
||||
});
|
||||
|
||||
machineName = config.clan.core.settings.machine.name;
|
||||
machines = lib.attrNames roles.default.machines;
|
||||
|
||||
user = "asterisk";
|
||||
faxDir = "/run/asterisk/fax";
|
||||
rtpPortFrom = 10000;
|
||||
rtpPortTo = 20000;
|
||||
ata-interface = settings.ata-ethernet-iface;
|
||||
|
||||
# The ATA's own line. Remote callers reach it by dialing the 6
|
||||
# digit box number alone or with this extension appended.
|
||||
ataLine = "00";
|
||||
sipPort = 5060;
|
||||
|
||||
# Well-known port of the phonebox directory gossip. Every phonebox
|
||||
# node worldwide must agree on it, so it is not configurable.
|
||||
directoryPort = 7946;
|
||||
directoryRpc = "127.0.0.1:7373";
|
||||
directoryUser = "phonebox";
|
||||
directoryDir = "/run/phonebox";
|
||||
|
||||
phoneboxVars = config.clan.core.vars.generators.phonebox-global.files;
|
||||
ownNumber = phoneboxVars.number.value;
|
||||
ownerName = lib.trim phoneboxVars.owner-name.value;
|
||||
|
||||
getYggdrasilIP =
|
||||
name:
|
||||
lib.trim (
|
||||
clanLib.getPublicValue {
|
||||
flake = config.clan.core.settings.directory;
|
||||
machine = name;
|
||||
generator = "yggdrasil";
|
||||
file = "address";
|
||||
default = "";
|
||||
}
|
||||
);
|
||||
|
||||
ownYggdrasilIP =
|
||||
if config.clan.core.vars.generators.yggdrasil.files ? address then
|
||||
config.clan.core.vars.generators.yggdrasil.files.address.value
|
||||
else
|
||||
throw "clanService/yggdrasil is required";
|
||||
|
||||
seedPeers = lib.unique (
|
||||
lib.filter (ip: ip != "") (map getYggdrasilIP (lib.remove machineName machines))
|
||||
++ settings.extraPeers
|
||||
);
|
||||
|
||||
# Rebuilds the number -> yggdrasil address directory from the
|
||||
# gossip membership. Every record is verified: the yggdrasil
|
||||
# address is derived from the record's public key, so a node can
|
||||
# only publish numbers for the address it actually owns, and the
|
||||
# number is signed with the matching private key.
|
||||
phoneboxSync = pkgs.writers.writePython3Bin "phonebox-sync" {
|
||||
libraries = [ pkgs.python3Packages.cryptography ];
|
||||
flakeIgnore = [ "E501" ];
|
||||
} (builtins.readFile ./phonebox-sync.py);
|
||||
|
||||
phoneboxSyncWrapped = pkgs.writeShellApplication {
|
||||
name = "phonebox-sync";
|
||||
runtimeInputs = [ pkgs.serfdom ];
|
||||
text = ''
|
||||
exec ${lib.getExe phoneboxSync} ${directoryRpc} ${directoryDir}
|
||||
'';
|
||||
};
|
||||
|
||||
createContactListTiff = pkgs.writeShellApplication {
|
||||
name = "create-contact-tiff";
|
||||
text = ''
|
||||
magick -background white -fill black -pointsize 20 -font DejaVu-Sans label:"$(cat ${directoryDir}/contacts.txt)" "$1"
|
||||
magick "$1" -border 20x50 -bordercolor white "$1"
|
||||
magick "$1" -resize 1728x -units PixelsPerInch -compress Group4 -density 204x196 -monochrome -depth 1 "$1"
|
||||
'';
|
||||
runtimeInputs = [ pkgs.imagemagick ];
|
||||
};
|
||||
|
||||
genLocalSIPEndpoint =
|
||||
{ localNumber }:
|
||||
''
|
||||
[${localNumber}](internal_endpoint)
|
||||
aors=${localNumber}
|
||||
auth=${localNumber}
|
||||
|
||||
[${localNumber}](userpass_auth)
|
||||
username=${localNumber}
|
||||
password=${localNumber}
|
||||
|
||||
[${localNumber}](dynamic_aor)
|
||||
max_contacts=1
|
||||
remove_existing=yes
|
||||
'';
|
||||
|
||||
genLocalSIPEndpointV6 =
|
||||
{ localNumber }:
|
||||
''
|
||||
[${localNumber}](internal_endpoint)
|
||||
transport=transport-udp6
|
||||
aors=${localNumber}
|
||||
auth=${localNumber}
|
||||
|
||||
[${localNumber}](userpass_auth)
|
||||
username=${localNumber}
|
||||
password=${localNumber}
|
||||
|
||||
[${localNumber}](dynamic_aor)
|
||||
max_contacts=1
|
||||
'';
|
||||
|
||||
genLocalSIPIPEndpoint = number: ''
|
||||
|
||||
[${number}](internal_endpoint)
|
||||
aors=${number}
|
||||
auth=${number}
|
||||
contact_deny=0.0.0.0/0
|
||||
contact_deny=::/0
|
||||
contact_permit=${settings.extraFixedIPClient.${number}.ip}/128
|
||||
|
||||
[${number}](dynamic_aor)
|
||||
max_contacts=1
|
||||
remove_existing=yes
|
||||
|
||||
[${number}](userpass_auth)
|
||||
username=${number}
|
||||
password=${number}
|
||||
|
||||
'';
|
||||
|
||||
genLocalExtenConf =
|
||||
{ localNumber }:
|
||||
''
|
||||
exten => ${localNumber},1,Dial(PJSIP/${localNumber},20)
|
||||
'';
|
||||
|
||||
localNumbers = [
|
||||
ataLine
|
||||
]
|
||||
++ settings.extraClientNumbers
|
||||
++ lib.attrNames settings.extraFixedIPClient;
|
||||
in
|
||||
{
|
||||
assertions = [
|
||||
{
|
||||
assertion = !config.networking.nftables.enable;
|
||||
message = "phonebox-global: opening the yggdrasil interface to non-clan nodes is only implemented for the iptables firewall backend";
|
||||
}
|
||||
];
|
||||
|
||||
clan.core.vars.generators.phonebox-global = {
|
||||
files = {
|
||||
number.secret = false;
|
||||
public-key.secret = false;
|
||||
signature.secret = false;
|
||||
owner-name.secret = false;
|
||||
};
|
||||
|
||||
dependencies = [ "yggdrasil" ];
|
||||
|
||||
prompts.owner-name = {
|
||||
persist = true;
|
||||
type = "line";
|
||||
description = "The owner's name for this unit";
|
||||
};
|
||||
|
||||
runtimeInputs = with pkgs; [
|
||||
coreutils
|
||||
openssl
|
||||
xxd
|
||||
];
|
||||
|
||||
# A random 6 digit number (100000-999999), bound to this
|
||||
# machine's yggdrasil identity by signing it with the yggdrasil
|
||||
# private key. Other nodes accept the number only if the
|
||||
# signature checks out and the key derives to the yggdrasil
|
||||
# address the record is gossiped from. Regenerate to re-roll.
|
||||
script = ''
|
||||
cat $prompts/owner-name > $out/owner-name
|
||||
shuf -i 100000-999999 -n 1 | tr -d '\n' > $out/number
|
||||
openssl pkey -in $in/yggdrasil/privateKey -pubout -outform DER \
|
||||
| tail -c 32 | xxd -p -c 64 | tr -d '\n' > $out/public-key
|
||||
# openssl needs a regular file for one-shot ed25519 signing
|
||||
printf 'phonebox:%s' "$(cat $out/number)" > $out/message
|
||||
openssl pkeyutl -sign -rawin -inkey $in/yggdrasil/privateKey -in $out/message \
|
||||
| base64 -w0 > $out/signature
|
||||
rm $out/message
|
||||
'';
|
||||
};
|
||||
|
||||
networking.interfaces = {
|
||||
${ata-interface} = {
|
||||
useDHCP = false;
|
||||
ipv4.addresses = [
|
||||
{
|
||||
address = "192.168.254.1";
|
||||
prefixLength = 24;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
services.dnsmasq = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
bind-dynamic = true;
|
||||
listen-address = "192.168.254.1";
|
||||
# enable-ra = true;
|
||||
domain-needed = true;
|
||||
domain = "localhost";
|
||||
dhcp-range = [
|
||||
"192.168.254.100,192.168.254.100,255.255.255.0,3m"
|
||||
];
|
||||
dhcp-leasefile = "/dev/null";
|
||||
dhcp-option = [
|
||||
"3,192.168.254.1"
|
||||
];
|
||||
interface = [ ata-interface ];
|
||||
};
|
||||
};
|
||||
|
||||
services.nginx = {
|
||||
enable = true;
|
||||
virtualHosts = {
|
||||
"_" = {
|
||||
locations."/" = {
|
||||
proxyPass = "http://192.168.254.100";
|
||||
extraConfig = ''
|
||||
client_max_body_size 100M;
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall.allowedUDPPortRanges = [
|
||||
{
|
||||
from = rtpPortFrom;
|
||||
to = rtpPortTo;
|
||||
}
|
||||
];
|
||||
|
||||
networking.firewall.allowedUDPPorts = [
|
||||
53
|
||||
67
|
||||
sipPort
|
||||
];
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
53
|
||||
];
|
||||
networking.firewall.interfaces = {
|
||||
"zt+".allowedTCPPorts = [ 80 ];
|
||||
ygg = {
|
||||
allowedTCPPorts = [ directoryPort ];
|
||||
allowedUDPPorts = [ directoryPort ];
|
||||
};
|
||||
};
|
||||
|
||||
# clanService/yggdrasil drops everything on the ygg interface that
|
||||
# does not come from a clan member. Phonebox is a global network,
|
||||
# so let SIP, RTP and the directory gossip through from anyone.
|
||||
networking.firewall.extraCommands = lib.mkAfter ''
|
||||
if ip6tables -n -L ygg-input >/dev/null 2>&1; then
|
||||
ip6tables -I ygg-input 1 -i ygg -p udp --dport ${toString sipPort} -j RETURN
|
||||
ip6tables -I ygg-input 1 -i ygg -p udp --dport ${toString rtpPortFrom}:${toString rtpPortTo} -j RETURN
|
||||
ip6tables -I ygg-input 1 -i ygg -p udp --dport ${toString directoryPort} -j RETURN
|
||||
ip6tables -I ygg-input 1 -i ygg -p tcp --dport ${toString directoryPort} -j RETURN
|
||||
fi
|
||||
'';
|
||||
|
||||
users.users.${directoryUser} = {
|
||||
isSystemUser = true;
|
||||
group = directoryUser;
|
||||
};
|
||||
users.groups.${directoryUser} = { };
|
||||
|
||||
# Decentralized number directory: a serf gossip cluster over
|
||||
# yggdrasil. Each node advertises its signed number record as
|
||||
# tags; membership changes trigger phonebox-sync, which writes the
|
||||
# verified number -> address map to ${directoryDir}/numbers/ for
|
||||
# the dialplan. The snapshot lets a node rejoin from previously
|
||||
# seen members, so seeds are only needed for the very first join.
|
||||
systemd.services.phonebox-directory = {
|
||||
description = "Phonebox number directory (serf gossip over yggdrasil)";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
after = [
|
||||
"network-online.target"
|
||||
"yggdrasil.service"
|
||||
];
|
||||
serviceConfig = {
|
||||
User = directoryUser;
|
||||
Group = directoryUser;
|
||||
RuntimeDirectory = "phonebox";
|
||||
RuntimeDirectoryMode = "0755";
|
||||
RuntimeDirectoryPreserve = "yes";
|
||||
StateDirectory = "phonebox";
|
||||
Restart = "always";
|
||||
RestartSec = 5;
|
||||
ExecStart = lib.concatStringsSep " " (
|
||||
[
|
||||
(lib.getExe pkgs.serfdom)
|
||||
"agent"
|
||||
"-node=${machineName}-${ownNumber}"
|
||||
"-bind=[::]:${toString directoryPort}"
|
||||
"-advertise=[${ownYggdrasilIP}]:${toString directoryPort}"
|
||||
"-rpc-addr=${directoryRpc}"
|
||||
"-profile=wan"
|
||||
"-snapshot=/var/lib/phonebox/serf.snapshot"
|
||||
"-rejoin"
|
||||
"-retry-max=0"
|
||||
"-retry-interval=30s"
|
||||
"-tag number=${ownNumber}"
|
||||
"-tag key=${phoneboxVars.public-key.value}"
|
||||
"-tag sig=${phoneboxVars.signature.value}"
|
||||
"-tag ${lib.escapeShellArg "owner=${ownerName}"}"
|
||||
"-event-handler=member-join,member-leave,member-failed,member-update,member-reap=${lib.getExe phoneboxSyncWrapped}"
|
||||
]
|
||||
++ map (ip: "-retry-join=[${ip}]:${toString directoryPort}") seedPeers
|
||||
);
|
||||
};
|
||||
};
|
||||
|
||||
services.asterisk = {
|
||||
enable = lib.mkDefault true;
|
||||
package = lib.mkDefault asterisk;
|
||||
confFiles = {
|
||||
"logger.conf" = ''
|
||||
[general]
|
||||
dateformat = %F %T.%3q ; ISO 8601 date format with milliseconds
|
||||
use_callids = yes
|
||||
appendhostname = no
|
||||
queue_log = yes
|
||||
queue_log_to_file = no
|
||||
queue_log_name = queue_log
|
||||
queue_log_realtime_use_gmt = no
|
||||
rotatestrategy = rotate
|
||||
exec_after_rotate=gzip -9 $\{filename\}.2
|
||||
[logfiles]
|
||||
console => notice,warning,error
|
||||
security => security
|
||||
messages => notice,warning,error
|
||||
full => notice,warning,error,verbose,dtmf,fax
|
||||
syslog.local0 => notice,warning,error
|
||||
'';
|
||||
|
||||
"modules.conf" = ''
|
||||
[modules]
|
||||
autoload=yes
|
||||
|
||||
load => res_fax_spandsp.so
|
||||
'';
|
||||
|
||||
# Dial plan config
|
||||
"extensions.conf" = ''
|
||||
[from-internal]
|
||||
exten => 999,1,Answer()
|
||||
same => n,Playback(hello-world)
|
||||
same => n,Hangup()
|
||||
|
||||
exten => 000,1,Answer()
|
||||
same => n,ReceiveFAX(${faxDir}/echo-''${UNIQUEID}.tiff)
|
||||
same => n,Set(FAXFILE=${faxDir}/echo-''${UNIQUEID}.tiff)
|
||||
same => n,Set(FAXECHO=true)
|
||||
|
||||
exten => 888,1,Answer()
|
||||
same => n,Set(FAXFILE=${faxDir}/contact.tiff)
|
||||
same => n,System(${lib.getExe createContactListTiff} ''${FAXFILE})
|
||||
same => n,Set(FAXECHO=true)
|
||||
same => n,Playback(vm-goodbye)
|
||||
same => n,Wait(3)
|
||||
|
||||
exten => h,1,GotoIf($[''${FAXECHO}]?sendfax)
|
||||
same => n,Hangup()
|
||||
same => n(sendfax),Originate(PJSIP/${ataLine},app,SendFAX,''${FAXFILE})
|
||||
same => n,Set(FAXECHO=false)
|
||||
|
||||
; 6 digit box number, optionally followed by a 2 digit line
|
||||
exten => _[1-9]XXXXX,1,Goto(to-yggdrasil,''${EXTEN},1)
|
||||
exten => _[1-9]XXXXXXX,1,Goto(to-yggdrasil,''${EXTEN},1)
|
||||
|
||||
''
|
||||
+ lib.concatMapStrings (number: genLocalExtenConf { localNumber = number; }) localNumbers
|
||||
+ ''
|
||||
|
||||
; Outbound: resolve the box number through the directory and
|
||||
; send the call to that node over yggdrasil.
|
||||
[to-yggdrasil]
|
||||
exten => _[1-9]X.,1,Set(PEER=''${FILE(${directoryDir}/numbers/''${EXTEN:0:6})})
|
||||
same => n,GotoIf($["''${PEER}" = ""]?unknown)
|
||||
same => n,Set(CALLERID(num)=${ownNumber}''${CALLERID(num)})
|
||||
same => n,Set(CALLERID(name)=${ownerName})
|
||||
same => n,Dial(PJSIP/yggdrasil/sip:''${EXTEN}@[''${PEER}]:${toString sipPort},30)
|
||||
same => n,Hangup()
|
||||
same => n(unknown),Playback(ss-noservice)
|
||||
same => n,Hangup()
|
||||
|
||||
; Inbound from any yggdrasil node: only our own number is served.
|
||||
[from-yggdrasil]
|
||||
exten => ${ownNumber},1,Dial(PJSIP/${ataLine},20)
|
||||
exten => _${ownNumber}XX,1,Dial(PJSIP/''${EXTEN:6},20)
|
||||
'';
|
||||
|
||||
"rtp.conf" = ''
|
||||
[general]
|
||||
rtpstart=${toString rtpPortFrom}
|
||||
rtpend=${toString rtpPortTo}
|
||||
'';
|
||||
|
||||
"pjsip.conf" = ''
|
||||
[global]
|
||||
type=global
|
||||
; Local lines authenticate by username; everything else from
|
||||
; the yggdrasil range is a remote phonebox node.
|
||||
endpoint_identifier_order=username,ip,anonymous
|
||||
|
||||
[transport-udp]
|
||||
type=transport
|
||||
protocol=udp
|
||||
bind=0.0.0.0
|
||||
[transport-udp6]
|
||||
type=transport
|
||||
protocol=udp
|
||||
bind=::
|
||||
|
||||
[base_endpoint](!)
|
||||
type=endpoint
|
||||
disallow=all
|
||||
allow=ulaw,alaw,g722,gsm
|
||||
direct_media=no
|
||||
|
||||
[internal_endpoint](!,base_endpoint)
|
||||
context=from-internal
|
||||
|
||||
[userpass_auth](!)
|
||||
type=auth
|
||||
auth_type=userpass
|
||||
|
||||
[dynamic_aor](!)
|
||||
type=aor
|
||||
|
||||
[yggdrasil](base_endpoint)
|
||||
transport=transport-udp6
|
||||
context=from-yggdrasil
|
||||
|
||||
[yggdrasil]
|
||||
type=identify
|
||||
endpoint=yggdrasil
|
||||
match=200::/7
|
||||
|
||||
''
|
||||
+ (genLocalSIPEndpoint { localNumber = ataLine; })
|
||||
+ lib.concatMapStrings (
|
||||
number: genLocalSIPEndpointV6 { localNumber = number; }
|
||||
) settings.extraClientNumbers
|
||||
+ lib.concatMapStrings genLocalSIPIPEndpoint (lib.attrNames settings.extraFixedIPClient);
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [
|
||||
createContactListTiff
|
||||
phoneboxSyncWrapped
|
||||
];
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d ${faxDir} 0755 ${user} ${user} - -"
|
||||
];
|
||||
|
||||
systemd.services.asterisk-watcher = {
|
||||
enable = true;
|
||||
description = "Asterisk Configuration files watcher";
|
||||
|
||||
requires = [ "asterisk.service" ];
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = with pkgs; [
|
||||
inotify-tools
|
||||
asterisk
|
||||
];
|
||||
script = ''
|
||||
inotifywait -m -e move /etc/asterisk |
|
||||
while read path action file; do
|
||||
case "$file" in
|
||||
pjsip.conf)
|
||||
echo "restarting pjsip"
|
||||
asterisk -rx "pjsip reload"
|
||||
;;
|
||||
esac
|
||||
case "$file" in
|
||||
extensions.conf)
|
||||
echo "restarting core"
|
||||
asterisk -rx "core restart now"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
self,
|
||||
...
|
||||
}:
|
||||
let
|
||||
module = ./default.nix;
|
||||
in
|
||||
{
|
||||
clan.modules = {
|
||||
phonebox-global = module;
|
||||
};
|
||||
perSystem =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
clan.nixosTests.service-phonebox-global = {
|
||||
imports = [ ./tests/vm/default.nix ];
|
||||
_module.args = { inherit self inputs; };
|
||||
|
||||
clan.modules."@clan/phonebox-global" = module;
|
||||
};
|
||||
|
||||
# Unit tests for the directory sync logic (record verification,
|
||||
# address derivation, collision handling, file output).
|
||||
checks.phonebox-global-sync =
|
||||
pkgs.runCommand "phonebox-global-sync-test"
|
||||
{
|
||||
nativeBuildInputs = [
|
||||
(pkgs.python3.withPackages (ps: [ ps.cryptography ]))
|
||||
pkgs.yggdrasil
|
||||
];
|
||||
PHONEBOX_SYNC = ./phonebox-sync.py;
|
||||
}
|
||||
''
|
||||
python3 ${./tests/sync/test_sync.py} -v
|
||||
touch $out
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
"""Rebuild the phonebox number directory from serf membership.
|
||||
|
||||
Usage: phonebox-sync <serf rpc addr> <state dir>
|
||||
|
||||
Runs as a serf event handler. Every alive member carries its number record
|
||||
as tags (number, key, sig, owner). A record is accepted only when the
|
||||
yggdrasil address it is gossiped from derives from `key` and `sig` is a
|
||||
valid ed25519 signature of "phonebox:<number>" under that key, so a number
|
||||
can only ever be bound to the address of the node that signed it.
|
||||
|
||||
Output, consumed by the asterisk dialplan:
|
||||
<state dir>/numbers/<number> the yggdrasil address, no trailing newline
|
||||
<state dir>/contacts.txt "<number> : <owner>" per line, for the fax
|
||||
"""
|
||||
|
||||
import base64
|
||||
import ipaddress
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import syslog
|
||||
import tempfile
|
||||
|
||||
from cryptography.exceptions import InvalidSignature
|
||||
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey
|
||||
|
||||
|
||||
def yggdrasil_address(public_key: bytes) -> ipaddress.IPv6Address:
|
||||
"""Port of yggdrasil-go address.AddrForKey.
|
||||
|
||||
Invert the key; the address is 0x02, the count of leading one bits,
|
||||
then the bits following the first zero, truncated to 128 bits.
|
||||
"""
|
||||
bits = "".join(f"{b ^ 0xFF:08b}" for b in public_key)
|
||||
ones = len(bits) - len(bits.lstrip("1"))
|
||||
body = int(bits[ones + 1:ones + 113], 2).to_bytes(14, "big")
|
||||
return ipaddress.IPv6Address(bytes([0x02, ones]) + body)
|
||||
|
||||
|
||||
def verified_record(member: dict) -> tuple[str, str, str, str]:
|
||||
"""Return (number, key hex, address, owner) or raise ValueError."""
|
||||
tags = member.get("tags", {})
|
||||
try:
|
||||
number, key_hex, sig = tags["number"], tags["key"], tags["sig"]
|
||||
key = bytes.fromhex(key_hex)
|
||||
host, _ = member["addr"].rsplit(":", 1)
|
||||
address = ipaddress.IPv6Address(host.strip("[]"))
|
||||
signature = base64.b64decode(sig, validate=True)
|
||||
except (KeyError, ValueError) as e:
|
||||
raise ValueError(f"malformed record: {e}")
|
||||
if not (len(number) == 6 and number.isdigit() and number[0] != "0"):
|
||||
raise ValueError(f"invalid number {number!r}")
|
||||
if yggdrasil_address(key) != address:
|
||||
raise ValueError(f"key does not derive to address {address}")
|
||||
try:
|
||||
Ed25519PublicKey.from_public_bytes(key).verify(signature, b"phonebox:" + number.encode())
|
||||
except (ValueError, InvalidSignature):
|
||||
raise ValueError(f"bad signature for number {number}")
|
||||
return number, key_hex, str(address), tags.get("owner", "")
|
||||
|
||||
|
||||
def directory(members: list[dict]) -> dict[str, tuple[str, str, str]]:
|
||||
"""number -> (key hex, address, owner); on a collision the lowest key wins."""
|
||||
book = {}
|
||||
for member in members:
|
||||
try:
|
||||
number, key, address, owner = verified_record(member)
|
||||
except ValueError as e:
|
||||
syslog.syslog(syslog.LOG_WARNING, f"ignoring {member.get('name')}: {e}")
|
||||
continue
|
||||
if number in book:
|
||||
syslog.syslog(syslog.LOG_WARNING, f"number {number} claimed by keys {book[number][0]} and {key}")
|
||||
if book[number][0] <= key:
|
||||
continue
|
||||
book[number] = (key, address, owner)
|
||||
return book
|
||||
|
||||
|
||||
def write_atomic(path: str, content: str) -> None:
|
||||
fd, tmp = tempfile.mkstemp(dir=os.path.dirname(path))
|
||||
with os.fdopen(fd, "w") as f:
|
||||
f.write(content)
|
||||
os.chmod(tmp, 0o644)
|
||||
os.replace(tmp, path)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
rpc_addr, state_dir = sys.argv[1:]
|
||||
syslog.openlog("phonebox-sync")
|
||||
out = subprocess.run(
|
||||
["serf", "members", "-format=json", "-status=alive", f"-rpc-addr={rpc_addr}"],
|
||||
check=True, capture_output=True, text=True,
|
||||
).stdout
|
||||
book = directory(json.loads(out)["members"])
|
||||
|
||||
numbers_dir = os.path.join(state_dir, "numbers")
|
||||
os.makedirs(numbers_dir, exist_ok=True)
|
||||
for number, (_, address, _) in book.items():
|
||||
write_atomic(os.path.join(numbers_dir, number), address)
|
||||
for stale in set(os.listdir(numbers_dir)) - book.keys():
|
||||
os.unlink(os.path.join(numbers_dir, stale))
|
||||
write_atomic(
|
||||
os.path.join(state_dir, "contacts.txt"),
|
||||
"".join(f"{number}\t\t: \t\t{book[number][2]}\n" for number in sorted(book)),
|
||||
)
|
||||
syslog.syslog(syslog.LOG_INFO, f"directory has {len(book)} numbers")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -1,164 +0,0 @@
|
||||
"""Tests for phonebox-sync: record verification and directory output.
|
||||
|
||||
Run via the `phonebox-global-sync` flake check; needs the `cryptography`
|
||||
python package and the `yggdrasil` binary on PATH.
|
||||
"""
|
||||
|
||||
import base64
|
||||
import importlib.util
|
||||
import ipaddress
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey
|
||||
|
||||
spec = importlib.util.spec_from_file_location("phonebox_sync", os.environ["PHONEBOX_SYNC"])
|
||||
sync = importlib.util.module_from_spec(spec)
|
||||
spec.loader.exec_module(sync)
|
||||
|
||||
PORT = 7946
|
||||
|
||||
|
||||
class Node:
|
||||
"""A phonebox node identity: yggdrasil key, address and signed number."""
|
||||
|
||||
def __init__(self, number: str, owner: str = ""):
|
||||
self.key = Ed25519PrivateKey.generate()
|
||||
self.public = self.key.public_key().public_bytes_raw()
|
||||
self.address = str(sync.yggdrasil_address(self.public))
|
||||
self.number = number
|
||||
self.owner = owner
|
||||
|
||||
def member(self, name="node", **overrides) -> dict:
|
||||
tags = {
|
||||
"number": self.number,
|
||||
"key": self.public.hex(),
|
||||
"sig": base64.b64encode(self.key.sign(b"phonebox:" + self.number.encode())).decode(),
|
||||
"owner": self.owner,
|
||||
}
|
||||
member = {"name": name, "addr": f"[{self.address}]:{PORT}", "port": PORT, "status": "alive", "tags": tags}
|
||||
for k, v in overrides.items():
|
||||
(tags if k in tags else member)[k] = v
|
||||
return member
|
||||
|
||||
|
||||
def yggdrasil_binary_address(key: Ed25519PrivateKey) -> str:
|
||||
private = key.private_bytes_raw() + key.public_key().public_bytes_raw()
|
||||
out = subprocess.run(
|
||||
["yggdrasil", "-useconf", "-address"],
|
||||
input=json.dumps({"PrivateKey": private.hex()}),
|
||||
check=True, capture_output=True, text=True,
|
||||
)
|
||||
return out.stdout.strip()
|
||||
|
||||
|
||||
class AddressDerivation(unittest.TestCase):
|
||||
def test_known_vector(self):
|
||||
# A real clan machine key and the address yggdrasil assigned to it.
|
||||
key = bytes.fromhex("0ec53986a2bdca8a43f74063aeab6a958fc697c528c83e7281365072926886f0")
|
||||
self.assertEqual(str(sync.yggdrasil_address(key)), "204:2758:cf2b:a846:aeb7:8117:f38a:2a92")
|
||||
|
||||
def test_matches_yggdrasil_binary(self):
|
||||
for _ in range(16):
|
||||
key = Ed25519PrivateKey.generate()
|
||||
expected = ipaddress.IPv6Address(yggdrasil_binary_address(key))
|
||||
self.assertEqual(sync.yggdrasil_address(key.public_key().public_bytes_raw()), expected)
|
||||
|
||||
|
||||
class RecordVerification(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.node = Node("482913", owner="alice")
|
||||
|
||||
def test_valid_record(self):
|
||||
number, key, address, owner = sync.verified_record(self.node.member())
|
||||
self.assertEqual((number, key, address, owner), ("482913", self.node.public.hex(), self.node.address, "alice"))
|
||||
|
||||
def test_record_from_foreign_address_is_rejected(self):
|
||||
other = Node("111111")
|
||||
with self.assertRaisesRegex(ValueError, "does not derive"):
|
||||
sync.verified_record(self.node.member(addr=f"[{other.address}]:{PORT}"))
|
||||
|
||||
def test_signature_over_other_number_is_rejected(self):
|
||||
with self.assertRaisesRegex(ValueError, "bad signature"):
|
||||
sync.verified_record(self.node.member(number="999999"))
|
||||
|
||||
def test_garbage_signature_is_rejected(self):
|
||||
with self.assertRaisesRegex(ValueError, "malformed"):
|
||||
sync.verified_record(self.node.member(sig="not base64!"))
|
||||
|
||||
def test_missing_tags_are_rejected(self):
|
||||
with self.assertRaisesRegex(ValueError, "malformed"):
|
||||
sync.verified_record({"name": "foreign", "addr": f"[{self.node.address}]:{PORT}", "tags": {}})
|
||||
|
||||
def test_number_must_be_six_digits_without_leading_zero(self):
|
||||
for bad in ["012345", "12345", "1234567", "12a456", ""]:
|
||||
node = Node(bad)
|
||||
with self.assertRaisesRegex(ValueError, "invalid number", msg=bad):
|
||||
sync.verified_record(node.member())
|
||||
|
||||
def test_owner_defaults_to_empty(self):
|
||||
member = self.node.member()
|
||||
del member["tags"]["owner"]
|
||||
self.assertEqual(sync.verified_record(member)[3], "")
|
||||
|
||||
|
||||
class Directory(unittest.TestCase):
|
||||
def test_invalid_records_are_skipped_not_fatal(self):
|
||||
good = Node("482913", owner="alice")
|
||||
bad = Node("555555")
|
||||
members = [bad.member(sig="AAAA"), good.member(), {"name": "x", "addr": "[200::1]:7946", "tags": {}}]
|
||||
self.assertEqual(sync.directory(members), {"482913": (good.public.hex(), good.address, "alice")})
|
||||
|
||||
def test_collision_lowest_key_wins_regardless_of_order(self):
|
||||
a, b = Node("482913"), Node("482913")
|
||||
winner = min((a, b), key=lambda n: n.public.hex())
|
||||
for members in ([a.member("a"), b.member("b")], [b.member("b"), a.member("a")]):
|
||||
self.assertEqual(sync.directory(members)["482913"][1], winner.address)
|
||||
|
||||
|
||||
class Main(unittest.TestCase):
|
||||
def run_sync(self, members: list[dict], state: str) -> None:
|
||||
bindir = tempfile.mkdtemp()
|
||||
with open(os.path.join(bindir, "serf"), "w") as f:
|
||||
f.write("#!/bin/sh\ncat <<'EOF'\n" + json.dumps({"members": members}) + "\nEOF\n")
|
||||
os.chmod(os.path.join(bindir, "serf"), 0o755)
|
||||
env_path = os.environ["PATH"]
|
||||
os.environ["PATH"] = bindir + os.pathsep + env_path
|
||||
argv = sys.argv
|
||||
sys.argv = ["phonebox-sync", "127.0.0.1:7373", state]
|
||||
try:
|
||||
sync.main()
|
||||
finally:
|
||||
sys.argv = argv
|
||||
os.environ["PATH"] = env_path
|
||||
|
||||
def test_writes_numbers_and_contacts_and_removes_stale(self):
|
||||
state = tempfile.mkdtemp()
|
||||
os.makedirs(os.path.join(state, "numbers"))
|
||||
with open(os.path.join(state, "numbers", "111111"), "w") as f:
|
||||
f.write("200::dead")
|
||||
a, b = Node("482913", owner="alice"), Node("555555", owner="bob")
|
||||
self.run_sync([b.member("b"), a.member("a")], state)
|
||||
|
||||
numbers = os.path.join(state, "numbers")
|
||||
self.assertEqual(sorted(os.listdir(numbers)), ["482913", "555555"])
|
||||
with open(os.path.join(numbers, "482913")) as f:
|
||||
self.assertEqual(f.read(), a.address) # no trailing newline: read by FILE() in the dialplan
|
||||
with open(os.path.join(state, "contacts.txt")) as f:
|
||||
self.assertEqual(f.read(), "482913\t\t: \t\talice\n555555\t\t: \t\tbob\n")
|
||||
|
||||
def test_empty_membership_clears_directory(self):
|
||||
state = tempfile.mkdtemp()
|
||||
self.run_sync([Node("482913").member()], state)
|
||||
self.run_sync([], state)
|
||||
self.assertEqual(os.listdir(os.path.join(state, "numbers")), [])
|
||||
with open(os.path.join(state, "contacts.txt")) as f:
|
||||
self.assertEqual(f.read(), "")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
@@ -1,77 +0,0 @@
|
||||
{
|
||||
self,
|
||||
hostPkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
name = "service-phonebox-global";
|
||||
result.update-vars =
|
||||
let
|
||||
relativeDir = lib.removePrefix "${self}/" (toString config.clan.directory);
|
||||
in
|
||||
hostPkgs.writeShellScriptBin "update-vars" ''
|
||||
set -x
|
||||
export PRJ_ROOT=$(git rev-parse --show-toplevel)
|
||||
${
|
||||
self.inputs.clan-core.packages.${hostPkgs.system}.clan-cli
|
||||
}/bin/clan-generate-test-vars $PRJ_ROOT/${relativeDir} ${config.name}
|
||||
'';
|
||||
|
||||
clan = {
|
||||
test.useContainers = false;
|
||||
directory = ./.;
|
||||
inventory = {
|
||||
machines.server = { };
|
||||
machines.nodeA = { };
|
||||
|
||||
instances = {
|
||||
yggdrasil = {
|
||||
module.name = "yggdrasil";
|
||||
roles.default.machines.server = { };
|
||||
roles.default.machines.nodeA = { };
|
||||
};
|
||||
phonebox-global-test = {
|
||||
module.name = "@clan/phonebox-global";
|
||||
module.input = "self";
|
||||
roles.default.machines.server.settings.ata-ethernet-iface = "enp2s0";
|
||||
roles.default.machines.nodeA.settings.ata-ethernet-iface = "enp2s0";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nodes = {
|
||||
server = { };
|
||||
nodeA = { };
|
||||
};
|
||||
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
number = node: nodes.${node}.clan.core.vars.generators.phonebox-global.files.number.value;
|
||||
address = node: nodes.${node}.clan.core.vars.generators.yggdrasil.files.address.value;
|
||||
in
|
||||
''
|
||||
start_all()
|
||||
|
||||
for node in [server, nodeA]:
|
||||
node.wait_for_unit("asterisk.service")
|
||||
node.wait_for_unit("phonebox-directory.service")
|
||||
|
||||
# Directory converges: each node learns the other's number and address.
|
||||
server.wait_until_succeeds("test -f /run/phonebox/numbers/${number "nodeA"}", timeout=300)
|
||||
nodeA.wait_until_succeeds("test -f /run/phonebox/numbers/${number "server"}", timeout=300)
|
||||
assert server.succeed("cat /run/phonebox/numbers/${number "nodeA"}") == "${address "nodeA"}"
|
||||
assert nodeA.succeed("cat /run/phonebox/numbers/${number "server"}") == "${address "server"}"
|
||||
assert "${number "nodeA"}" in server.succeed("cat /run/phonebox/contacts.txt")
|
||||
|
||||
# A call from server to nodeA's number is routed over yggdrasil and
|
||||
# accepted by nodeA's asterisk (no phone is registered, so it fails
|
||||
# after being identified, which is enough to prove the path).
|
||||
nodeA.succeed("asterisk -rx 'pjsip set logger on'")
|
||||
server.succeed("asterisk -rx 'channel originate Local/${number "nodeA"}@from-internal application Wait 3'")
|
||||
nodeA.wait_until_succeeds("grep -q 'INVITE sip:${number "nodeA"}@' /var/log/asterisk/full", timeout=60)
|
||||
'';
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
[
|
||||
{
|
||||
"publickey": "age18yf7r0dalnue5vwzanxl046fxsskhu9lzvd488ajhz7rp62mu94scmw3w4",
|
||||
"type": "age"
|
||||
}
|
||||
]
|
||||
@@ -1,6 +0,0 @@
|
||||
[
|
||||
{
|
||||
"publickey": "age1sy8xkmssttcchjj0nkapk4tu530lrzszdp4lka6nn4gzlxam6e2s3xzp2j",
|
||||
"type": "age"
|
||||
}
|
||||
]
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:NkOeX6FboG7NOkdgiTgAsS+XjRoDU+AEYfMhpZXIJTYEM2dQti+PMGyizKRvr1wRnSGMp56XaX0bHdToBuf1gYruqAsEkKwqsYw=,iv:RFyO5/JybroNAKe+F3vv51l4OEu5XXNs+biTTH8poEg=,tag:zfPm0ZAjT2CC734EU+36KQ==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2RklrTFQxMll5VUxiaGVu\nNlRzeldTRnVrSG93TXYzc1YrRE9Nc1VqTHpNCjh4aHJMZmtpM2tDclNaT3d2SDhN\na1QxTXVFOHRuY3dpL1YxMTJKK3pUVmMKLS0tIHoyMGVyc01vak5EKzZONC9XUmFw\nMU5MRmx6UDROQzFiaTNuNXFiQTZoYmcK6wxypuP7vTnz//EcEt2pUNqUuKxjOaY3\nAmKToJQADJfzTsYGzpmWkkYaMHvG00v8Ja6TF6IxZr5SxUh4bdHr+w==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-09-18T02:02:10Z",
|
||||
"mac": "ENC[AES256_GCM,data:kRpbcT5+I80iHPjPUnveQE9jpa65n0xPPQR/by4p1iM80ZKk9KH0cObB5hHhXO4BD1OqI79UJ3O9O7Jhmylgx5Uh8RNbK6wf26p4GO2Bvqh9r15NqbCZtXkoW30MTLLIs58Q7NeK9O2LgeckWrXLtyEytfhnTuoTSDFo8Sh8NQY=,iv:rcNow1Z4BN7bo1XERB6c+G6Gwl3tRU1VHvYmoDaLTl4=,tag:vy/5EB/1gw/KLLqXHSEV3g==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
../../../users/admin
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:Sy9T0zEgSGZ/qkz5kaRN2qlH2X+pFRibzb8FpWuknuSI/9lActSG2Loq4LhmhqPGC5MGVkQcz2pcVFI7afUjzDzejfJf4De1ka4=,iv:JNLXguWEwJXR2+WNl0v0nUvkESVAbccfeQSUijKbj2I=,tag:/AAFKncO+B/XmUZYTQnTTw==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqOXJoSXgvcEFXK2hWTlpi\nQWhCdnZPUCt5R2xEWFYxUnpWVlc1ei93TncwCjNKaVB0MFN1VUdheEwyUTBzcmFT\nb0RjTHp2MGE4cWIraCtZME9rQXAvVEkKLS0tIFpiZDhCN0NIY3FWTnlXaFhiMmtC\nTFJMUncvMnFRSEhNdHlhaWozcjlqYWsKLDH1VFG/QS3VIMn6Iwo2NmY5kdBiOPNR\nj4sOY6xBpWP5AiGUypGoX4Bm52gLgW5AdcBRIxxhFOekIv5G8wmRaw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-09-18T02:02:23Z",
|
||||
"mac": "ENC[AES256_GCM,data:DN97Dcpy29IZkBbwFVnMxnUnWYrgLKuvbANabkMCdpOJYgI1msYODltHJlR68Lk8Fmg25sXysvdbJOnc2cMH3pgcKxeyfhdAFwlIXdie1HRtTpZql15RF0fwPBGJjwL9YYubpZU7K4cNflGbjuOCEhp8bQOUYY8Ptd2deiDGGuw=,iv:bxTcKLUu6fcz7JKzStKiakgBeNx7aWCw6M7HolthfEo=,tag:/0nWBkdCPkpcWSpcfY/TfA==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
../../../users/admin
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"publickey": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
|
||||
"type": "age"
|
||||
}
|
||||
-1
@@ -1 +0,0 @@
|
||||
392268
|
||||
-1
@@ -1 +0,0 @@
|
||||
fake_line_value
|
||||
-1
@@ -1 +0,0 @@
|
||||
cf28bbcd822efec197dfaa99fbe9004f78b4efa9724b4f453d05f12a61a0bb44
|
||||
-1
@@ -1 +0,0 @@
|
||||
CrnzGbqfVORt00zeI99crpBRUMfGF+2uEfaHe1L3Y8k7CIojc+8TID40HPhwEgXNtC9/xr61mN5L0Vp4vpviBA==
|
||||
@@ -1 +0,0 @@
|
||||
200:61ae:8864:fba2:27c:d040:aacc:82d
|
||||
-1
@@ -1 +0,0 @@
|
||||
../../../../../../sops/machines/nodeA
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:hR33SvxgsU+hZnvF2hoQxE7n0IB6kLC9MgK0wS0NXpCht5NuPjTo5p51oUE8t95Dht2qlEdXAkGO39k/h42p54vhqcfuF7u/eqVMdX6pEJyOokFmsdDmdVZziyhZghrTI/nDlctxCPcqFkeCHU4SIBZs85NS8uk=,iv:Q8k8OXSS3lFw33UO8JiZYNkrH3s+Cvh0xnAbMiBmnNA=,tag:DtNYKgDYB2nSHIjvMdvu/w==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTSzk1RUhIekVJRStQd3Er\nbXlHUmtVb201dkRteVR1VFpoMTVFcTFPSG5NCmlPcVM5cWVJQ0g0VHNXaS9rTzh2\nWTIyQnRXakVCRWRQL0xuVUdDOEV0WEUKLS0tIE43RENWL1M2STF1VzdMcHJTNThh\ndHpqNE9MMnkrMlIxN2FEcjZ6anRIbDAK3rZ1lzO42bH37lb+zoeF6rKoVgI0TBST\n9EoVwom5xOKtmVAh5jobY/z4TGSD1BqQ6P2rQ/IM1Dtw3/18Yk7TXQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age18yf7r0dalnue5vwzanxl046fxsskhu9lzvd488ajhz7rp62mu94scmw3w4"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkdDFsSTZHUG54ZWNtQVdj\nZno4enBaRVlaQU1wNTBEVDVscS9Jc1JaTXhjClA3YUNQa3B2L0JXY25SSHRGbS94\nNVVNdHZ5VzdXcWpXZG1ZS1U4T0NPUkEKLS0tIFJLVmZyazU4dWUyVnpvRDRWbHNn\nZFQ3dlhxN0lwc0loWEZIOE0yMElRV0EKeUVy2QpLHbJ8JUCl07f74V+ZnRkGfDdP\n5W28yiLuq+LYfKUaFYeRDvSVFCQo6FiYJcBPGmnPF5gg1BIUtUUBYw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-09-18T02:02:10Z",
|
||||
"mac": "ENC[AES256_GCM,data:Oq1UCi+VYuuAkMmVBife740m6fiXC+PfkaQAii+FORyv8Zpj938cPrZzE9z/LO5Ixye5cbUHGRhZr0vM1egnv9nhIFyfGinKyE/BLEOXHxOtHnAXSQOJU2bWiR6w/QzVCTy6vTTVnqD2AtEfbKndIK1PJ0ASLvxMGaRqRsA/juE=,iv:xCEQg6DHV6hbyfBk62bUKA1lnC3HgQtkn2o8i2CFjhs=,tag:Zvt9tomYGoDFDQGjLZC59A==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
-1
@@ -1 +0,0 @@
|
||||
../../../../../../sops/users/admin
|
||||
@@ -1 +0,0 @@
|
||||
cf28bbcd822efec197dfaa99fbe9004f78b4efa9724b4f453d05f12a61a0bb44
|
||||
-1
@@ -1 +0,0 @@
|
||||
981794
|
||||
-1
@@ -1 +0,0 @@
|
||||
fake_line_value
|
||||
-1
@@ -1 +0,0 @@
|
||||
7291692f9a94948724377fc22055edde8e2773a581153317bc20bd5779736647
|
||||
-1
@@ -1 +0,0 @@
|
||||
IwAOYcmClqi8K8EStthYMqWCr6WsxM3nD0CLDRvvb7I3CUyihXBjdghXLutDD/bFsHKzOkDVV/gLnTuRj9IEAg==
|
||||
-1
@@ -1 +0,0 @@
|
||||
26.11
|
||||
@@ -1 +0,0 @@
|
||||
201:35ba:5b41:95ad:ade3:6f22:f7:7ea8
|
||||
-1
@@ -1 +0,0 @@
|
||||
../../../../../../sops/machines/server
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:H1ngxnRS+cFNSxe9K7C/xNS5hzXyeTWBLZI18TPvEyT5l/MSBeRuK6FZ/G0xUGQAJw4Xo1nyX2PZEYH5wjhnG0UziKAZeM2Oe0G/ilpNbHeMS+HLVriDETlMQz2Hf4Y1J6jOZqSTgFuPMVG5armpZUYTcW+p2zo=,iv:u9sO6eiFzxtT7uImnHLXT3aYJJxgby8d5H2ckfZdNIw=,tag:ZLl7AHHRF+jmr0tnujrpIg==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzdy9HVVFoa0N5ZnBDVDhM\ncm1vQzR3MUpSbW9KSjE0YmZueUlsY1gvUVc4CmlqaTBxMTNvZzdmdkJSMmMwN01N\nVGsvUzJ5Q055Tmk2L2ZUNjRpSHp0bE0KLS0tIGJhUUNDbGh1a09aeXMzWkl4K0F0\nZ0dYY1FnNCtkVXRVTVkyeXZPbFlVbUUK3a/V6XP6m8MDYPKwlu8z0cr4inuKGGNc\nYJjQw00ou3BdM/HOPZrMjYHtjg5WdtzYiFCOl8IRkeiDaEmXcOBjiw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSbW9lcXZweHZ6b0F1eVIy\nd2RWV2lkOHpoM2RkZWxSVEFwU1h5aXNMWldnCk5lS1E4b1BDMmRYUDNHK2NhTlVT\nWGpLWm4rUnpFVWNvMHNzclJuemNGZkEKLS0tIGZxcmowODUydm1kL24yVHd4YXl4\nWVd5eWZMZ0dyS2dpTDhuNXo4S25Ha0EKvc3hwrmlP5JcH7eQeRfoq40w/QdnQL8s\n+DAwsajzRp6H3/XVTm+nDQ+Qoc3aenewZkk6Pgn+x43hAh9zwuvGkA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sy8xkmssttcchjj0nkapk4tu530lrzszdp4lka6nn4gzlxam6e2s3xzp2j"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-09-18T02:02:24Z",
|
||||
"mac": "ENC[AES256_GCM,data:xrshyxQAnlSORTzxxcpt0ABaNWSCCVnwHl6oPUQ59reumF7BoAy8HmdSyWeEpIKBNo2Ane1xxXBHa62+w58r0WjcneNzy8yIBBwXr1BIRZPX83HrSz3+bENPtj6TPWdHpFZ5aDFM2jVlUvwIkn/4g+1B9FnQtoH8kuYBGe2uGCM=,iv:slMt0ag3Kp3iD89jQa/YDta4mJccKiSqcTCt8C+1Dzs=,tag:o56eg/BSHOtBUeNQqRjQDg==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
-1
@@ -1 +0,0 @@
|
||||
../../../../../../sops/users/admin
|
||||
-1
@@ -1 +0,0 @@
|
||||
7291692f9a94948724377fc22055edde8e2773a581153317bc20bd5779736647
|
||||
@@ -224,7 +224,7 @@
|
||||
throw "clanService/yggdrasil is required";
|
||||
in
|
||||
{
|
||||
clan.core.vars.generators.phonebox = builtins.break {
|
||||
clan.core.vars.generators.phonebox = {
|
||||
files = {
|
||||
server-prefix-number.secret = false;
|
||||
ata-local-number.secret = false;
|
||||
@@ -256,6 +256,13 @@
|
||||
'';
|
||||
};
|
||||
|
||||
# Phonebox nodes are headless and unattended. Observed on mirach/almach
|
||||
# (2026-07..09): hard hangs leave no journal/pstore trace and stay down
|
||||
# until someone power-cycles the board. Arm the hardware watchdog so a
|
||||
# hung kernel/PID1 resets itself, and reboot instead of halting on panic.
|
||||
systemd.settings.Manager.RuntimeWatchdogSec = "30s";
|
||||
boot.kernel.sysctl."kernel.panic" = 10;
|
||||
|
||||
networking.interfaces = {
|
||||
${ata-interface} = {
|
||||
useDHCP = false;
|
||||
@@ -280,7 +287,7 @@
|
||||
dhcp-range = [
|
||||
"192.168.254.100,192.168.254.100,255.255.255.0,3m"
|
||||
];
|
||||
dhcp-leasefile = "/dev/null";
|
||||
leasefile-ro = true;
|
||||
dhcp-option = [
|
||||
"3,192.168.254.1"
|
||||
];
|
||||
@@ -323,6 +330,7 @@
|
||||
in
|
||||
{
|
||||
"${matchAll}".allowedTCPPorts = [ 80 ];
|
||||
"ygg".allowedTCPPorts = [ 80 ];
|
||||
};
|
||||
|
||||
services.asterisk = {
|
||||
@@ -396,7 +404,7 @@
|
||||
in
|
||||
''
|
||||
[from-internal]
|
||||
exten => 999,1,Answer()
|
||||
exten => 99,1,Answer()
|
||||
same => n,Playback(hello-world)
|
||||
same => n,Hangup()
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
# Prometheus
|
||||
|
||||
Monitoring over the Yggdrasil network. Requires the `yggdrasil` clan service on every machine in the instance.
|
||||
|
||||
Roles:
|
||||
|
||||
- `server`: runs Prometheus and Alertmanager, scraping every `nodes` machine by its Yggdrasil address. Optional `matrix-alertmanager` forwards alerts to Matrix rooms; the bot token and webhook secret are generated as clan vars.
|
||||
- `nodes`: enables the `services.prometheus.exporters` listed in `exporters` (with `openFirewall`) so the server can harvest them.
|
||||
@@ -256,6 +256,21 @@
|
||||
];
|
||||
};
|
||||
|
||||
# nixpkgs runs alertmanager with DynamicUser; that user only exists
|
||||
# while the service runs, so sops-install-secrets cannot resolve the
|
||||
# owner of matrix-alertmanager-urlfile at boot and rejects the whole
|
||||
# manifest (no secrets installed). Use a static user instead.
|
||||
users.users.alertmanager = {
|
||||
isSystemUser = true;
|
||||
group = "alertmanager";
|
||||
};
|
||||
users.groups.alertmanager = { };
|
||||
systemd.services.alertmanager.serviceConfig = {
|
||||
DynamicUser = lib.mkForce false;
|
||||
User = "alertmanager";
|
||||
Group = "alertmanager";
|
||||
};
|
||||
|
||||
services.matrix-alertmanager = lib.mkIf settings.matrix-alertmanager.enable {
|
||||
enable = true;
|
||||
tokenFile = config.clan.core.vars.generators.prometheus.files.matrix-alertmanager-token.path;
|
||||
|
||||
@@ -239,8 +239,11 @@
|
||||
};
|
||||
|
||||
services.avahi = {
|
||||
publish.enable = true;
|
||||
publish.userServices = true;
|
||||
settings.publish = {
|
||||
disable-publishing = false;
|
||||
disable-user-service-publishing = false;
|
||||
publish-addresses = true;
|
||||
};
|
||||
# ^^ Needed to allow samba to automatically register mDNS records (without the need for an `extraServiceFile`
|
||||
nssmdns4 = true;
|
||||
# ^^ Not one hundred percent sure if this is needed- if it aint broke, don't fix it
|
||||
|
||||
@@ -2,11 +2,15 @@
|
||||
{
|
||||
flake.overlays = {
|
||||
packagesOverlay = import ../pkgs/overlay.nix;
|
||||
# TEMPORARY: drop with the file once NixOS/nixpkgs#578265 reaches nixos-unstable.
|
||||
posthogPr578265Overlay = import ./nixpkgs-pr-578265-posthog.nix;
|
||||
|
||||
frappixFrappeOverlay = inputs.frappix.frappeOverlay.x86_64-linux;
|
||||
frappixLibsOverlay = inputs.frappix.libsOverlay.x86_64-linux;
|
||||
frappixPythonOverlay = inputs.frappix.pythonOverlay.x86_64-linux;
|
||||
frappixToolsOverlay = inputs.frappix.toolsOverlay.x86_64-linux;
|
||||
frappixAppsOverlay = import ../pkgs/frappix/overlay.nix;
|
||||
# Must be applied after frappixPythonOverlay (overrides packages from it).
|
||||
frappixFixupsOverlay = import ./frappix-fixups.nix;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
# Fixups for frappix's python overlay on current nixos-unstable. Everything
|
||||
# here belongs upstream in kurogeek/frappix; drop entries as they land.
|
||||
# Must be applied after frappixPythonOverlay.
|
||||
_final: prev:
|
||||
let
|
||||
inherit (prev) lib;
|
||||
in
|
||||
{
|
||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
||||
(_pyFinal: pyPrev: {
|
||||
# frappe >= v15.120 needs sqlparse 0.6 (db_query.py touches
|
||||
# sqlparse.engine.grouping.MAX_GROUPING_TOKENS), but every sql_metadata
|
||||
# 2.x release pins sqlparse<0.6; the sqlglot-based 3.x needs sqlglot >= 30,
|
||||
# which nixpkgs does not ship yet. Relaxing the pin is safe for frappe: its
|
||||
# two call sites (desk/reportview.py, core/doctype/recorder/db_optimizer.py)
|
||||
# only parse SELECT statements, and the only sql_metadata test regressions
|
||||
# on sqlparse 0.6 are `CREATE TABLE IF NOT EXISTS` name extraction (2/150).
|
||||
sql_metadata =
|
||||
if lib.versionAtLeast pyPrev.sql_metadata.version "3" then
|
||||
lib.warn "frappix ships sql_metadata ${pyPrev.sql_metadata.version} (no sqlparse dependency): drop the sql_metadata entry from overlays/frappix-fixups.nix" pyPrev.sql_metadata
|
||||
else
|
||||
pyPrev.sql_metadata.overridePythonAttrs (old: {
|
||||
pythonRelaxDeps = (old.pythonRelaxDeps or [ ]) ++ [ "sqlparse" ];
|
||||
});
|
||||
|
||||
# rq 1.16.2 (frappix's rq_1 pin): test_parse_connection compares redis
|
||||
# connection kwargs against a literal; redis-py 8.1 (current nixpkgs) adds
|
||||
# `himport_registry`, so the assertion fails. Test-only.
|
||||
rq_1 = pyPrev.rq_1.overridePythonAttrs (old: {
|
||||
disabledTests = old.disabledTests ++ [ "test_parse_connection" ];
|
||||
});
|
||||
})
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
# TEMPORARY workaround for NixOS/nixpkgs#578265 (python3Packages.posthog: unbreak).
|
||||
# nixpkgs#575004 bumped mcp 1.29 -> 2.2 and marked posthog broken; the only
|
||||
# failure is one test in posthog's optional MCP integration (field rename in
|
||||
# mcp 2). posthog is a runtime dependency of frappe, so frappix machines fail
|
||||
# to evaluate without this.
|
||||
#
|
||||
# Remove once `nix flake update` pulls the PR in: delete this file and every
|
||||
# reference to it (grep 578265). The overlay becomes a no-op and warns at eval
|
||||
# time as soon as the locked nixpkgs no longer marks posthog broken.
|
||||
_final: prev:
|
||||
let
|
||||
inherit (prev) lib;
|
||||
in
|
||||
{
|
||||
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
||||
(_pyFinal: pyPrev: {
|
||||
posthog =
|
||||
if !pyPrev.posthog.meta.broken then
|
||||
lib.warn "nixpkgs no longer marks posthog broken: NixOS/nixpkgs#578265 has landed, remove overlays/nixpkgs-pr-578265-posthog.nix" pyPrev.posthog
|
||||
else
|
||||
pyPrev.posthog.overridePythonAttrs (old: {
|
||||
disabledTests = old.disabledTests ++ [
|
||||
# AttributeError: 'CallToolResult' object has no attribute 'structuredContent'
|
||||
# (mcp>=2 renamed the field to `structured_content`)
|
||||
"test_prepare_tool_result_delivers_into_call_tool_result_models"
|
||||
];
|
||||
meta = old.meta // {
|
||||
broken = false;
|
||||
};
|
||||
});
|
||||
})
|
||||
];
|
||||
}
|
||||
@@ -11,8 +11,8 @@ let
|
||||
domain = "git.b4l.co.th";
|
||||
owner = "newedge";
|
||||
repo = "default_thai_company";
|
||||
rev = "caad6e77da35c9359b0dbd75ff0f39bb01891caf";
|
||||
sha256 = "sha256-LH7E1EkecNPrhfQWSlWzPHHuJLM6SReCAifcFPDr61o=";
|
||||
rev = "c8fb98374989a22d0c907aa44877f247391a49ac";
|
||||
sha256 = "sha256-c+pqds4l3Laldgf3+Rj2Ug693kFJYDB1j4a15j4U5SY=";
|
||||
};
|
||||
in
|
||||
buildPythonPackage (finalAttrs: {
|
||||
|
||||
@@ -7,18 +7,17 @@
|
||||
let
|
||||
repoSrc = fetchgit {
|
||||
url = "https://git.b4l.co.th/newedge/think-greaterchiangmai";
|
||||
rev = "6f8c8d7dfaf5a0c1eb2077de1d6fb35ceaf3d4ec";
|
||||
hash = "sha256-2mCdn8xGjWZrANclctGTmxQhkNc43VzlzMTVwVIFJcM=";
|
||||
rev = "deadb17b255b0733a2c552ae3638ecde0b9ee7d6";
|
||||
hash = "sha256-xXq3yZjlp0ULzlSkBnc5SIRxwXZQQoIXgy0rztgFGHg=";
|
||||
};
|
||||
src = "${repoSrc}/upload-large-file";
|
||||
in
|
||||
buildNpmPackage {
|
||||
pname = "gtcm-file-uploader";
|
||||
version = "1.0.0";
|
||||
version = "1.1.6";
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
nodejs
|
||||
breakpointHook
|
||||
];
|
||||
|
||||
inherit src;
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
final: prev: {
|
||||
think-gtcm = final.callPackage ./think-gtcm.nix { };
|
||||
think-gtcm = final.callPackage ./think-gtcm.nix { php = final.php83; };
|
||||
think-backend-gtcm = final.callPackage ./think-backend-gtcm.nix { php = final.php83; };
|
||||
gtcm-file-uploader = final.callPackage ./gtcm-file-uploader.nix { };
|
||||
}
|
||||
@@ -6,14 +6,14 @@
|
||||
let
|
||||
repoSrc = fetchgit {
|
||||
url = "https://git.b4l.co.th/newedge/think-greaterchiangmai";
|
||||
rev = "7c17aa78436538241c09fc7d633904d3c063011e";
|
||||
hash = "sha256-GDx0+PmuCXC+UPtsvsocCZQiTPcnOZEzJI17sxrVv7Q=";
|
||||
rev = "deadb17b255b0733a2c552ae3638ecde0b9ee7d6";
|
||||
hash = "sha256-xXq3yZjlp0ULzlSkBnc5SIRxwXZQQoIXgy0rztgFGHg=";
|
||||
};
|
||||
src = "${repoSrc}/think-backend.greaterchiangmai.com";
|
||||
in
|
||||
php.buildComposerProject2 (finalAttrs: {
|
||||
pname = "think-backend-gtcm";
|
||||
version = "1.0.0";
|
||||
version = "1.1.6";
|
||||
|
||||
inherit src;
|
||||
|
||||
@@ -32,5 +32,5 @@ php.buildComposerProject2 (finalAttrs: {
|
||||
'';
|
||||
|
||||
composerStrictValidation = false;
|
||||
vendorHash = "sha256-wGfbprSDULBje1s5y3+ZiU/nCwYGDEULobZzyzGZ9bQ=";
|
||||
vendorHash = "sha256-FaAwFzLXfMAiUv9eZLtFI0QurkNLh4fsTYrvGv1rAlo=";
|
||||
})
|
||||
+4
-4
@@ -6,14 +6,14 @@
|
||||
let
|
||||
repoSrc = fetchgit {
|
||||
url = "https://git.b4l.co.th/newedge/think-greaterchiangmai";
|
||||
rev = "7c17aa78436538241c09fc7d633904d3c063011e";
|
||||
hash = "sha256-GDx0+PmuCXC+UPtsvsocCZQiTPcnOZEzJI17sxrVv7Q=";
|
||||
rev = "deadb17b255b0733a2c552ae3638ecde0b9ee7d6";
|
||||
hash = "sha256-xXq3yZjlp0ULzlSkBnc5SIRxwXZQQoIXgy0rztgFGHg=";
|
||||
};
|
||||
src = "${repoSrc}/think.greaterchiangmai.com";
|
||||
in
|
||||
php.buildComposerProject2 (finalAttrs: {
|
||||
pname = "think-gtcm";
|
||||
version = "1.0.0";
|
||||
version = "1.1.6";
|
||||
|
||||
inherit src;
|
||||
|
||||
@@ -32,5 +32,5 @@ php.buildComposerProject2 (finalAttrs: {
|
||||
'';
|
||||
|
||||
composerStrictValidation = false;
|
||||
vendorHash = "sha256-b8+AKUmjQiOdV8UC9GYfJzAHFs9+FRSH91YsxKt0rDA=";
|
||||
vendorHash = "sha256-7M0nn3u8ERVFF6WiNjYByNdkFwHZz1vfoClybdOtIJ8=";
|
||||
})
|
||||
@@ -4,12 +4,14 @@
|
||||
inputs.devshell.flakeModule
|
||||
];
|
||||
perSystem =
|
||||
{ system, ... }:
|
||||
{ pkgs, system, ... }:
|
||||
{
|
||||
devshells.default = {
|
||||
devshell = {
|
||||
packages = [
|
||||
inputs.clan-core.packages.${system}.clan-cli
|
||||
# clan-core pins `nixVersions.nix_2_31` for a CI perf A/B test;
|
||||
# nixos-unstable has dropped that attribute. Use nixpkgs' default nix.
|
||||
(inputs.clan-core.packages.${system}.clan-cli.override { nix = pkgs.nix; })
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
[
|
||||
{
|
||||
"publickey": "age1ez6597tgxg7xxpm6lqv30z82sa97c04afq4wlmw8qspm8pq4m33s86fxz7",
|
||||
"type": "age"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1 @@
|
||||
../../../groups/admins
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:PdrPoAQnV9OBdwssaYfqN7tga1yUGKo2o2BzHaE2LJRDYo+Y5QFJi1vSxnT0jny4yN7fkoU9ilxYGi+sBkvtR77PescyUESta3U=,iv:KfpSaeZE8B1qBXPamhgLh4FvemjWHWMS4frJh9RWw6Y=,tag:uZ7fXNgHFXxQ4OlUurXdyw==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0TkI0blpCUEYyQXlQcS9z\nRSt6andVS0poNHI1S2pWSC9tdjBOcWlCS0d3CnQ1Wmxvc2IzRlBKbFV5R0hMMmxt\najRDNlRGUnUvL1k1VUxVWlVPdFlwTTAKLS0tIFplQ3d1WWhBcUhEVG1EZ2dQdlZW\nZjVLbFJHODA1VitpZk54Q0tTekpQZ3cKwd6lFt1KJs8H04d1WeztJntDVx4+SOj0\n1Eb31GAUNHxkJMGKpOyojpwewAWRXaLybq734CsrDn2SYrcCxxwkAA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFU4dXV4dkQ4\nSThRSGdRU3lIdUhEOVB6Yi9hbWg0UXJ3YTM0MHB3SkpWR28gQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQo0VDIvQWpJNEdnK2NjV3dkbmZIWjF6\nZTZRMEVxQm5BRGlXdC9BTU1PNVpVCi0tLSBocHN0eVl4a1E3aVZhRmpGVEdZajRE\nRjlKU2VDK0pwak5LdDhoa0tsUkswCrhbCwwLHBxkvkKqXThgc45LyABYOQRhemWM\nw4k8cnCgtricI4FChhG8wNpFx1vKBJ1z7spimX+fG0AxXUIkiqQ=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFljSUI5cExD\nQnVSVlFTL3ZjNW1maFRwZVVhSERlS09MaEZ2VWpLeXh1V0EgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwoyVlZzVlg3U1lpOTcxYzUxSXVycXNF\nalZlcTdyK3MvVFRyeVRQOGkxQXB3Ci0tLSBMMXhETlVrN0hMT2NaamRDTGxlQVpH\nNW1VZWs1QVVrVk1UcnBiWXdQVEs0Cn7aMYe+48HDHhQRDAUVVWel1mv0KZKYguzX\nOlQCqCirlzMhSRmXTYNQe4S80ecymgLBmcjvQVSitREv8mK8eeY=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEhVdXUyNXZX\nT2NacThiblFjYzNFRzVKQzFaRm96aHRUR2xrTzJqV3RuSFkgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwo1N25PL2RjYUcrblF1V2t5eERmNlR6\nNlFoYXpoOTVlK2gxbFBWa3FNY21vCi0tLSBEc1lsSlA4WklTSjE1ekJNbm40bTVa\neHRRc1Y2S2diY1FIUU1wdjhwVTJVCr8/pFIR0gZNp4zAmmcKFwXHg+FlDSlLqHBr\nuWqURlbZNaAA7azU4pjt2EJC6ppcgcW85yYxVghy3v1Hb1PBW+k=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtNGR5bVkwbDVUVUl2cWNY\ndStDL0I2SmtNeEd3UEs2TExKM1pFNEgwTHdBCmU5WnF0dlRGSkJ2SVpLejlsSFQr\nRTE0YVUwMGxWRGVtV3MvMHMrdW9YRlkKLS0tIGcwMnRYb2wxcE1RMDcraVljS2Nz\nTS8zZ2ErMTREWklXNVF1UnlPZ1BRb1EKe03KNmpDxrTndF6hQeuBtaW2FIb9LaCg\nXoBKHmSxeESIPunpAhWJw2YUdPJ+8Td+fAdOZCPgktaeGcYSejaZMA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0Nno3Ung3dHNtK3V4dFdm\nbW1mWm5ZN1ZtMjBENTlmaUtHYjZvbUluZERFCkNobHV4SWY3eWVIN1h1Ry9WWWxz\nU1hIUndONjFBWEJiTUc1cU9COExHWjgKLS0tIHQ0eWpzdGYveXNRZmZHeWdSbytt\na013d3FlL29HRy82L1YrR2NBTkR4YTgKCOuq/HrqenpgwhK73vQsvG2axxdPlWrf\ngK42riDP7VLxdqbri/mPIGKiGoMLumW3OQejUc6p+e3K6y42cESuyw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaZ1NjdTVOemZvZXJvRWIx\neEVIRWc2NndINzNETVVTOHNqSlBGM2lDbkIwCmRtR3FiQ0JkQ0hQSTIwQWs1SHE5\neHA1OWJTVU1CSVE0NTdlQTJTOGFVWXcKLS0tIHI5M09aR0ZrTzhmUmxRS0xHNzVO\nUUIxbWt4SVE1K1R1Unk3YlBPZnpHRWMKHqE7HUK3YM+bYQWUmO3UXSokoABSbsRi\navYoaIVbMgbTcSwkK+f8aZML9cyX4juA3NbKVAnmLPPU9aEUzImncA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVMm5XaGEySTVtbUY1QlRk\nNGlhb2FsK3QvU0xPV2FmQ0RjcVRpZzZhbkdzClhjbE81TVA1YXJaTk5jbUR6UGF5\nMzREcit5dHVHbVcrU3IrSnZFaDlVd1UKLS0tIFNyMzd6NmpKNy9nK2FHU1BlUmdO\neThBTkZMWWNFb2M0NmhNZkd2RW5vUk0KbDNx1IUaM9akKfH+sNEVFbIxnWbHJAdu\nS7aFj0SQx9O7G26PJEPZOLBYW9qryA/XVYcEcxycEoOBMu8J50GWZQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-08-12T08:44:41Z",
|
||||
"mac": "ENC[AES256_GCM,data:XCAM+Fsk/1b+YVPWWAfruny5TA+3SrDBEPmvkhzDzJofmvfPiHSSl7X6nxGSdMyEFO6EElCNUiScDmvVsISlb+Vsl9Eeqqst3dPtnbCG+uUoYaRy8B9R4Pew13ceR1Q8oKNux5J84zQKctcWCKRu5ASa7mhJWC+68+azDkd/UTc=,iv:07RbTD3ggIWsQ/0f3Bohuzpqk21LelaCqz8jMftqsHE=,tag:sps3aXc94kUtLlaEYOU1nA==,type:str]",
|
||||
"version": "3.13.1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
../../../users/kurogeek
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:xSfysMoIvr1hExlgR+bXj1aoO+pFsoj9tO+cppTFg5dGbv33iOK63l02reEJ8VkUhpjWLcqyoQG1/g/E61QbnqdgzovES0JxDnpTwo6wNMJSqhNzVogLHw+hk4duDFkOXhKYkJjuM1Z1jIp3RbrwEGwQNtR9BwPNlRSjxwKYyAh5g8Eo5DvSN8IwkQbCZK1FmD6osdf96z+JnCDmnUK5SUNcMHHCEAC4My6viZIYMSW9SeCkmLljJTsJ43w+XK0Pu7+lpv6dDCvi+h/P5tbhy99T0TJto+dP4B7k+9rMe2a0f5FBVIZ3cseKV8Zg,iv:1S1vJmhVbbri44+R0as7z8WKHUVX/o5KtiyFS/rCJrI=,tag:4wp72HMZOezIwvF9Ls5HEQ==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:bwatLnKlSJ0ezh+XJs9DBfKz3WflbmAeMXWqcRolLQ/i0cydPH4x/tVtZpNxT3Ewwi4ImanDpDZMu2Us89tOrZV5NRtmg0S456DT079jPzYOzN0UlaqVXuBjBIYYzBpNSeM7eWQnK3GYeSpKmVHUYtsbvKKJLH6/4gKWbSPcrq+x9IoENsWavzCJDRU/COgdOePhnpeC8n0f4+y3ZaJ0mAjMVSRiqhQ2UI5a8BSOU+3N+DhRmpR1iav/S8Q+YdbJpoz69BZ2D3K53hddj8qnQeponF4eQd5JhLkGUW75UmAmaM8SVbvOnu03vUFR,iv:2vDfooxBn8QuuZE4lv/svcWGK0sGOJhhzJF7QxtUU3c=,tag:422DI0Ib8fGEKY3IB9rbfg==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoWUpxYzNod1lCeGQyRGlI\nNWlYOVFFWmlZR2FqNmNIZ3FnQlN2dEZIOUhjClduUEpTSy90VVptZnJnb2c1TjZW\nVEc0MUJsYVVsd0tvZXRBU3dkOXVSbGcKLS0tIEJtM1RBWS9obzdzSWpyQSt1QXlo\nVi9TWDhkVG5GTHU5WWhldU91MkkrY00KmuB+RZ84xPm138UgqB0dRswPqJGdgy1/\nji2QmmS4FnTbTNXYBOPSh9boAEkHbuUHC1bYGdDbfRSgMWZbwUE+RQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxRTdlOUFaRWtqQXE0aW1V\nVFZsL3o3Zk41aFlvWFJtblVvOC96Unp4YzB3CjJtTGZnK1E4RElJZm5HM2poeVBN\nYTRNRUlmeXZ0djUwTFFCa0NDT3gzUzgKLS0tIFpkeHlmMEx4MzNDUE1sNW5pSXVr\nMU5DREJOMWJvYjFqaHFoeFBlVzMxdmsKf3zaYrwXS00kftvRmXfA7xgAuFxrR9bW\n8cyHqXxsmx++7rmU4+YuWzSmy12AC85g0OLn8sRZHuI4ciouavO9Sw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUMllkV1lSajd2TGxoY0dP\nOFpWU1ROeHlyTnJqN3JNQllkKzB3azJNRHhJCjU4cUt2Q05yUDRsVzhmSy8xSk5x\nandZSE85aWNYY0J0Q2lsSFRBdDh1UGMKLS0tIEpxOHpPYkFxeGNyUGtIQmVIZmRn\nbE9KU0RMUGJxWmhucVduVEliUmt3bU0KPYYYKahYmpgizWBAG0IiF239VbLeefnL\nvAgisIN/KzTmIfYlb2AT6qebZPJtqd33Wn2Mz0UlmuzbaTcIdz5DvQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNbjZPSHRzTmVDckZGY00z\nbFlMT2dmelh0NGhOUUpCRFYwbmxXKzFtZXpJCmZVUmQwMFhvTWgvd09xL0pXc0dI\nKzFpWU0zcVJCa0ZGbDdaclJBalVKUTgKLS0tIG9ESVprMWMrM0Z2LzVlNFRBbmlI\nOUh2VjFtTGEyY2ljK0VTR1FxdTJKSzAKkRpd0RWgEdKduvWGte2BzPs1cAh7RWx9\nwxEfF4teUHXlKPK//gAJB2dA/V0m1MxHerduqR5GJaH0ElWzSxmy3Q==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1dytdeqtct0jy3vvmqvapgqjf3v9p486jjcpx60gfxwgrptgyyqrs0lj9vc"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIE1sbncyZUZo\nZU9wbTF6dFlTZEYxZHZTTzY2U3lteDMvVnl6NHYzWkU2RjAgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpla2JPUlB1UzduRTk4dndsRW9aN0ZY\nU0lvWU05S1ZSRnZ3TVhaQ2ZINWU0Ci0tLSBXQnJjRkNMYnExTG9oaTNydzV1U2NX\nOXpRd1ZMc000Mi91dVdvSGJvQ0tZCuIyt47NxK1d7lyzv3F1cqh9bXvGGQdgNfXj\nCRbcFLVHgf8y3LZ6/Ajqr2VBtmWWbNx2x/9v8lW4+YBz62mL6Lo=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGhqRHZmYlEy\nZXI2aTBmZUZ3ZGc1NzlZc2NIY1EzUVJGdENyVEdRS0FyU1EgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpsYWJPcEpEVVVMMHhEYTNEdDl6cis3\nTEI2K3VHTlkxTXhmRlZlR1JRazUwCi0tLSBlN3JLdlFub2pSZkJaanpqd1R5eXFT\naGZFNEh3Y2tYRXRoellkSWJYZUdVCshBhkGNreqeNgBBXQnnj6umlrkNZ85Vr+GA\nxpDYHQn4JnoLLuIQXAEJeff7e6lxP2wgFUtKhW0QJJ4/hEQ+ikM=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDdUOUtieVpC\nWDhSaERPaCtLbVpucmF5MXZ5TWxGcFo1WlNRYlVXZDNTU00gQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpINnpFSitreEZHc0hCMWNLbytmdHBW\ndG8yVkp3WE5TNXhnVXdXTHVQczlzCi0tLSBXWEtXcjdWcEloQnhXQjNrd1FhSjdj\ndzhIM0t6MzNhZFREaEw4THRGYit3Cku+h1z7D1+y68HkGC+NUHYWolbkvEL0arXn\nkINmxQw0bVfo6QToBvRfX6sj2F+lCi3z0woZMdDVznaTZPH57nA=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHdQeVdHZ2Zr\nL3FsLzdGRnVaenYyNUhZQTRZWVc2LytjNkhDZ215YVhBM1EgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpUNkZIUkNoS2VNREx5Q1J4UU9EZjZY\nakRpSWU5UXpiNDFWS1I2ZmNMUGdZCi0tLSAwK0NVdTBZZ3QwMk51ejllL2VMWVZP\nMG94SzBRa2JncGJ3REYzRkd2TkZNCms9i/Ht1AxXB+sBHQZK5qgKOwjkGQhVIHiT\nWZ39psXb092oC1L0zr4/soWM/f9qYYo+GoC2r/yCuZzG0ZOLePc=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIE42Y0tpcEJj\nUGRpUXQxS2RQVk10NzFiRWI5UGFsTjkwNVpxODF0VTJ0VlkgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpHUDBCMVlPdHJYQngwTjQ3REswZ0Jl\nOVloZ1ZCQk9lQzh2WXUwMTJ3OEFzCi0tLSBubVFFZGpvZmZHd1NaNDFDT2dqZGtt\nUlV2REZLbVdaTWY1ekJYNEJaajhVCjzky+vHHIFJhosSueBqudCiEt9AjWsGmOl3\nJgeYYua8GvLvSwqjXqayhubYdJPEfgmfsOMJ+DDD2aNeYu5A4PM=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIExoYXJzZVNx\nb0oxY1BzanpRaGN1bDhoMW5rR0E1Wk4xUWFmVG9qZnh2d1UgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpzbnVlemtPOG1lclZDZXVFMkgvOFR4\nVThFSU8zbjQ0TlIzcDFJOHB4ZlVzCi0tLSBIWjNkN2FYWnhKTUFISW1Qd1ZsdEQ3\nT3RSRldqbVJ2YThMMU5aNjJZQ1pBCpfzYIVYQ64jbPxRH0u7fiGEHJ6SRNCNMT97\nF4HoN3HcV7Fl4h4tPuPAYoeL+RIbDipguPfdaZXSytmcDNYAfL4=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaaXhwRFJBM3JiY3dHYi9E\nVXRMUUFFNFRWby90RXhQZmtodW1rSE8xTlJ3CjMzbVFsNE8rM0RaVktWNEl6V3po\nYzVWeEtId3pyeFJySWVqR1dpQnVCNkEKLS0tIDQvS040L1JIVmE0eGZ6c0wzVXQr\ndW1uUGtXdE9EOERBZ0IvNVNaTFVEYTQKEkymB2wddHYh91NhJcQGiH/Va1ZPoZ9d\nKrcqiNXZY97xe9EbFVmzDJOnJz4cp23CUjYsyflpViyai+Gu72BMvA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUaFJDd3VzaEJOT2Uzck9s\nUXF3M0N1WElTQldPWS9uSEt4aFBnUnYyK3hjCnNhN0g4RE92Z0Y5KzY5enQrcUNG\nMkR4dkR2MWlMNCtpeURsdTBsSTd0U2MKLS0tIEN2b2o5aGUvS0xvUWNDVEhQQ0hX\nNDcyVmphOHpxL09Tb0pNL2NxbGswblEKOpot8cLerFnk3La4ofF/zyq76XSD4wsf\ncfFxZFfdHLbED34fLmsR80V5tYtbM3+WoRsSyAnwQ5tZUygJioZ9VA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtY3VMOEZkODNydnNMc2hO\nanZGRFNBN3dXQ2hYS1A0Um40ZHRqVTVjN1Q4CnlhWmJWL3NhVmJuWlRsR240YXhG\nbkxNcDZTSUtwZ1pndC8zNlI4cXZ0alkKLS0tIHNsdmNRVU14Rlp4MFN6VmFjd2tX\nNWwzUXpZTlE0cDZZYmcvUmpBcmlOT0EK+ywZXQlUUs14DF/+7kcmoRv3h/RSc9/t\n3apqfe/7KqpU3WS0vXA/HKem4d33vfCvkyHWrH6YTIG4r9czYn3Xhg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKNzlPZ3MyQUJnTnQwZk4x\najlGYk9WYnhBMXk1QW9DeXFqL1BucXRWTDJzCjArYkc5SlhQbmZGR0JRMi9HYTRT\nVmJaUHJSTDJ0MElFc3I4aWRrQ3BRK00KLS0tIC96ZlExdTlXYlFJbXhpWGUzVXI2\nM3dSd3g3QlNoSi9MWW8vaXNKU2QvNEkK6o6a8OI4vyaLQjIHe5OnoAPxbCn9JXVz\n0g2VyUPOGWnWSSCbzrkmG1xl9prLEV9WtevZ5XPMP2l50aJMQJQ3KQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnREJYQ1NDNC9Vc3RSODRG\nVWszY3ZDVWovMDVsdVRQbkFpVzVINkNJQjBvCnFadUdzRGNudDllMzRIb3UzMkM2\nK05Mb2VNTjhqMHpQaUkzTkRrVlU0WDAKLS0tIDQ0U2ZWaHpxZERQWWdSYWhMNzR2\nTmp6MW1ja0p2TXZhcEtjSS9yNWNaSW8KNJ73ktLW5KlxCuhnMiHGRK0yHJvVhsLM\nPlhWTv10qzrdCo09Y3XNWngR2WRDNgMta9IZkynucjOKgevywrEycw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmWFhQNHdEcXRKbGJValI0\nd1pKaTE2TC93WEhWLzR6K2Rjd2p6UkFDSEJNClJpV3Y4UlR5MDNJSGNaN1BuZFpP\nS2prSmd1SElQL1VONWFHVEFmY2FSUFkKLS0tIFRUQjlBbDRVN0xBaWxOZjV5eFNs\nL084ajBaUkpGM21qZXhNTlQ2UE9odFkK+6Z2To2XmQYUz9IfqTZK8DlYpzYiK0VS\nPDTLfmlS+M44EX7QP/TE/te3GePwpzdsVd4EqO8hWkt5gsNg6H3NfA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkRnlpZmRtNU5jbDBOdDZj\ndGF3R1ZHNTVqait1WEJWMFNnTkVTM0NXTFZvClRGd3dEaGxnR3MrRGdhOWtTdUU5\nbTlKSlFOcWRqQUJ5ZXk4TWR3em9razQKLS0tIEV0MUtnYTY4azF0dFhRbHQzOWN1\nUG9Hb3VhL3JXK0krdlZxNVYxYVVUYmsKGttTBJyvfeWMQ6cQOwISTjMC7H+EY9Oe\niQ14q5C8wAdB73+Vylnd9/RaTlRfjsYrTRvo84ETtDO1DcW722Q+dg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVRWZmdTdDNDN2eUNRY2ky\nUFFCK0xtR1FMNTNORGFtNmdTYVdwNEZmVWhJClk0eUtZVVprVXdBQThnU0hWcWhL\nZHRCVVdwT2VKNWhhVk1LTTFoWGl0eWcKLS0tIE1xSk5jUncwdkxPWnl0YWsvM2l3\nTENibDhzd1JyUE9zMVlUcVg3aGRjZjQKvcRZSFV05Mf4mAJwR+MTmAZn87+jCE8W\n0PTg5H2lcH2K5JmyloxZ6KKjP5x03HBGoHq8NJqGYaKRESLosgykkQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-07-22T03:10:56Z",
|
||||
"mac": "ENC[AES256_GCM,data:2jvP7hr8+6LjYaOxjGqODFnHFTYaDnwSbrfqNwQsvxi6tg7DFLECVWYJIWY8O1J7FXDK24wFiBAC06e9QckAIYvAOoo7PvDmd6GjGG04H3zsLpbiLoaeZ56k0U0DV5nwm1W7KRAOaGgxvG1fBu/7k3Vyt0po99s1c9KdYgoUcgw=,iv:fd0Tokd/UELM1DzWFEDQ77Farca/rMs7bQyxDmw4sUo=,tag:BOKnKyAoiqf8QKHHI1o9bg==,type:str]",
|
||||
"version": "3.13.1"
|
||||
"lastmodified": "2026-10-26T10:22:58Z",
|
||||
"mac": "ENC[AES256_GCM,data:zV4mVU6C6xhsIL/QSWZfyHtVTiqTRH7ZbLR6W2J+DSpuhV0q1dzhF65Yh94g8u65zG+BYUXExqsYJkRkLITDAkfbiHVu3amRLjiUubQEi6AIstKR8mNstJZWhpDNHE7yK2L9enzCpzOtsFPgBGrgmh0xAzsstoOEri3peYH1tLY=,iv:9xtpwSPxB1c3XBrMjU9A+rjXyNDS9sw3pypjBhltfsA=,tag:YXFoKeIBrIFInuxH/2e2ag==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:u9zmKAZ0lB8CdJ9UBzhd5RHaUO4+B3gm7NPbe2S3ZqNE86K5VQTIqyzRNa7SEcr5Gz5tRVV2Vorskbu1yGKbR0OQoy+hPhEBIDfbZqL7rx/iz5fuws1MaU6otyZ1GPO3G8wQGMmVeeAZiLjyx6O7++Z+2TmmMpQ=,iv:g+ui3d4Ycwf41/WBFMn4pDnnAooxjMW8tyL6GWHHDAU=,tag:ZHjYhBqgWtKk70UKiHUbhw==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:R+NxQ5exjQVFeIeTUOzcU7SdUZpNsI5GYPf0q45UXwvrnol09cz1mofjOl71QRK9VROJndgXm20HdwW2zsl+3Qzx237Awd6qBova6h9COLTefaQFYJnJ7iTTyVelkxSm3kpjNciaQ/D3/oqS/Rt6Jadz0sNY05U=,iv:kMSNjC0s+SfMYJ3iYplFIslga7fDvS++/UbP41XxXlY=,tag:t/qsFDlKty91jS3J6J0sZQ==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzQ05DQnZNb2RYQXlmSU8r\nbHY1TkNqUjlrNjNCd3pnU2dLSHQyRll2V0dBCnJBY3haVkxSbjlZZTZNeXEvZFBW\nbFQ1ZzRvSE5NTysveHEvZktuT2h2eG8KLS0tIEhpTkplVkd3b1dUb041U0VTdUxJ\nTWc4NUZESmEwcTVXazVNcGVmMFZISmMKOSthXJzT3o4OMfhToC46T+cs+gq64La8\ng6PY+HikpY620CmjegxOE9VO7uPfAqZRAjevzbmlf/Eo5EPAU1ZaKA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3clYvbXJiYWRVNjd0RnNz\nVGhiM0x2S2lvV2tmZmhSMzRHaHdMMDIvMTJFCkFJU0R2NlhrREgraUcydytmejZU\nczNZdGdhZUk0elNjMkVHUnI5d29mZlEKLS0tIGcwVCtNZHFCMDNnVXY4NGlRYkZX\ncWxCYnlkbFNJTUJ6MU9RYVBsbTlOT2sKMUeIAmS6wxbW8m0gfAVI6t7GILUf9CoH\nALHUy4uBqmqF60WFxHaxAPyLxRpaB7C7lkUqY6Xb1XCkE6o1qRr+aw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkMlI1YjRMdkJHbmFxUDky\nQUxvaDJSUmVPVDZOa0o5b3RONUJ4YUUxelRzCkE5ZW9uYWphdEJycCtyZ3BFNU13\nRnkxaVMxTjcvZ0ltQjRSSTVKV2RJR0kKLS0tIHRORjJzSE9MTXkyMUoxbXlzcmdk\ncnM5VEVzMlpwOTR1NldGbUlNNFlPaTQKum4fTVp1lPSQyURu5oVAzLUT1ExLwEpA\n1DSwypX3pXJOQxQwYyTVrAplcOz1e/5Tsglnq5cgWOB0kldQ4Sh6zg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRYW1oS3EzOXRueWZqeEFX\nQWFoOGk4RVdNTWFZNStKZ2tNM0UvUkMzb0VRCmI4NjFRSHhvOURBUFR2M3ErUSs1\nMHprUWJmK25JZDVmUWl5SWhoNWdxUEkKLS0tIEJ3WlNzTGZPSHBnRVAwWDdqVU5O\nYi9nWmtVL1BGZW5EMjIxZk1SaGplb2MKWQOmInOODPEsWlWPT0KIjT6ul/j+OhRw\nh79lUWoQorFvNRVqSs4Wuz4G8VFAJEGVTItd3/Wx/OSpSazZsDGlUw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1dytdeqtct0jy3vvmqvapgqjf3v9p486jjcpx60gfxwgrptgyyqrs0lj9vc"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFZhaVhsVXhm\nUFhhOEZVWEVucjZKT2diK2p3bHNsVjRVK3JaSUl1OUFkbXcgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpPQ0lwbU1TZEgyb0VhSGhoeWhIUjZW\nSWhOclVRcnBOYUQzTmUycUkwR3prCi0tLSBQdjUvd2FmeG1ENTdodEhDek55Y1NX\nTGpXaWt4K0h1U3d0TXhoQkRNcXJrCr0kO8qRnZyR6jPbMneipRfFKWr2WSYUL7OZ\n+LAQeXZWUAh2eG+KCjJdaJDrvlPLDjFKnVygR+YBT+RtwtRFhps=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGVuaHh3SDdX\ncHBNRks3NlkzbHdwQTVQOEFRcklxUzFIOWJ6cDhzRlpOWEUgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpWWVZDRCtFZmpKTXlldlgwNExwNHJJ\nUi9oSDBIYXFyVlZma2RwM2xsYndJCi0tLSBJNTAydzQreHM1eENmR3d5Y05aNUNz\na3lCR0xjQy9YendiQzBDK2N4SzdNCmCTZCDaf+jxPsyV1hLP5C6lRGX0meS+JePs\nbHwhT+8DAfUXkzSxvhbrl4Y8hpGFE5AROr1UH35tRTO1E2YXsEQ=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGVFS3c2Yzk0\ncWV2akJCSllNMXpTRStWdlhwbjNiOEsvam1mT1dsVWZiQzQgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpiOWxjR1lUTVYvZjBQSUt5clZVT0Vn\ndjd4cndCc3lUdzNEMjlXbCtRY3pJCi0tLSBlaGtqU2xoVDdlODFCeDdraUNoNkxF\nT3duYjZlM0ZNcDAxMVBuY2pOVVlzCn9deDTpXU/fqPQ3ZYo6Wj8Sh3Q2lx9RPvD3\nSmV9uiRypsYtM0x3iOTOP0Pf4vZVEDwbSjf9XjiLPiXa1MDo0yk=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGxwd09tbldE\nVGZGUWdZbkRlVWxLN05SSWFTRmRURFRvWHdPRnJIQ05mUUkgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpjNGYrTW9QalIvZEttMU93cmcvK3dm\nTkZXdThqdDlZTmxOZXg2UFk2WmVrCi0tLSBHV0FVZ2ZKNE4yRFZjMWdYRUR1eE4y\nOVJ6UmRpODZHT2NvZHpaRUdacFhnCqpLFBNxJUiTcrafj4dkYn+Xu70+0YlJrgJr\nmRs3m2zmgqjCheEF8UOROh/4P6iIJ91Nn9eqkoYzq36dDLi07ao=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDlqaTBuaitB\naElUTnlnU2lLUVdHMlVVeEwxb2tySk1JdjlQZjBQUmxYeFEgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwo1bWtrSkJsNTRjZHNxRXpCOGtVTno5\nejZTaHZ0d2FhMUhqU1FzZjhyaWJvCi0tLSB1bjlscnJqeFJIbklDdjdIUEhONjhJ\ncW9NbzJ4RmZHUExBSHd3c0JndHJ3CqTIhy9BPt1QK4bRZeU05huEL/zyUTZmqL5A\nJ0VqWdoFs2qb/vWeHwOnjEBRZ/FPQr02aEuZL17d5c1xnpP/fqM=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDI0WEdSQWps\nVjErbWZXdENNaE5xT3JJUm4yUWN4SVVQaDFzVTBxVDdxRDAgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwo4TDNKODVMZkpwMFJzK3NzYmFQR0xt\nZjF3K25jbUFvYmFQQVBmZ0xmMmVzCi0tLSBWNklLR25uekpEN2R6K0FQWG4vUkpT\nR2xvRHlFK29kbkpDT0IzR1Nvb29zCm8nmELiBQHQPj05TC62Jajdf0W8fPEdUBD6\nS7g3uL9xHCsalEU00zX8yE7IgKQ2yk/7u4VfS5II+MAFVVqNyG4=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6TzAxYktFUXRhTEoyTHYr\nQWd5MTlQcUgzTXRhWlNTd3lyUXlCMEpqa1hrCkI5dERSZlpQN0dwQXpqcC84b0xh\ndnRZWkZsZms2VVM3eWoxbEVaYTBoTFkKLS0tIFdVTVJYK2d3d1VsTkhSWkM0NmJI\nTHBqSFN0dWhJRFFVZ05xNmZzTFNPRm8KNCDPsfPE6O9ntfZIuvH8MfKHRl5xCwUx\ntxvU0Wb18MXdx831vS4xm4G9d5e+OZCbo9ZP35cWu7gSFMcCG/rFmA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoMnZ2TkEvVGpSZDh0Vmlq\nd1djaW1wVjJMYVFsOXB3WEk0SWJDUFFRM25RCmt3QjdESkc5bWRPRHByRVZndmtT\nL2tRQ0tjK0cxbGh0bHUvcEhUdkx2elkKLS0tIE9RTStXaEh2YzBQRGR0Q3VyOGo2\nbmVNYWFXc1JVMnhMTTViMXlwQ0h5TzgKYBonghKjAdPr2wqoUqZxFfMct0Hhlfov\nI1DivL+Ic6dYLFuiSifAZ3LcEq19ZwT9VX2luwQdvfeDaOHb0iXUrg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGU1pWdU1sMUY5VmJ3K293\nUldMSUtxcFNwZkJHZWNtOE9CcnRqRUVwaDJNCmxza1BwdVRNNGcyUmJ0VGlMQ2tM\nWXljVkpnN1JVdnRrc1puZlFwTW52TFUKLS0tIDlKMDFUSmtWeEx2UHlKQ0t5SFRj\nVUhzemp1ODRKM2RhVEc0MW82cWZNWmsKfv8mpvy+rAg07w7uVw3T5wbhjluz6Twg\nByAf689J9J1S3RkKqcUJox+gfXkcmZvawhuDeS5mrjoGcH95KkD1uA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzd1ovS1RkQUJTV20wNVRn\nNlRMeG5Xc2NNdWNjazd6OGFZaUtTUit3TDFJCkVlL0NNRys3OTF5QkVCbW5xcnM4\nTVllV3JDYmY2SnBLaGRIbWdLNEpxMWcKLS0tIHNRWjdNbWxmS2ZrUVJEVEJiNUgw\naUtEazFibXBkaGtjUWlGeGc4ejZiMmMKKVBY3SPfF72Kbkm5a/nGCUGqlho8bZ41\nLb5fz3R5yBC4m09mW2myLsUN6RwLCF17k5jmGTdrrxAi0KRLdiqpog==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkZTJzRTFUV3JvTXRjWGpj\nRFUzWS83R2RVZmtsQnBIemVybWF2WnBqQUVNCnNHRnFVT0pSdlJhN2lCdWJYdWRa\nMURUNFNJZGw5SjMxaEN0dTlCVFYrUzgKLS0tIHpUMVlLRnVSM21uT0xiaHowV0VZ\nbUx6TGpWQmR1Y0FLaGIwNnREVWVCVzAKkmL9X2rySt58MzX/jWCx/B7yi941SUkg\nUkIK+3ahHlCFmIKOvj7UILXEzeUioZEqcOeBeSjqaJw5j/KQhs8sNA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3RVRycndKaFJ2UWphL2sx\nR0c2Rlc2bGZMR291Y3BnUnFqSE5Nd2U1V1FvCi9OR1Q5WXNoZlVHcFVPeUVXcytr\nYlhsVG5UcTQrWU15aHo5QXVpUW9rMmcKLS0tIDdUeHpPNHY5ZG9oUzBBWGlsR2sy\nWHdpWGdYWFh4SGFOTGVFWXhjZ3UyWFEKLQBrfjKhZI/EOKP3whbGcOKjgNBhQ7+w\nobQi7NpggHj/XyZblwnZY8mRGJmusHFnpvRH9fey5mc7sFrz3ld+iQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRMXNIWi9RVHNBRnJwOFZl\nQWh6UkFuNEdjUUZJaEJZZENMWFVNeXVPckhZCk5SWXNSWUxrS2lTYThuT1FNdkE3\nNVc5WlRpbUtJd3FPSFdTSG9Sd0NnOVUKLS0tIExJWmVJaDNWV0p2bEtTemg4cGxD\nUkxZNDAwMmlDRTRiVFZoL2Q4TkcvUG8K01yc54Em7MxRehKAavUeksTL4eXYOGVU\nATgcZfBy7g5kTwvB+6rqsFHzRCb7MO/1HfO+GdlSXS2+G3WhOCaTbg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWaXRhZTl3UlBPT3gyMFR5\nT1c0dUdaYk5Ubjd6NTNpYmNjTm9OY2FKY1RZCmlOOGp4ZUdLbm5XYVZrWXkwbFUv\nSjlnOU93N1hMeGlCQ21GZlZHb0MwTzgKLS0tIFhPSVhqUW03eGJGUTlLZWd0QlZU\nSDRuMUdTNVpTcWRCaVlYZ2VtMGZDUUUKPzjrJ+RY0V4uluw+irte3c8o9ZehIYyC\nd8eEUkiIQyYFX35HRfENhWQNWHGI2I67174BhIG+Tlq6IYveyZqe3g==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-07-22T03:10:57Z",
|
||||
"mac": "ENC[AES256_GCM,data:FH8/Lmekcn46FKFiIFSQDt1+PTs4jbMKhUBvGIraX1lXmzH9UicFmV2mbZF30aZSy0soD47s9Y8sB8FEB8TLSl9m7VdjOsMVjf8nMp1tkmCSo4eVW3W6xUlF2XzXPU/jUSHVkr6JFobWOdt5SG3ppuR2+L6whgJsfKZC5nNJ+fc=,iv:I/oMR8xVqdT3Nbg/JTjXQenFaAGXldshN/Tqz/xb7sM=,tag:XSuzRfAaDFJfhguDeLMieA==,type:str]",
|
||||
"version": "3.13.1"
|
||||
"lastmodified": "2026-10-26T10:22:58Z",
|
||||
"mac": "ENC[AES256_GCM,data:Oco7hHhqnqRrMsywzzLzrfEDGj/eLBYraGDGUc6rSd/P5CLJq6+yKZDLsVMuH78nc0t63+7j076ls/stn9eGyIJTdScNXjjgcFe93rymj6vZk3Omhqj71R9y0/oXzq7Z3X7C9cYhO/ogJnCEh9f4mrSKZk6MQFyTycsceDJGjSs=,iv:4FR+ijuWKaE3N2PzOvC1aJJpk5Igr1u+lgVH34vzLpM=,tag:oPqNnpvnAQoe+xH6oztVmw==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MCowBQYDK2VwAyEArdhZL7Tv8hd1gawGQAWOaS1u6ThS2KzB1tVAdPBBDI4=
|
||||
MCowBQYDK2VwAyEAUPHlpMig70QE2JNmAfdii13rL/6XXfmV1MZHNaXcAEU=
|
||||
-----END PUBLIC KEY-----
|
||||
@@ -1 +1 @@
|
||||
12D3KooWMWz3HFeuEP3Y91LHf63aCzJJYkBdGZK8nrFX2iAUKTv5
|
||||
12D3KooWFGLih1AfPjgXUnA5ugjhdX7aucNEVoPCVW49ij8kY5fr
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:IkhX5F7FCHzYGh2FHM+/lAL4T02hh1j5N5yEoS9eEsf0bwvr8lD3aDjzkcFe4CzDnloOsni2GPPmvsNUl8F4FKDnE6MGrC68nU8RXh+EDcnYyOaUIfFVMJllopMixH8UKVID0wplzHTw7UTd8YbpoRz1gR8/Efl75SSuTAJQGl7kc51Y9JoO4thx/+Sh2RVRQsS/3ZMhISId3+4rb2IXW87T183XaUwj5n3xtT+SUEdKIgHopx9921z2v6QHmgepZeyuQStss2MiJlu7fcubOGNUSplX8SvEWSSDjlJrr9iSbFHHvRq3ih+naPSZ,iv:QdyGkxQkfvihBNj50l8Z5c5fsexnT+lEG8zMdn/eFag=,tag:D6fdixoCeoiBOLh3NS9oAw==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:jpN743oZJCW693RmUVEbjiMHrPLvtvZgv3iKXLPnTndb/mmOWDUhN5EUwE6zQ5ZEAYc2pbiJZ4Z/YpSnGefMMOhyTkvPZq3+TOnL4sY4FG/iBYb57sSp+r5eUQ4q3qv5WdCw3SVHtXBBLlySXJ9w9COhbWNEkFMF4duZBCdxKfmVXGFYlj5eotI4QOOvKblRoB67P1QLAqdtgJsf4z8brIdT+FjycMQS3va4We5yCs3TPFgFBlndydTxkxFDf7excEmTpvyNcTjl/QejaWfgrSejA3S9NW/A+zsBxuD8HY9KeMSUwTVVechWspNv,iv:bCH3Pi91vlCxeoN6M5DJrK8ZyVH8z0SAwwNY70/32Jc=,tag:nUt/OA2mn7kc0a3JOjxReA==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpK1ZLZ2NrbTBGTURTakd4\nUE9WOFhwb2xaNnZ2MzFOTWg4QjFJWUFPU0FzCjhldWFZcC9KT2J4Q1pySDlhWE41\nLzN5bW1yVHk3b1pPUnMxOUR2YUhoOW8KLS0tIGpzcE1xbjBOU3Z4K2dFZUNtRW0z\nSGlJS1BTNEc3YlV1ZHBqTTQvc3hzUTgKwD3/bmzAnY6V4kOjAWhjTvVOWPTpzXQf\n0XHcL5sLUFl8bm9/xEflv9lgvGcHygFJ7IfsmN2f0qleeZjfONZYxA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWV2t0UG9MRzJTaisrYW01\nbUNjTHFlYmErRGJLZ1ZkRFFaQjB5SXptS3hBClVqRmJhWDRIUm5EOFZBWU9hM1ZC\nOFI0dmVSalRXOFZiZ2dueGhTVkFaTlUKLS0tIHAwdEt0MTUwK1VJL2dnTXNyZGQ0\nTnNmZG1DMStSazROc3RYNjNMNFdIQVUKuSKPPwkpU01raTZhaWKokg5U5Cffjd6H\nc6+Oszljbp0rxTTaU4rGwnBg3HPCRZ9cpL5CGY3v+7Qr3BalFd98VA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFg2eExFY3Ux\nRXhtb1o2UFEwckRUZnNxV0p6eVJ0MXZ1Mmc1V0psVXdwRUEgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpJcTRBYTFGSEZUVVA5REFOcGNxNnBD\naGE5WW5iWkJQT3J2aFZHaW1RZEIwCi0tLSBBM2lNcXlJOU55U3J1ZStNa0hjbzBI\nbER2UG1jWjNWMXduSExvMmZUUUxrCrnok0aBZJ9CvKMKMeFQOyvS3pgGp9wciRVe\nmBA7/w8s/WKlQ1+qPWinr88B4S6qOD/MatPs7iOCSZah8i1ATVk=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFFBSTJEQ0Rk\nZWFLTUdzR016bkhiMjVNQldwYlJpVXRRbVJldjJBY0J2R0EgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQo1M0I2UnpRazlZYk5qTDZiZW5obXpu\nTHRXVk8wY2UyMjd5Z1lCU2hjckJZCi0tLSBoYVppUzRnZldYZVRsb01QVlJ2V2Jl\nUjluRnFSd0tXWGo5ZkVzZk94TVpZCinlPLHnhZ2VAtw6IgwZeNKn9b3VkrDP5oHm\n/cMKdTecHCwSi/dgNIE60PaZLI7wL3YhfuZ0LvSEVxV8Oa94HTk=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDJHVkIvYTNh\nVHR3WElqZ2k5MVdpMFg4NGZ3OWV3VWVtTWFHcXJkTHBjQXcgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpqaFJKVjg0NGYrbDQ2QlB2V3pzVTZt\nbnVYZnhRNGZDNzgvZ29RRTRmcE9vCi0tLSBvZjVHRjJUU1EwWC9XUUlFZExIdXZr\naDJUcjJDSmhueFE0cDlCalZ4L1NNCtckds9jTPWdAw2RF8RbLYWWl/FYy7nVyLEc\nyLsKZS2/WtBe7C2h9GycWLq01OK6nRseXlbh0dAA6T5hwb7zqsY=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGo4YkhZaGdG\nL3g2RklDSXZDUGxNeE5LWkx0STM5UnBQSnQyeThYaHZtMXcgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwp3TUVLL2RMV01UbWUwWEh3Rko3T29Y\nT04waDBOZDVzRTFLMHFpOHhVZUlnCi0tLSA5WUdTRDdBYlBLWUJDYS9qd21kM2t2\ncmVsQlE5MzFIZUZWcXRWZzlJbzVFCvMOJgNojHkForlCRRHVCz8jh3qbsG76wJCv\neycu13Uhs3xUZXRXaaWz6PnTvu5aIqfuuAmWzqMkwtnn4LNS73g=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIE5TbnJ1K0xK\nSS9CSVZnRUlTdmJ6SnkyNzZla1NjUXlaK0FkYjBDSzlDbTQgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpySUgweVNuZDZOcnBwdG5kSmViYWhM\nNVJrQlc5TExtWUcyL2FuL0pvbVlvCi0tLSBnMUJIeTlnRGpVTTZmVnFnUEF6bWNV\nbTN0N2RVeTdaYnZyR1ZIUUxMT0tzCntcvtSw4LA/scYnuFLQooxRvEOYz56v0WXd\nEWtlMUtvjHMn9cRVBEUHkTnFENkea+r3is2yF8PYlSMxNLnI1pg=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGdEKzlEQjJK\nUlRlL1ViWnlnN1VuN0UwNzViU2tyUkptSlJzSVVFTEczM2MgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpvS0ZtSkdMenAvUjJ0djNLQ0ZieVNO\nQ09kbFBidEdZSlRpODVwL1I0R2p3Ci0tLSBwa1Bjb1NnM3pkYkptVHVwcCtvQkJM\nL0ZweGd5dkd1d1ZoYmx3cTFSejhzCpRuyx/9BC4lgjric8vAi0bm1wcxwJ9aNlXB\n5gi4NHOdlABd5g52AWfQI8WLewqZFwIjvOZ+ly7qezaCGU5iUoU=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGdWIveFVTM0tSUkpTMVJk\nU3RtQUhqeFd6dVlZMDQ3QW5vYUtMeVlHVVdVCkJmZmdmVzhHZ284dDhMV0ZGQzE5\nUnJTbmpnR2ZFVjdtemV4V3pCLzNSK3cKLS0tIFdhZjhQWEY4YzRoVkFKRG5KRUJB\nQjhBcHhKbmtaK0c2K0oxZHM3anJLSEEK0kb/ODoqLUmHQOnlN1pqFnvwTYBXUyq2\nHiZb5sV6kpBo6BnKqCe4WaFPZ0nLk7dN0OQ0+vTT1SiYCcf1U5Vvsg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwT2c1K1IyUlBWTFE4N0tM\nWGJzWXlLeFlneU5XTlJvaWIwSDFyeUcwSzNZCmlXT09yeWVkVzAzQkFkMTY1T2dL\nU3AwRFBDSVQwbHZPeWRHU3Y0UThKZnMKLS0tIHNIM1g0QUNwTGJjZXR4Ky9TSGZH\nUDBJbCtxS1pTY1FOU3VDRFg2SEdzVTAK/1lqbedEyTtJ42j/Kt8QV0VgrBp3rXSL\njZAgBdPgp8wzsQOmKt8+7z6xlSqsL/ZS2tv8p7fMJ5ofsgrtIs7lSA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4Q0dVUjNhRENINHMzSDhY\ncldMM205cmdzd1RKS2tLcTYweTh5cDQ5bFQwCkR4R2xZWE1zWmhYZFV4eUZZdzRI\nMVRnMGZFMVhWYVV2VDdva3RiRTFaUUkKLS0tIERnekR0MERhcjFUMjZQZDJoRnhw\nRVAzcklCSnRIL0xTaVg0d2VLVG9mNEUK72YAp8Cy6EOOSY0qlVJbBABFyjoLiVMU\n8wxxXCCypQBHcrhIJr9B1owlhO5r2g4E6mHlu9yVJawEcRa22IEnLQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVenBMeWRqTDdxekIyZEk3\nVVpVeHVvRzhabjFSU0pyUTNIZHY4RFEvd0ZFCk1kSnJBazc1bjFLOHhPL3BHZUdr\ndXhsVmNhVit2UmYvcUVSM29sMXlSbzgKLS0tIEpOUS90a3FJbnBnMmVYbTBZeElo\nVlFIREVRZXQ5emw2QmJGb2ZsWDhjY00KdiNK6NFf5PQ6VHRIGk9uluc+wHoU9uyg\nn3gMXY22lV6vH7Zl52sumUmBjlIGFebrrE7mXKWvJ6v+VLZj0adxNQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4Y2VRYVRReHB5bXpHaDZu\nY0RDVW1nN3IyUFdVNFFMQWRwTEhvWk9ENmtvCnZnck0wcGtjTjhoRjV0d3R0aTA4\nRWhxb3I3QWg3STBBeTNQMnpVTzhMaDAKLS0tIEIwUm9oZU9YeTN6VTJJalNqd3VH\nZzBxQlFBb0lPNjcyM0o3K0hjNktudkEKiDQ0HWnCPJe5b1z6XvkQErW2Aop/1a9l\nkDcpqqlumdnd51BSMPE0uXfV9DhEA/V2f+TyPWpW0v8O3RHO1JjDOA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFUXNjTFdWYXRmVjl3Z2Fz\nWWdEVVlRUkUwQkxEVGNsQ2s2T2hmVjR3dDJBCjlXL2RtVlNsSkRtVlk5cDE0U0dZ\naUFxelZnOHRVRHk3Q2crMEZQSU9mSkUKLS0tIHVLTTY5RngvWmZaaFhVUzY5cXNL\nQ3BEUGFXeFFkdTVydGo0a3ZOeVRUdWMKKMKHIZi0r7+S05c69If0qSE26/71KaBE\ngs10UmQ0YBnDVMmPkz2KDj9hzQT+iY8eddfeay6B36Bm9y87XZqrgA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPWUgxdUp5VVcvZTYyTGxV\nOVZJNGZoVzdpV2FzN0luK09mOWMvYmVycUYwCnZBT3hwWjNkZ1hYL05MY1kxOXho\nSWNoVGRlSEFvZmRBV01rUzhLZGFPdUUKLS0tIGxGUzhGRmV6SWZ1VmFHbVYrSVhU\nbVRVVkZja1g3UytHSDRuMno4ZWdZTUUKD0Exkylm8o8yIKbnSYqn8tV8StpH7lz1\nQkKCFB6Gw9qRJv7a4YQKeVsTGv8kspylVbDEhoZMazHzUqyrBlj+lQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBMEcxcDllZlJRN1FHUk9z\nUHNmUU1ndmZWc1RacENJYlBZRTNOMGU3ZUJ3CmZCOG82TWxkbWFQVi9vZG5mdXhB\nNStob0lKTnp1NVUzcUFGZlJYOE5hcmMKLS0tIHArKy8xdVJHWnBhOG9TOGV0RHJn\nNnZpLzlsOFExcTl3NEo1U0hqV1ZMdFEKkXW5TdHTqyeKmQ87DTA9i9r5Ri5I9RPZ\nl+WtuGoXlhCS5nASavw852ob7r/TAryld/um0yAy1qIhAnnCAuUkBw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4RjB6c1pLRXBoUHVPWDZu\nRkZ2T0o3QmdObHNiS2dzSzlieHFBSjlXQVRRClFDUnFkdTFtdW5VdFd0RTFLUytq\nWVRUYWMyMUY5UGRHcTd1KzNxbzJFcXMKLS0tIFZraTFyR29BRlhBclFTeHYwelpC\nekNianFCV0JxeDVzOUs4bDRsbzhBalkKQ6E2Jvf1d8OxtHCNXZGUx2bSb0V4YxSl\n1Rd+uyCuCz1KROPSiUhHr/BYo+9P+nMNjKmWpdwNcCtDX0MSGzlNoA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0WUgvK2pxdWptVHRPa2pW\ndXhURGFxdUxGeXBtN2Ruek1lVVVRc1B2TzNrCkZJY05Uc3R3YkFqbUQ0Smdnc0lT\nMHVWU1JPTWtwYnN0clBISU15c0VlRncKLS0tIFRNeHBOcWJkODJndXhNZlpWTys4\nMUxnR0tzdnhVL1J4bWlMU2c4d2FuQ3MKh7wjjRzAlAVeAr5jnijnhcbcm1sOz/Sc\n5sol3UOS+OahKp4HRi0ob2TbDGLr1ZkyEo8RVRiIH8GzQIR9yqNsjg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1yrqpfs0wtaxg9p9058g2gyq7kffjnnqdw26wa4a4uvjqkzvmq5wqvdtgxl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-07-22T03:10:57Z",
|
||||
"mac": "ENC[AES256_GCM,data:l5WV6ziE4T5F6akfzoFUQziLVUC1BV6eHQecLzDvgv/E4HBeWvl0Ljp98sgBzTklfk1yej5ez/onlnWIEcm1fREtpvjwvgoMDaC9uXMQZUD/spvDywBqi6GVZjFwpk6CnKvKAsWl91um2s+uLVjbaSC+gg/Gf0E+UeQ4+fNk3Ok=,iv:2CtAJuTPi26voPPCSZfvP0qmhYE6aQ3Rjez5cZYFJZc=,tag:bezGvYjUGLYYNhKJTsjBrQ==,type:str]",
|
||||
"version": "3.13.1"
|
||||
"lastmodified": "2026-10-26T10:22:59Z",
|
||||
"mac": "ENC[AES256_GCM,data:yXdUpDOVk6u0SS6C+f5/CwVThgSWUfmEF6J8QUnQgJBXJMilZRlqgTXxb5JfydZ6FHo+t68Fq5b/2aeyQGR4Acj1G4i2OgY4ar1XkLHk+NFWVIQqC4v6V6WS724wp0wkWXFbDPFMt6hNpOqUNMQ/CC9ZhzNv320wimBpTlS/paI=,iv:+VW4Oy4XTAImddscUGcW/BAiUFPmvw5YRrQs4fYNl60=,tag:9rAb3/wWdAPpxjQXu342gQ==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:iRv8Z4YFv8u5gBydcOXxWET+6SqaxcKtN88ed8fNEuU43tC+wJFtpSaxRV7scVFlQUesj0pCAbbqSDMtexX+Yfa7cwmiJJsyBJ+iSankLGfR4x4V2Sq7g2ezcbivHWvRgiZ/Y3P3jEWg478lBztX3KpDO5Ld65c=,iv:Z3J3TgdAD2nUjqdif4lEz3nZJwBlo4BtjxMJOFrfeZA=,tag:8gTZlHUY1hzE0ww10aLx6Q==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:d2VwqxVXJ+hj2TJQnIzZvnSgZsLysDWbiqGJBr/ocdETcSRNUHbqnk6DP+VugxQi1WHkbuWDR0gt9M6PUr9o8mgsoMuEhXSclqMA3yXXZ+wIFeGBIaCsCpTwZyFcVmO/9gsr8FE4e4dPWPUFRgu5IJuIOHwa/qc=,iv:VTR/0BMVDFFVGRNBYMt/1oVdJ+zlQvuIF7ro9Y+/Xj0=,tag:Mkeypet8zewn8H5FBqlR5g==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUY2dvLytlSEcydmZSYTRD\ncHZnUFBISkxEWktWRk91SHlPakJwK1hyanpvCnlzaVk0aTVseXBZUVFPR3AraHla\nZmp3bzFsQ0VHRFhsb3o3Rk9SWWJodDQKLS0tIHJUTHNwdHhyNWhpc29ENDZVWkFU\ncjkwa1prbE9OWTM0ci9CWUFKZHN1YUUKN/82dx54rM8R+tNC+DIyBSQXI3MdbbaH\n+XZLGPnaU+UW5tMfHE8hGMr4EvtCXPYaRs650SNjSRlZTPg39iVDTg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpUlh6UE5PQXY4RVMxakxr\nVzdyNk45YVVQeFVVdlJQRm1DR1E0bDlyR2o0CmZxc20xdTloYXRkNVJmSUEzcDIz\nTTVYU3grNHhpNEQ0aDg0a2c4OHdyK28KLS0tIHlkaWhiWlZHK0tzKytNMGZGQmpD\nZ1FSNmJ3dTNtQjhQeVFwaVR6cHNoWEkKMsHyTUI54puge4zUj0QiPwg+29H+2rm3\n4fbPUA/kkYAo/b8k3MSpIJbSc9e6MOQWUh70Xvg6BM706f3lz3NBSQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIE5NeGNyTWNv\na1hzQ1FsMFFsMDk5TGUrQkdJdEcwUGFUTzVqNlJuTnJiV00gQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQorM2tGMXhOU3FMTzZmY0lkMmc2RUY3\nUEdSRERvUnIwZFNoVFR6TXZESEk4Ci0tLSBlWCtlQTJ1K0pNbUtza2gva3VyM201\nZE80L2hRT0E0S3BXbjFlS0lDRGMwCkCKnJNOEUTsMSNiGrdQOnBaxLEA+inZ9tY6\nqRYyTwZOI5CUKem8pDvsqe81bRgkZzklSuxzOODXcfZgmFN3znk=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFNONy96S1Q4\nci9pTC9YbGV0VzNqK0pDUlk0c2t6dDluSUwxQ1FmLzlabm8gQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQprZjg5cU1zSUsrNzRoU2I0eTdyUCs1\ndjZUOUI4NlFmWlJVNER0QzZPa1o0Ci0tLSBRMXpXQWZYbGIwbXMvTzYvY0hUNFJL\nMVgvSi91UTJNZlowOS8raktRT1dZCp58IkgaHzbMmNRYEzc/PeyfnWgL81sIzYdw\nrlZd/4s+wHAZUYJk4TWOSn/eUiRaO1YqPIqRd4ApGLHXL5yXO78=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGlGYk44bEI0\nS0treE40RjJMakh4b1ZGVW1BQUIwbzRnU2VUbjlsY2w5QW8gQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpWVTZJN0RKOVE0R0t3TXJnY0hsOEow\ndlVuTGRTRmJId0V5b0xQRWhpR1BrCi0tLSBHSE1Rd1FndTJvSUEwTjNmeng3N2ZF\naXUwQk94OGFCUWdVNFJKYloyYk1rCiyRTHUEi/SEpFrgbWtlI9ntC5Y2nJMyqv04\n12hJiOZbZA/xvEbANVTq8o0tl16ftc5WqGx4+0OHjg0rbad3oH0=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGlzYUl4bXoz\nMkZ4OGR4SkhPY0RweW9OSTBqWU5ZS0NOZlJGdjRNQVJHSDAgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwo1UllSdzE4V1dUSWowemU2MVdSajg0\nalZMVFpCNXdwejNrcEE1RWVldTJBCi0tLSBCQzJSZStKTUlZNUpVTWVxalFJNytQ\nVTVoTXI0S3VIVDFFc3I0M1FRdUp3CoJ5qH4HCvA47GFkKMCNQzRDC3k/qGBwIq3y\nSFrR7fqNV77JXqLMzYvBbfj9c6MNPF3+xT0v30gDRHOEjHZLsS4=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGtxWUJ2QmlX\nTm92MEtYVzFFekRTOFptd3Z0cDJaNm0zeHo5dzRqRjFQR2sgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwp4NGF0cEkzYmdXQ216SG9CaWJGN1FH\nV0dVUzRESXorUHZWUEpJdURWN0RjCi0tLSA5U3lQME9yaVVMQ0l1SUZtSThZbjVr\nbWdvQm0zRjFMYU5BRitGZ1hMNnVJCtSmUCETAjWgnTEtSq/moRSpcnx3FRWIpgga\nr83gbN7SYNgoE8hwce/2tACkF1fhBZsMSUyPSnNEfrS+7S2T0Wg=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDFEdEFQand5\nVTUwYStJV0ZVVU1jTzAvLzdSL3V1b0d6VDVpcVZRUmFzV00gQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwowQ2NMMC9uRWJvaTRma09NQUp5YWgy\nQ0c2dy9sV1FUcmlqSUZnOW8xN0xnCi0tLSA3LzFvRGV2SjhaTG1mTmtXZTBzeWFt\nRUVkQlNEV1BNQUtwUTAwMHNlQ0E4ClI2qbz5ZSocRAoDpQk60lz4agl2VutQ3NUh\nPPgqit4OCu1le/4YNzcEiL/nI/Lntv2mwUwZSHUrQXmisYdc+js=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHMkVUSDdBSW41aGZTY09R\nVXQ5eWNvWjlEWmkydnRESEpKUmhoeHZVamx3Cm44dklycW9HNXR3dHJuTXJsSmFz\nNFBiejJQQzVtNXFJaFZzZGk4OW05bGcKLS0tIGdHNmpoNHdzbll3cng3ZHBwL0lY\ndXQ2RVNjeXl2Q1NNUHg5cHF3a2FtTnMKvlVAQjKchpxPZxA/RPu7GP2ddTNrozRr\nV9oTDYbzSWV75ikcWeX5FuaRWspzpjQkQ+zvZV2tWq/dKsCz5PoVAg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0Y1JqemxRQ3J0NUJpYkdP\nVnQ5bjhSWDVHbExNVGo0RzNmQkRpODRFMEU4CmZXR1ZPWU1OOEp0ZzA1NEpWbGN5\nOUhNdWFPc2FnemtGOFU4R1lsRnNWbFEKLS0tIDFad1k5VjZuRUh6N3hzdnFabTlE\na1lxWjlaSTFWRVJiQnE5OFRTQVVDTFEKFwsH7QGMIpmDU/NO7YfV5OoAi4B+hdSh\nP/7Bqojw/0dkMszr6u916pLgpZj2Tn6O52epuyfuuaBLVpXIJFw3gA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpU2hsSjRYSTFTMytJVjY1\nK2E3dHc5bTl6TUtaR0pWcUl5Rmp6aThoblFBCmdqY1pKcVVwM3V3MkpPYS9LRUNH\nZW5LMjZ0QnhaMjdUbThkSDRpSmhwZTQKLS0tIHBLYXRtaG1FVDU4YTNOR1BZc0RU\nb2xScC9GcjdRN205cEptTjd2c1A3OWcKy7iV/FMkBmKg/qFcd4tnCsPu6wr/SvVR\ngvmrPqHzEDkhMKa+V9VSVAPV82/kaVapto0b9IkeTnRnL4YkL/U3ww==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSWVNlNGtpR2tPZndUWUdr\nQktzcVVHeDFNTk92ellWcDlvdHN0a0JFVkg4CktHLzV4U1lvNUV6bDhlOHB2V0Z6\nTE1sLzdxcE5BYjJ1OEZoZTJ4cHpUQUUKLS0tIFFMUWpFa2ptQUlpUzFZd09MQVNv\nLy9QTTVvMzY2NFdBK0tiTkcrbWtCOHMKljNAYwNPsEq3+9wj9WVt+xFxZXI5NNW0\n9EfDarMeUmXFzPjk8kcwuwHi8dZirVGnuLRGRhn4H3YDTFUIBa/m7g==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxYzBGd0wxOXNVNFRBTEJH\nbXlRcmZJb1FmRnEwRThQQzBKdHFQWmZzejBzClpRcU1rL205SUg0TW92ZTg1MjhW\nNnpWN1ZTL0l6V1Zldm5weVlmZFoyd00KLS0tIGZPbWVlT1hUMTN0SjNHYUxmdWYr\nTHVyWWlpN1diMnRkbWxPa3ZNRUw5NDgKMhzXs3Fpct0fWWJ5jVOEQR5KAlNL1LZs\nhSBoKlxi9G81K/xH8rkmMHv0IYS9jSVkQ6FiI5mE+jVs9I3EEuOctw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoN0orRTRQN1d2MlFMWWl4\nb0ZHTnlxeXA1aWloOWlnZm9CMmJLeTQ1UWtNCnM5UEZUWGtaOExqcjNTdkNRcHBw\ncWkzdzlmVEJLaGV6RXNuRGpadkxEOGcKLS0tIDJLclVhUUJsbGdBb3NBa1ZnYThZ\nWDdwN1NGNVE2KzNHdzFpMjI3WkhtREEKvN9fwadVbSBCPYttOOTJyYiJVo1Dpbwj\n8s+h2kV4N/3SEEMcEjTHbQmJK4jJKa0vgr1cF2dPfdZUJmeI9faaXw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNQjlxV2ZpenRIdDNKeFM0\nbDZnSWZpU1RHeFEwVFltdW5FdERrelpRNVVFCllkbXZQNXdLSVJxa3dSanBKNjl5\nZlpBZ2xhQTNERDY5Z2c4cVFUUlJDdG8KLS0tIGpNbkRmNnJac2hXTDVuR2d1dkJR\nQmJ1eW9rbXlacDNxVElYRVptOVQxNDQKqY9eZ3UQdf4zQgzqjFTyQ4wVqrHfr6VD\nLSF8x9KtaQleqNsOr5upnRqg9BKshcRLpSdNII+QgiPEtW8PdB0TcA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2VFhMYWRFQ0FuSytVQWtO\nQXk4a1dOa3hqVjUvL2RpY1F4dlRkV1JnbEJnCmFuYVd3dStiSE9wTldidGpkWlVU\nMWZRNkZKWExrTzdxREtSa1QvSEgxOW8KLS0tIDdNd3laY2J6SXdVVDRlZC92bkxH\na09qdmJjQ0hCTnFjbVJvZVBqOHMwQncKxPw1GD+MUv1ToO2kg3EMetJiaSpVxHK6\nXy/cOMmbAHDBj1nSszA1+t+PIedlKydaejyUj8c4y3+VBd766PkxpA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyMGlEcHhrak5KVlo5YUxh\nc2UyNk0vaDlQUHNaNUpJMSsrbzBXai9IZ2xNClJ2NVZwTCtZSU5pUysxZWEvSGtX\nT3lzMG9XY01kOHdLZytJZHY2LzY5NkkKLS0tIFpwZXdvRFoyOWx6a0JKTHV6Wm5H\nb3ZCejRnQ3djUjNXZmZyQmtDMjd5L1kK5/3IiWjErpouHQ6xPmnD/zOweDy/Z/Dv\nUyO8ARU48IGXllDzaBTwjBuLF1c/vQN/pPZuNakXq7QBrr33I67OPQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwZURCZDU2UTZpSVZqZUts\nbUdPdUYxWGR2N3VHTDRqaHFaUi81QmZSV3lzClQxRFdVM2ltUEFJWWJGYTB3WVpL\nWEI1MktHYURXSmVISXhzamxNOVJaMlEKLS0tIFozcTVuVWRobU9jV3BvVTV3bjlL\nb2VWUlMwWFpDamdqM1p0eWREcEp6dDQKAnB/j75GthG99Wb3K9hEHvTfIM23srzu\n8us9T4zjs9U3jF/DnT92cGvLNdydZmDzJFF8G4fmFpEzDhzy7nFHvQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1yrqpfs0wtaxg9p9058g2gyq7kffjnnqdw26wa4a4uvjqkzvmq5wqvdtgxl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-07-22T03:10:58Z",
|
||||
"mac": "ENC[AES256_GCM,data:hZjjCiKY7paoUujwPwcc+EiFOgrheEKTBgT+2DniRqY+XCZhOnPDYv4CzzWxXCzAQDyr5D2BtaV6Xbfyhkv61E3bDYQhDwyzKlukF/HV88TqNY3xdXXqwym3KqVUb1rHhrDzwvfyHBspr/F5qCHgwmEydYzw5h92Sdx5TqwlRec=,iv:mivTrx6aASPDkfjrn1SHk2NDVJ6TdRxkbcAanUHNs/Q=,tag:tIHlZYUhxpo5WpS/3oFeaw==,type:str]",
|
||||
"version": "3.13.1"
|
||||
"lastmodified": "2026-10-26T10:23:00Z",
|
||||
"mac": "ENC[AES256_GCM,data:OJ3xToAqiO/89V6XI82Fi3hVM7r2pus0kwcuNF9mupOQBF+UETHWr+CW4TcmPu9LIEzMBnO6ktWPL7co8VhoSnBUDXzRZDKXzqWWLJV5kVFhC12xrDwe1Xh2y5iq7uh3uWCSH7L9Sh3ZkLx8hYS/15QtgK0LP7nCAcx7vZ2z3Yg=,iv:kBo/MCpaBncH+IzONrBoPFi2imHvyAe9JNt+OH4kKEM=,tag:XaQoRdqmcdF+z0WYtmlXzw==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MCowBQYDK2VwAyEAwP4+uoPWwECOjQxJeTumMR5EnMuHylfijpvOuCwwSy0=
|
||||
MCowBQYDK2VwAyEAPudoimoJAL5Q9NOlSXitdiWE96oanJerPzshArH1q4s=
|
||||
-----END PUBLIC KEY-----
|
||||
@@ -1 +1 @@
|
||||
12D3KooWNojJVT37wjA9vvnnvTu9drRDusy8FkQ51USWK4zj6Grp
|
||||
12D3KooWE3v72oQ92pVNRHmjQTL4quwXZGSMYMkzuYyyLXvekXd4
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:EdGWQOxJ5O7HubBQH4DnLfYpC4OrL9QFrB+XtxRACEiyPygxrEvjEVyGMyF3emfdddibQcrGmeFgeqzjeQLfjLE+zD5I1Vw8GcJv7ZD/V+kBn/iwoR4pAHe5xmrMwH7Cr51/nhGYFb0vhzKhXj+4opCQ8JNFXYyj/6EJEpKFMCABjc587wODFVcqy5iyKNRJsJthmIy7Zc229+A5qVmACsd1j5wD5rI0+5V9hods+/O4T43fjv4gBZMMZkW/VlfWk4isfkqdJsgOMOkPQLP8whwfrkBn4VzUheZlmFkAnIT5D19JcPRpaGhoh2Y3,iv:hYi10fOe6BiYsUPTIAqIu39UjULfhD5YnKh3PMjZZQc=,tag:iwzwdt/+JfwTSmivA8Rljw==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:kBNqPafiVMXa69XrKMGj52JfcT8MCcFTd7Ko3FqMUJznKHs8sWUJkM6qTzq/Voa0WNTWCp/nrJwYdcK7f+8gWO9eqGlCY8GFgl/wuUc77IlDAB/2m+ZRG+pIjNZiGutUI8AaIGtB9JzXcgbw1bdyPwHQyWnkECfQAwOdwlvJfXU8eybWLTvlmqMPaUfZr0QLHcw/3DYF/wYAedPB57NkBroPg1pZ6ihvTqdyNqdqQUJpEfWGxx39y6KS6Fq2112kRAOvUl+qAQSpFxe4x4YJdszltqek8RJMIwJjddmeyhZOzPHOgdS+UBegZftF,iv:vULDBnHtpbWK1s2hi6wUYCc0wFbPggMFVu5GcJ50KRc=,tag:VzbeYkm/W8abDkbqc2P0dg==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBua2xYS2NsaXR0Uk5FMVEz\nN050TC92c0Z5Y1lhMHg0QThDQm1XdlNaVmhnCmVPZUJrV3V0R0t2a0puN1J3U3Rq\nTC9EeFpYeWJla2VNeHFBazNYdjEvVk0KLS0tIExKOXdPaCtpNVVsMG5hOHJDVDc2\nR3RIc0FaMUlCTmxUZmVIb1ZONTFTQkEKva3Oz+SRulGyiWzWd1MMNaRgOsw1CO2J\nzHefeBV9uHq61MUPBio7TGIDY6uUapPpa5K5qWbxILoyHEBYsvYCDw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzVW83K1JRdHZZRXZEUzRW\nM1lLWjBLNFoyYm14SjFHUDNxeHN2TVdjaUNVCkxlR2ZDdlo1dFdKZEoyaFFVMk5X\nWVZkVG93U2F1eFFBc2xwbFAwbEdBOVUKLS0tIGdsNFJtUjk3cVVENGlqbjRidVQ2\nbWZSZ0dlVzMyZndoeVdKUnNrVGlnczgK8X28ecm/7iloETFP0hc4rioG0rs763u+\nLZJPdynmQbuomt4srqFIIeCzTg9y4WNkzlVp8TgBNv5je5E1hG5Cxw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFVENlFpdXNK\nSHA2LzhqQmZsSUZnbG1ad21idFJ4bmhMaTkrak43bWpDV0EgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQp5UE9WVE9hcFlYeklac2xWYzd0YVov\nUE82Ti9lazVpVENtU0lNMzUzQTFVCi0tLSAyaGc2blYxUVNsZGc0TEJUTGRPOGI5\naTJGU2ZvZUdCQmV3U21xQ0lKL2VNCknSE26R3qINAWJI/XNiXIohIzRxLedEPYbY\nnIMgz/hbpYaV0rz1Kp/OXOb7nLYcFjCwp1x4HPxtzKOaeSK335M=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHhWMUo4NDFw\nMlNGRnNKYnZqVHkycDZQdDAremdlNi9NRmIybWVJNEx2bjAgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpNamxKdDNIejlkOFZwU3ZrakxabytW\nSWdHRSszKy9qd2tMYjdPcEgySGhVCi0tLSBNSXlHQmY1bis2cHFhT1RzUFdZckdY\nbDNTaDdXVGRBZ2o1cUJ5S1JIWFdjCnxZH67pTWD/CYef0Vvfxtoo08HlfNBaIM3K\na19XKjl5bXPDh+O3wX+8N4PRimazybxrtNEVEikhNsbhdmgFcns=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIERCSEVZZVBN\ncWRBTVR1TTU3eW9KUEU5ZDZoRnpSUXFlUG11bXh2NUluUkEgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwprR0V4OW9SZk9CaUhnMWpDMzhsYTk4\nN2czY1p0c2dxcG50TXplME42bStvCi0tLSB5NUp3QzVEL085MGZndzY4QWgxZGNJ\nemdobFNZaFNESUhsMWl5WFlTeWxrCmnFrb3lXHY2c3Jdq2cyHqxdYNgtk/Lb1stl\nMLROte+vBjWAktxvSGBGDi6mi7R0jZblStkUfhyapXdRhckWglo=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGVoZ3k0eVZt\nN1FGVU9nbGtrMUEzM2JJOUh4RXNmNWlvT2FkT1p0YjJUQUEgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpNWTVJSkk4OVlQaEtlMXVRMnIycjZj\nMStkQ2ovS2o5NEdYQno4SXhsVk5vCi0tLSBlUUlGTGF6bENXeEFudmR4TTBzOUo3\nc2c3V0M2MjdHZW41UE9pc2JVYnlBCv0YjwMbwk186PXBlEDt55wtvK+oezPqrrx3\n0RuRyNgfSE1K7FF2V9MDuJhD+30pdjRfHM+mvaE7d++N38Xnt3M=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEM1UWZjNUxp\ndURxUmhXTUE3QlNCNXV3T3VHMC95c05JdkYzR1p5dnlSWHcgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpMMUlLWU44bW1oR2ZkMkZudjV1Nld3\ncEtBa1M2eC92Tkx3YlpYZmFRWElFCi0tLSBCYlNKelZxb2ovZUFyNkxkMFNhbzZy\nODNWOThmemZRKzhsNzhZa1l2MTY4CoskDqDk/uolbs3Sa3lUbwAqtxtG1dKqUKc2\n6ThL2f7EV3r4oaGHcX5SNhCGKG0ZON1raXUaMbycZAjCxFaOPLI=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGlDVWtaSS9M\nK3ZvWUl0dWlZMTVGSkRDT1RhZzMvcUg5ODdSRnR5ZWZBSE0gQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpYSG96eHdodmtwN01CKzA2dkpEOGJS\nSE9MSGZYVXBhVEF6ZCs1TU5pRSs0Ci0tLSB3aGV2V2dZT052bGsrLzBPeE5Ha0VY\nSis4NzY2bU54dzNYa0tzTU5ucDJRCg3yFKZaPorJiqlVPx4r+1VRtdAOx5iP1AWd\n8/o/050xV5A93DPzg1lbLCqWMeKdo/K0aqxoCCVk8pEJJ4Geo8U=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArRG8xTEZWQTBrVDZZM1hT\nRVpJbks2aWEyYUNXZ0w3bWg3ajA2VGRDbEI0Cm9CVGhtVVdDQ0V4M0lEeWp4NFRw\nZ1I1YS93dUFjcWYzN0taalZsaGQyb3MKLS0tIDdUazZhNTIzUC9OdisrOXFhcm9I\nWUFkc3RVaXFpWnRGb044WHRpQXpjVE0KN4gsXperRF1uuyCWkxcp0XCxvj7B524V\ntBQ3uCXdyf0zlEyDgHDB+GRnhbJrbuBvwMw0BVUiXdzftdDyW4UPfA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkQ0xzL25yd2VCUzQrRlRj\neTgzb0hsd09QaVpqNWFuZTFJY2p0eVI4a1ZFCm02YU1JNXBtZUtEZWlKMFI2ajhy\nY0FHV0huV3pGWkY0MXVnZ3pKb1NGUjgKLS0tIDZPUHBvK3FkOU10TTlKM2tmZE5o\neDdlNzRNbTZrNmdhU3lOVXNpS2VaSjAK/qAljGX+sdB+WHZ35pCzJ6A1/IFLpi/o\nrRVVIeGDDcxSPEiACDNfzZ09pGATtokXweTRYzeOBrDQiMb+Z833XQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaeTRsUTc0NnNNUlVhOTdl\nYUs4K3I2Wlh0NWF5UitTbnErUjljVWwydEd3CllteENXNlIzOVlWUGdCaFl5d1Jn\nV0VXS0dVR1M0azg0MDIycEdLUlI1blUKLS0tIHhVMWhReVBnYUFzWTZEU0xweDVH\nRzlDQnNQSjViZGlhanVDbDhzVmJQUVkKvSV2Ayxa0J+bCM8OYe5scFG76ANbNm77\nAkqwH4yKXjcP+Gj5SqaJKm/eGJUWMsDyLxCsXhbr7WT/shh2iZcTCA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxckNEV3N6SkprcURDRTNo\nQ3BrT2NDNk1aMFoxYlRKUlVoNGJQNFByS2xJClp2WHhwaE8ranUwbzNwU1hYU3pD\ncTlFVUtjTkJhSmZqT0dQQkg0VDRkcFEKLS0tIGRZTnpYZHZ2bldjNGRURFpxWkhY\neXN4ZWNEM3kxdkhJa28ydk4ra2h6YkUKYpNsStr0wa9jkiLMlAHS4OqIklUqEXuq\nH0HcEdPVdeRzn+WlVe9Llubm04ipYy1nSSZEHHbtj3JXyz03wFEZLg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1m2e4c3gv7mxyg839gf0lfsh8wvygx3rn8u5cwnn99vw2w43ssers40tlq8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxdHhTVVN6K29BNzNJREZx\nbWFvOEVwQzJHWmQzL2FKcm41bENaSlA1OEdZCjdGWFlNY0JDNTAxZkF3V2ZldDhm\ncTNZOVVvTkk3Umpnejl5ZFU0TGxoa0EKLS0tIFRoeGlOTWFsa3kzOURtWGxNVjlN\nRDZ3R1pDV0N1T25kd0pNRzFGRFVLSFkKFoOWz+XeLDCZbu9pWwFpfuAr96pL4iMo\nJkN+n/b82kG5+rJ0v3H100uTD0l3+U1f3Zt8AKv6JMKp1TsKD3dhbw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJNDVjVzNRVlhIMHlVRGJw\nbTY0RElLQVliNDVIUzlPTWFuQkJpVnpEcmt3CjhSMTVxOTA0WDNZQlM4diszTmJ1\nckxUNU1STTQyeGt2L1JxVzUva0dpblUKLS0tIGhIUXgvSTBYR2hvVFJLREVVZFZm\nMXV2ZkdZUXJxVlc2U0oxRjdYMHNnVEUKLf70h9SdNgPmx9dJDZFxuyE83tCbnTYf\nNxUdIIFb3ErEokixBUBmo/bLr027Yj3qogioT//pKrtt5lb3oGAXvg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBic2ZEZzY2bDRlRklkaXk4\nNVRCZzdyYTVNRk5zTnNJeDQreHFHWERONEM0CmZGZW8rSllFOHlpR01uV1krN0l2\nYm1OQmtTZEdISVhldDhOSnZSdUVxV2cKLS0tIDFXcTNnNkYvZkNvaHJ0ZjZiVS8y\nY3Z0Zkh2M2RZdGdqalFjTHQ5QkhWZ2MKQdRPAmCmwqE1d/EpDqP1JbvHgOXjBC4z\nWWCOnKBWoBsPf/EzR+KwrtmhpTYYNCfcwBSo4HTBW9k5ObXNlWJ7xg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnN1BNT09kR1o4bmM4SzRq\nQzJXU29xWjJ5bkVzQi95UHRjR2xEbUprb3k4CnBxb3FBcWJjYjl1RGx5Q0VkbmM0\nMkd6cmFIYm12V0dTVkdSMGZGRXVha0kKLS0tIDVSV0hPem5KL1R0WEhQWkU0b2Ev\nUkFoWVkvRlJORDNWWG5MSmw5UllnMXcKO7OaGpxR2/0f4J5kzuDLG/lnO75KMXXZ\nKV4QPy8EiMqYd4e+bWmmzrZ0gkTNdI+flWWgvi7qyPt8RoAWvqF3/g==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFOHlBZklZMDdWOWUvelVI\nTFhPVlFyZE5vVHN3U1JLMDNsV05RUkNDWWxZCmdtR0k3a2V4UzN2cWt4cllEWEJk\nSW9YWEZkNG91QkN1dGNMbWxOY01yYVkKLS0tIDVxV3pDVEdGbDlpSmdPWjdqUlM0\nbjh5OGI0cjVxRnRTL1pnSStIZEZWdlEKeoUUZ7MaB1F1z7W3leJ5Disv55Spp5Bm\nQX6GrToDLBAggDsIx6Ivmx/71vRSWadiznOK7sV+ftzUEe7q2XUo9Q==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1eWRnSUI5M0tGbmdyK2Q0\nWjNoZXF6dGNpa3htc2VwN0JyOFkyUVVuUjA0CkNPZlY1dnd4eGRoWU45V01sS1Q0\nRWQxV3Q0d1hLQWtMVUZ5OUtuVU82NjAKLS0tIFJ6aTJRclpDUnY3MFdFaHhHbUJQ\nVjNZNlN6NmNYNlhVbHlaVDRHYzBUd1EKDRUFv3UlCYSgKQZEycn8sBeGzonYLCK5\nMb1Q58eLpgTexWzIfbASSOsm+GXzIvInfnNsme7ETmV7RcMlwiokcA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-07-22T03:10:59Z",
|
||||
"mac": "ENC[AES256_GCM,data:Rcg2GH8CrjVcbmqmuXAvgg2hD6FMVHvfVgDmir6SHxPE3MDC/0CThXU6Ki9QkKxPiqDSsa5Z1pZ1WUowKttlankGr2e/XBkIybgnzAPxKdcE3VpdbgmI+atvSobCS0mItYgbpHQ3ZLCtdvfH6dlF2BLr5G0vV3SJL+EzMyFBYYE=,iv:J7Z+2PsNpQEJY5kDCxzEwvqAG8HrXTWVExBukILL/S0=,tag:iv2PHPxSizXmSbT3DC1spA==,type:str]",
|
||||
"version": "3.13.1"
|
||||
"lastmodified": "2026-10-26T10:23:00Z",
|
||||
"mac": "ENC[AES256_GCM,data:/YYXUHIkBWhgm2pJTt2ZsJH+h5xBR0bKiTWDWqPA5MEiiPiKOs1TB3NVi6xkfidyflSDLc3l7pHHL7Vn9vNjV9Of8Xvff1ilIObAC71U8E4bLEdjVJwglbN21x7NQkRVXs7OzW7Ns10wTvtVtVWlVRpZgcboWexaXWVrTuTXKgc=,iv:dxmcqVP0Koa06rcL/Y96MJNfYxqPrd3y/cJd6k1qW1k=,tag:msae1jRxcQEo2uGG01l9LQ==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:pO0BinIMtWq0KF0RqYyjLSGyTaVYz8CXBoJUS2MiwCFUuTvPcBiu6Hz/K11Z5yHH2FmDF08MRKiu9wHFIZdjVtcfhP5pXXZkaeVyL/ACainy6fOTFs2/aPugRFCeBgxVdWPkXqaCI1vxJI+7NMi3ihWvhg8YeVw=,iv:jKrU+Zwbmhjs9wA21OJgalrlMHTnjCkKjmiIItDkU9Y=,tag:rq8XY1A9am43gldDH9qncg==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:Sulj2Ipd8lauS6ZwgZnN776HLlqtRtlxLj4pKqT3iE36V0OUAUmqzztCn6e9eKNU719E5E2qSy4ZjrYb6KNZhzbry52vliqlUqU79cfU2H0x3AcVvWappDlqjD2bNCU4h/w8S7Rj5JsHEcBcttc3x5IKvE3Ujdo=,iv:S1Kb9UwXzpa7tl+MbABC1+XhRLd2P/HW5gd3c2X94no=,tag:LQiqV39RJ+OdjEiKnHKvSg==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTSHM1YmpCV2M1SHhueU1n\nV296K1EvQUYzZjNyVlpLTU1DamhmNWprL2xZCllzYU0zNmt4cVBXY1FlR283SGtP\nQWRKZ3g0RVdHNEkwcGNub1NKWVZ2QTQKLS0tIE1kUFovOWo2elpRUVJEYWZ1dkdQ\nV1MrUmFaT3lCR2RocndQUjRYbFRoNEEKARwL/TcsjStEHqzT1skJO7LWX9ytLBbC\n5V5B8WevBZL2sYNq59HA7n/BD6avxAOu+5pvJ7oFX05XRgcXtgSHDw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLVXdDQWpNMzBld1ltVzFQ\nZFBobEpuZGZnenVqeVM1QjFrT2wzS09QenhnCjllZkUwOUhPU3lpM1B1eTRMc2lm\nSnA0VXU5NHNKcnBEV2M0V2dXZmNxWUEKLS0tIHFwRmlzOTRiSThNOVBBUC9wUUxC\ncGZNWFViNXNQM1l6SVJGZ204enZQZGsKXtQoHa6kfDjico7BpIotPk8LXtfTM1QZ\nYUKL3CSRAnxmwsPwzOo0JR2H4SDzbtGyam+1juPqskTdxI/rnk61Rw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGdWcTEyejRH\ncThjUTZ5ak9UTVNiTUpJbVFqVE1hcFdtOEJHU0ppZlY1bDAgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpuUk5zWjZIQStCK1hJOStyMFI2OGdX\nenJrNmZKaUROUkJ2a08zS1cwNmw4Ci0tLSBRdnd0Z2l2ZUVUdmYvZDJpaHlkS2F0\nbU1qTWdLdWd6dXlHMC9JajZ4ZmhvCmBvZ65NVt6pjLOtUTtTZgWxIwi232RKQCFH\n803004tVfBBvmw0O3t+7/a4PDVoLQEPFvjAlwEkaSk80ljhWGps=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHlUaUtKeTVo\nOCtaeDVaL3hFMHpZT29YY0l3QzVOc1FnZkE0VE9Na2wyV0UgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpweTdabXdCRzBmR09Kc0ZTMlNUaG0x\ndHQ3Zkt1WStnUnA0eE5aOXM2T0hZCi0tLSB6dHRWbkZ1N2ZHZ3ZjdEw5M3kyK0I0\nemptdTdVWVJyLzZ5RkRUd201TmUwCs9o1A8UDRnzSquQxttuu69dRzd+meSvlOHv\nn2eT3B9OuokFtBqd/mnjjSLnauhkMcSzco9lgbYfLbIyPDec7QM=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFZ3SFkyUUE4\nRFBYc2pVa3BuSDgyN09EUGk4QkJuZ3h1WStYVzc3VnRuVUUgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpPL2JrcVJramI3OGhoMng0M1NlZWw0\nN2g1a0F3ZlN5U0JvaUhOcEt2UUlVCi0tLSB4YjhyRXdZdzdDM0lqdUpoQ3dnUDdN\naWloa0ZBR2hhY3ZjU2kzZFRSTUhVCr+gZl85M1q2WnOLLufULhvXA5WchLPGSgbc\n+67BvOJK2sC7zDf+QZUdRjAS9OoWM+lbIz/5Psf1jqi2sBdGXsk=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFlLUUw5WUto\nY2dGaDErUG1tMElzcE0weUFUTVNKci9BTC9YMGJRRmhNd0EgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpQWVhiRFVvL3hrZS9qVHNOTlgvSmZE\nSlhWdUJJVnhHUU1YSnkzWmFOUE1VCi0tLSBHelVDVDFnM05iVEx1NEg3djFEWmE0\naWxEV0t0eVU2SjBpMW5BSk4renhzCkcgYuC3t9xoCxyoC8EkBu+YGYpeLgZJwAX6\nY+DGuCCgm1qNkN/oJSHUHYrFBfBgt62uREYAIg7xq3C3j3tLIds=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGdXbml1SFBh\nUldUOWNyRTZXK3RjbG84aCt6a2xGNHQwZytvZWgzTHlMaG8gQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwo1Q0ZrZDhZOUUzdlBJU0ZhbDltRGpu\nM3kwTVQyNjVYMjlBeEQwakhNYTc0Ci0tLSBOMFNCcTBlV3VUc3N0UE50RTh0clg4\nckxablB0UEZwNXRpTUdKdWNnY25jComPJ1Su513uqGwmYgwIuA/4IXi1/maKdPtQ\nI4su0LowbJHhTGvIIdj0wDWYi+bpwerAYc6yXXTGJv7iTETTaT4=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGJyTmxlWnNK\na2ZCZEhjY29sVzhVdlEyNHNPMjBzcGJvY1dNczBXZzNrbHcgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpVTzh3TVMvQW5EK0hnbVhxQlRzakpS\nelFLTy9kLzF6RW5vZ3FQdVpxSGlVCi0tLSB6elEwdU95NXpqNjdGWTFDUUc5UlFL\nL0duaUwzUkM4eWdDNTJuZ0hkaEc0Ck9+qLCLIhjj4jk00HoMs2iuOjhfz9R0Ln8E\nQZKaMMLQX3xRNB/Ox5hbzME/flPeijogS3xGV8juda/LJHwmCOQ=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArRURhS2oyblh0dWM5WGdV\nUWZiWmdlanNEM2JmdEJ4Z1puckVVS2VlVFJvClFQSk5DR25oalpzN29ObGVURVFL\nUHl6YnZSMkM1cDVqNnM5dlJVVGtkdEkKLS0tIHNya2RoOXB2WnVscUhCYkZQVjM2\nSVlSTjlseXlyc3NFcEt6N0RQNXRhWTgKp7u6cI5GRYn5wHSD4MbPGpNLNx91jlrY\naIoyPZ3tnRs3GxlbU8xNKPwpQhI2V5WXaHkaNdu8MFDF5scqSvut5w==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTWllYbDF4T3dDN2lwMW9S\nWGF5V3IyMEFzc2FiWFpQNXUyeHJtTTNZZHdFCllDTVFCVmV0MUZoUXlDSVJ3aTR1\nbXhUUXIrNjZYZHdBekMxNVVZVVo3YlkKLS0tIFlHQlV6VS9SQ2VkTWtweDJFbFBE\ncWR5VUsxVFBnK1ZLRU5mVzhwd253VEkKH8SyRB7x9V2H/gMqdZKQPDT6B00y0qvj\nU/lovSmlrB7oF+ZzEvhO9yTiuxrcp01FXkM/VarNgVYrglhr9KDGJA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxOHlzVFc3VjZUaXBiL2J2\nVUVlR1M4WUNIL0NLM0pOYkVqdnNDZStaQ3pNClVuK01wbTBKSk9tNGk0cUhhb3A5\nZFAvTm9zWEgxOURJT1krU1lBR0hUdWsKLS0tIE81RGFmYVduVkxCaXIzWmNJZ2xi\nOVBMd0t1clZRKzg0NTZFUVNSeEl3RHMKXT46G+2zHS0NS8SOUsVBpvv5wzKdNLdA\nLH8eOK8dkwQUtR2XZeccQzTaGIfWBOo/wWLZqBZk4BVVXIaSUBFU6Q==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsSFovcldaRkJPaTdZTWhZ\nVWF2dVJtOGpQeXVkRTBURVpSUkMxU1BSY0RjClJGem5JZGxDY2VVZVE5NW51eXBo\nTzFoMysxcktST1FFcDNadXR5d25sZFEKLS0tIGowN1pYc2hrRzBqQVlIWVBjUStY\nN0NLaFNxeVNYSzJTRlE4eU5ZZUJab3cKtU4EpGZzksmP/KrXUvv2F9pNIu6yA8Qw\nhXmhty20UM/9un+DjUUd0uTpO3/DmxGuV2sWdvyLEy2aK9/8jv8xOg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1m2e4c3gv7mxyg839gf0lfsh8wvygx3rn8u5cwnn99vw2w43ssers40tlq8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2aGRscllENzZqbUpyTkVM\nUWZ2VUJmUG45YXYrOU1HdVJMOW1MVWkwTGd3CjJoL1pnanpQM1U2VWRGQm9KRE1M\nRUFOaUl2Z0hDS05KNmdxazVsWVh5YVUKLS0tIFV5Sll5UFVZOXAxUCtvSXhlZjdp\nUnhLWUFSR244L1lQMFZKQUtLdUtmVDQKTPkFLMeDKBzQCvs2ri+1heIm0cuN7OVh\npA/R8V8qUFFHMFTr/Dy/9xY7qm9ypA1NEm3361tX0P8fOOuQvhrcmg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5TVhSS2tBK2c4Tis2a0Jj\nWnVsdzFFRnBhZjlnVkRkOTV0SktWdlFUMmt3ClhPdUNJb0FYNzNDdktBVjh6b01O\ncS9PbzIwMVlNdzBDU094N3NZQlJhZmcKLS0tIDBwZ1lCb092SmpOeTdmL1NNRWZj\nQTJYeGZpbWhYbnFMRS9pNHhGWW4xU1EKRUhQseH9vz33kmzQWOt9cxxqXRIcaif+\ne9JOJyxikj2ADhqpjPNtbnHKonabJxiG61kugM1S/FOiZhpQGUIL5Q==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPQ01JcXZlTGl5aVVaTTlB\nTDVuUW1PclFIN3ErTGhpR21nOGhuVFc1Z0NrClp6MnlkYUhwL1E5U0ZtL0g2MUpB\nbko4VURQN011NEw5WDJWWUxKcUw2bG8KLS0tIEtKWHU5WXZ2bVpVdzZ4YUZGQWRL\nN2xncHhsYzdhN0swMU93K3JvcFpDancKgDzWhuscP1qzspQxJpa41ogydFTIC6tX\nG2r6qgsK+/0DfJBieB3iQ+8J7DqFWn2FViJFIzSJpl7u8ljCBucBTA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByVldOOEhWNHVmYks0dU1a\nSGJSRHRuQW9aaG1rTjNQd0lMbkpkS3Q0VlJrCnJrY25pVVRqZUZWL1FZbDEvQnVi\neFhiRi9rejRmNUJwVFJPSGkwMHl1OHcKLS0tIDJYSnRob3pZeE1qR1lPYlNmUTRz\nRUUzTWZvTHlYTXE3S2hCZEU2THBuQ1kKK1Ve7tg43Vh4GnRtJ8c9O/cQ+BCRNPb7\nCfv5y4LIZo83ydMtgefkCHHmKWZG+TvWI7pf0v/C5bEBNZBCnEdNTw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoSEtLbytxUjdmZk42YkNJ\ncGpWVWlFSHpxV1c4YnltU0ZtVkVpbFlrZVRNCm44Q0dhcnV3cWF6ZDZQYzBVOUdt\nZytxYzhsVVNhZEpkRWhFQ0E0SnN4NlUKLS0tIGthOTAyaE11NjZqb2YxQ25XclJH\nVU1aVmRtL1F6ZTZaSk5uZGtEbTJjaG8K0upbrE42Fr4GYD8+ZxCQ6QPs6wGITtKu\nC3/i/afC+yAVFonhXPAwO1Wpn+yoURJgYgDd0YVquWqE9XPRqcgWKw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiaElQVndmc2oyMlZTdVpq\nN2JrdG9GSk1lUDFDT0M2NVJ5RERJS1ZxYkJZCnk2SER0V3I0L2xaeVNaNThNTWtn\nZXNYUUtzSFFJdjZKcXZveitqaCtuSlEKLS0tIEkrWU4vT2pLZXNlSUhRck12Q1Ay\na1FaOW15cmJUNXNGb1dvZ093M1A4RFUKVprU7crcN7dW4UBcxUmPT9WXRSt7A5eB\npI2kMii2OIKRSrmDNYrOnReC2ce/reEKog/cDFgfrqg3cXqiZheGNg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-07-22T03:10:59Z",
|
||||
"mac": "ENC[AES256_GCM,data:3fEhk3hXhfsvYBICd546lUVq7TtPr+6/r6/7QnNJ+RbCRg4e+VDVFBeAJybbDyntOcEeJbpr1at+e0VklberTGUL4fBOCiaoi8UyRtPTn948KnOaRnh54ibMyXVmUcVpl7t1HQzVBpgBhgmwzlqIIix4mfz1iOq+Arqo88FM09M=,iv:q3/bSfmWQOauQGyWtyIJXjiaA3PBEHmHa/2FntL1qAk=,tag:UCjk4mkuFDQedukMXNh3SQ==,type:str]",
|
||||
"version": "3.13.1"
|
||||
"lastmodified": "2026-10-26T10:23:01Z",
|
||||
"mac": "ENC[AES256_GCM,data:NZu5Jz+++D+SO1qjszvrcygF9CiEbppF8UULLP0ZWWOxBk7aJloyUMEOB5t6K8UTrezoE8tU18vT1Z3SDbm7oI0R8iYEXCukMZDUMOZx6GjJEohuJzXTOQL0FukvTsuQ0+1lxSm0suubYfaTS4o1PCgW0EGz76cGjVBj8gvZ+B4=,iv:zgG5ijWW61OeFp8Yz/PvDygnbJ6yzvPDeW4pUb4NI2Y=,tag:8tN/p7FNDWxGhE1e0K1M3A==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MCowBQYDK2VwAyEAvvoLP62l54FLr7G8H+n9cbp9FZGQXWD6DsD93+WH+wI=
|
||||
MCowBQYDK2VwAyEArRthfQck5MwxFhM4oRWWvIypclZOAgq/R1vLwBoJoWs=
|
||||
-----END PUBLIC KEY-----
|
||||
@@ -1 +1 @@
|
||||
12D3KooWNfrmhdBujwcDxUBkevAQojoBWrnpetJ1JsLRCwjsk61w
|
||||
12D3KooWMU6v6XmDX69uCTY1nPGHKEKRyFrxFzJ3ga3aeKAPb8KC
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:zYHDpjXt8QbISjmEpLUW0md8WDpcMulRxdQxjFuutu8UO0nBCv/GhHwPddqXLmNv7PCBZ9LWso4yhoO+94+LOawDKrIkmAP6dxNYnI3g6DABo05qJPv1mIP8bffKV8p3lkpN1VTtwO9wrRfqw4ELqv9O5IcumAfRAmy2gYCIRJxq4y2Fp+hGWoDA75lC1IP+4uK2lEmqqHvy8vq39PkyaxFmBUoHAp/mZ9w95LE2f/fIYkffjjcYA44/16TjFXED0WQq6q1baafTWIWI0f91JxhXuKuKTiHJGUet++nc3eyfwwjdXResJyYdRX19,iv:/n8wZZ0VlHDt2E61EvBm5uP9n3pabkFXNi1Th/RXZkk=,tag:4A+LRBHDfmQ5EiRDqYYtbA==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:WsYUmMlDVYOVm9YK1i4jfnKip7p+HAqIEzgYc+zfaFhIlzW1dtor5pwo/AtmdI31jgX6lP7/McaHTJ+Oaz3oS+a1n5vUG4gGKUnXk2WFTXE8AsQ9UNC54Y4taDittvfXb2nHOKk+jjpxKK+10YIF7lINpNimLVQ8O6dtjJtxqcOJ/tWXgCmlY9GtkbemjLGPtOmSCrnk+ohI4WwF5DFi3G8ejueqL7dBx4V4FWqMQ5iV6LbzH00t3b32SgEM053ipLDcF9/bKBSC6SZgM9T0hR8w++VPuzSREVsh0pILMuB2iFSye4doV/Ti6dpn,iv:J1iNWUiV8B1UuNwiBeGBl6d3R7MrWxYAbF2xOy1C5og=,tag:y7Eo6w0MSlBB1E0whFyXEg==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLcDNtSkRjcGs5NGVadHJp\nU2ZPMnd3OFA2c1NBUFlqczd1cTRlZzRnaFM4ClJEQUx4RXJJK2VPVlZFcFJXNUxu\nUldLSmdQTDJSNU5LRy9ac1Q4VUg4V1kKLS0tIHNoNnRFajkvNy9seUZOUWJKWENh\nN2NRMktPZTlPV1RlZXdqclZHRHdaS0UKjPlv7igaiPZYXN+TRADfy41M6xpVrYH1\nay/g8xWiKXjgL4InbWWTssWfwndJgnjkGvIdvu+t+0nhsSB7nE+dVw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhTS83TGtwbUpOQjZPK3FH\nb01JNTk4ZlZiaEJwQzAvc2wyZS9kVFFzcWdjCktXcEJRRUxVc1ZLY295R3Znd3F1\nU1c2YWoxek9pbEdJZ0ROYXNCc0ViTHcKLS0tIGx6MktOa29DVFVBSUdqV3FDNzg1\nR1oxbzhsVk1OSGhkakR4MGNyYUtmckEKGv2x2F3Sb+QkIMWZcZCjDgjwb8HfSO0b\nGCd9KPfByOQfmSouQiIJZlW38FOfMEfC8+dR+zxpkMwCJ+sGqagxZA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17c9908f08w2w0ajprep4p60a7hd27cznrnxmq4mxwznvgzjuhymsxttd3d"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDQ2ZlclFGSnVOS3lYOHJx\nTkxIeThoNS95UUVkWVN2YUI1bU1RbmtENUY4CjZJRFcxcCtSNmY5MytZNTZ2M1dq\nTEJlYkVmMklqeHhEQTdLd0RFS0xzbW8KLS0tIG40RUxQUm1BckRNNURmQnBHcVhs\nc1ZReU84UWZRZlExL0dpRzE3anMxVEkKWrKPh2coaDqd6xULrB6qZ3B4mlvrWwIf\nin5T0Wc3+ceDMoQtwwSqc8s+VEjc/n4fejse+BoMeINCMboq8qHZGg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBacnQ5L1ZBazRycGVOM2Uv\nS2loV2N4bnJFeXYra1Z0TUxZcTlaQmZXM1RjCnFZd3I3SHJ4NThRdXJpN2Y0dDlo\nWGZUVVNoeE1ITW93bU1xbmd4TE45cncKLS0tIGFIRE5QdHgxMDhpcjgxUHFnVXQz\nQnkrbWJLS3JvUFh3QWJqSFJMY2pMY2cK96WbaysJgNccaU2mS0Kl+IlbfH4APwJ2\nW1DKw/LsoFLZCKK1KJWrix9IVb/OEHTEHDkNM78rTsyPN4koo1+8Dw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEk4RldXVEY2\nbCtxejhxQmZ0R0k4MEMyUXAyd0xlR3doRytONXpwTVhEM3cgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpiQUhIY21FN2w2SXRWT2NmMElvbGVn\ncVkveExCeGVBZm1WWVR1MHZmSld3Ci0tLSBROGU3UisrVXJrQ0JUdUF4ZlN3eFBR\nQnBVTHk5dXBMekxIOG1LUXU3NkdrCi5u/94F6mAspy9ruIkQ01pL2Q995lfobZGC\nd8iPHtIky2g9wCdicEORI3f6blqg+sTTEZMmy/MboZQ9ZjOYuPw=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIExmWmpaLzFE\nNDZQMFEzQUtqSDI5RFRodjdZZ1g2ZGY0S3JMdUQ0NVdZMzggQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpEU3o2dDR0ZG1kN3ZuZ0dZbnU5ZGIy\nTytxbTRWdG1vWXdFSnhKZjdKc080Ci0tLSBqbUgyNEs2NFFHTlZYTWlkbzNjOGpQ\nSTN2TzQ1Nkl2UG5hU1YzVEdTSjJjCjhIYORoQCCj6lq5feul+f8+EUvqGMiSXjif\nuhYObov7Z7vzxtwfVd+HNCGgw6iOhXY0MtEaKVr4asM94XNcXGM=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGRQa2VKbGNZ\nR0MwT1RVYTRtaXJrTkNvY3BUNHVDT1g1NzFpY3YrWTBVRDQgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpKdmxiRnlNaGEwU1l0VFpSdVlBOFdO\nYkVwc3h4bUZpT1JNSWRzd0JTOWJvCi0tLSBBc1ZJSmg5aGRnbWMwK1dSaGlzNzJh\ndnhMNE80NTY3dDNPdXo3Vytid3Y0CupCby1+dOZBvIpdLWKiy2LFkYkmJY88jpN/\ncb9kFozAUso06WGU18QI0XXiMgUHLhfCZJjN8LwX6/x6+IKRCF4=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHhkMTZSTmsx\nUi85TU43V3hPNTFGRUNzQ1dMd3lzL3hXazdkVjlYc3Y0RnMgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpQbDRWcFlOQXhKTnBlcmluYk9lN1BE\ncTJQdHRLZDJJZXlkaVpBamJvMnJVCi0tLSBzL21BcHMxY2k1a0VPNEFLZjlDSlNm\nR0sxTlowNTVnZlJMNjNjNkxtdEJnCiu/5JrIf4ZEpL3LIphR2d1BSwz5ZsaVJKH2\nBWeQjU8r8HwPuHF4rE5EJ+as1pcU8EOnCFK1lk41Td+rm8i/1+4=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFZ6WUVWRkNr\naDNGQnhXaklOc1FjWVdlZ25RQmw0Y2ZHb0MyTDVsV0k5VzggQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpCYUdXd2RDSlhBVXlZS1JJUG5wYUYz\neG9OaldIdExCUFRoSDJSQkRvMTZvCi0tLSB1LzMyZTdhcG1zWkdDV2pHL3UvY1Bz\nUTlUcitWcXRublVSK1ZwcmE3cWRFCn3nY89f4LBl5nDbm7ywGJuy+kPuvBoDFX9O\nz5Flr7gPAZTDFV0FouEJ0A5NPAgVGRQGybDrgm2X4RMrsj2MvQw=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIG43R1k0a2l3\nQVJvZG5BMlg2ZXJSSmVSc3dhbE1DV2dvMHExUnh4cllPVFUgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpvdy9aYy84SnF3TlJhRXM5T25iRHhh\nVjBYU290eXJZRnk5MCs2YmVJZFFNCi0tLSBxZHE3Z05Rc2pXczBRNnQvS0NjckR6\nWmV0MXBCQjl2MjM4NmtPcjdyL1JNCiS+J72b3tytXm8mxXnhRQSrep23g1I5feQL\n0mx8cB5b8dr+XZQUrH+Idghy2mPPfJt8FcGemU7Ba6OQAbV4aRI=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzSjVvODB1MjYzc2t3S01U\nZVRFOUkyRit0N3NuYURzWXVJemxHcWhoc1ZJCktsMjhpdStuR1JpbkZYZ2E5YlVN\nZnluQkV3cFNyK0NjQTZCUERWUVU1UXcKLS0tIE5POWtpVnhEOEgyMTBhMzF1b3g1\nRG1jbFJKZ0hubWV4dnN1cmNnUEdwWFUKrwNuiQWpWZIcBVL/1aHc46Au8FVWt90A\nBxQqSH4wZoxTk/ltfTgTLQpscBlc1JToRX4X2FkyEhBR+95s+LxPaA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxcm5wa3Q0WGtFdUlmREZI\nTTJObHR5TWJCcmxnbGE4R3R1WHBCVkNBSEhrCjhjejFpUzdtOHpqV3d5cnRUNUpI\nOHNLU2hCQ0I2b3djK2d1K0F0S0NvTnMKLS0tIHRyNHYyWjM3TWhtWTdTQ1lUQWQ0\nNkFqN2xWZ2VEK3E3b3IyajlYTENiSjAKL0aDyfh/JD3efZ/RrFA+aVy7jly76vLO\nXK2DH+zGaTEvvRdL+M2s+hpIBW9eTywRuJafeq9OzxOCAiyPovJWPQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKWXFmSWNQSUg2cnRPRU1x\nSTd0Q0xvYm42VEM0MzRtQjZXV1M4dWJRS3dJCk12NE9zWFNBK3ZhSlNwV2ZNUVF1\nc3hHNUFHRnJsY3U3MWZaNHhZeTJJaEEKLS0tIGw4WENxekdzYTQ5dTNYTlh2aWJW\naHBSRTI3V285SHlvaEQ1QXROZjFkTzgKlvJ/vjTzkGWAm9J990KM1zj0w+eBL51g\nGsSj9myKRU22VROnFQqa465Sfmtd35yWiYP/Ttykx1GDQbpK2/qCBA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3dENyL3RzSEtFRXA4ZVpi\neVYyakl5NXYxVTNEUS9qREFObWRzRFAvb0RJCjJ5K2U2Y0xyRzNRdVFWRHlWZ3lS\nNmFoNXR5V3VjYUlWM0ZEYTNJQ3UvYTgKLS0tIDZUVGExWjRXdmNjeEduMjk2RkZW\nZ3RFbVhpS1E4Q2E2WHVKbHhrNHNSOVUK7GjqaBkCi2gSmWUwZD67XvarenKA3HG9\n2N5qo8Ew8dAsU26FLMIp6W9X6/9s4UF2BPuc9bP7RI9zMyqSdIzJnw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1MTRiSVRrK3VnOWRHeTZt\na1IzUUpoVGhCY3p0ZnBGSzVpMW1yWDVQd0VjCmdiODBkaUxoN0JpSFhMY1VKQytZ\nOHl6WDI1QTQ5WHFuVllnRlFNMzFCcjAKLS0tIC9la1RObHJJcUwyUmxTd2RHcDVm\naFZNci94OXZsL2dsbXVFdjVodFBTb2MKstoXlB5iZiSw6+5VQgq9f1ED0dO2XZQr\nD//OeQ+GFyFMjvu6XcHuYGXGAOwLC2wQF7Mi/avulyo4N+ayyPv4DQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSY0pZR3lTUVplNXR5NzNQ\nVXNkWVFwM3JCQTIxSzdITWlOMmpnYkcwOWdZCkM4aUw5cGd4bFlIcGYzYjlMRFJV\nM2c0Vy9IdGc1S3dGaHBzenR1d3NlSVkKLS0tIEFMa1RRMHhpc2lFMXVNTS9jcmls\nVmdiWmJWYUdBbDl6UnBoMHFJNmxva1EKnUv6bKudCuFBbS1IWuA2atArDHViApoI\nmU7Tm0hjntr1O4NTGDaYcz5xCxhA3dF9k37Aa0YaV5im/jFON3zjnA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArVEZFM2t2dkFPZDlqRlBq\najFORDhRZnpsNE9QWGUrcUU4eG5NRTNJY0YwCnNwZWdMdXVUdTlhTkFxblJpUWJP\nOEI0SzY4VmIrU0tuTWtMRVlhKzlsNWMKLS0tIEtiY05sbWVpS05RSUM1K0VZWGl1\nWGxaeXJGRnhETkZMRkdjQWhLalAvOWMKVdiCvKFfWbj4AV7SJzpBf2PB7dAQubGq\nal+25fDFXbfoqpCdYhqpbwyb+PuOcX5APPMF5YRInWdJj7mdc2UjqQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4MGc5QVZUQkxnaWtjNTlY\nVlphVE1oenZhN1drMEdjVVR0L2NPdytnOUMwCnpjMDZRdCs2MGdMWGhIK0ZsR0Fz\nOC9vMUNZU2ZSWGlFSER3Zzh0b3cyT2MKLS0tIEhkTkJEbEpPdlRseWp1ZHpHd3VG\nSnhqVEN0VzU1OUdWRXQ4RTkvS0d0cWMKUbDofe8qeZwgW+zJWvkh0EBUVoz/pwPb\n9UWukHWk6YKJxIHJCAyUphzK/11tgq7HEtwIIzthMXRU5Rjnazc48Q==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-07-22T03:11:00Z",
|
||||
"mac": "ENC[AES256_GCM,data:OT19rZ2KwSgAjt13lZUjSlBv+xwdHFTJNw5ubpwJcyl0jRxNIf29SQzOznPrxkveDcGT0clUHiA0+WoJXRUf2NKueLDnxn7KlRcPuQRxKgs4UrZ+QKP2mkcoo1pv/76obF3peMDP3D0jbsjmptff8jWm3IMDYemJqtAEW+Y1OCg=,iv:V430HSKRNLT6XRcrVWj8/RWT2Fc6wf1zIvmJJy9ueFM=,tag:HlvmFl2nsbAdok+Xoq51Tg==,type:str]",
|
||||
"version": "3.13.1"
|
||||
"lastmodified": "2026-10-26T10:23:02Z",
|
||||
"mac": "ENC[AES256_GCM,data:ByeDq1lCpMd7aoiN+uS0ugAYD2PZsnlFzgPGfnuOl2kBuZoSzXFH7hek4sljhIf35VwuZr8FJPJBi3Lu6+SAb5T+xXdfcxskcjkT9Wci10GvmN2+2U7DQgpxTJc3JoOtdISwqvSi7zP+6CE/cBxjZ5b3/EEZ4ehoVQPGlAotiVY=,iv:yIiJV4RwGII524jaViVOl6mQahwwwA0mKTWUxGrM6+0=,tag:KycjFPpWQvQRZDuZqHnpCQ==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:ulJ64mtHozXfd4GMM9PWPI/ClgBzTOk0JyDXWF9kucPDBzVlsFnS2SO1zlRHnzvV18NDFfhKJ7qdbksjzxKQeQEYFINy0rxfz2azWhWIYXA/Rh1EJQ0+SHwehvcHAdy3+1btqD/cM+gq4Fqe1YxXuBOdB/kZ+wY=,iv:lHEi/yeRmv7vr7BuVsY/7f+qKbHw7ULI7o/51q5rnAA=,tag:s03idE9jfwE+1ZIpImQqpw==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:A2e7ZvwRjEsK3xSV+dD7zHiJWLUBcOou5psrykgTNRBw3r8QgvFS5/VPKueE4eAKz7wYgEZPvK2aogEYiGHMa1tlmuAGnhuyDVI+LYaEO94oqhXHRLaONk61Q6eGoaaSmXD2GWyl3V4aiMWwVrwmr+Clx3ATbCU=,iv:iRsC0YCELQhR63J+MVFkQpqgdbPw1p1gg0Oixi6ogvM=,tag:ttMUfUJwZJ6ZA5CxrVW/bQ==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0cmxzcnZtUWJUVW9PNzZ6\nNU5vSkRySTdHcGZ4Y3Q2bE4zTkgybHZYdkFBCjBPbm8zck5iOE52QU1Cd3JlN2lW\nVmlFNUtwVDFDbXg0c1ZXWDlDcmUxL0kKLS0tIFF1aG02Zk8zMmxBT0YzMVQ3TXBO\nUkVzYW9TcEVxTHo1S1pBSVk3dnYweG8KcCkdO8/TfDIvuKEp0p37w3+l6e+orfkG\n/LiGwFCCEP6ZTq+BFsGKVHE+1uhatCz34SwdGVv+KG3ADJJ3DF869w==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBka2tlbk1LaFhxajd1YTFL\nNGgzZDZiQlVVZHk1STVEdDNqN0VLSXFENlZVCmY5bDZma2NsK016dWYxVEVnSktI\nNFhtM0pCRFNFZThzcUhBMkdPY2I3UUEKLS0tICtXMGNVWVNaQUFLWjNHOUpRR1or\nK25YZWR0MGJIWWhUSDBhbCs3MW5MSWMKTHnsdKz2TxVt8h2MUYV9pnW8fsdtu5Ny\na5f1fzOa6AA5s3Si1WcDimfc/532/i9dXD9dNeewNxz7ZHGRpvx9AA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17c9908f08w2w0ajprep4p60a7hd27cznrnxmq4mxwznvgzjuhymsxttd3d"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyZktkOUQ1SHF0d3BvNmVP\naE1yZ0QzdVRFV2ZTUHcxYXBsN0dkYThseUE4CkFjdFltWmRWa2R1WmhZbGJqMFVH\nb2xVSjdwL0lEcm1PL2ZZZDhYd0Nvc1EKLS0tIERSYlpmWTNlNU9FZUJaRGRaYjIv\nQVo2QTY0dU96K2l1ZVV2VnYzZ1QweEkKU+m5Y0aIHPJtu6MrDb8s/ig0KKi12TcM\nHoZ7P2JYWhLls41YGyIXj7Sn675//78VuIk+XoJDavAR5ZOsAg9Rhg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwVlhkMXhqTEkvNDdwSzdl\nZml2SDZmRFNJK2xzajZxcEk3WHppNnVwTHo0ClNkUkpjUzQrMXJwSFJIZ0g1Njla\nMWQ5S1R5WmJ3SkpOYTdUYmJmc3FjREkKLS0tIFhXcUNFVlIyNTlvMzlEL3hTY0xS\nY0dlQSs0UlUyVTlEL1hSTjVZcmtVV00KoQyT41bDOnLsakic84GMfsFKxrwQfGG3\nizUJ84fIkMlkCsUdRsTZ8IgkBTfryY1wCrbAQFefh6P0qbYBJNSAfQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGF6SENtdThE\nSmdXbUhqWDdGSWdvMjlaLzNNWjgxNmhZUU5pM01MU2M3UzAgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpBWkhjRkFucG5abG9Wdy9NMWR0c0Vm\nRUhySWZ0WjhINWE3Y3dDVGRrdnZZCi0tLSB5WmtNOU1POTJzaGE2Ty9hWjUyV3A2\nbFNIY0EvOTlQcjVRN1dNK2h4MFRvCpowGpMUHArS4pkzVxxTnYjD6nEElbX49hlE\nB7CoXVupVrnmf6WfjYwENs28UToK5Opy0CdlNn8qJz0e62yxqMI=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIE50MGtrdldr\nTklsMDVDNW5ud21CUCszV29OaDh1aC94MDdIVC9YbktXMjQgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpIZkN0a0lmU3BCeWJKZk55R3dWMGRr\nWG96VS9DMFJOU2JHdmw3cUlpVlVBCi0tLSBKTjJ0S1ljekt0NTl1QzhNV3Y4bEZ5\nQ3lZNTBWNWozQ2d3S0hGRmJ6M2dFCv/SnN7GsGNxt/umfC4N0hO6PKYsugG9w1k9\nJD5ez5Wc3jF6ah+julyIxJHC/SojfSFPPb2FwCjyRpoN3rCe6wk=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEUrR1JQRlpa\nckg1QUlVQURqTUdXYUlhN0JleFI5bThhekZ5R3dNNDdoenMgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpsNTRHcWZqcmxpQzEyaytqT285Z2Ew\nMWpxNHBvQSs2dlJDcDZUR21tNVY0Ci0tLSBuUVZZZVU3RWpPYk8rSlkrV3p5d1h3\nUG1PYWZLVTVFMEtsQmxjUGZpMm84CoNNgUGwLH3zjuyE2dsX2IFzuo6+pexSiZRP\nkxZCDC8GbzO3hW9fJWFfG6PRk1ziZVTfQP/Im6td3xr2ZEdWS0U=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIC9zNU5TcGF0\nYkN3NGxQQzJZZzdyblRMeVZxS2l4WnFIalprdlhvSzRPamsgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpDNGlkOTB0UDFVak1WdkxvcDRqeGUx\nT05GZ0Z4ZlpGRVJSSW1xY3lDcGpNCi0tLSB6cWIxbGVROURld09oYkpZdmtzZ1dP\nN2tGOGc0NFdGNC9jc2VTVVFMY0J3CncXDCGJKS+IWNk78jsMgxwDdJT5zKNfW/iE\nplhVVeMcgAOj+fBC5oETpzO2+DuvFgnRcjGxUl5VBL2bLwhV0Pg=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDBsVUVYRjZ2\nSjcwR1g3R1FnQnJNSGtDYm9va2tRSUUwd3JObEVOZWNDQUEgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwo2UnNIbmJ3N0JEdzdIZWROSVhUc1VS\nQmJwc2NjSGJjK2l2a3JCQWYxVjZNCi0tLSBVMVFxOC9XZ2VwcUFSbWt0RkJadEtB\naE5sV1h1QWM1Y1BjbWhvQXA5OHNZCgE1kTlGqbmYSXq+MKhOIEnRYZhRFgWekGPi\n6mG+lWQNybBmcaOMsoAIanq37+6jm3OB40kdnM2Bg2dVM0K7qds=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFc4MVEvUnNl\na0t3bEJKVWJwWW0xaGRINW9kaThabWRvNXp5K1M0bjdzeEEgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpnem5lbElsNXNkN1RUUFRpZzdsNUJj\nalZacC92S0VYaGxHZmhHdnZKeVk4Ci0tLSBVZGdHSzBFUzNmdTE0V24yYk9xc2Jm\nTDZlZ0lvd0R3THpJdTlQMjVkbGc4ClfmlqlrVGyCIVRy2fnT08nzFiHjUIqZwI4h\nw2gcg2Ld3kD3fvwG0Z+K1JjUMd4DBJpEiZHCDZDNv4+EIJTvVAA=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6NklZYTBlZjQ4Uk5hbHA4\nb3YzMS9uZWZiY1dCS29MOVg2VDZyVFFha2l3Ckcra2t2SEtaZ0s4d3lhVXF4b1Bh\neDlZcWZEOGlqMk9haDB6V2hkQzFyZVUKLS0tIFdIUFFnVUxPV3d6cVRKZVNTLzE0\nOGd2Q2tuemVxV1NWVzF0Nkc1WDdpM0EKH0WNgwI4VSKUDB2rhlW+R7Cz/NdZ9iPS\nDvboTIxXfKd7gCDIR2xmXPZ8wkpFl9/0knrnrT3Dqb8UPruozm4e7A==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRdnFLcHVvVnhBRkRzWVdY\nS1NOSG1tZkRRdnk2aXlQVnBtaXA4YnZBZjBFCmRBSFptZEcvQ2RWb2Y4WHpCakJF\nZnh0N1NTUFgrMWFJbEdsZHV5V3VBOXMKLS0tIDl0UlBWN2N3Z0ZMdFVFQ29zcFdB\nMHJiZHRWMHArRVAwakRHTTBIVVJISmMKaMWybzmxvDjjWFQ18xO9qnnyfgHXQwEm\nd35ZzQyX3/8KdotZZlgjsiWYlkNQvdSjRC9twcFulxmgMTmZDF5F0A==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1ck5IWlRQOWtpdHBqb3l2\ncGZNNmRxTW9FekwxNGtWQmFzbTFianhSUTBnCm4zR0E3bDNBaFNxMUErWkRTZUcz\nZmZaL1MwN0JmckFXWDB3Z3NFVXVUd1kKLS0tIHlSYU5EcEIwZEdmckpNM040R0Y5\nME1PRE1Sd0cwMXFiejJ1d043ai9IRk0KQFBvOYNFxVkDCEmFS0t7S8PTm6NKfJ61\nccYRYRrcVBXEq1HzsDaBqIQRdBXeWEnp0185Nws0PyaWkJivSNHQ9A==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBaDMyNk5XTkhXK05UUGxS\na0JFZ2o0ZGNwOVQrZjBrZlc5MCtqanZGaTNFCnN0eFoyUk43NitDSTlJbDVTQkRj\nZWVqNWkxQmE1UGsyWEZvOEJyanZ0VmcKLS0tIFQvOUk5djdaOEV5d054bFFDK0xJ\nN1B4bldLTVhhOHVNRFJ5Y0NtQmh6MFEKP1O7Vu4CBN58RQtPMT/LQKqjkXQ/Lduc\nPchRzK05ZjaBlqUSQl5Int3/99dViyec9gocowhO091ZUCiXPx9imA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkeVlLbSsxdkZsZEZYYXE1\nNW9OYjlFZTQxTTNXOFlSUHgzQU1Ebis4OFVnCkZiLzBiTUM0THFXS2VyaDdMOElr\nQnZnQWxra05QUnBkU0xQTGRMRkUzMzQKLS0tIGU4b1RoYW0yeHQ2WkNPcmFSYWpK\nY1k0eXhLM0czcDV1MkJRTVg2b0MzZ0UKoQ7Bml2v75yxy+E7+JnZPuoquszfn8fE\nJKH0SHNHF2klcupzGWcVNU6KDcLXWS9m75oqrGKUkx20FyHc/5YDIQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzNnY2b05TOHNoVlF6dGJG\nS205U0ZHSldLdnR0M3VmSmd5VWtVMHZZYkFrCjYwbXVmTFVpZDkxZXhaaWFJZmF6\nS0F1cjVMdUdBVTlveVNiMzBFU05oakUKLS0tIGpUSVpab2hPMTZRRlJtbUxKVUhu\nYnVoYU45RjNKWHU5NVdSODlUeTAvQTQKAplXiFMfVwh6bLEaz1QAYU33h4CBPiXq\nSCK9nXhTdWpC8qhR95rV2IQ2h7ec6R+n9qSw2uE5/zCF+bJmpiSFTg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEcCs4UmVmcnVlbmhENnQ3\nS09ZOGt1U1dTdE56c2M1L0RoMWFCc0J4elIwCit2c3JCRGlnSm1reFNQZzJITmx1\nTmEydGtiNjNOcG8vU0l3aU1BUmRKMlUKLS0tIGp1dlZXUU9MTnhQVTZTcTR4ZUto\nS3BuUDdEeHlOTExYR1VORWpJWjBrTG8KyV5WvHidzg2MNEUfuGo/CGUDUwmB7CMO\nFaa83c+gxpKgHbkpWp8kdQs+1ijtQgRCsDQxrGbFHCmL2Grf+7dtRw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvTXVlaTB0VFJxczR0eEEz\nb29rKzVSaDhvdlNWMm5FU1ZKVUNaQVZMckhNCnAxRkVCaXVkMEp3TnJ6L1hLenN5\nTjU0OE95ZjZrUjYrU3pKd1NWMnNzaWMKLS0tIFVLUnhYL28yTDJwbk5mMnlJMUFQ\nNWk2MTRrQ0M5WWhPamtSaDQyQS94cWcKeoR5dnnBCp9sq5qNGUiNk5Y2gGn9lrn/\npawC3GHRSsKTUi22vUHPL+wV0S+O0tkKrTEAx736Ic4gtG11NfnmgA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-07-22T03:11:00Z",
|
||||
"mac": "ENC[AES256_GCM,data:EbL+9gcgmuLguFkzLCNTMM8hAWVxpHbqjqOotHhZlED2w/3aRDGAqyq7ymw6JqNwhPyMPzqw5rrjItByJydljKNRSYON24zq0ajyS0whMusHw0KkKGzTk4Qv01Whfars0iFuQ6hsRfkLk8H+dO2YLoKInnCIGN/qelUb5ktlk1M=,iv:DiE5IjcruqlivGZvMLR/0h0fKKS/IUWFhsOo/UG+hYY=,tag:zKh74cOYCv5c6aLEPMR6kQ==,type:str]",
|
||||
"version": "3.13.1"
|
||||
"lastmodified": "2026-10-26T10:23:02Z",
|
||||
"mac": "ENC[AES256_GCM,data:Cot/DuvBUGsqbep4mkhzq2+DcLDLEaK+lzsxsoz3Icv8Qah2dMk36Rs3gya8jWPyi2gqdhUf0Gzl/tNxXKsDYMuCM1vD3uPTNbH3EpmVN71hXAeg2snY8Jcvs9iSDYz6I5b4+Z+i2Zw3Xq+jK/vLFOmhJco1GVe15WkDF/UNm08=,iv:Lii6ZiSwDP0UxUkqn218jmGB6HJH94UXB471fn4M0DM=,tag:3t1/KMzBtxzAULnDN2JsjQ==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MCowBQYDK2VwAyEAMnPrq65c9IbA7UOkxclSc/7DJWRshGbuNkHKm2aTZBM=
|
||||
MCowBQYDK2VwAyEAA9P4T7byGSh4YZUJGneS/qr57cQLEqCfNm0qkk3B2GU=
|
||||
-----END PUBLIC KEY-----
|
||||
@@ -1 +1 @@
|
||||
12D3KooWDDK5GicNsKQ9UZFUaSZkSiGPWPkwzd4GiBkxEzKC2x3C
|
||||
12D3KooWA5Jrnf6LiYDLj6XFteXFSufWB7nbKKwmgThxNPEdC82Q
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:GJqXJAgsFRXHoBoGxVtmuOUrRc0wXet1N10NMKWo0/2NC+kiYoIROHlCSKWNKik/ld5XTHa3FCgJ+L5+3+fOhlkoTTEovMA/CMOnqstwCTAuXJ7jctjjemjY6v4a2ysA9mqmgxB3G8PECsSUWbrrwAqWJiKAYmDqjvTvAfpKa92ABWILkAlhmYL3SyZUakRpNkO5EJ5CjkW0WDnrSB+s+TrP09wysfWmaq+FNCvx+hubzVCe0VuimwR8NV+VhRT2LIswbsTPi2aDmleuuh4yvMcyyUbM0VdXHmKeWn+SKpvBBvzR5gY150qcv5rc,iv:rHREzxLQ2AYvAR0Xy6+sfzz2QAbICCgxGi3jWZu+5oE=,tag:p8yvDAyLUM7gxs7rT7u8sg==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:5F3crGlP8sWWAtZ2aRUESf3p8n1GPR5TgvntBP5NgFS0T1LkVNjIZDh8femVXbcL5lF6bCzEuo9CqlxshP8WdGMibrI3Fcuo8nfRcazkiWP2h2f+DgIho12IN/eQlMStukXD1OYbcI7JbEbj45YBQBE+qUCjxb24F/tqMxQpGWZtunoBiL8fGI/GenoIyWlumOYakCOsgWfc9SDgKMyvaeo2chZY1O411O+qFATugki6jOuH9ZoTwzMgshdkWAcXfHMFUtyGrE99t0hlAyigPs0+70OLtPhD/t92sGal+wZtFTxX+cWmne96TeDu,iv:arJzs9/Ven1EnCUedSJ99ul9KOpK1Zgz97Oi4gdFrvY=,tag:9KalsRcRzioZH6EmYOpHiA==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSakpHOUNKWEQwTGlmSHZZ\nTE1CajY0T3MwY2xjZHZOQUJ1SGNOb29KbkFzCkFYZ0wrU0x5RFQ0aDVDU3l0TExZ\nYkNxdk9UT2ZLYzI0VDZ2Mnl3bDh3L28KLS0tIHJVakgrV3ltbUtybEFJcTBVZ2JB\nVi9yQjBydWphWmtZRW1KZEJ5Mk1vY00KkTmpAf+Kc83jlkkNLSpCzIuTg0vKki6O\nn4uu3Hq6e/2DWra70x6zXoQkLkEhz0CQNnB+OhVlKmPIA8npzYELYw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArb1hWNWgxU21XdzlydGtj\nc3hrU0dubmhHbG1kNUhzNW5Ma2t6aEhoZlRjCml0SzVMZHZIN0Fac1RZaUE1TVNt\nWW4zSGxTd2VLV1pkWXlvd1BISXBIeDAKLS0tIGJ1dFYvNkJtTmhuSk4rUi9GaWNO\nSHpDS1JXS3pzM0t0ZUlSRnZId2hIZ0kKtsmsmFOyDakzamataE1GY8t7WniaoFvH\n4Nh7txT2gytYvqti1BrTeHvI0oigPZ3Y0X++DF1vsPyili0lIJFiAg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIENMY0tyOTBR\nMzJEbnBDZzVqU25WbEZNVGFpWXlQR0U1am9WcUZ1SFZUQzggQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpIaTYxelJsdGVaTlFTMDRFUDd5aDJy\nOWg4azNNOVM1eFdiOTNORHRpN0VBCi0tLSBXcy9xRm1ySU40eTB1MFhSYnpSbmxs\nK0pjUmd0WnpHYnU1TFVYWklXTGp3Chlf9lvM8fFPrDpMCOPXtIFJl5CBbnI8qE57\nXf0XaPuDsXfYkRwayis5FfCBA8qCOrqfy5FXR5+o6SieSAXdhJI=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFBISEhuZTNs\nelhWTkY1QS81RE85TFgxTXNSYjZxdlIzRHNjUXFkQVphQncgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQo4NUMxTnRaMkhLVFN3aHMyaHFVRG1w\nQUxWT2w0VG5lQzI0V3FqeldTOFlJCi0tLSBnU1pJamxCQkZ5RW1SWG9TQkxpbkI0\nOFpCenVDWVV6cys1bUJhRTBxWnhnClakpblTnMiqbJ3EJEQnIU95nHa58Ff6QcvZ\n51ip1lRPP8rHbA5L0p2GIf5e+3XsZIdvUQ9Ezh7z5TU4YJqMkVU=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGZRdXNSZWtm\nSDUvVzFuczEvL2pTZjBjY1YxV0pFcjkwOEhKM21vcGpqR0kgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwo4YU16MTNpbDlQUHozTy9tRTM4V3pS\nbSsyem5obTVmaW5HZC9PSG1zeDgwCi0tLSBPcXVBdWw1UEhERnRuKzU1bmdEOTRl\nalo3SFowT1dTVjh5aHVkQlZ1VUhrCnGs/ApvHE6Nf2mIxKT3Ih7GgsV/qg7dM+du\nxQIXKcUWaiwa26Wnri7pYpoej9IV1Mq14chaQwo8GOkSo8jRsGQ=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHVBeXIraGpM\nMDZzY1ZWNFFWc3hFbXJ6eCtJR2g0NkRBemlNK0NWSjA1QWcgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwoyd25MbWRvSzZEempNL1U1Tk02SkpB\ncGZjeGRCbUptM29OS0xxRW53UnZjCi0tLSBsdzRYR1hiQWNQY2NaeElVb2s1Q0Fs\nQW9QVFBrWTV3R2JqdXp1V3ZwWlZRCgYUUAi8toN58WLukyy3pYypE0U6jY0hp9dZ\nGCib4yeQiuCldBA27A7Zp+oQl5oEUtkqiGU8WOmOqDafH15xhn4=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIENvOTdqQjcy\nMmIwbzNuQ2FjWVNHTzJNZTFtck9RVjlETnd5VUtKVzVXaU0gQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpySCtKNHZHVUZOZVFWRnhaSFlVVEJi\nRUs1M3RnSWhWWHlwN25tbzMyU2F3Ci0tLSBmVnYyMGFpQmNlTGV3QTRmSGZQM2h6\nWWt4UDFLK0Jsa1ZNNkdTd2VTcWNFChvawLld0Un5RCfB6uKd5G5MbLB4iP29uGjW\n/Xatk5i4Ig8JoUTwiQ6RKZ7s0GtbS7YvDywG2kLN1wRCIUgP7R8=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGkzWWdwZGRC\nME8vNUJtZzZaSXhQT3lCbVc4dWJ2N2ZuNnovdE03ajk4UU0gQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwoxdVlEVkRWbkhnR2pnY0d1SHVTbG1o\nUC82Y00vV1l0eWxNMUZ5aWd2TWRjCi0tLSBjejJFVnJUOGFSVHB1dEQzSzhoSWNq\nVGE5enhFdllKUlJCOCszZ2o4enVBCumJoNHbx/oEVrucsl2f7GlPmmvGHu2E9Exk\nENZq8tajYz7yFmJvcZ+LI+qiEE2du3Hvn2EQBHdIL76fqACiXfk=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVNndDZURRcDJBUHFsS2cw\nbzNQOFZaM3BWZExhcGNSRnJRZ0lFd2Ewc21jCmxCbnVyK2dVT3FONkhYcURMczlN\nNlliRTRQOG0wTmwxcUFJbktMQ3JFZUkKLS0tIGZneGZRSXNYWGRURER0VW5WWUdF\nTXdSWCs4L2hwdU15ZlAzYUxpcDgrTk0KVl30+zG3LVKeasinAMBHVVQJ+KhMc4/L\no1DEltlfVZhF+gcqcraxPhpE4pLuxBtTqXuFOl/m8sT0R6FgQmB7Xg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwQ3BoR1N1VmpncW9xNS90\nY3RYUnZZOHhVQTNZRTZkcENEQWVpK1FlV0E0CkJhc2RlR0FnWDE3MFJlR0ZMdmdP\nNDJWT0tHNUFUbWMzVDVNWVBjQlNKU0UKLS0tIE1WejFDaVkyZ2hBaFFJS2FSQnc2\nT0swb1hKazBoblhRenZVSzQvYzNLdlEKh02iDFKfDuqOt0TW440SdJVHqBaLz2Ns\nHZZcoiXXXNVTCyjYO+8UvrSCOwQmtPmio2SzWaa1Il2sUblMiCx7Kg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnQ1pyQzNhMHNHVkRkNllq\nMWxuQnFTOHlkMW5zUjdDRE1kTnArYmpXY1E4CjZuaWxSSUFRSThUTVQrYVphT2dl\nZW5YRE9uSGRUZDA5TDhHdzhhNjYrT1kKLS0tIG1OUDFHU3dtQ1A1Y0FGa3BJTWY2\nWDBQcjQ3SVFrMWw5Z1VsNW5GT0wwZHMKdjESSpkkB2nAQ5hXKrYCZcWHxgCkz1pC\nve/2nFw8b+ONQCuXvwlw3avH5Y2aGtDDrMwUjn6OYflTerV4t0ksJA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtWkVIbGMwUklqUEp3bG1H\naTBsajFycVJHaEZSKy9lZTc0QllDNHFKb0E4CnBBbE1HZTFpeVk4TVhtNERuT001\nUDlxZE51cVk2aDFFMWIxSzRlRjYxbjAKLS0tIERncVRaQm9hWVkzdXY1OVlIbG14\ndFhUaUtTQ1ZacFlRSStGd1VVelV0NGsKjVH1u/e0WD1TYMEdksty6HYjQ7786TXh\nuUP3CqVFJrm1lLvawCCzQ8go+RodAYGBY6ZWcRJ9dYgev8RFmFRTwQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1SEt1ci80WFg3UlVkWGZ0\naE1GbWhQMVdiRk1SWnlQTmpaeXJxbGh0eDFRCmdZRHRmUVJrSHNaS3JKVlFReGlJ\neEJVbkE4aGdxbnJhTmtlakpKUHlIbWsKLS0tIDAybFdDQjZDN1dNSW02NGl6dk9r\nT3JITi9ibEVjSzhLMjJTL2tST09IelEKlWyNaqhbQX3qMJDxvG/9b81T1Sw2b8GO\nmlY1PDmwnEB95HZdd5ZZx044/WY8cqzla7hy6JqGqqzf7oKTdnwAWA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhcTJGeEg4VmNRL0NpMHVH\neU9qTXdjK0I4bS9DTnN6b3l4alVNYm5yQ3hNCmlFeUJ5dFM3ZTlDSWJ0Q3VkRGlt\nRkFvTTdNRzFpendhdXAxZWtVVEdGVVEKLS0tICtOeUJ5MkpTODVBZlZXQlFnK3ll\nZkY0ZXJkNC9Fb3N6U0IrZ3NoWlNuclEKRKrMfKwiXBSBR9fjEqnbrV1A1mDSWbCf\n2negz58X28+wb4PoAO+TyaBWb1Or62dMhPR+j8X5cyckluoEbqlKPw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2RUxGTEh6RHpjKzhWaERm\nYmc2UG0xbnJPa2VmVDNYdzZUOE1vczdpTzIwCk1xOTV2WEwzRXdtREhWNnB4WHNn\nTGRPRVY0YlRoRUFOSVNjZHBqSWxpbGcKLS0tIFVEWTBRZlFsMEloNTF2YjZKVEVU\nL2dveTZPdUVQYmJ5enl0dGxsclFySTQKeKIwcEuVl4IFutbQCAw9kUXMwtDW0lNr\nMheYoMdxLBwkvuzo4To2EheG87jIDT/tZxFaLauDJcX+qIqyWeVCIg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyeUhrRmZWTERqSVZwSWo0\nZTdUY2p3ZlF6RGVTVEYzbEJsbDdNSUVMUkgwCkUxNFljOTZ3NEpnWVk5NlFhMWs2\naWVnMTZRb1VPbUNHV3YvNlFCNmhUbVEKLS0tIFN4bklzWTRYRXdOVmVnYlZ3R0Nu\nOUl6Q1dza0lEU2hDN0V6cG5FbVVqVGsK6mfGXi3Zr/biPVfd9I8bZoTupjvS8Aks\na3gBolBkhosKfkrvaO0AQY7k28iPGoLmQedbf+qhll5bJQs0028iJQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOSVVPU0hQNXA0VW1seVk1\nZHIrTDRBRWszb0xiWnptcThoVTZaZitHZWlFCkk1YklYbzNnMnpiVkp5bmNNTWNu\nNmhoMmNmZ1I5S0N6SmpTaTNRckpPd2MKLS0tIDE3VFBobjFiYWFQZG1laW84OVdx\nTDBEMk9kcm1NVFZMUmVJN2FxcmZsUEkKtBUfglnOdRGyE/XEoTkEHdRVQmJ5kS7v\nL36oWT6DebKT4nmxCyTLCNkyvywBnO57aOyyh0ZivFn899OL8kfcbg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArR21POExpZlMvME5CZDNG\nRHUrLzlxVmR1eHM0NlJjZHhjWnM0a3c5dFEwCno1QTJENWZZdmVxeXUrZ3M2QTFS\nb3ZPTm9yeUtnM1NIei9GcUlqaXpJenMKLS0tIDZLSUhTa3kydjhFRWpNaU9wM1E4\nK1FKblg1VUlmVEpvWmJLUzlrb252MWcKlOVh9d++hGm7kPTfs/8xVXFsRhbBz/j8\nlmGYO0LbUW5mt3pgm8P+lM7W4xpurb3W7IM92v9tgEeDW0OLIIo6Zw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1xzasw9ggd9gf39nx90jpe4qu8p4nzke98e70t7e8sl9mutkgrd4s0elqcl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-07-22T03:11:01Z",
|
||||
"mac": "ENC[AES256_GCM,data:40ZhfRtuxDfaa+DSYdgLMpAKuC/CZ5y13O/KzcrqGqveCqzjkfiW7b6dJU5+I1kYRMbosHLDfQZQym1utBRg1MCVXPSUcPzr7gwd8iN+l2q2o6FzViAXyE0HjW46b3m7saiy7d8bRnR1kzERvTnk3Z+uxHORSkQOTK1R+pmyFy4=,iv:lIWX3WIcAi3+GgsFJyDuN0bKwG3yntVANQQvEz3Eams=,tag:XaFZ/BcT2Vj6MwoUoLy1Wg==,type:str]",
|
||||
"version": "3.13.1"
|
||||
"lastmodified": "2026-10-26T10:23:03Z",
|
||||
"mac": "ENC[AES256_GCM,data:N4i13g/DnwcPTNhh4O9zQGzZdE5BTLw/YsF4wQpWyGt/555kUXIoFrj/gWe+i0SkzEhXpRMJps6E713mVQCZbI/AyOo+GB9mqEWEze/uWHhMs1E0WnREyj8Q4L9zdeY6TdfuBQvtxSOjZ+AX5sw2Q+5nl/Kw6DskavkdnnTKP60=,iv:d5lRGMYDgRYVnF8iKfj9TqsRWqr+ZNHaEBohBcHiERI=,tag:wjqT7EmxJbvuSk/lPgQAbw==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:Cuw7TOczdfJNXhawJswfQpoaC5p/d/wy2ELSuTwpTP8bZfjgQzpOA4k+Wi4go5BQR4CsZRN1v3qMSkm1U9yO1TXPP/lLLQpyGLew1/pp2rK/Y9CMr0obc7tZljt4Mp7rKiow4SJTnop/TxpXuPmlsAatchl2vNM=,iv:64Idzy+8gWDTC8D8GgLBKtGrdxoPe7SPEP51pqRKgiA=,tag:JcWCO6dWml2mWypSHZdzNw==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:6eR3dfzALFv7S4fu54M6tYHsH72DBPfTzhWNFIi+U96syzbec0VBy72liJPH5KCvTTPdlyDlZIESSp8lTaDp87A9zwZ7C3PNEawGfVKHABgaue4B+W1fXLAbs+Wr3WOVDxmyLtszmJ+Kpwvp3kvrK5v0/M9ckqk=,iv:XzfPp657YzAB20FFICF+Cgvo79jgx7GwO9ABUpMwaqU=,tag:jpNal6i70eMqwni7YozvbQ==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrRHU3NnF5VUErcUcrQ1U3\ndjFHME45TlFRdHVKU0gwVC8wZ2J6TlZya2drCkFDdEowOENya2NvM2NzOGlGSGkv\ncldsK3lubXF5bkF0RGp1dUlmMFdUeVUKLS0tIHdtckx0dCs4ZE1NSVZFQTg5Q3k2\nbGRUejB2aGZjNmxEd1A4QW5DSDhGV3cKY5r2kTxljx+rEj4H+mgw1sPQFlXgdi4b\nW6dwzqpCPwrtBrP00Hh3KTjCU/BvlKA5luTRuZ7Pl8boW6wLc6Vsvw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyN1RWVHBlVDY0MDdUSUtS\nTnpXS0pmdXVBdkRrWEFaYk1iZ3ozZnQwOFZNCkhvcWxEd0NMS0oyd1Fmemk3dGZD\nM0QyaDBqZEVOKzFRbTAzdVlnSFZ6c00KLS0tIEpNbFJNSXZGSTkyOW0yUC93a1di\nc1ZCaHB5bWxjMDNMbGUyL25ZcVU1NnMKVv5T1KY07RRoTl196s5pzaB+49odBPMb\niSAYYE/hx/SpISBykCf+FgYQrLT4ofbpzPJSJ86bNg8ZQhgxnxj4Aw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDVCV3cvUjgv\nY3ZjQkNuemZIN3N0eW5rVFhMVjVQVnlpRXZ2STV6MmNqZ28gQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQoxeGpxaXRYc0VxVm1CREhtMUw4alUv\nWTIyOGpBZFk3bGZnNlVkS0dYQzNvCi0tLSA5RUhncERZSTQ3T2ovbERRSjRDcW5k\nQ0tDUmpoNUJUenNORnFLRTk2UWNFCo0aOmOT9jqkqUskNv4591ShT9+jJ3hHjC9v\nfR5B/pRKYWGT5c38NVWYpNcRaqSepxLR1fqKuk9Kl89lTS/s38o=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFlkeWltODAy\nU2pCaEhhZ0NjTFh1SlZqaHI4M3VQN3hQL3JBUmozK3QzR3cgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpkaUs3bHFDUFdBSnZJNXJVRFBmUHRs\nMlRlQ2tZZkNkTXRKeS80QVlYcUVVCi0tLSBoMVB6Z21xL0FDWXEzUzdFSVlWUzhH\nVmJRRzd0S0w5ekhvSEVCNHZhcDBrCluweeWQQlprMzQ5EVhvUiHsjp43HmLFjH9u\no9IaLqUE2DZgLTrP856m4EMkVvHZEnU6zutAodraNNt+R50h6yM=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFZEK3g2bzZo\nM3VSVmlaTkRyU0lRWG5ha0pKQngydlhtSitSb1JKaTZkbW8gQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwowbVNWNi9WbHZxM2o4cXg4MG15R1Y1\nekJtNGVIRDRnMy96NDd5NzluUHc4Ci0tLSB3WUZZalJrZUY1VnR1UjJncURSYWtM\nN05iUGcxSGhkb0Uzd04yeUJjVnkwCs3T+0JGRovxcqYGfbUTsZaWGhpdQ/8SBkTK\nVZoUGg6A/MQTK0RkMtO/cGAOttvaywK4BzQcK83ocn5ahGYPMw4=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFlCS21pWVNM\nNDBjbFY4Vkh2ekxhSHlidjhLRnBHbXJWSzJwQXcwZGgxM1EgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwp1cmhrUUNDbm95ZFNwdUprZkZablJM\nU3p6ZmUrWERhVk94ODRvcEsrRkNFCi0tLSByeTdScS96WEI2UlNrTHhJdW1YYVM0\nWGNkWDlQdEhmT1hUdnJtR2hvN1VBCs1qEYnEab9o0oqa/1RyKYbTKJ1pMOjd/MCn\nQCSHaNtYrTvT4/cv5QywcI5ZIGwMOU45Xj81lE5Z3mgq2+NRXRo=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEY0M0lxQ0V6\nWk4rT3Q4emo0all3UmZuL3NnZERuZjFnMExYZ1dLNnJRdzQgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwo0WTB4M2dTc0ZUblNhRnpTOWlNTFBl\nM3FtQ3BnejlJUzlHOVZacGsrTTdjCi0tLSBhQ3RXK0hIT0ZDL3ZxOVh5OE1aTUZD\nTFBCNFl1bmlLbkMvUEE5K3lhcHFJCih8t0DFk6MGT3clsgLWhtkQMuPqklUGFaQd\nvFys3SBoWD5zBzPuG213ENbSVT8P2VZ0X7j9e8YJ5Gj2RnTyN04=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGFrNjFCMWpy\nQkJlSS9GNzd5cndKclpxV3EzUkgwdG80dEpoN3o5YktqamcgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpjVlBEM3o1SlA0aEJnMWpqNFFicjdo\nZUE2OXRsLzB3YlV3S1BsMTVmbnJ3Ci0tLSAzU1FMQWllWFcrWko4Y3VvMXdqblVq\nSGhQbVF5TDVnQ2JPc1NSU0FUVEtrCrwVEU4MguR8og6nd/Jay0KDl96KHpiHHak2\nqBZwtjwbrQs7t9isWDyl8UUgOiV2sQePI5Mr9Dj1Hea0WjkcWmw=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJZWlsQVpiNzJPV3FjdVM4\nT2pEWnhIM0tmSzlDSzZLYURCV3d5Mi9JMW5JCnFZSEdQRDlSSDRZVzl0b0RKd3hZ\nSzM5UWZPY3RBUnhwaW44L2J5QWkyREkKLS0tIDFMRGdPeUVhUkpwMXhVeGVVa01G\nVDBIL2RKKzJkc3plUVhPUkxUa2RLUHMKgpDyG5RYhOMZvkAry41YgNrXUoKg66CG\n0df5zVnZrfn/wxCPWA4JrAQ0n7QDEoP6TWIwATgIVH1l7L0TahWiVw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmLzB4YWljMFVRZEU4c0k4\nSEU0eHpocVd5eWpzakhUK0taZzlmU0ptbWljCkFEcS9sbG5jdURMSXdISHhkemIw\nYlgyL0VqdDRCblEyNEhvTndHTDJJMEkKLS0tIGVUdEZxbE1wS1BienRwa0N0cmRt\nbk9LRml0YUNmVGYxM3JCYVM1QnVCYVEKdYPwHkrCw8XPFC35I1A8adM5gQjgsVzM\nzl0OTp9yku47YwhXgWZ/ub8ILGhw9w6f62cKuFKp2J17rfs3NdCVCQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1NzdHRHRUUVBqTUlpVW13\neElLdXpzOXJMcTlsbFc3TEIyRHdIMkp6V2xzCloyS01FMEJrNDdESjVQU0tyTkIr\nS21ib2Q0WTNDbzgzajJOSUpXMExXL3cKLS0tIE1VVjZPOTFvWFltcVV1bkc0Z244\nVmhoTEdnNktla1FnSVREOTNSWkJyeG8KbiTZcaqD1iHyQDqmRKgyMYisJGOGTjtm\nCS9H+2hqfSkeKBz8X9lUtI+AFDWetdr10Py04LRW0nBqXlbnEimqAw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFdmN0VGwvVXBicHlUNG9w\nU3pNdHRiVzdmVWlYNEJGRk1nTzJJbUZ4TVZzCmhWMStEbEZpRTVYb085QW1ZWGRX\nb3lXbzJ2Yi9wcHZvdjdxd0h4azY5K1EKLS0tIENzcGg2VjYra2NNdi80d3ZKblRw\ncG92ZGlrOTdiaThPVjR6ZktJZ1dFRUkKBPk6avTyf+aY/++CUiWCL9/ATlajjxVj\n9ZPs5XkdV07GF6PmWFW8Uf/MTfn6GF1aZ0SPquoXEH7nWslm2apgCQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaU044MS9qV3dmcTNJWGg1\nelFFZjk2L045RFozeWtEUW4rSjRZNlFwaENJClpObU9NanNMdi9WaklpUHh5S3BX\nZmdJZTlqRTBGUW03SVNhNE5sRnc1WmsKLS0tIEo4bHZmOXRCUGZaaXBmTFlvZWtE\nZjFnKzdYTEE4QU1vRStXcnAyMFNtVkEKy+wkk+msfhh5dHGiUsElPuONnGUjxDEf\ngjW/a93zcroIVY3krKJx5Y41HwAm4TABK7FCg7MbXvjLjFzNhLkueA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzVjJaaXFHeGNhdllDZXor\nb1orY1pKOEJ4WUlpN3Y3djAyV1d2L2U1OWdzClExb3RsSXdrb3Vrc01SQ3BraGRP\ncFcvZWJiVDhpYXo4R1ArYi8wWDhYRTgKLS0tICtLRFZHN3ZiZEhML0hLL1BuUzVy\nSmI1MVBxMVBNY1hvYXpkTDZJRTBJQmMKx46g85cCaxRSBjLW1yUmAsk22LEPoBmF\n1yQeILxRAfpP4R3Zp0oHkq6g/AinFPGbeu5qk47NxolfIszds58PvQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwRDBmTzN6L0RmWjNIdVVP\nUlZhQ2xDUlVJSXNCZnRLdlh4UDJZME04cmhvCnhtaHA4b3RVNjRHQ3ZJNjR3dHVH\nQ25pOEorS3hrR09YbkNDMU9ib2JWUkkKLS0tIHhpa0g4VmhZa1FFZWpRVEtKN0M2\nWE9mc29XTVl6OXo1QjlhVS9zRW5sbVEKWfTUzsYg8LxvATEqM5n45w2O2JbEw6MR\nL3ngkDB5C82MAYSLXgYXTfK4JF+M9CxaKjJUPCHE8RJVTWJIBtsGoA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBbnZGemVZOEgxWGtzRDhH\nYko5UjN3VTkraVRTUjVMblc5dW1vV0ZzVmhVCkt3Ylk2ekdVbnRzeXkzN3Z3UUxO\nUmR3QTd5c01pMmF2YjVrcThmM3VGMDgKLS0tIEtpMHhwNXMvZnFzOFdLZ21BQzBT\nZy9sSTd4TWF6RHRwbUNpR1FtYWdOMDQKpEHFgbC41bdcNnCBLtzaQFdC1bmGgQPy\nDvOM3W7UyrIusuu22eN0RXQlzVYkeX9STWK28UQIcFfHLmLT9DFr1g==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOTkEzVVE1TzR0NU9vVGxj\nVkJzQlB3Z2xkdHVDOGJrRlkrRTFiYzJYK1dVCkRqOThPbmkyNURPNDlBaEJWUVFY\nNGhGV2MwUGNJWFIvUHduZ0RabXJFQzAKLS0tIGpDSWRlS204MG1YNVAvYzBtRlJ3\nOFhRaEF0Tk9HdTg4NVQ2ZGJTd3p1ZHMKuIWI/1ImdhEG9hidwbQ52Ain0iZ65Ujf\nma3HCEyFElgKFKk0Ftr8Hynao3QxAY1I/iij12hKfYYPSYJhkO3PEA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFL1p5WDFYTCt2UEtSeC8v\nb3BMdWdLWTVLYmhxMVpSY0RHUzd5aklsQmlnCmcwNU5pV0FjbGNndkE2dnVjT2Np\nbXY2OWtOUG8zUk1PM3pHNVVpZHZUY0EKLS0tIC8rV205UXM5ZkRnSzYrZVU1cGdH\nNjdPZjd4OWtSN09zMkNHcFZZT1R5c0kKS7OMliWNieIx9Nnhz/QPrpQ2IK0OmMtH\n3t6HNE8oFQ2JEt2GXhghMDbLgfHltZ4BHwtkyzXYcJVF3qH+M4lBBw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1xzasw9ggd9gf39nx90jpe4qu8p4nzke98e70t7e8sl9mutkgrd4s0elqcl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-07-22T03:11:01Z",
|
||||
"mac": "ENC[AES256_GCM,data:kyoFLnCbTh5qnB9Zvriqwpzkd5IyaJq6qmzreMGwPX7c0QWVeDQ3JKdxU6qf30gctxvzrjJ+UtCpjG92HDEBUbYMeysz1r3TTSS+75yNkEhSkew0MGNP7NnM5TYzy2Aj6IZsMeRiCZtPb8LSzKqO4W7xnaBAPlvHYYwxzGv8syE=,iv:plPA6moiPIMdZRFMt97Pu0esB//ywqaL7qSM+GTrAEQ=,tag:02rat/qppXURSyiTfBn5rw==,type:str]",
|
||||
"version": "3.13.1"
|
||||
"lastmodified": "2026-10-26T10:23:03Z",
|
||||
"mac": "ENC[AES256_GCM,data:VsJExu/80E1mZCqlkynQ2aGUUdkmD/W+o/FOYjAwuaKwZTY5s6CpZoAyjywfiU0Rxg+mYnIZ+01KtWwHohkDv/ASLo5RfK2PNNXIe0Q+W1UuS0OXMSjeiTdrry1fw4Oy4h7wsx0uW84wXvHnp0ZVJpOinz3oPZLssvDL3GFfQRY=,iv:6nYCeQOsi4zQSrFSopdF+fHfA9ilyuNjc3DkutqnrZ8=,tag:0DtVpSEcRstviYTv+a/B5g==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MCowBQYDK2VwAyEArtBxTALuDkPwIjLpd0dD++hq8SGmbA4PlcIBvoI+TI0=
|
||||
MCowBQYDK2VwAyEAXnXyIyCWeRO0ViGhwEV2h5f6d1FjDgMmcVSPHBhinRk=
|
||||
-----END PUBLIC KEY-----
|
||||
@@ -1 +1 @@
|
||||
12D3KooWMamTPqtTdcRKZ5mMus2fEbfAmMeQVQPirteAwvrcjFun
|
||||
12D3KooWGB6obwTL4XgqbeyDsUC2UVDmZZAC9Ufm4gVvfibYWoRz
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:F21/BMxH8s6sC9HeEijmkL0yyTkXBTmHClqwfJexY3RiZeqD7mVEnbSHWCvDhJAsIQsFSKAUxCN9SDTcIM5KrwJDs7CQlgXPgUTl+5xMI6+jrG4UBpZG0sQXAaF+b0ramBQ4jvCwIVhEzcQerDJdWXCh0gmg3HbeWIWW3eHcgFHuG4r+N9I0N9ENSEGYfjKiGJG6miYnM9osv6ieA7/V/Jf8KAvt3JVC464QIvU7Fnh2CsTBLsP9RqZYJUQFglZmUgLfufqL4PDGczEfogmkpzLv+3H/drfDLzV0QzdQFgTNV4Ea5UpcsV7iKpxo,iv:IJv642KrnqSuaSc5JhdHfRUwlUb6YJVVU6Lt0UH45aM=,tag:V2BMI+2D1gOi/3iDeSgElA==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:xnMdhTXa22TceJ57AfDt8APGzqaj4FlBv7aoej6gMZQ2ssJ/M6KGXRtk7pBWxWIELKtV6yzp9nAQ5NheZtSGVnIEnpfkPyNVQzbug1pxwJc3KnuuqqyanZCnlPfeNgVoEasRScjDYn+uViemndUzhOGjCdXvWTis1a1AftLd6GIKUtKHk8KJUiisSt0k+3QJL/zBG1iklgUMWiw66XlfcD0pobYVk9WC2DtUeV/6aFymDcOm3C5s4eQ5nXsOym6AwufxgF4JB0DL51LchyVdik0lBJIil8HlxuSTY4Xcad85b+gzjyfiq2j46Vgf,iv:8TLxrVBsknZIjBPu6ErvUJF6eSl6POk2VNGmrgQlGWQ=,tag:upx/X+Q5Il4rv9nPyatQYg==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByazFtaCtHWUNDMktZemlQ\nUUdNb0VHYkVkNXk0WUdvMjlycDR0TkhGZVhvCnQzdk44ekJoSTU0dVpuQjRWcjl5\ndDdMMXF4UGpUUkw0enZBT2ZuNFZaVzAKLS0tICsrWFZvQkZ2L2tQL1VnUTdtdEgr\nU2FMeDJaL3Bvd2k0UEhXamhpSkxCeG8K18u0ji2/Ls8MGuvekupvvdxV/i7NUVV3\nvrtd10wBXaKjGXl2qRHV/JB97Z10o0AkVbrjPqgipzSsu3ilCILEzQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjSFpOcElWOHZURzdEVFUv\ndWdCZUl0U1NvdWh6MHNjWkEwTCtZM3AxZVJzCkZMcjhUY3NCbDkrNEVFa3JxeEJi\nd0hiWjErdW1oL2F6djdOSFROaTBoSWsKLS0tIFY1eVgxaHBuMmNDbXV2c3J3R1Za\nbm1zaG1zV1IxNi94RkxJeDdPM3FRK1UKLqcXn2yT/8FqAK0Dm/ag+bvspSRM3don\nrEsjLa2QyMGy6DWe0dgmrUqlIPjUyjM2jmQysFbdxtWe3xruIxdamg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGltNzRhZmNZ\nWm41L0N0WitaZGwxTFEzWTkwVEZrN2NKSXk0MklYMCtPV3cgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQorblFnVy9vejhQTnlUV0ZoM2FWSVNz\nRkdtdXlaaDNNRVVDN2w5M0Y1ek5zCi0tLSBqVXFITndPWDZ3b0RIU1JvMVMzV0lS\nYVBRcDlNTkFRWE40MEs3TGVnK0FNCuH/5XN7fH4bKv5L832H8GOA+Qt7sK0jxLok\n3fAYJrjB9ac00R6yGFtbqzOrBqBH/KU3gz5tHzJQuGq7E7kBukw=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFU3RnR4cFcx\nVDNab1QzdzljQkhFeDB6Nks5OGF3cGVYYUFBOTZpL1dJM1UgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpTMTNhNkZzRUxEa3l5QlgyNlRtTXND\nbUs3VFo5YWJLT0xjb2lPMDNDOTlRCi0tLSBqMnZCS00xbmNnSUJNUXErUnJSRUJD\ncEtsNnQxb0hkdDdyR2NPUE8rZFZjCr9g6OKhr6MlHHFe8c5evsoAMGJr8EU/KjCJ\n4NDQsV4eCN+7K+0OlxNlXOME4anbJo9zZ/7g7WTnclP3KDn6i5k=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHljaFpMU0Yr\nSzhJQ2xRRURRaXZnQzBsWjdWYmhVQ3R6R2VCQzBLWkk4U3MgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpIWHFDc1NsdVNHNTNkcDJ5a1JYQmpX\nWlAxZ1FvOVdodDFzd3l0K0FCVlBNCi0tLSA0dXBzVk0xVWNxcmlqYUJ0N3BaQW1I\nVSs2Q1FuSmtBS2ZvTGhtVUtrNFBvCsPsw4OxtDii9Y5A5uqSWq9q2ZM/u6tWECJU\nAgI0hkyXRuy0E18iNexzdr1VB7TJv5AUY6I4kz218BpCE5G+5SQ=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFBMS1pndlRI\nTTd0MTF0RUIvM0RQdE1qTnRiYzB6c2ppUGFVWFBqeXFuSGcgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpTUVJpampHSE5zdkp6OThCQzRxTXNE\nb3doVHZncXhuZEZ6VTAxMVFGdnlNCi0tLSBITWcrblhXZk1MZWdydXYwTkNZSFI2\nWEV0T3k3RXFBRWQzRTVMWDlEVDdBCvbkzmFyeBU2fWv0LjNStO/5fM/tXQJtRmqR\n4L1sqfFwCVF4V63ZZUrzo68/sO3xs/X2cOQ6iFTJVtN5zfVPfz4=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGRYRU03TElK\nQzRCYzBYNjNVVGRTK2w3V1hWMGdvZnFjZDU0enhPaEJ3SEUgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpBZlNLdXFvc0J4S0ZOZWJkS3JLZ0FR\nUklmUDZ1VWFlWC9wS0M4Yys1ME40Ci0tLSBHdS92V3h2WSt0VVVRRUlSZlExU0hr\nT1pSZkJXMHlvNlNHem9PYzZ5TE0wCnTHwW9zWs9VEiGJB+m234RmOZYZGbs8OINl\nb/3WK0ROYeUP6tf9OlVwFT4+eSjcPgBiMdEmForHov+aqyXoOgU=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEF6VU0zU1or\namJzMzVoQ1NtZnpIVUNCU21YcG5sZHRvVmxWRlR6S0dxaWcgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpHWDJ5cnJ5TjdGaERPTjlnMGRzd0w2\nOHZ6YXZpcXJuMWJuYkpTMEd1cCt3Ci0tLSBEbnBEM2wweXJIYWNuSisybnpaTEt1\nU2hYSWh0MEpNQzF1Q2pvbDhYemRNCi+pb/hStBx/ALCpWf4DIP/YDT+zIUGFjvUB\nX61YO0Dg4ngzJbHf6GXYOIYJNunKZNcrUOd3xqwzKn+I1C/Cgys=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3TVdvZHFFVVRvQ083aTBR\nN0pTUmIycU5CajV3eU5vcHVjZlZjUlcyOEFrCnkxbkdRelcxSVBFNXNQQ2tZNE85\nM0U5azRvZTFhbVY5dDJXZGt4ZUJCRmcKLS0tIGdaYVhoY3lGWkZiWDBKOUNrR1JJ\nT2VRdzhCdWpjZXlIOGs0c3VrZ011eWcKr51mp0t0wRBzrv8ivnHdAs79yPeHhKR5\ns4ASKQGjYd0KJ2MFrB1ikKxeRNZx9IldOpfR+iIPA3Ic0zcTeueDpg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsNTRhdnBxRCtIelNhQjlk\nRGRCTFpRR0V1V0tpY3M4RUR0VDdEWElWWjFRCmtRMWFMYzJhNzlsSW5XcnFFcHRw\nYVFENEp1L1g1SytHV2l5dGhMcHVPRTAKLS0tIHhySzYzZEVYSG9WRmZldy9KUitk\nRS9mQ1ZJUzl0YUJXTXpnQ1R4ZnZlaWsKBIfwsJtp1521eytxtkR2aqlqUt3rf+bC\nN8pDT42ERSKA8FJopajCqjjvc2WFr8r/HNk9zVjiqnJBeoNy7SUfLA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSeTdvWUNYYzBybjd1N3FR\ncmtZZ2NxMHd6aERmVWI0S2t6aGpvdjB0cEZrCmF1MXJqSnhqaVhQRXc5RHFubk92\nbHlpVWNyRDFKRVEwbWdVWUxxN0c0MEkKLS0tIE90MW1DOGV4VU9UcWNSKysyWG16\nK01RZEc0Lys3SDFISEFXUUNTSzNVSUUK0kq7iPPFeFCxrdHSEnaNAhhKCJzctaMK\nzCaTCgjyQcv8RZT3OoT77sGCSySgGHZBMuHKpzHcVVZf7Q6A43Q02g==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCVE90eVduaW5jbGJqbU43\nTVZKM3F0cjd2anpORXh0TWhHcU12SkxncFVRCmU1SzZtZXB6bGQreDZXUUNhWWh4\nZ1BYV1l3K0IrZGRmZDgwK05lK1R0ZncKLS0tIGE1NGJXMUx3UEFiV3BQQ0hYT01r\naFZWUU02OHVlUXlZUnFQcmtPU2RQSUkK/dVQnGlwOep2c494/Azn/kRKdPrB17Kp\nq8lPUrpkGvp6bfUo/iEwVvHhWAhgoBLq/xgb8+sb59ccunlX6jJ1Fw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1pgxgvwck2vr3va6c4c3utj7w2rfg2st9qvm76nc92vhfmplqmu4qs928lm"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaODM5UnpDdjFUN0UyV2dp\nb29ITlNTeVNBN2ZjOXkzMWI5N0wxMGw0RWk0CjE3THF4QkhXNUt4SGEzVnd4UTNo\nTk1lYTZsbzZBMDNxUG9lLys0ZXR2VzgKLS0tIEsrSHBucFBvY01jQ20xMm9LNGRx\nR1MxVG9vaWRHdGdzNVV1SGh4NGFVVUkKpmzPgzAPQAuu4eQP1OLWi8MncxV/tUD+\nv/UnpuDIdO8wTn0v5h5YDWdrsbivJsa52BzZolaSoTPtsJduU15hYQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZdWNJOG40YVBsL3NqcWxt\nek1Pd1BlcTNqQ1ZtQmR1bFhQUVhMUUYvLzA4ClJvaFVobkFrMzNkNmZJYk9DMXg4\nSlpJZ0J4bGs4S2FON3IvbHlvRXZ1dmsKLS0tIEZmS0U4UFpMcDU4MG5IMDZBWUF6\nVzU2UDhUMFVBbFJJOTZqUFBaam55eHMKNWyqgFhAnEyz7spewHP3zysVlpTo/IsX\nTf5Gk/9Ka/aMy3g7LpGvD7dbRh6DKGHDYm5lZq0Mi3YA4U/N0a8yxw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOQUJuKy9abnAxeU9vWXZ6\nMlZmVW5YS1Z5dUxVbUlLZzJTQlhDNnRwa0c0CmxpVzFnSE9hZEVDdTkyMzBqeWxI\nemVRZVp2S0h2MEREQklFZlJ1UjhaNWcKLS0tIDZYNVdQbG1tUS9JRXJxL01Gay9H\nOUdqZzVNUlFpTFZ5R2duNUE3Qi9ZMncKcZeTUw4OofqJGeW5ygzL3pfouwXWd103\nD5YO4EL62PsuxHOqE4pv1PxJIsGbTzCidMz7eUUh7NtLTq/X/MBUPg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWVXN6RlY3N2gyZU9KTTVO\nV05jNmxoWk4rdm1KS0U4eFVKQXJnKzlwSzBNCm5zL1NadkxUa3NnWFAzdUhjUFVr\nTFBRN0JydjA3bkw3cngvTmVsdXR1dUEKLS0tIGRQMmhFYUdHSzZnVElVcEZRZGhT\nbk1HWHAycjVwbG5uenN0VFZmM1ZsN0UK7ebfVopYjXkxvy28RB4/maJXENJcLqPE\nm9B4IaSzuZ9j1uSQ9x6xtTA024M3584DsR3lDlG/ychbklnErKrluA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGa2FpQVl2dTZaUFFSZU8y\nNmFpN21xZjMwVVhSVnVFTDNiaFdibDN4NWw4CnlwMi95YUJsRS9NUWlhRlVzVDNG\nMWVGL0sxTXZBSmZsbnZwUDF3Tkx1R2MKLS0tIG8rQkt3L2trT05ISGRuNWtJZW4v\nbHNlT0sxL3dsdkJzNjhqMmlEanZ4cDQKdmxrdT0fEhJvnXbBG+yv96tdPUmHi2pP\nsPxEjUNk2eWP4ipC23qb+Leoksbkxr2xN514man4DPAN0sK+G8LV9w==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpbFZqVHRESm1idW1ITWlX\nRDhFd0pacFphZlJzZTIyRGd0Z3htcnBFUVVrCklKYVl3RzE4R01memp6Znh0N1Ir\nRkovdUhqdnA5dkdaSi9JV1Z2bW54dEUKLS0tIDMxRlp2cnVNZVFaalZFei9QajBx\nS1UyM3ZVL2NSYnk4bVltejZ2WGdoNzgKKVbBu2l9rtsXfFE02YlJ7YLTYMjDEZPM\nOJT/qJHBHADy4Gnyx7+qvNgLPjnjVvBDc0wmTaZ1YRN1OOqEjKaTQQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-07-22T03:11:02Z",
|
||||
"mac": "ENC[AES256_GCM,data:fnO7bvUDW1sqMR2NL7Hl1DqFUwXBFQaZ78mfjHxAGyoI+IZPZ1WLyDHH6tTGaayizpeQ99zEIIKV6EGwsufKkMaH+NShmkQ8/OMg8W81tfmGnKlTDov4WvCEQ8qxbKEj0OsmyvDfJlkuHRgxGmAVBB/StDAdJeDL+isN4S0emO4=,iv:5j2RkfBjyWZlPhfFnRwpmw7rWlqCM4n/RhkhE3IsGpA=,tag:EIBmDmwgUgb3djQ9eMWynA==,type:str]",
|
||||
"version": "3.13.1"
|
||||
"lastmodified": "2026-10-26T10:23:04Z",
|
||||
"mac": "ENC[AES256_GCM,data:ce7YTAH0UKuQ785CZ/sfjZAz5ZDDiiOuIhNwtKsW5xZxvJgXjLt6hB5NDl1y/ObCdNByMndDDp5BnaTwCXB/uYB+RckiKvR4/wleR3MH2USBYVAsnvS6ExOLh8uLaeOsAiObaf34iy/vDtzZbPGsUewp5P9TDT2h2by0gPotDII=,iv:oqeUWP1TwZ/VIO2qXcQtu0WpVgrX0KcNhHnkSTdYpZ8=,tag:yC1Ej0Wen0xj2nZPSSdpqw==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:G7GTW9Z54X44wm3W+he2khb5DoJdX8xREiOzJqOvBLVFqJ+9S95OLq7XGnuv0iwWw6fJcUSgux2B+RoBrXfVo8MStRNyNjdbOM1am8CYqOk4AZonakT+LVwXcSGbK/w+lKa4gZl5u99q5uE/lo287i0vLP5pspw=,iv:G2o3ITTaIAHa7b3xVgU0Wnt97RPEFUyuYo5VC9qXeu8=,tag:JmuZw5tjuAIz1P+FhyFk5A==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:BQitD5L4kPth99FeqEqjsH0+6TH/7uhnUMtJMKHEdlGs+ksVclqmIkTib3vwXEp7tbmaEzq+FthUF1kvd0Co2UAodikfVQOx7JyPWzRoky8eSsCscUUU8TjIIprxVC1kC8ZVXZ1GyzZ/Pxpkcm/f6xGOzfKXSpk=,iv:99Tp8/e/a0et9nAxMTWjALPzW3l+Ni8o1zwHJxSD62w=,tag:ZeSwH85O3ideKB5TjD7GIg==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwdEpWNzlKaUtobXo2aDNL\nNHF1Qmg4RDA0aWVwR3ZmNFVXci82d1B0OFJZCmlDVThXejN3S1BPeVlOb2gzZkZz\nY3JYNlZFcjB6bkVLYjZjUnZNYWs2bWsKLS0tIDhnd3RURTZBZGgwQjBjQzV6NTdE\nSUhTcXZtTVpuSWlPSlpWemZzaCszdnMKNtGCkZlxzHzWtBjGpXgh9BrrPnt5urkj\noK97U/j+yO66BUWE3bTZCfpPm8xCOI4lrv9t3xkZlR6aIQwWsZm+AA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDckc4VVMrMkFuMlQ1c290\nWS94YXUvc25Xa0M4K2dRdGx4S0krcy9IckZrCmdHdVNDT1hUYk9CZ2ZEaTI5VnJn\nOEh5Zk05eUU3SFUrc09uNDBUNFlNVTQKLS0tIDFIcTJGU2p1VmRyckNMaUJvV3Nu\nUm44UWVqYzJONm9QdWVCT3RSS2NtOHMKqoobSnNrLkTZufCWNcvy2I+0xw+Wsx58\nfYuRQuO2HH9kRtUVmZbzVKQKgXvVzmeNkHqPd2L595GmiQUQAEWm3g==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGJWbCtXWXRT\nMm1uVW1mOHJtZlZOdHlhbFVPdGlta2orRVRMT0hXdGtRV00gQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQozNDZhRVpLQjgxL0ZlV1I0K3Z0d2Zi\nVDRPNTQ1d3BpeXBMYmRBdzRHSGUwCi0tLSBHbFVwZzVieExKc3BCTzh5c2FsOHNW\nbFkyYUJWdXR1NHdzSm9HWVlIUEtvCs7KjmR29YLL0weoC0TOLPt5kqCx+72Nkgh2\n7ZOwFQDqiQWZB7V4gYfs52RCVHa7mFX1RGlg14mDw4/JlD+9VSg=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEZVdS8wMUtW\nWVVCZDBwdjFVdzdUYnZTSDIxUVI3N3g0dEdZdGsxL1ZDMHcgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQo2My9ZRWhRT1h1WFpwNVNYMFNUR3E1\nVEVUQVo0VkhDSkhmdmt5bzFRbDRjCi0tLSBkb3dDcDhIN1I2NWJ0U2s3c3cxa3hi\nZmdwQ2xYV2xlQ3QyRXpJZFVlTCtnCmFlfN1aQitOdiCSFAF/+30NIfZxICb9DeO+\nYJTnekWw9XywuJxTEIuo1DNJQEiwQe6cKTyFNWJQvXN8ReoBMPs=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGJ5K1p0eUJk\nSWNDNzkrbFdIZTZZSnlGSEhOQzZUNi9wcFZyeC9NdW1OQ0kgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpLUXlYNGtsSUxXVE5hc09qMXBPdG5M\nam5CaGVOR2czMkk5eWlESXNFQ3NNCi0tLSBVS0dhZ1RmSWY1ME9KTVhpQmN1Q0My\nb0kvbEJFNUUxYlYvMjdkaUx4eEtZCs0OU+kppkoCv0+6d07LKstWQEwKOq1CRw4A\nBM+j8Ps+B8SUt1ga4LyvOhxMHoDT/nlHyUdf6Mh7mOMd1WKusas=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDBYNG1BTDR1\nYXMyRFk2S0cvYTNHekpzVjhGMGhQWm54T1BUaURCRFFTUVkgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwo0SGZLNm9JYzJyRWg3Mi9OUkNEZGhL\nd3dNNWtIT1UxZjE0TEJsb1poWlRVCi0tLSB4Y0dMM0dHZVQ5V2FsemJBV2ZxaXZo\nTVdGYVhkenR3Ni9pNEFkbzJvMUdVCg3haqf0jozzhRccBFpUGTS6LKBJ8FUrAjBT\n+0s0YrDPI5uO080GqLYoZDGo7po7nE/07EV1Udtj8CnVyCv+t7g=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDhmMDBpUkE2\nUTNXYit1Sm9EanM4c0ttME9sam40aytqWk1XRFZqN1JkeWcgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpFUTQxT0FHeFdNQW5BbG9OeG1DSXM2\neUp0bFVueEdOazB0anNZMzJ0ciswCi0tLSBhNzduOVhZODhYc0UwZ01iN2ZyNnRa\nYU5PQndoWnExcmFPRFFrdXhsMEtNCv3UikKaZ9E8cJuPPr8l1jGzP6uVuxqP2417\ntDEC5XyOo519d25QElUtipcnfsOLsr5nFfMjvYAf6zgZZyu0Vnc=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIE0rUnFPNnJy\nQTRqQk5jeE84ZWVJYU03blJnYkFNY1ZmOEFyTzRxMXh4bFUgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwphUm93U1hadXM3Q0NRTXAyMlB1WThO\nKzNUV3NsbFlNYmg1VlVnNUdlRVU0Ci0tLSBVNGh4VkY1dzd2eUhDR2J6Z0N4Y3Bh\nbkYxRGZGS0FLcWpIa2pjZFBPblZzCsAJDfdbPQ820POE8y6KQcfG5ivrCLq8Umlz\nNsFLcZPjLs7+Y2Fons3VWI10Pwfj45+jY6xL6YdbG7aGoHWzDQ0=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4cnQxRi9FbGxNZldsbitx\nL0VtM1B1QUhaZyttRHRJSURhWVY3TXJjR0F3ClBWNGRRSnRNeklSODh0NUtGUllM\nN2REYmFkSWxRNUFpbU5vSmk3MXRST0EKLS0tIDQ5TDlIY3NVdEZWYncwczMzMjFz\nV2lpVGc0YlE0Nk5KK3prNmF6cFdpeTgKeMOb/wmbrSBc7NzuKWnLhXF6c1FnKmfE\nBFRoOWPhcJdQWs5TUZxjZXMwKMk4lrXMUh1BYgs+PDfdYdSLiBOPLQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGa3RnR0R4dzJNNmtvZjc1\naEpZdkh5L29BMm9IaXBRallGTDRtTHFuNnhnCmlwbnE3VkNzMDB0RlJDbjhsVGlJ\naEpWUE9BTlpWNU03MDdocVJTcG5YdGsKLS0tIHJCb3NDUi9ocktVWlRpeEdDb1JO\nQnc0SXBYbjA4OTE3aUt3SUNsVEg0dVUKewN63/OpyzxTt+AgbiTmKJGR+SRGA27v\nnE7ZlpNEThbNmZyxcd1CFKZw8+vwh9MafnOojLow2Jh/yglM0IrEaQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXZjhHM3p5UnNkWW1uYnQz\naVBhR292MklHL3lzMFkxQklmYVYzR0dCekEwCkdQcFpiTG9xbUFvVlVQMEJhVnR6\nUHRET2NDZzE0cHB0a25zVTM2N0paeDQKLS0tIHdDbGt0QkozaEErdVJBVVdVNTVE\nTmhkU0NkUmcwaExrRWUzSHpramlRNjQKfiUHKpjcEeFK2kJjyH51DSaTh0hmWyR6\ne+kZZWSd1m7ywm7NzoOELwrdeo9PgtrHZ4VTJhWM6VWA6K5yGGBTCg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXSFdNeElUZnF6ZGVFSUlX\nV1JYMHNGT1FmUnJFenNTMGs4d3VjenF1VjNFCkk5SWhkdnN6Wnd4aHhtTzg2OTJB\nRjFkUzg4bm00TkoySW5qMm04MmJha3cKLS0tIHFlb3owVFlHTVZheU9MV24vNzNo\nczc0Nk9ySjNMNStLNS85c1BYa245WmcKsf0eoFBnfvv4uu3Kw8BioKxy+uIk+zZH\ny6latxG7fjSqV/Fj17cThh80X19gawO30rzMNq0LtYIYEBnlVP1lkQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1pgxgvwck2vr3va6c4c3utj7w2rfg2st9qvm76nc92vhfmplqmu4qs928lm"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPWURXMEE2T1QwN2NBZFVn\nVjE4R3VjdlNKa01hTU9qUHZEYmVrWGlDcHh3CjZvTzdEbk1rb002Ty81TFVHQWRE\nY3dTbmdDeHN6c2xyazIvQmRDcEIvQ1EKLS0tIDU1aW9jRlZiVHVzSU1NU1BTczda\nYms5aXRYTlYvUnhSYjJ3S2t3S3F2b0EKXqyNmTVwC9YxNpEwV3dPRTbB94eNOzea\nuOW5f9kPjem8Nc99BUn1SOP1q17clW2E2tERONprKVY7jYc1i2hzVw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5dUltUjQxTGpqZndRUFhp\nZkNHOHl3K2tEQnRDalNtQ25SM1VpZlhybWtzCkZwYXM0OS80RUp1aHZLb0pHN1hS\nWlVpSHJBdFpmUGZyRExkSkEzSVRaUkEKLS0tIHc4MXgxZGlzNjk4d1FWdy9JcUlC\nSEhlL0VLUWc0ZjFlOTRZU0xEbzdIaVEKd2z3r5o/WCYyg55GFq5KxDiFEnjfOeQa\nlrNJHvOiSPp9nrD5z9KKQanzPytvy+j84yy+WDlTPE/Zm2R/BIQCeA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFdzNiNzJoZXNKQ3FudFJs\nSTdEQTJIOEQ2bWZ0WFdaZFpFNDZyQ1krRXlRCjdNZFVmVnFJTklLZ3hWdnZpcTZD\nVUdIZFFkT3J5dXBkeDM0UUNXZ2NhTG8KLS0tIEtsQSt6aWhhdC90WGxVWVJTWGhy\nNVhBeDJoS1Y4UFJOdzBXTFpnSlNuUjAKGpSD2EmtAEwmYGM1PmSHpI+rLUd06+ay\nI/c1i93qMY5Jw1Ho/VqBODqNjjLJP8loUamBDmV9HYh0vGVJddg6cw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1ZS9mbzhnK2xLT2ZTR3JY\nMGc3MVNkNXRYRDM0U3gveFNKY3JSUFd2elJjCnF2dWpUd0tMK3RoeEFqMnFuUjAz\nWDZ0WWE4RkpvWTNCQk5ya0cvQUNrQzQKLS0tIHptQTVZbS9CaVRZdi9qbG9qdjB4\nWkJkRmhrTDNHM2N3eGJzQXdYK1FHMTAKdczvJ5ov7+ub6l9KgmIfTFpD86K6dh0w\nXQ7UD+YxMEQMcY2i9OSCxPeObaTdnyRw+krp2LYIZcA2a314qN566A==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5YjJQM0lFNThnNzdOOWZB\nRThWOFdnRDhlMUtucWl6aHF6cHkrTVBrQ2tBCjBoZ0xoblhVVTFTQm9USW45Q2Rk\nZW1hM2VMZE1KdFR4OGJSVHgvK1luWjAKLS0tIGhlcVNUdGRtVVErUGljMUlIVEw0\nNTNwWnZsaVpTVElnR0NIdkJzREJxZzgKjkjpOlE3u1eDiApD3iexc5f2ovANweY1\nc+vLlwX/8KWkXKOeGJq6sTSt88w3t4A3oQnnEl1kntkMuNQZPZlOKQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBabll2b0w2cXhmSjlRTU9J\nRlB2WkhHQUorR0dwVGFKQ0VEV3NnYncwL3owCk1wVlBlWDF1QTVudUl5bnQ1QWxs\nSGh5YWFmZGhSc25LWWhHZkFVQjJnT1UKLS0tIERnV2h1aEFka0RzcDZWR2gyTFRQ\nRmdhbVVRMXBFK3plMkFtUU4xKzhoS1EKhFOecSQ4dfGCOddYq6wKWMXSkxVtdhDu\n/PN0CwQgYrzSdcNXUddDNeOH2BxS5UghGFAV7jvRiMbf2Qv4Tkf6bQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-07-22T03:11:02Z",
|
||||
"mac": "ENC[AES256_GCM,data:SfZNebqUvKzhusInUAcndJiVOAtT7OfY9935pHPmq87v3XZzHLrmOkfquWhYoyDEjgbcKpwBLmohrEKIt7IhR+RdXY0QvpYnXlRHSAN6k1MyE2Ted421Ph75z1degQ47CNW/HUjwFBYFfRpVSRjbhMXnaYcUgxdCrfDA/pPOG2A=,iv:EcmnB51UPDjfjWf17rgDB4M7LnVv+W06sbtt017QVPw=,tag:SWs/0/RH30AFq5q5Xj0ZqA==,type:str]",
|
||||
"version": "3.13.1"
|
||||
"lastmodified": "2026-10-26T10:23:04Z",
|
||||
"mac": "ENC[AES256_GCM,data:NuMTdsvMAOYeCUDlCmNpYr7/WoZlx+CjioNaat/9dtKIQgqtSkLGo2dbeOb86453qdsjktkbs7c7zoELcn+W2XzjOvU9a3lyzc0QflIDEGm0WEpwSzMwe7R11QtHAnD1nrQgerepRJ7s0Oa+yqwNbKryuJW0Z0TNpH/gRrBDEWE=,iv:rmEmVFk6j6nSh6DMwgkvKeCkq/+msBfd4PM4LK7Tcos=,tag:MHoc9HsdUajdJKFBTluNLA==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MCowBQYDK2VwAyEAKIJVIWR6PqufT8tOlNs5xIu6NkvMwalSZyDaeoVhpRI=
|
||||
MCowBQYDK2VwAyEA2dpoe2zNxMG3h7F9Aslk71MbGrArFa3Q0b0HdwxRyqY=
|
||||
-----END PUBLIC KEY-----
|
||||
@@ -1 +1 @@
|
||||
12D3KooWCYVk5KdxTWWPj7Tv1PM721nXP4U7BkjKNjp1u4TMMTA1
|
||||
12D3KooWQUmoP5rYb9GViduEuFXdrzL4E3aQbD8pfLqkaXzTHcqT
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:F8O/iTkAl6fKk8NdpnxGnjGMgU2OJtOQiQmXLpEDvBDA/0mp3T77cnFEeBnlEK0S9D9e03HdfkeicrQj+XLWY6gP8Im5mwLeMYW/EW+L+k5W2LY97ExE0NKDGOU+try5v4GYYw4XDtPAAuIi0tPGPnRTgSbcRLsTDBxwqpemcfWzaF0pxaUzSwO177pJfrlxWPXx77i7kCN+NVnchLpwPchoD76F3SGe+atgXMex2n6rrwC7utBvTOfOt95GqUbLbLFVzyrvJYhBh69WGQxlOhhN9TWqLC2m+TxAT2NzOJs1Czb1rgINd1Phrb7h,iv:yRyx4Wjs5/H+HgQZbHfysM6vhTnG2M7dQKS6hOBCPn4=,tag:Z1R3SviHFTkICnX6axLV5Q==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:x/+GIVe+3iCXtW8QvapqIbAsj/vTCaMr0eu9qf3Yw74q2pSyT7ZcuweysiMBLbIoEHoTUBHQGy8+6zxKK1g//RiUnK1A3uyMb3b/CX1En8PtQEf41ZwS8EQ7jKSpTaqzWCqOwizen7Nlm5ZEyGRPyVHVlsqNy5Q/pkV6zKyq8lAVhMM6hfonmFKlZZ9oSa962iC5d8EnmuDPdww86KX4QwgvzxKUpxvx/avKv7FUTbxoEyYqRl4fzVXLYXOOB5tST3M2talBQGJHcKmYRDCvrqg2CXKlKCgh1WAJB/V5jg9UJEZzOkDBhLCksoQa,iv:8QY6LwZSmwuAB5wS5hhmZBLiqckNdV3sT197u9Y1xL0=,tag:BCJoAxK8pVTXmhvV7K9BvQ==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArRWFCd0liUDFzakJCK2pH\nNVVsNENaUUUxcndsbCsweStzUExNbGxQNXo4Cm1TdFM5clhHTFprOVQ3NkNzT3Na\nU2picjJWb2UzcldzODRMWlhzNHRZbVUKLS0tIDF1d0JPWU1kdmhpUmlHMmZIdzM2\nQ0lBWkpqd3RSdlF0ZHFFQ0ZRanFHVEkKEhHZ8Ldk+Vfh5O743OlmWwgUdhsYGRma\ntEefP7H2g1KihL7fMTreNDO0FOd0w0kfOg5x+GBMnTygUH9JNmZnXw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2UFl4TXMxUEEvVHduK0Y4\nZE1XMHpNbkxTK0VQbXJSMnZ4OEZCajJDS244CmRLQzdYTjRjNWl4bGtLb3hmMWdY\nZk14ejdRWFlkNTV0L1NLTnRydm44NFEKLS0tIGdhSkdYSngyQ2lnS0FZd2QwcjIz\nQ29ONHNCSkliVU9iZVdZN1VZZS9CWWsKCvMWrvpOwT4m215baQn5WjA+P67Ss8eW\n/nbbL4gaTVAYoOWV2xQwCUo6Ba47adNm5lkYgNPPfEUh9W8vGVMz2A==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIExTWlB3dUFr\nSmxJRjJwM3F4UER4bTZ0TUFaRnNIdGRKR2JleEFKVUZ4QkEgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpoQjNLRHJvclJvS1NtQ2VXb3QvSG0z\nZEdkNW9vNGhydlZlUnJhS2JqTm5NCi0tLSBKd0J4RFdVZ0E1dmV0bWR2NlpQemVL\naXUvTW9pd2RnVjBvY1docEFvbEwwCqJWXI91FEwYJMBAn4D//hkEWm0qJ0Yk0CQJ\nDpbJrKmJ50vlIHHYKwYjQr4nHUzsGDNI7NnBUc0w0ojp2NpJFtc=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDhkeXRVSldF\nSERIUEpFSDZNbU12RzVGaWRTSEpVYVIyL2hvUENWQ0N6RHMgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpXZ2Y4bDBIYklkTkgyWGsrcnFFLzcv\neWhFK3FTYk5lTXE0WDVzTzc1eUtrCi0tLSBKdFNFQlR0L0NlSlpTUm1MVUMzUFdH\nRkdLNmhvb3I2TWpEcmx2cXBBSkN3Cn0IHd6OBmoJjZjAOOcMIZj/gifB7Y/irRaq\nq14lUnRHMFSqqA5MMHdKP2Fd/prDB+9/KarJJ3IkzCmiOTn2Ob0=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGYydXk4Zmdy\ncy9XTTg0c1pkV21RUms2MGgwTkRNNnlTcTdjVGZTcFBNbXMgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwo0VGE1QjBIOTRZbjA0RUVOVmZPRlY1\nblV1VGw3RXVOZmRURi80enYxUXg0Ci0tLSBXMjk4NFcxU1lIaXhYUlZLdjdoajlS\nYVpSb3VKTUtIY1FZOW0rR2wydTg0CqjUdMQa5oewMp7bcw5r3qpPqGi+5nY8+4pR\nzcV1RuX7gwmuvkLDkrVuQd8UksfXTG25O6dPLSDKlpWs+hCkodo=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGhQczhBdnlJ\nWDZrTFBTWGQrRXU2T2F4dE1yb0hmOWFQdXRFTndyRm55UkEgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpzTGMyUnZUNHR5b3AzSU1uQkkxd2lU\nZzI2ZzdORStNNndTU0hzaVFNOS9vCi0tLSBEL3ZBR2tWWTVsclZReG5WVmxtUXN6\nOThremdObmZsRmd3a0duRXFqN2FvChieliuMRN5BVN8LtdSbxV+F6fz97ROB1wIh\n6WtZEaNYs1hj4gX16RIyPKWucsMpVH9mLVixK6qfUpR0RkCCZqw=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHd3NTQ5dC8x\ncHJMRjd6Z1EwMTdBeUxDaWNPWE5ZQ2V2RVBaemRiSTlrbTQgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwo5ZE9mY2h6M1JVTnFqMCtBaW5RTGpH\nOFlEVER3NVpKMEpwdHdJV09mbnhjCi0tLSBtb3gzeVhLa3dMclF4Ym5NdW1qck9a\nUThwVXFVbzFRUFZRQ1d2U2pCbTNvCub2N2c5C5MfnmcuJIz9UFHBrbxVxEnS1qMN\nFolgAs68prixXliXmEbn9oLGSrYhdghLO0oHxcbEv52UxfQOdxU=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEs4UTVmckx4\nTFBiMDFQN1E2cWxjVHg2MkxIT1M4elhhQWdsdmEycTNMek0gQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpXTDdNby8xMmk4VXZDKyt1aEMveXNN\nTTRPc1VUSFMzTEJQRHlVMmI1V2ZvCi0tLSBLT29ZVjhxanRZMlAwSlUyQXRNZWc0\nc21WeWh6TU9sa0pkTUZ1S2QvMWVBCsSc6P/bK7/htJNnSSA0xR3CM09ovLZJziYz\nmwfTfdEvEECyhiekNiai6sQ5ivzhcYFSpSdabCoTy7j6A5g1lv4=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0R2RjT29LWlVMZllxZUlR\nQ0JERHhkcnkrelFBL2JSQk9RNDNDZEc0U2c4CmpEYVROaEVSQ082TVkzTktZZzF0\nNHNza1dyZU1FTjZ4VkZXYWYxN3I1TzgKLS0tIDVLa0xDTzdpRkJheU5HK2krWGN5\nM2xiQmdkbjNlNEl5ZVhVekF2Sk5wS3MKhN66d0jyJiC/TMUvO4Kozzw71lBCSMP8\nQW4CO/hXJaqquQB58YfjNxZukOYcNOOqSXpZveNrIrxeU/YwU7w/eg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCaEVKcTJBTjI4TVM5TXM5\nblViSVV4Z29NaFpSMHE2MmVWTloxSDQrOXhjCmtaVnE3cVdEcUw1SGlXeE9FVkwy\ndkhvU0lwaSsxNlQ4SFM3QjFmZGcwVmsKLS0tIHExNVVDT1JsaUlwbnIvL3FJZGRN\nalRSRHpNZ0JhSm9CWDZRWTRGd0FmQTgKdIVWOCAVRb3asD8jiKJ70/jCIw+wkx/3\n9/Aa08YDiBT/DSiceR9ZxiV+Ih3d7wygpgvdHsXjqZSMhfDcR3AwIg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIVzVuM3Z0UzUwa2FIc0M0\nWFBncDltYUhlN1NzYUNud3VLK2svcDd3SnpBCkdONVFrR0lWd2cweW9IVWJOdDh4\ncitkTHJnRnlzSUd3T0FyQUh0Mk90Zm8KLS0tIGVTL0pGSUwxUEZQVkJUV0VCbEhM\nZkVMZEluUWYzbG9CSk16RmY4N1lNRmMKH7EURg6kPJS4NSfJ/KAWkoyhm2fP+ECB\n9wWJAiTWRLbh1AagDpKdgJ8BfLF+QjFkN8ag5nEbcMdi8LEd880Vcw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByWjZkelVPbk1DOThyOUtn\nSXJqQVhMYy9DaE5IaEpWNWk1Umw0aWVZLzBvClJ3dWRqZkZRblhSVHpEUVdwUjRB\neVI0UFM0RDEvWG1RNjZGenk3ZGNZcWsKLS0tIGhzRGpNRDBWUHlTakljWXppWUxs\nSmNpek9WWVpwVTFVcGc4V3dXYkdKNGMK8fbTSoF+M3L2RKu82CN378Q1w+X/m5m0\nAVSQd86rwdN6SY1WYBHwF/l2uyMRx2gpJgoAI/UM4MlMb1ay5kuNmA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyUWNwU1paNk5CMldYUVp0\nN1JrSExhNUo1Yis1cE8xVVBWdnZKM3FJNTFjCnRRclYvTDFJRTlXV2V6cTlnN050\nRXBQZG5KUGNjenZGaGd4ZUkzb1ZXSWsKLS0tIDRiblRWY0VuZzNJZm9CODNxUmZH\nKzNlNGI4bnhNeVlvUU5OUHl6TnlCWmcK1ywo4pKNTwQrM51UcarCZGiG7BW7wJnn\n9PAGhq4uoqO8ll6pRNh5GMxmKYXTAEREukmPstk0x/qeWQZffcMpEQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAySklCWVhYU2RkOS84aUZN\nOFMyajMyTlRac1BEM3dKblhldDMycDJURUhZCnJLeE5XWERLajZxUVA5ZS9NOVEw\nNlNZMVVIMWFNU2MxVnhZTkJZb2MveFEKLS0tIDFEQmMzUUxvYzFyNlVNOTFscXI5\nVlRNYlB2aWdzWEM5RUVOTENWYm1CL28KRrYdTvGXBAHuSi/2415OfSJnD/y3LRva\nHkxs1+TaUMA9LQQmrImLohMDBsyDalQbjKR92HO+oAMfMJiKCeQsqQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1N2RNdHI4OVdpaE5VbTBh\nd2xtYzNrc013cVRoMnV6K2RRSFdYTXRKYmxzCmVVK3E5QkM4WVdVMERFOFF3ekw0\nV0VBNjVKRW9YdDVtd1Z1bDlhVmd2c3MKLS0tIHp4bUxHM0tGK1dFTXl1RTBEUk94\nUFVFWHVFeTVObUxrdTRwNU9nVjZ0WFUKnUF2q9swBVe1PbIXW9hiWKKmctrZ+Z5R\n6Iw8HL9q+9dCZq44Yn0cpISq0OXv7K//x6nLMzOaRJNit2mAZlnfwQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTM1h3czNvemEydEVkeER3\nUDdCSHpEcHZGcEVJZ3VMZzJQVGxBQms1a0JZCmg0L0Z3b09sRGt3UXVnVDE4MjZ6\naWd3cVBOM28zN1htWE42TkFxRmhWRVEKLS0tIFV5WHpDd0Ria0JSVnJHNFN5NS9O\nRTlCL1VHcnlpRERwTGtSZzhvdStQWEUKaQZhruxxZwx/kJv+TZVfp4CwM2rtKNTz\nah/zaOx9HU9/X2mWpwDj+qIcuDbkq4qTQIxhOWD33CqPdECX6t/IuA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBETFVua0xDS25ObkRFaG9t\nVFd2QnJGOENWcVNpczRUTVp1VVpGTWdwdmdRCllhcEEzakhOaGRPYVpLNzE2MjRK\nUmlsQVQxZyt3WWx4SzFFazdDTlhrajAKLS0tIFIrVEw2Y1czbWo1Y040OFdHRS8y\nTEl6YzRaN3FBdk5CWDhJeGVTeWczTDQKzA0VdGXtwO7ityQjmXRAA0s076eJ25sA\n4ekELZOXINRRypa1eKX46r2w220Gjr9W2KwgPwIPybeEdch0auj70g==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHRkFlQVRSVThGeWJtN0lD\nRmlIUHMyQVhpS3o5MHViZ3ZQY2xMSWdpOW1rCitBazlKbkN5UldmVTJEYTRCYjl5\nZi82NUFNTTJ0YzhXZC9LRXJhVDhHTmcKLS0tIEM4a096ZU04VkN4V09KU2MweTdF\neFUxOEduWldsQjQ4cUlHZnhiSllLZFEKvOlTHsjVfpSbElod8fa81+c/f204OrWs\nBWRjOEc7r+qKlXAmR1X8MYMRS6LReo3bmW7fNi8mN6GGZjoTJ9Wrqg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1w6fg9v57jesdv0ectnhynmy5vqdpf6hgyhnn5rejyj2xgghrud4q0jfcta"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-07-22T03:11:03Z",
|
||||
"mac": "ENC[AES256_GCM,data:jt7M43q2+DkU7Lp/Md01N4MDxSMujlLP2cEKOCPwM3aJnKwJ2btJAr8ZetSK6OU58L5qwXH48XpMITLR7q/hDj9VPYBC9D/eOg4/2upILAoOSCUCS6oIxruelEsL071WYKIJ2XeGhmDKyt7ZWct/efXcmiEptKUUEd9Ukzs9kIg=,iv:PoRVWHmIvs/wjnpEs1RXtcxYrlZqv5LLenWZ2M4ecc0=,tag:ZQWzLhT68VNoW5LjximY6g==,type:str]",
|
||||
"version": "3.13.1"
|
||||
"lastmodified": "2026-10-26T10:23:05Z",
|
||||
"mac": "ENC[AES256_GCM,data:fiD8FenRfAX9bcba/h5ZTEO5cMnV+52L3PPpqWJshgU0C3Mia09d32zePSp4ym2dlgH8qgYI/hgOyWqXhLquqJgHrkEKyOX1xfdCPZbQoISKkSHbl0tzX9gHbU6VM6Qo+MOb99jQDoU0tdJSBd/jqPp7+cXrqSv/jg/BJe2lwhQ=,iv:0rX2ZlXQdYNl4/Xw34NuDJY3ofnBzS3DY51kNU2n+Bk=,tag:xeHh5+XwmWPvrf0XKdWQNA==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:U8RbGdfPZ3bypY1X8z+U0um9J9GBYgnx93p84+YthcOBxiVOhkQMG3io1a5awUiZKw2pP9ZHM1LsIpQ89nIfu5AXrA/ObeJNyQMBfiU7Drt7FtmvfOr/QpeCJSw36aKyZQ35gqiqVvxKKByWwSMrUo3/bFEEP14=,iv:lf3Xfjylp819SVmNdW2bDVxVh74rsYS0zdRqoNCuU2g=,tag:yVY4J52OQP8KwPTzkOIwag==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:e9yGw/nKJelR7qeM0yMexQ9VGSMG2Ke4XvYS5A2ME8tfu5+SQ1Q0lTfr0BMk/zb3OSztp+u5gkG83Xb71VwRxhrlptm9i72j4Qss+H6/I8a5aqaMVsGeNNDFhO7FzYK/gwDAvptDmOpH5zr+cwiAFalAh+2qbxs=,iv:La9NK9bieW4Fh8okzODGXqSH8ceQKWU4JKaDU9WjXow=,tag:PTYfLFSIgG8Y7KOQnIHxtA==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6T1JKRVA4NzFha3dWWTNy\neElrZDhzQnJJR2M1YlczY0xHdGtpdnBLcDNjCklVZGxKWVBDSlViTGkxNUtubVBv\naU9VRkJ2RmVucTN1aCtxaXp1bGNEbHMKLS0tIDV1UmdEVU1IZXdQblFLT0xDdVBI\nVTQ4NzhQTVU1UEJxRkNxWW1zUHJwdHcK9SyGHBkMK7Zv+IT3XlqFChpxoJrD3EJ6\nzUAMElciI8Gq9PYfWCOcZLca6o1OgaUOnfsZIu0te2pJ5/i9AMRBgA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBid3dKamZGY2lKWmVjRmUy\nSXhZb2RMNmlNRE1aQk1kREt4M1NmTGV6OWdvCjhwdlpobUN1eDllR0tULytvWEtR\nV2lXT0VTd3QrSnBIbUpHZ3pUUWRQY1EKLS0tIGJIWlgrMWRqYkVJUWh4MUpHMk5i\nQ2JtczlKaExkN254c0Q2bzRDNVpwQkEK3ciVwFrnevF3me69T5KAxcSVIZ4hH/MO\no5hdj4LHiMa/0AwA7asK/+Io5JbM4ivFXrB4ovlyrumj6s0I6NE/8A==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEFqVWxUeVpY\nVXBNVlVhWmJhMUlCQnY0eW1KVEExYWNyL0FTMjlhUHgyenMgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpKUm45YU8rR1ArbEdHRk1vb3RqS3Nl\nZHZVWkJMSWJyN0VYTzROREJXd21jCi0tLSBWQU1tc3ZkM1p4RUdDT3ZydU4zS3FD\nR0pjQVJtR050bHRCdVBTcnNFM0NRCr9g8zSIHdWUd01wVf5ykhZfHXCP5UKqOeIw\nfnGA8iST0vuHY6FzanwkDWruYZnnOZ5+Oks14iCDIy7RbJLk5So=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEJCQ3h5eUpI\nV3FEd0dKVlVUSVB2UzdjNjUvQlQ0UkhMM1dwTEp0aStVVEkgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQorRGRVT1ZJUGN6V3oyek9mS28vN3ZW\naENSOW9DaVVaaEVFc2xGNlJzMEcwCi0tLSAvWjhWWFBtV3hEcXlkb254ZGFPbmY3\nV3BmekpnK1hvampaV2NxbmtVaEJBClk7e7+NV4XsBzJ0T1Fpwnp0AQHsLprR6ghV\nbdYlhCupO9D65sj/8h7wPrSAo/A82P2uD5G7tgyiXLLbdf7pMis=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGd5RHVZTUx2\nQVZvanZuOGVOVm9qT0dlK1BkR2lpQzRqTVZPOElmU0Z2VEUgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpqZ0lZMkxxUlMzKyt2L3R0VG4xU0k1\neUhvM2JmaTlkeG43d0czbEt4NTNRCi0tLSBacU9sSEM4WmhaMHpELzhDa3U4RHhj\nMHVHUVNDR0VES08zbVpibkFKWDBBCllg0JWFqAVYbIRMVARvuAdQyV0/NvNQUAlP\nfl+uDhCiE2UW46AiCjuBntl5BAxC8PoQbQhra9+HOlbjYbP6OwU=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIDBuVXBqQVRl\nNVhKckwwVko2b3ZHSXc5aDBaRjZ6TVJiclBBNy8xNXVyMVUgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwo2dFhmQXhPV1d5ckRoQU5MTDZMU1ZJ\nV2I4RldVRnRSYVYvS2hXOVJwUUVVCi0tLSBqYmZJYVBFUmZWV284WVMxUFZCbTJX\nV1FWMERvc3JRNGlJYTVBbkt2ZlhrCuafBdkEiS3TjoPtjdlgWDKCAOotHzeQ96pU\nqiwVysiSJxakGOnRPMbbzkYHZRhlvKj3DNA0SUrkr76lMWDcN/M=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHdOWXBxTTVP\nNzVySmsvcE16djRrUWxwc0h0Z2NzQTRuV2M4eEJPaEZUbmsgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpHUnBTbjZQZ3ZZc29aZDNreXdtZTRX\nbkhXYlpPakc0UEdsSjlpdE12MERjCi0tLSB4UHhsMlZCZlIzbGVha3FUM0lmZ3k5\nV1dXUzVTQkZUbWpmdW5ydDM5V0FFCs6tt6RoNc6+p0ph8BPPjy/zW2WMl5q2UwI+\nM4yI6bnnkMGiRkFRLF6GTuRmZN878MEI5pXRErZsD27FGd11OmE=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIG1jT20wOTZO\nbFBwQ2dvVHBmYmZuWFZveEpKWnVKRy85a2syM3Y1a25oaVkgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpPZEc2bVRPZzJkaVdvUW01OFFnKy9p\nZTNEN0NMVDlzTUZrZEl4N01mb1M0Ci0tLSA5bXdUc3BCTUppc3FSUlkyVVdnSFZ4\nVkJyU2ZqNmxYR2JuS21NYWZxSFFBCr1ztm13zGLjU8ada2cG4WsFXcm38FFWPwEK\nUbfxJ1VVgdIKnZNv9sfVmYUnp/42OJ0KOya6QHBeBwFvwtgj84E=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRWTN0NE5Dam5xeEE4ek05\ncndhZ3R3UmU5OVJUSVh4RTN3TmlkU01wTlFVCkFnbGlYamVqamlPSlN3WXlVZ0FN\nSEh2aGNmU3QraVF5dmhSVVRsbjA4OWsKLS0tIDBGYjExS1JKRkQraHRsVkVheS9v\naXNDM3RtOVkzVWpSSllBUjVuakV1aFEKicn8VmCGK1jsvWzMvJiMZtiQP5RlQsP8\nGz2O0Vg3GE+ccoCuImeHFw9saECjOBFGTo4LWe4RvOLc0VIUN/81Fg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBeVNKRExXb2JVKzBMRTZC\nQk9yWTdvWGh1K3dvcEZLMGlXQ01hKzdBOGtBCkRkd1pmeitQZmhsSnVwWXBiZ0JN\nVWE4bENtblc2SWswVmErcWtLVU53bFEKLS0tIEhiMnVLS0xvcWhEcHBCLzVPWlNL\nM2VKczB2bVp4SkVESnVxVEVOSGd2c2MKIXp2IwUiQM+bNA9HoUI5Z0NcVM6yUAQY\nBp2qfqcRlA0UXJee3OOTHrDqH/ZvTrD7oXjzN2CVrVw8Q5yKDe1SxQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWOHBaUEtpN005Y3hTcCt0\nbnhJQWlHTmRjWmVVYTZNWmFIWEd4d3ZTRXhnCjd0YVpqM2R3MWZBMURXRkVTQzR4\nazJaZjlQS2ltMHNrQjZITEl0WlozS3MKLS0tIDhUeXJEeVNzMWxEUVh1MEhiaEV1\nMmt3RUdLQi9qc0tOOXMxVGFjc2VKbEUKH5PWZ2PtBslj/Kw8yzxRzn5mXwc3gmcy\nRmcAZD/2MGVn51TqDAd9yyfyRS9uoM4ElXCEhhX9L3FEfjYKwnMFAw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6cmczRWsrdzBFRFh1YnV3\nVWFib0o5VGVqU3YwYWNNT1k5UUVCL0xialMwCk5QSUw1bnBUb1MwNGgxOTdFSGs4\ncWJCczZOVkV6ZlBXeEh4OHlrSkxiT0UKLS0tIGwvbzJVRnJhaEVZdkxFd244RVg3\nMkFMYzhHQUIvYTNDZ3ZycnJhSnNkMmMKqUtG0HRURwwFZY3630/m5o6n9rG/6fHH\nIJ2ABwUnQlcaP4Qo1MZLZRZQpEWKB0jqnE2FnIgeYZqGI4sGSYRHUQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBETzc3WWJ2QVZ2ZkVkbU5H\nU3JxbVEvM0tGRkFlb3NNS2Y4dzhaUTljWnlZCnR6VG0vMG1OaUFEeU1oYUZUcm1U\nWlBnTmRKeDN4QTVNejFMNlUzN0xXZGsKLS0tIHQ0UG5IcU1DWjlLMFVRT0M4cVl1\nWVBZRDhGU1pCL29peGdjdFFrYXFRb0UKGMXtZyR9qPr8OEFtJCFuWIpmag+TwWVV\nIhCFEN4BhBRGBIBr1jOav84LgQB4HjS2JLBYN1LKkhC5YUxMdEBT6w==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBva3MzMjEycTZMem1xR2ll\nbjEzelN0Y2RsSCtSNkJ1YWRNWDAwL0hGVkVFCkF2YjZXamtCRFlZU3BBaExscWg0\nbFRlQ3BMS0VuWEpCMG1Ub3NSUUZIL0kKLS0tIEJSWW9iRjlXRmxzVjNwSVNMQ3hh\nTFoyY2RaQXNkbXZTcmM2TmpmSytJNncKbdgs3c4FkLJ7PyxXzxUCCNX2IR1HLny5\niYsszFLw4p6KCeOxj8IyVYwfwjhsyD6naV314SHS5pha9/pgxHV4hA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNTUU0TjQxaFdGOVFxNzNx\nZVRZUWtXQmhPZVNKZ2UwS2lsZWlobFpycjNBCmgzcXZRTzlEbUVxZXp3c3lNT2l3\nWW9BVDc1NEhlTFpCeWM1cUpQczBYWm8KLS0tIEVDR09GZ3EvNFpCN1kvRWFFdDhh\nOFhYSXVVekRBdnZnR28vbGlLSW9XYlkKzxrzsT0T7Y78rwsTttkXqcsqZTckmTEB\njIuiuFk3UY/LAuZKCVhS2P4CZ7JnW+xEc4Q1eV3q6UONa30wpyikcQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEUzJnQTZtczl6K3NPMjcz\nOS8rV1dYUEpIaEw0TGZ3aHdGUFh1ZVRsMWkwCjdMOE1iUlpQbGlzNm03cVpQcWZW\nM1JHQVNzcE80RTRBcFA1RlZNblB2ZW8KLS0tIGk5azhSck0zVXFmVmdBRUw5WHBU\nbjJldTZnQWFURzhMeG9vdUZHbVVpN2MKxMmSb6h+rt/jIOGmg+KPRDeLunMdVbVU\ntcnl4aaDRTwBDfpKGBJA+IyNB8q8/Cp3cPOT4T8rRD5asK94zUogiA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKUWw1SitjVG9ObmJzT1BO\nbFZiaEZDMUcrd1lsNzRKN01SMUtOalBNd2dFCkxHdE1RTENjb0kvR212ZHpyclRX\nbGlaclpzQUxnSzdtbzJkUWFUVnVxanMKLS0tIHdueU43OE5obEUxbUxXbjNiNCty\nQno2eThWT1FOc3B6VWY1L2NobzQ2bmsKz4bDNH/sou3fCCu4rkLx70Gn0YqndreQ\nx2N+LR1BcUrOpjD5cXAr7OsdgTFYO7wJj6YYGab+LC/KDCtN/DCUMQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFWnk1aUxVZzhtcEdIQXNi\nV1pPc2ZLVmt5RjBOVXpaaWxlbDMxbnY3QW00ClBqWXNMRHoveXhhVHZwOHBuYnNE\nYWdtYVBCQkFNQWpMbDN2MVBpL3d6cW8KLS0tIGE2MUNVanFKV2RtSE1BT0R4YVlx\nQ2txaW90VDdmN2tVeUhmdW1OTEwvc0kKI5oNErTcR5vdVMpOBMK4KENBGYEyw/FR\nG16in9DavSI1UNrY2eM1GPjQXbH6xarkJOM9YTgvTEOZB1yzR/nozg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1w6fg9v57jesdv0ectnhynmy5vqdpf6hgyhnn5rejyj2xgghrud4q0jfcta"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-07-22T03:11:03Z",
|
||||
"mac": "ENC[AES256_GCM,data:zkDpNDhhCq98ErY6DWx2ZQxb7K8fnns83nAJ1dMvpNhAjeQrED1HzSCOn7cT4zoq0N+a17sHIe3RnsUUUJF/Hrjglb8YdXvPUA3Wwx7wJH7yZ/V9uqkq0NMq6DPS7OaRuklFMVMVsvz1MhYppmJRoWoaspMqPjITyU0cL+4Au0E=,iv:5i+IpLvMvSa52UTYmtua9NoBMGdKkytp8DrWw2GLBfc=,tag:hRmywwCRMd0f9B631AHlkw==,type:str]",
|
||||
"version": "3.13.1"
|
||||
"lastmodified": "2026-10-26T10:23:05Z",
|
||||
"mac": "ENC[AES256_GCM,data:JLkxBUOjkW1Vih53KBHKGB1VdnLoZx0zWaLI6eDXCZnNfPNvamfvW4WanZ8tN79EJwul4GoKR+uxdYUEFO3uM1TJEnBIsAggB964YYkOnz7ySK+bbulNOGl18zG3PJ5yrvxc7AZHh/MHe/B3LMQU5IGbOBdDR19vm0ngdyQckyQ=,iv:LYv99ujQF2Msn0ga/+QEc6jWl2ZsIb//VNYxQaEEQmk=,tag:VnO8Fxt7iJJSXmg0hy9nFg==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MCowBQYDK2VwAyEAf8lV61N5/9FgxJ70Ee1bbg5n7BlET7mvu6kQUfYBVoM=
|
||||
MCowBQYDK2VwAyEAM8cVWZfw3JNjrGdv8tEhFDx2PeKrDj7Q2+ayknY1fgU=
|
||||
-----END PUBLIC KEY-----
|
||||
@@ -1 +1 @@
|
||||
12D3KooWJRC1TRSECsZ98TswzZnYjwkaam5upttjvRtDAM7ScatA
|
||||
12D3KooWDJV2o6yihzx3o4hU9D97nbDAGdN919VUUYejD21qmY3N
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:bguo4H+gWj+w01fC2wvO1dEf1cTtWwcYvsfjppi7YbL7AU4SvFm/P4bv8WjHzBF18jt4tcqGliofRYw2UsI7eGE1m9XUYp6blJEA1bR9bSIHLMwLkkWoBYaJOf6vySOyLwR3U8THm0CP1HQVd9cLrALtjj8XGH3FcW0kB0c3R/Ss+0mdn3Eec/MJb7jTBWPQvhQIuMEk+6eTnivuQ5cY8s2u6rty0hGnhwF/NyFlcJoM5O10Z8Ez5DVy85L2ZgaEW4p+m8/647jcfAgB87mQVaWTRhl6wBKcz1jZ1ZsM+Y2M8H1j5Cq65rlF0evO,iv:s1phNDwOJPGw9jVJ4wbS9EXDbUdiUESfo4AyIKbeoW4=,tag:Rb0tNiGywMBROkImsiUygQ==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:snfjIrwIAWR496R6FK+zG4++l5oLhtd67eBuegB6Udfxk+MzQ96IhLpqa++ivHpdeDUKww1mrTPyRQBNPF3GdE14+iSXgExVOQx53K0UY9AZcJ1+fnGZVj+qT4+5/cs9dzL3GP6Hx3ayal8/A7YUrvAX7EZaS3KP0A+Tp33Aa1O86IlDcq4V8YFLxtNxYvZub4cx+Gmku0EEtRR6RjKrXK7vNeQyg3mfcqSMtkSAWnoZh9lBWVdbpfztwf49gQhVSnutR0esxBm97Mj6iGopmJ40UbeMxcJ/u+t+SC/BVJ+AGsspf6H6n4OJ0nOy,iv:wS5wYLPJBPZM79yh3PybLYA7zNGyaKNqz2NeYDhZrIw=,tag:527oUT7RDxoN61QEwnu5Vg==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxOGhaWkoyY3g1cFVRVStY\nLzU0d3Mva2hNbWt4bm9Nd0lWbkdLYXhoY1dVCktpTTFZYVNnakxENXZ0MkQ4K2x2\ndGIvdkttSE4xemtaR2JZNHNyNGhxbkkKLS0tIFFKYkg0WFVpT0xNaFdMT0NZTDZG\nYisrQnQvVVJJakxzMjVyTUV6TnlQaFUKpdPMfyyA/VkZjWjcpEMVO2ebOhsOfU6y\nH/XQgBd4lHkmnPlgWSEGag8ZtE9ld3jvTM8m+rtD4ZeGByET/da/dw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVWGRodk9PMFV5R29NNmY5\nZHh5TkU4aTZJYVBPTk0rSElEaVR6K1VDL3lZCi9ubzNtTkUxMVkwVHAvYnlCVjd4\nUGJzREZzNFNwQS9sUCtPTUtHMDROZ0EKLS0tIFg5aHJPR3N4MHo3a2QyYXQzSnll\ndkVpNVViSDdvK3B0dUxkV0tiS0tHWlkKlBOMFMThDol8AZcpNCA1ev1CExhwDCbE\njTg2ucD7eJrV2Cc4zi0IMJ3uNnRcFzmBdF2x9kYyLjrszz6fAs7mhQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwUVJCVFl1TUdrbXQ4WHJo\ndTQwUmFOTkdYZnFRR2l5RzFnUG5KVzBiRzFNCjF1Q2VoYXpTZFFMaFJ2cll1Y2V4\nUEZJWC9CUGdlTy93WXUzWjdRVkxKRzgKLS0tIHVmeXhXSmprMGxBYmgwOTV1TmFp\nMHpoUG02QnhHekxXVEQydWZvRDQrVW8Kp1gjD8bBr1Wa9+7rsJvV8bEeTEbqw9sr\ndCKN/I/5DbLRjEQrXqMgkUyHsc5ZJAaFUBR52cT0ngJdRBK9j/SNcw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZMHJGT2NzRHpvS3JZVlNz\nSWRtVHBOWS8zRHQyUmdlT2dmdzFEVFBQV25ZCjJwL0ZvWk1yZTRlanRYTlVpZUJY\nZEZhMzBtY0VwbDZKWlNZTEE1dWI5R2cKLS0tIDRaQ2l0WDNwK0s4aXZiUStCWSt1\nU3F2VlRFVWRacGN3SkI0Z1pwUTFIcFkKKearTPX98XkQYqqLSiTZuLcO6mJy31Ct\nhAoldDAwj6d0NXom1DfqP0C/OjmIPPh6TxBG1DNQ2xmlaH1rLXNY7g==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1ayu4av6r9rtrz54rr5w9vvjucnxxdf3pq7ut0zrqzqd9dpqjjyws82fff7"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIG85cXJ2UXpm\nSUJMQnJwdzdRYUtkdGkxUFk1Q3M5UUhmU2l0bE5hMERTVEUgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpSb21rNFJUNjkxa05FcUtHZCtEQSsr\nWWlHMGpEKytqR0RhdFFDQjNPWW1NCi0tLSBkYjlrc2huR0tSaWhnbmppQ3JmNWhI\nOWFhbDh0WHJQL2VHMTNEU2c4ZlpjCmy4ZVBPU5xjtb2ueuZrK894Shlxbu0cxIcu\nBnzk4UnKW+tUkiHW6qVnC3Eve6eH7a8h7gnSZWeI9YHpu8SerGs=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFo5NEliTXNj\nLzNUb1FxQlBBaGpsTEJZVFZ6UG9YMFljc2E2ajVvayt4VkkgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpha3NhQVdnZldlaHpIR0FyL01xV2E5\nV2lSWndBT1BzZkVQL0dnZ3dMMjA4Ci0tLSBkakhQOWg3eDhlTTB1UStDWDZpRDI5\nYS9BZGlMZUVDK1Bsd0RCazIxL3J3CtJsMEgUstvsnKoWKJ7Nv/rvq9oKbeEnGFvS\nbzqaiG+jZM69hOtraxirXTzJ17V1GD6OlmQgYf0tDhCSg0KIvx0=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIG9DOTBWTkFx\nLzVDeHVJdnFWOGpMT2t4R2dqNWtweWdqWkRuMDJnREhqajggQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpMZy9LUXY0N1hRejNKdTh6MURKek95\nUjFhZWQ5RXQ3S1ZZaVA2ZHZHemRVCi0tLSBwQzk4ZlFoVzJjM3lMcFQxRWpHcysx\namRpTEZ0UHI3K042VXpoTU9sTnNrCuaO5RAG2OUmt2LKlfkwYjmxr0BFWB4XrPo5\nkjGxB2nLjpx7o+4oMv47wsXrJcPEIHHdX7dfUIhKdWoifH1XBvg=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHptaStKOVow\nZ3dUaVljOGFuTHJkc3I4ajFsRVVKaVgwN3JOdlZJaklnd3MgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwo2M21HNHNWeFJLYVBYMG44enJvL0dr\nRi91UXlteFp6Y0RXT2puQjliVkFrCi0tLSBHNUNuSnR4dFhOLzN1VU1RRTdlTHB4\nTlR0cjljdEdVME4xWFJYVmU2OUkwCjN/QIX4DiE4I65tdUZtsaeXnMD0QvKMUPd5\nUxR1Wir5ajMmjNhnmTkVeZs6KywhVvYxpkp8OEBsu5tOjlyxpPU=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEdMaC9yN3Bk\nTi9NWGUyN2VUMDdJSG5WN1NtdmVwYlJXT0VnVDBpcWRFd0EgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwovd21Cd0pUWmVkQnJNMUkvMEJaQ3Y0\nbEF5RVFkMmkrbFMrelprWWNRQmxjCi0tLSBod2lOY29GeHY3WUg0eXhTYmZtb3FB\nWjlJY1FneXNqTTJ6VnlWa0llcVFvCuht+S/ZXdcGiQFye6L3YQ5QdEC7QqQlr4Tk\n9ejaoPk0yFUocYMcAekmyR3nChC7TDXtxjPTUMTkdqvU2WAmNIw=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIFhUWDlWNWdB\nUTVudnZwY25RK0l2UkNoUVBLRTZIVkZCTEVudGpkbDVTQWMgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwp0ZG13OFRSb2lLbHRHVEpKaCtmNExu\nbnRwVnNKZjVxOWg4YWhwanZxVjNVCi0tLSAwK0MyN01sNUNnc0Roek9vSGVmOFkr\nRTdRVmtiMldmY2lqclIycDdtNk9VCu0NXeu7iIC1THZat2yZqIEGuF77PQMrsGQe\nNxrlC1UURICuafEU7DCKzcHZ1Peu7Is8jysfz3FPxvpBTYVvDxs=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtcU1LdFVPVlV6aU5ScE1S\nOWg1dzBleHZHb0o5RWExSkl5d2VYTU14RHk4CndOQ1lwTzVYUzM0K3o0aEhqZmVC\nRllhMDRWdmpvS0tYVk9RdXV4RFVnNkUKLS0tIDNqQWJIK1JhdXBNb2RRWnJCNHZs\nQnNBcTRaQ0I0VkErN2VucjErMTJRTzgKdaiMQUz/xNGiUaDbHrRAD4D4GdFJMDS/\nLUDnYE3KfglS5RPY7jZzuggApzIqfuI/tgDbzUk7oudPIb4AjjtfVg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1RkYyTE9Gc3p4a09xaWJZ\nSzU3dXB4cFRWYkNYRno0MFpIZllJeCsweUdnClZKcnZVQ3lKbGdqc1F4Tk8wSFk5\nVmJjdmtwNi9DeUhkSEs5SUU3N0c2UnMKLS0tIDdDbjJtRDM1TUphSS9jYjE1NkM2\nbWZjZm9aTkRsSXVBNVhCUVlXSXFYT0kKU6gyqOmpyDE72YSEnXEcUHIfIW1tAOlz\nnjE8jUWcCEwqMaHqOp+NE4wOIjn98wGCoSlNG6Krf+afUUUdBCvFQQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBb1NKY3NWemg1QkR2NmVT\ndGhkVEFvVFFyWklqQU40UUdvQ2dTQytjekhNCkZYWC9VRnVtN3JCM0xObzNYbFky\nRXQyN0ZUaGVvRE1XRnF2MDZuTlRTRmcKLS0tIGthcHFYS012R2tkZEpzZXJzMmll\nRGt1QS9HR1ZaMXZFdHBSOHVJZ2RrU0UKAX8L0WXdf9Q0Mfg3MKbAewFlcUh6g066\nCxZptfMg9+2KNuOLvX1eduHkALXXfeEdRbVlhfCM85L7lji7I3kkrA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZcFgrVTJYdkNQYTJvaVdN\nMUYxRFdjMHhvREpQMnErekRCdVZCWU5hZndFClBtc1NIMWFwMDNwWGZydkFZek5w\nMWNSYzJBK01Eam80TkRpMXVZcFlJQ3cKLS0tIHM3N1RmdUZQWm03eGlCbFMvd0Vv\ncmxqbjFyVmc3YTliSjRGNmF1UkZSMFkKOW/SqwxTQtlA59qgpG1IRCin4fF3hShV\nWetyJ3b33ZFhaTKeQOSYTRczuYxUjXogtCu7jgGI8egP/+s+mcXurg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsTTdEb1RVWU5qR043ZUUy\nL2l0NDdsYkFub0xBTGhVR0hGSUQ1amI4RXpBCjhYK1BkMjhEZ05QTTRGV25hZjRV\nZC9aUVRXckd6R3NEWTJxUTgxbE9qTnMKLS0tIEVscUVpZ3ptR0duOFhWbW4wcC8x\nelBnUGNqOVQySjFoUDZYbjhob0NWaEkKJbTGo/NUNUiK63wesahK0W4jw4TZNV+h\nwrsG9o6Y/ijqcsV46bDAFRCVrUXqWxsoTCgdWcbrGTjNUrJ3pjm88w==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIV1c0SW5TRzEycjk0MWZN\ncEpxMzkxZmd0U1o3NDlBdDRPdnpYNEp2cEVBClV2TzlKN1pLMUc4UXhNTEMzMGlo\nc0RkM0xIRVZLNGIwaUdQSmpmaG9kdWsKLS0tIGFoYmVGaU9YMDhqYjJXYnp1SnFW\nK092Ym5EZDJuR2dYSWljOVZvQUFqbG8K5KYnOrpqzuaWw52tsLRygThDZmjxcsM9\n34i3o+X0ZLZpUrFFHwXW6nXPXPyrmz7ZpibKJhSiGgH/u9T/jK0+dg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2eXdVRWJkcGdNYTgyVldK\nbE1vTHRaWUIzd0NSUlpFZ1N3SE9pdndtaFhjCkZ4VkNDY21UeVVhMkcvUENPMTk0\naUtJUUJxUm5tY1B3WHJEdDQxcXBqVGsKLS0tIGF3Nklmci85Q0IyQ3B3RXhobmxY\nbFNkQjk4OEhYUEF2NDF5Tk9RZkJTdUkKHKbcWHAK8nJND47GTdj0j3wlK22XDs0e\nO6GhPtqBC1Nn7WFOXZ/RqO0N8vIzrpV1+xbhgbMRFb+tzjU+HdKypQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwOTk3cmtlYk9LTDAxSit2\nQzkrb3FEWWtFektjVjhVSFZ3ZDJNc3MzNVRjCnFHWlpnU1hiZXIxckdtT2h3MGd3\neGdLZWNNQ2htMzBBK1htQU5JN0FNbGsKLS0tIGJaaE9PTnVFc0VZQ3B1bHdNMnhS\nelNEWWRHS3ZzUHhZYmJ4OE1jcHNmT28K8IoZqC8vQN3Cy1VVZmTX4OT0VXrHrBul\nT7b1ze6E0eYSUwASDbXjajNaqDLVjMeK/HDZkU6chSSKk+JU6TR+VA==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-07-22T03:11:04Z",
|
||||
"mac": "ENC[AES256_GCM,data:D2ZSUMoaDBoDr85lqdvHTN0qFvcquoZf65EYzSJjuSLpIngPpQuo9pnECEOfDQ5PtpfGJrBJ5AJaKKFz3dtXZRrQNirU3c0u7DfpQQAGzmGB3hbIJnwmbPgCtarIiLkaTn5OjIrm/SMiAn6ZcdSQrzQH0gDNZszdG2sK/XJVi7A=,iv:sTM3RZzCl5As+EtkOZtGLp46Z7iF8vbmPeXsQ/F1SZo=,tag:BjadDNas2/DZeOKtwdBIuQ==,type:str]",
|
||||
"version": "3.13.1"
|
||||
"lastmodified": "2026-10-26T10:23:06Z",
|
||||
"mac": "ENC[AES256_GCM,data:FBePq5YR9RJYaqwq7h4OrhS8bGmeaMXDS0UJXkvflC9KrQwiXVbaLMENJqhq3yGKLS6LWPBS3Hyq+H2zeFp+woN9pN53YtzFGeTRgdfyU+4Y+OFcps/nIt5ZFD2707CXKhx0hokYfOPpxqeTv4/ZNCfkRcdzEK6Iy+T2Q/oQw/Q=,iv:VLaXDY6uB4aMMbyKaiGynzMOi9KAPsyYsjZijkWnvrs=,tag:CDg/ahC3e0ZXDKCOTLXh3A==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"data": "ENC[AES256_GCM,data:ZtJDLVi9KCLlcTtPHRpjTsE2X9jPXHzO5XkVI7o611Cqi3mahgCGA/1Vw8uz/9ow7/S2Uers6Wm9kBKOlG8Hc/wJxPgF4RyFoF4dayp6tTdNGPZDvC6ulp7HQDV4k0Bf8qRPXBwvqTIdFwgQSaOHeQVN/Jdtu/k=,iv:eIqVPISSa4jLjxoY973p/KAIHXAFacO5C7KjR2klXkg=,tag:dJGvBRY2pFeDglpxqttuJQ==,type:str]",
|
||||
"data": "ENC[AES256_GCM,data:WM8JUzDkosUqMvcms5bqTIt3hX8XQ7Fmo3ylg1Ym8apBmfb/XAUnoFbPu7e55u4XyR52BBeedG/w+pdGwFCSjSBXGcxvrsihfIGbz8YDOakKV1ltAPSh8k86eRbi8rTsCPbOYrDkAbwkQ/4BGZkklvXW7k5OS0U=,iv:s++EHvoGTSd84NcMH3xwsZWcyr2lhVgWJzdJ+7QSavA=,tag:R+tHeyjqfeYbl0xdCVuQ5w==,type:str]",
|
||||
"sops": {
|
||||
"age": [
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBodUtPanRyRXc2a2Fmb3hI\ndDZ0SGtqdjhNbnBzSFc4UjVCSS9qVE9nQXdRCmtFUndJcEhsSWFBVkJmelE2QW50\nMjlGcHFaVFgxQzdWR3F4dDRiVzBMUm8KLS0tIEtKK2wrWG9MYmpqNVRkQk5NQllE\nRUZ4a0NTazBwKzBTbVQ4c09nVmVYMFUKgE+8BG1zhlejXOKmkIHGmjy/KfUuHctY\nrGMCOGhYFT92N5JFJ0K4+5KR34o1oeK3xdftJdbBkSQlytIDqcUKfg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwcTk4T3NYeEdDSVhXd1Jx\nZDI2VmRjZkwwOWQ0TENJUnYvVGVlaFBiblN3ClZTYm1EVE5vMkxRaUhsWkt6Ukhm\nVlV3eThtQ24ycDBxdHBCa1BKVWFUM00KLS0tIDh5RkRXb1dKYlRjOXZRaGZ2UDRu\nK1NuejhTNEI0dUNONTZVN2N3RHltd1kKvSrEoQ/z5x9lsQ8Ey3kSRjaosO4XGuKV\n/rI/OLW4A9Av4HV11V1hdeTwpNbTmVeycg3rQUr+9cj8r0BtbH8m7w==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age17d4qt0n9edq57tgcqyk8eu5mrendl59yt6z2y3a4vkq7el8krqtq6lq28g"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlMHRXQ2R5RUVEYzdNL0xR\neko5N3RoQVNsSVBhb01mbzFhelI1dmlWWldzClhmNEVZU3puWERZamIvUlhDZnpX\nMG1lWWwxV0U0c2FzRXYyQlZFRTREdjgKLS0tIHpoOTFVVG5NMUJmOWk4ZWxqSnE4\nblp1a3k0cDJNMXN5SWV1TmNPMC9xYmMKjWxNIkqWkRqkvtOM44W/gS2WgWT+2+i4\nugSYPtCr3NcDi4LqEbOEpiqpnd9k+fAGDsPrpNKwUNJjRzEvKBjTaw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4YnVWRGlPVUdKSitVMytI\nZ2VLMkYzcjJJQ0lyc2dHZEF2aituRnZueEVrCm1OVlNmV0Z0cjBFa1Z5OVIyNk8y\nU0NicWR4cytPMVNNdXFUYStaWmcrYUkKLS0tIC9CaFhZU2JEQTNiSTBtemV0SjRF\nSmNrRE05eXNzMEEwdDgra1FvSFdvamsKbtSuO8x+opMRgjIpQNm1g+Z6cIkbjzIJ\noqrFwYKi7pG2DFcXoFn17WHUu/6IeCJlO5mSgVVtYCIE6f5C0feNMw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1ayu4av6r9rtrz54rr5w9vvjucnxxdf3pq7ut0zrqzqd9dpqjjyws82fff7"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGxCZmxtMU9Z\nTXRMUG10TmtST1pPMEUrSDFZUEJEbDEyaXIzUWFTeTk3eWcgQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpCT0tIUVIxcHRveE1WcXJoVzIzR1Vw\nbHdWWkJzRjUrZDdVdG9EekswWStNCi0tLSAwekV2d3Y4VlZRZXJjZjJWWjl2V0Fi\nUmdpdXc5K2VxNkRxMlp5a085VDdvCq5q2HMse/p2TX40/5Q89Ad+DTSJ5na2a8pJ\nKoxen/037gsJKkTLAFzRVrthiENvbqYtRj/JUEHT4N1xGaV3Bbw=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIHJ6UjdvYTVD\nbkdYRko4UHlCTzZwMVFTWEZ2V2FYR01SczRtb0ptT0JRMDggQVEgd0l6SlBCVW1v\neDl5N0lHYmVrajZzVzVTYjd4WVdNVjZoZVlkUEtmVXlMdyBIdmtoczF0dmhxL1py\nS1hsc0ErckdoVVB0bE02RGdCNW5raERXT1ZJMTkzNjRGNHd2T3ZSTVYrKzZlbEll\nVTZKc2JVN1B2SzRuNkpaekhwSWJQaFZVQQpocUN0OHZITzgvRy9LK050c09hTnVX\nYW4yZXpaMFpjUE1VcFl6R1FwY3ZzCi0tLSBxeUN5cG5KaEFZWVNlZ1Rnc2thZEpo\nYTZkUm4vemhHVVFVVzdWSWRCSDQ0CjjYCSmbWt9mh14698pCzR76aN0obBAAL4Qw\n4IDAC6w/Qu1MFdY0AqL73xNJnXn5DNtcMoKt1wx9Rz6l5sLLSY0=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpf43tgcfjm048lsqskvq34w2t4uvrm5qy6m2eg6zjj82ctca8wctgpczxvj0q4y6337uhvsxdh5j86k9h9ymautpvv2759ucwnef75ez7pa7fpkddklp40mxk2tedsp74359g0kefn5rsq0x0yss6cu4yd0h06up0rp08t6yc4l0hfa9y8jn5fkx6nk0hjhz06ykwv0fyxe7z42q683jy0"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIG5wZkZjZUdC\nV3VDbk5vYTJtWndnMEwzVDY0c1JYSTRoMXpXRCtrK2pMaE0gQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpYdWhJS3lNdXdWYnN6OGh2N0VYeXBh\nZUZtNFJkY3BnWmRXVjF3NW0zSkRRCi0tLSBIQnFPYWpxTWRzcFMxZEoyUERGTWUy\nTzkvZjZ5ZnlVdVJxenpVUzZENG9VCsXVmFARSwT+sYsrzuv4IvPgnxWGDtcEhrTq\nEy5h8vQdlLhZ+8usUi/qYOt1rMlihwAsw+LVMUf4ia0iKPlY7Mo=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIEp4MkEyWHRP\nOWdLOThlR2VhOUhDTlF2cllmN3hIczVsNnppNHBZSVRwekkgQVEgZlFBRFNyWkNS\nRDJQaUJ3WWowTEcwaTk0Z0tiRHpQNmhkMTJZUlZHbHlEMCBtMzE5bzVQb1JmZkpy\nY0orbEs2RzBSVXA3UmZYZkRRanNnc2pHSnJjK1pLVmZOWGR4d0IwZjh1YXlkakRx\nTm5EMXR3ZjNHWGl0Ty8rcHpQbkcxRTZmZwpkcFVGR1pIRXJVVktPM05keVE3SFdN\naERGU2VMa1IwZy9STE5HSWNnaG13Ci0tLSBHUG45LzkxN1NIeDd3N0tkdmxVUUR4\nS1ZBaWZOT1kxdXZzV0xQS1ZoaGRVCkt9cezUa4efGFcsopmKOrU4QKHYhUWCiqM9\nPyuEKd7U1H9I+7Y6bXkuWtFag3Uibyji4+R4dWMzhW9leiDD5Fw=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqprw0vfpc8wzsu78quc777kmee54ln6nnsjrnrhl7nr33eh4kvkksqp05qqxj4kgfzrmrugrsvg7skx6ghh3q9xc0x0agthtkvy25d9eq7eklta5wf7s30hexkuyl5546rdz9ffa5tawlp5yweqkgccntw0ny540n2am3cqw3luhxkfmrp63kwr6mwplhr9u26wll48x0n3k5f60c7hg9a3"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIExJUEI0THo5\nOWg0bVFldFFWWHhvNEpTajZHM25VL1Z1Ni9kMHFoci9CUkkgQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwpBZ1pQVjdtVWdpaHlyc3JCM216blhu\nOXN6YnNFOEova0thYy81TTRJdVdFCi0tLSAxR3pjZHJ4bUR4R2pNUm52NkJtUWVk\nbWVOM1NSYm5ySFVtSllGaE9SQzJFChLhr/T9y+01GnSrX86VoK86J87M8/4Dal9/\neS3yvPdqfVpakawLcg3DTvtL8xiVrNh3BcasBiOzxTFfNtqN7S8=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IGZpZG8yLWhtYWMgQUFJIGJ5eVRwclZR\nZFpoNVpxN3huSEtZK1hFZmJMVGYvbUd0cVpxZXB0dmVrVTggQVEgZUh4S2o1R2RE\nV0svbnErTmxodXE2bUxJK3lla2lvajB3OXVwZHJtcHU5dyBKU3I4WFJnK3BOQXl0\nZDh5NTB5ZFlteFJIM2FVTVp5cmNyRXZqL1V0c0l6L0tSb0c5ZU9jbmRXMTIwb2c1\nQjZsREgzWUxaOXBUd2pQK2NncDZuUmZkZwp2ZXBSTGZ0Y3hDR2o2Y3N3RUZldWM0\naHNNbU4zaTBZV0tQdTI1eHpCbEhVCi0tLSBSU2pFeXVsU1hxRGNWVEIrblpuRG0x\nR0pqUDYyS0cyNDltU3owOXpTZUlrClonDAkhwk8JC6RCnG6HexqFFojQUpki2cmg\nlK9+bpntRktuC2tBLVQSIV4fp/D0GKve2QF5S59XqZzajw3ZqVc=\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1fido2-hmac1qqpyewum3q8dfcumfgec8nn958aec9f4q9aqy0k06kw5kq27d6fdqdgp0p7y4ru3n5xk90u747xevxa2af3v37e85j9g3axrmw5hdwdfh0wz22hut5vrafxsx26a7vh8fjwkymz3ramfgvvu4detztu075kmpr8l9ydqda0rnjwatdwmfgswg849p37astvld98s3nleeq575azlwc2hhpuh"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCVHd1SCtLV1hWYUdjcXlu\nT2JwK0JuMmlhT0kzZmNLZHF2aXJMcVR0MVc4ClJYbTlFNGQvV0h1Y2JzNjcyZEtu\nWDhZMG5SMmw1a1drMUdrZFpXbVZFVXcKLS0tIC9NMkc3VE05dGJXaFJ2b0JqeUJX\nQW5FNkMzNmVxcHplcTBnalZuY21PSW8KE0xyLLtQ//c8e4YlByMqniZ3urRrVKih\npnBX28fZmMK+fvpY1bDxhMZfdOORRUzPTGfDeCNypdCXKvA5+XjFng==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUbjdpUlplaDZiT0VUQTFO\nN3N2S2VYT1N3SFFQUW5vMFBXcVdtNVIrSkVrCjhIZVZ4WWRIZVRVTTU3VktYSnFl\nR1BmUXFTRzBWU0p4YlJQNXdlRFp6VmMKLS0tIGI0VThtdXpkSkUxNThBZHhacTgr\nMzk3T1JWckNMbUlGUUJKZitrZ2NmV3cK0Nz/y+cImy+uN4kW/GbOALBzbLsoZa16\nZuv9788923x3hrj4YHQir+a5c6piMCfSOX3fSmITjNPHE5CspBZMsg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1hlzrpqqgndcthq5m5yj9egfgyet2fzrxwa6ynjzwx2r22uy6m3hqr3rd06"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGcjk1b1JIY3ZvZWEzV0dq\naUc5U25jWlBIbFJvb1h6L01jUk5IMWh6MjIwCmpxUDduUkZ4RjI2WVdudkR2RnNz\nTjFFTngzK2w3MU9QQlVqeVhKSHhpeEkKLS0tIGRkdngzcE1laVN5d3lxU3RSejdi\nVlNad1FrVnd3cHNhVmphNHBOTXN3MkUK37Hj7ZrmL6lwd1x2wu1TKl7SO1hI3SJm\nK5V/kZcius9JrEl0YKnvFUtBuZhYUpc08O72fbWItPNbCa4n3rV0uw==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIakpmNW1wMElYN1l6ZXhn\nRGc0cklNZTRDbjExRjYrRzJkcXE5dmZoV1c4CldjWFByK3FKUEc2NHc3bitsWnJV\nVXBCS2JNOHl1bUhOUXFrZ2NmMmxIZEkKLS0tIFB6NFRVd0JrcEJsblRRZ2xhMlls\nMTcrZmdpVEUxbFN1elY5ZnYwdVhjdTQKsG6HuyHruJ+fzfcFONpCkeJXaD9U0QHw\npcGP/QZ+rAfoCGwk/7tUR82IBZLAxQDrmfRarkPKoLElS+xDOqKCVQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1sg0rvgyetdcqw7j2x983fh69kdkvqsngpe5x36e5920qa7fze3cqhj4wgx"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIZVhRQWVxWkt5RGdDOTgr\nRWNxRlFSQXhxSnUvY1JaMmluLy9wOVp6eGtZCmRueFpaUXBsTTNLOC82Qi9sY09i\nTEZzalpaZnF3VTZtZEJWNC80V3l0Mm8KLS0tIHFMVTBPdStwRFhyVkZxUjlXTGx1\ncEZtMitaY0ZFOTVwRlJZODRCVldFVncKNFBtzd+Wn9ZzmvCF8cE2iTmsu81J0/Q8\nU0rnJ491j+KyEMcfKW21KbT980KzNxq7M9spfIlwrNPiYn0ts+VgKQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByT3JHY0tmWlBsbkVERC8y\nSUxYcExWbGM3STU1K1RuTG9LeXAyVDhDbHk4CkppZVh1STZBZWNxc28xWVlBQTFt\na0srOEszQXEzcXRUU2NGY3JLUHpnWGMKLS0tIGNBU2w1bkJQMnR3cGF3Zk1pa1d3\ndGVINWRwVHYrMjVPL0JscG1uZW1rTE0KY0I4ND+L3TUTmfCfZuuLCg3HxI44SaRk\n6loTd69gGGgqv8f9LWcrzfj6CdAhZF5xLCpoLIRD9uV1C06JIkJosQ==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1swlyyk2rzvevqawyeekv75nx2dz34zpe3xqhkqme26gcgeavy4dqrfpcd8"
|
||||
},
|
||||
{
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5R094d1lUcGMwb3M3djR6\nWXNjLzdyMFRhL2NzSGFOZStUNzhvb1gzNW5nCmpvWENaUG9RalBzY0ZFN2dNQkNy\nN1Z5aDlaeEROQmR1VGF5Q2ticHpaYTAKLS0tIHpOc0duWUxRYXJvamdKQWxobExR\nWmQ3VEZYbXNPbmVsa1ZmdW14bG1YdE0KGeADyQt+tfGZiCS3Ne/EA7RucAZE432M\nvWsQYWU6uNsTQOsTimHuS3Hnc8KctYJZvJDN2mtSLg4s3fC+naccMg==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyazR4THBmQkQ1WTV5N2lC\nT0k5ZXU1Y09zRXVyanA5eWpRMHJva2NMcVJvCmt6bkc3T2dBWWhTbE5pVDV1dEhm\nNUR5YSsveHZXR2ZLMlFtdjA1OTY4YTAKLS0tIGJCZ1VVdnlHQ2IzOTNiQzAyaEV4\nTGlmTEFrNU1EaG04N0tMc3NCZW5NZncKeOkeY8KHIVpVy8ynFT3Weqkz5vw5J9LM\nil8ivNlyPjntWEB56+c0OuCx82OKkcPqb9OLHxlW4ncs6ucAOpxK5g==\n-----END AGE ENCRYPTED FILE-----\n",
|
||||
"recipient": "age1vphy2sr6uw4ptsua3gh9khrm2cqyt65t46tusmt44z98qa7q6ymq6prrdl"
|
||||
}
|
||||
],
|
||||
"lastmodified": "2026-07-22T03:11:04Z",
|
||||
"mac": "ENC[AES256_GCM,data:ox0zpoJ9L2ptbXncO7rMWrZtulTsGRdrLKb3vmSADFXthWYY+YXyigJ4/PwjC11CqbaeAO6HcFdKuYkY+o2XQMvdNdCBGI30+JdjLEM5VLQxrOW/qbXUH5A/+jBjYH07gMx+uWtPZARdbkAbthEnH59WbNrudFmfVaF4a6q91jQ=,iv:YQ6+p4QfdQV3ULfvBnTM/12LLhLT4BBWmzTJGIuK9B8=,tag:247OskDeqDG14D+81jZxXQ==,type:str]",
|
||||
"version": "3.13.1"
|
||||
"lastmodified": "2026-10-26T10:23:07Z",
|
||||
"mac": "ENC[AES256_GCM,data:Jd1OQuEqCBkYHiU5ZouKxj6pZ1BaFAAgwvybxHjGL+tipqW7PwqDgAukG6SWSHkdVP04cd55D3M/uL5rOw//5F+IXgmonA9NyBfvAREcRr84BhAWnwbtnDCNNk1Rt4BC5/7ab1FpS2PIaX0UavHZU13vf57Rh+8lz4Ad2kwlj/k=,iv:9AmQzSrQNGpqFHtfuLewk8T5rsL9z41Zwhi34wq/N+A=,tag:gAPK8hIVFFSoGyuICsUFFQ==,type:str]",
|
||||
"version": "3.13.3"
|
||||
}
|
||||
}
|
||||
Loaded 100 of 243 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user