From 56b9c6c37ff7076a1e78a8b1dcf90b8e272569d1 Mon Sep 17 00:00:00 2001 From: Simon Bruder Date: Mon, 31 May 2021 23:02:11 +0200 Subject: [PATCH] Add module for on-demand usage of mullvad Since wg-quick does not require the configuration file to include a private key and local addresses, they can be added after the execution of wg-quick. Fixes #32. --- machines/nunotaba/configuration.nix | 1 + machines/sayuri/configuration.nix | 1 + modules/default.nix | 1 + modules/mullvad/default.nix | 55 + modules/mullvad/relays.json | 1997 +++++++++++++++++++++++++++ modules/mullvad/update.sh | 12 + users/simon/files/scripts/mullvad | 54 +- 7 files changed, 2117 insertions(+), 4 deletions(-) create mode 100644 modules/mullvad/default.nix create mode 100644 modules/mullvad/relays.json create mode 100755 modules/mullvad/update.sh diff --git a/machines/nunotaba/configuration.nix b/machines/nunotaba/configuration.nix index 2b7ecd8..f027576 100644 --- a/machines/nunotaba/configuration.nix +++ b/machines/nunotaba/configuration.nix @@ -11,6 +11,7 @@ games.enable = true; gui.enable = true; media-proxy.enable = true; + mullvad.enable = true; restic.system.enable = true; unfree.allowSoftware = true; wireguard.home.enable = true; diff --git a/machines/sayuri/configuration.nix b/machines/sayuri/configuration.nix index 2d12cf7..3279e74 100644 --- a/machines/sayuri/configuration.nix +++ b/machines/sayuri/configuration.nix @@ -11,6 +11,7 @@ games.enable = true; gui.enable = true; media-proxy.enable = true; + mullvad.enable = true; restic.system = { enable = true; extraPaths = [ diff --git a/modules/default.nix b/modules/default.nix index fc3e9aa..90a00d8 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -29,6 +29,7 @@ ./locales.nix ./mailserver.nix ./media-proxy.nix + ./mullvad ./network-manager.nix ./nginx-interactive-index ./nginx.nix diff --git a/modules/mullvad/default.nix b/modules/mullvad/default.nix new file mode 100644 index 0000000..4f2873b --- /dev/null +++ b/modules/mullvad/default.nix @@ -0,0 +1,55 @@ +{ config, lib, pkgs, ... }: +let + relays = builtins.fromJSON (builtins.readFile ./relays.json); + + cfg = config.sbruder.mullvad; + + relayConfigs = lib.mapAttrs' + (name: configuration: lib.nameValuePair "mullvad-${name}.conf" (with configuration; '' + [Interface] + DNS = ${cfg.dnsServer} + + [Peer] + Endpoint = ${if cfg.ipVersion == 4 then endpoint4 else endpoint6}:${toString cfg.port} + PublicKey = ${pubkey} + AllowedIPs = 0.0.0.0/0,::0/0 + '')) + relays; + + # Creating 100+ files in a separate derivation each has too much overhead + relayConfigFiles = pkgs.runCommandNoCC "etc-wireguard-mullvad" { } ('' + mkdir $out + '' + (lib.concatStringsSep + "\n" + (lib.mapAttrsToList + (name: content: '' + cat > $out/${lib.escapeShellArg name} << EOF + ${content} + EOF + '') + relayConfigs))); +in +{ + options.sbruder.mullvad = { + enable = lib.mkEnableOption "wg-quick compatible configuration files in /etc/wireguard for Mullvad VPN"; + dnsServer = lib.mkOption { + type = lib.types.str; + default = "193.138.218.74"; + }; + ipVersion = lib.mkOption { + type = lib.types.enum [ 4 6 ]; + default = 4; + }; + port = lib.mkOption { + type = lib.types.port; + default = 51820; + }; + }; + + config = lib.mkIf cfg.enable { + environment.etc = builtins.listToAttrs + (map + (name: lib.nameValuePair "wireguard/${name}" { source = "${relayConfigFiles}/${name}"; }) + (lib.attrNames relayConfigs)); + }; +} diff --git a/modules/mullvad/relays.json b/modules/mullvad/relays.json new file mode 100644 index 0000000..b445fd1 --- /dev/null +++ b/modules/mullvad/relays.json @@ -0,0 +1,1997 @@ +{ + "at4": { + "endpoint4": "86.107.21.50", + "endpoint6": "2001:ac8:29:59::a04f", + "pubkey": "hZpraeYrNU7Vl+UB2NSpXT2vBRM1fZ/a/gt4TTksP14=" + }, + "at5": { + "endpoint4": "86.107.21.34", + "endpoint6": "2001:ac8:29:58::a05f", + "pubkey": "jJVG/lv7RikDG0FMsV3WJgfot5XecPm9aHDrYvU+NAM=" + }, + "at6": { + "endpoint4": "86.107.21.18", + "endpoint6": "2001:ac8:29:57::a06f", + "pubkey": "l03RAG49wBmpdWKO6oywtdNO3Ksk8byIx9JCr3r8Mlo=" + }, + "at7": { + "endpoint4": "86.107.21.2", + "endpoint6": "2001:ac8:29:56::a07f", + "pubkey": "FnyzqDU4TJeFMO5g1AcGEzLGeVcPAcvdvnEXjPFw3Gg=" + }, + "at8": { + "endpoint4": "86.107.21.130", + "endpoint6": "2001:ac8:29:55::a08f", + "pubkey": "VxDx2tErPqmeDHGPfIhnsDg6nfJ5cnE6u4EfHx5MjBE=" + }, + "at9": { + "endpoint4": "86.107.21.114", + "endpoint6": "2001:ac8:29:54::a09f", + "pubkey": "f4t0xU1DsADjvHsAeB0pJAOdq+FkYZ5IhHvWom+/dGI=" + }, + "au10": { + "endpoint4": "89.44.10.114", + "endpoint6": "2001:ac8:84:33::a10f", + "pubkey": "NoaBwt2h2ZUiLbrR2OFIHlR91KVo9x+nuJT911wg9DM=" + }, + "au11": { + "endpoint4": "89.44.10.130", + "endpoint6": "2001:ac8:84:34::a11f", + "pubkey": "lpNlTCVN/Oru86QtEblGpxKc6R6fEFVmKjm5clumZQQ=" + }, + "au12": { + "endpoint4": "89.44.10.146", + "endpoint6": "2001:ac8:84:35::a12f", + "pubkey": "8EVsUWoy+kULNzuxI1pugiAhJ5ffPsfzL94p025rM3I=" + }, + "au13": { + "endpoint4": "89.44.10.162", + "endpoint6": "2001:ac8:84:36::a13f", + "pubkey": "VNyHFgr0yhjg2+58Tx3sU2wUPcS9+k7GuIPr1htWkjw=" + }, + "au14": { + "endpoint4": "89.44.10.178", + "endpoint6": "2001:ac8:84:37::a14f", + "pubkey": "GtbNj9H0j+QakhAiaIA6trOu/OK304906ONbqkOonxo=" + }, + "au1": { + "endpoint4": "43.245.162.234", + "endpoint6": "2400:fa80:1:11::a01f", + "pubkey": "t+WbEMneS26Ukgzie9gjkc6rUyUiRNTgkLRcJ8IgTCk=" + }, + "au2": { + "endpoint4": "103.77.233.50", + "endpoint6": "2400:fa80:1:31::a02f", + "pubkey": "26Ad1I9IZJC4gLdSw9sAQrfW5+ahys2Jp9vzRsMMLmE=" + }, + "au3": { + "endpoint4": "103.231.88.2", + "endpoint6": "2407:a080:3000:12::a03f", + "pubkey": "kXXykjh6KqiE/pvtmTV8kCB+jhhkl9kT0Dg+yyDz8hg=" + }, + "au4": { + "endpoint4": "103.231.88.18", + "endpoint6": "2407:a080:3000:11::a04f", + "pubkey": "D2ltFd7TbpYNq9PejAeGwlaJ2bEFLqOSYywdY9N5xCY=" + }, + "au8": { + "endpoint4": "89.44.10.66", + "endpoint6": "2001:ac8:84:31::a08f", + "pubkey": "sHvZqCRnPcm0JKhqu4uZQ3aXR7CO6N/+bR4/mD+qaCM=" + }, + "au9": { + "endpoint4": "89.44.10.82", + "endpoint6": "2001:ac8:84:32::a09f", + "pubkey": "a9TzidjjemtR2sVxgoDymsGV63vMV7v1+JY80HEYumA=" + }, + "be1": { + "endpoint4": "193.9.114.2", + "endpoint6": "2001:ac8:27:20::a01f", + "pubkey": "wkEqQQKK3dJDttRanJWONU/5xuxRDR4cLfvnPJKtijE=" + }, + "be2": { + "endpoint4": "5.253.205.162", + "endpoint6": "2001:ac8:27:51::a02f", + "pubkey": "Djs+FiBl54bMSHt2QsWZgdyu3hU2Vlkm5MRZt8MHe0c=" + }, + "be3": { + "endpoint4": "37.120.218.154", + "endpoint6": "2001:ac8:27:56::a03f", + "pubkey": "pW/VljNbNWBg42/heyYGHeiKGVuzDhMw59eiSUQfnjo=" + }, + "be4": { + "endpoint4": "37.120.218.162", + "endpoint6": "2001:ac8:27:57::a04f", + "pubkey": "zotbXj8reba/gId9QDZ9Az8RsGLyAskCHVVM3HYhGQw=" + }, + "bg4": { + "endpoint4": "217.138.221.178", + "endpoint6": "2001:ac8:30:28::a04f", + "pubkey": "6TNimNeecei/wqpJak2Z8hdD25vg5oF/In9q3l4QQk4=" + }, + "bg5": { + "endpoint4": "217.138.221.226", + "endpoint6": "2001:ac8:30:29::a05f", + "pubkey": "yXn7ziIFrHRgoZlhWRkxoGFb3maolOxOn6sh+OPLdT8=" + }, + "bg6": { + "endpoint4": "217.138.221.242", + "endpoint6": "2001:ac8:30:30::a06f", + "pubkey": "lCGzNzh+hxEOyXQFvNo8FZwZcCD3dLgZvAo6XhnmUmk=" + }, + "bg7": { + "endpoint4": "217.138.202.194", + "endpoint6": "2001:ac8:30:31::a07f", + "pubkey": "U2b1yPEcO/vlQrlpNTsgQJoYQ7oaxtW4OJQx6Cod9yo=" + }, + "br1": { + "endpoint4": "45.162.228.186", + "endpoint6": "2804:5364:3100:9::a01f", + "pubkey": "H4KAmfgogRrfC3trmXKIDOJ/GyFjJ6cjtNnd7aDSvXQ=" + }, + "br3": { + "endpoint4": "177.54.152.43", + "endpoint6": "2804:391c:12::a03f", + "pubkey": "kRLWZX35QG3oGEshSxxYP8v1EcGItN2nJ2SBSCSFnRU=" + }, + "ca10": { + "endpoint4": "89.36.78.146", + "endpoint6": "2a0d:5600:9:bb::a10f", + "pubkey": "pAVh6WJtyF7ktvavez399L4A615TXOAaUHQgpwJ4EHU=" + }, + "ca11": { + "endpoint4": "89.36.78.162", + "endpoint6": "2a0d:5600:9:bc::a11f", + "pubkey": "Dss8vKaAS2tUf55tHLrhQcMgHjePouQHfwiDMKPIz2Q=" + }, + "ca12": { + "endpoint4": "89.36.78.178", + "endpoint6": "2a0d:5600:9:bd::a12f", + "pubkey": "TbsEFmg0cvUwWiuzI28j2ZEQb0f6sU0AjO/bL5ugXzg=" + }, + "ca13": { + "endpoint4": "89.36.78.194", + "endpoint6": "2a0d:5600:9:be::a13f", + "pubkey": "6JseWScYkcFM5ibBZWGp7DbZQgZ1jQ14mrnXbvnKGnc=" + }, + "ca14": { + "endpoint4": "89.36.78.210", + "endpoint6": "2a0d:5600:9:bf::a14f", + "pubkey": "hAFhjCWuSgvIlnBplm4J3iQK4GNW1PSxY0WmoiQP63M=" + }, + "ca15": { + "endpoint4": "89.36.78.226", + "endpoint6": "2a0d:5600:9:c0::a15f", + "pubkey": "dn27fhdet9sxRl3biHeCBvA5edZMC03bh0zZIj3DJzI=" + }, + "ca16": { + "endpoint4": "89.36.78.242", + "endpoint6": "2a0d:5600:9:c1::a16f", + "pubkey": "eHHmvUwqIR2EQKxUM1i2HtiaNryOwGTjVP6K//HjRiY=" + }, + "ca17": { + "endpoint4": "89.36.78.2", + "endpoint6": "2a0d:5600:9:c2::a17f", + "pubkey": "uWQn+YxJzgfChFium04RpovvN5KyoSZmnL9lnCHD9gc=" + }, + "ca18": { + "endpoint4": "37.120.205.98", + "endpoint6": "2a0d:5600:9:43::a18f", + "pubkey": "odeJmnpP19GxfiaAhZEqg9OkG4dgp5YxVVJL34ld1QI=" + }, + "ca19": { + "endpoint4": "37.120.205.194", + "endpoint6": "2a0d:5600:9:4a::a19f", + "pubkey": "5BBUQJ+/BDvI4G8ybxvJihMCkJN9B54Lrm2JYK5JzmY=" + }, + "ca20": { + "endpoint4": "37.120.205.210", + "endpoint6": "2a0d:5600:9:4b::a20f", + "pubkey": "9yGUwYAwZ38uo1dNos9AVkRApE/2gloiS3cd/MhJmwg=" + }, + "ca21": { + "endpoint4": "91.193.6.2", + "endpoint6": "2a0d:5600:9:ca::a21f", + "pubkey": "ywlUvPueZiLIKXTMT2/UslgGv8yU7cUuKdQOpWi4xiI=" + }, + "ca22": { + "endpoint4": "198.54.132.82", + "endpoint6": "2607:9000:6000:15::a22f", + "pubkey": "9PfLtMmfLsdNuh3Rj3eBDMId2bXZ7+yWJO78CZfuLzU=" + }, + "ca23": { + "endpoint4": "198.54.132.98", + "endpoint6": "2607:9000:6000:16::a23f", + "pubkey": "iGwKJTbm/aL4kJXwcJkO0JYPEEGGDcYBrRTG7CHIQx0=" + }, + "ca24": { + "endpoint4": "198.54.132.114", + "endpoint6": "2607:9000:6000:17::a24f", + "pubkey": "MbusadbeACMR5bv+PPjhldb5CgwjlCbthnTJNrOJnhI=" + }, + "ca25": { + "endpoint4": "198.54.132.130", + "endpoint6": "2607:9000:6000:18::a25f", + "pubkey": "y9JT2B69QiWkbEAiXGq5yhtAvg8YNXNkjhHcUiBCiko=" + }, + "ca26": { + "endpoint4": "198.54.132.146", + "endpoint6": "2607:9000:6000:19::a26f", + "pubkey": "XE+hufytSkX14TjskwmYL4HL4mbPf+Vd5Jfgwf/5JHc=" + }, + "ca27": { + "endpoint4": "198.54.132.162", + "endpoint6": "2607:9000:6000:20::a27f", + "pubkey": "ptnLZbreIzTZrSyPD0XhOAAmN194hcPSG5TI5TTiL08=" + }, + "ca2": { + "endpoint4": "107.181.189.206", + "endpoint6": "2607:f7a0:d:4::a02f", + "pubkey": "quPBSdtRAfoUVkbRWvjXF5d5cYwhURobppSVd5Uz3xA=" + }, + "ca7": { + "endpoint4": "71.19.249.31", + "endpoint6": "2605:80:19:4::a07f", + "pubkey": "nis4OtPs4PsVh+roaxZx0eYVkcl532WdC3dikQ9YKwQ=" + }, + "ch10": { + "endpoint4": "91.193.4.82", + "endpoint6": "2001:ac8:28:88::a10f", + "pubkey": "rDsfCGsgT2feNo8waMiSF5LiIqYe8GM2XYB0k0o9A2o=" + }, + "ch11": { + "endpoint4": "91.193.4.98", + "endpoint6": "2001:ac8:28:89::a11f", + "pubkey": "M160brlgfeqrtrRrDNvUU7E9iytIrdpmLsTPDFBmGSI=" + }, + "ch12": { + "endpoint4": "91.193.4.114", + "endpoint6": "2001:ac8:28:90::a12f", + "pubkey": "9lseA1xnIVPzTizHYEkcnfvAt7e9kW2D1k5dX05lak8=" + }, + "ch13": { + "endpoint4": "91.193.4.130", + "endpoint6": "2001:ac8:28:91::a13f", + "pubkey": "9oblThjJwJTTEyHYD7ZKe8CdqzB/9iI3+iXPFWL0Qys=" + }, + "ch14": { + "endpoint4": "91.193.4.146", + "endpoint6": "2001:ac8:28:92::a14f", + "pubkey": "s+gmJDvPmOPJkCYaXE2qydVnnM5vvQsazGLxnVW/GQM=" + }, + "ch15": { + "endpoint4": "91.193.4.162", + "endpoint6": "2001:ac8:28:93::a15f", + "pubkey": "jLddqPJjcG0nGagLsJwxGWWkKcS0GwQgiEZL7iX/n0E=" + }, + "ch16": { + "endpoint4": "91.193.4.178", + "endpoint6": "2001:ac8:28:94::a16f", + "pubkey": "wGY+iakQnz4nJIPBf8X/ahRqB8qL5/GHxEvCw80Kjkc=" + }, + "ch17": { + "endpoint4": "91.193.4.194", + "endpoint6": "2001:ac8:28:95::a17f", + "pubkey": "4cr4WJxUbl5EqayrN2EecNROHjiXGkZKEProFeyaPWo=" + }, + "ch2": { + "endpoint4": "31.7.59.250", + "endpoint6": "2a02:29b8:dc01:1641::a02f", + "pubkey": "vyiKBvye/1shpkYc0nuSt5GuwkgWb6g3Ft98suUbhnc=" + }, + "ch5": { + "endpoint4": "193.32.127.66", + "endpoint6": "2a03:1b20:a:f011::a01f", + "pubkey": "/iivwlyqWqxQ0BVWmJRhcXIFdJeo0WbHQ/hZwuXaN3g=" + }, + "ch6": { + "endpoint4": "193.32.127.67", + "endpoint6": "2a03:1b20:a:f011::a02f", + "pubkey": "qcvI02LwBnTb7aFrOyZSWvg4kb7zNW9/+rS6alnWyFE=" + }, + "ch7": { + "endpoint4": "193.32.127.68", + "endpoint6": "2a03:1b20:a:f011::a03f", + "pubkey": "5Ms10UxGjCSzwImTrvEjcygsWY8AfMIdYyRvgFuTqH8=" + }, + "ch8": { + "endpoint4": "193.32.127.69", + "endpoint6": "2a03:1b20:a:f011::a04f", + "pubkey": "C3jAgPirUZG6sNYe4VuAgDEYunENUyG34X42y+SBngQ=" + }, + "ch9": { + "endpoint4": "193.32.127.70", + "endpoint6": "2a03:1b20:a:f011::a05f", + "pubkey": "dV/aHhwG0fmp0XuvSvrdWjCtdyhPDDFiE/nuv/1xnRM=" + }, + "cz1": { + "endpoint4": "185.242.6.18", + "endpoint6": "2001:ac8:33:a::a01f", + "pubkey": "/LNuMn2Q3PXMjc5c84bAgf5efyXsKTQxPm45ywSK/Gg=" + }, + "cz2": { + "endpoint4": "193.9.112.114", + "endpoint6": "2001:ac8:33:1a::a02f", + "pubkey": "5cnukfXHWIBm3FxF6uJSsG3jPuZM6NtSK05vl2a84Ug=" + }, + "cz3": { + "endpoint4": "185.242.6.194", + "endpoint6": "2001:ac8:33:23::a03f", + "pubkey": "sTYtbdXVJFJgtLKzmlg6WKiOdRZ00DSnu+8mwLQxFQk=" + }, + "cz4": { + "endpoint4": "217.138.199.90", + "endpoint6": "2001:ac8:33:41::a04f", + "pubkey": "R4Gs1D1YV6gbdl/QIDAb3o3jdAiZZypiEwc9GzSER04=" + }, + "cz5": { + "endpoint4": "217.138.199.98", + "endpoint6": "2001:ac8:33:42::a05f", + "pubkey": "Mb9LGOovvkJPcjt9AzSeHukpjNzCndEM9aH/DadoDj8=" + }, + "de10": { + "endpoint4": "185.209.196.69", + "endpoint6": "2a03:1b20:6:f011::a10f", + "pubkey": "+30LcSQzgNtB01wyCyh4YPjItVyBFX5TP6Fs47AJSnA=" + }, + "de11": { + "endpoint4": "185.209.196.70", + "endpoint6": "2a03:1b20:6:f011::a11f", + "pubkey": "uC0C1H4zE6WoDjOq65DByv1dSZt2wAv6gXQ5nYOLiQM=" + }, + "de12": { + "endpoint4": "193.27.14.66", + "endpoint6": "2001:ac8:20:305::a12f", + "pubkey": "Ec/wwcosVal9Kjc97ZuTTV7Dy5c0/W5iLet7jrSEm2k=" + }, + "de13": { + "endpoint4": "193.27.14.82", + "endpoint6": "2001:ac8:20:306::a13f", + "pubkey": "gB+j+wTsZ8dZq2TbUQovV6zwmM9O2SMneGQR6NHxOQQ=" + }, + "de14": { + "endpoint4": "193.27.14.98", + "endpoint6": "2001:ac8:20:307::a14f", + "pubkey": "vtqDtifokiHna0eBshGdJLedj/lzGW+iDvWKx+YjDFs=" + }, + "de15": { + "endpoint4": "193.27.14.114", + "endpoint6": "2001:ac8:20:308::a15f", + "pubkey": "7YN0g5B6gTRAcgb+78RpfGTw1UaNJprciQTSO/tKjyE=" + }, + "de16": { + "endpoint4": "193.27.14.130", + "endpoint6": "2001:ac8:20:308::a16f", + "pubkey": "3bEHVNah9L8nvWZmk7suzNvSQBPTC4EgO7umldY34Ac=" + }, + "de17": { + "endpoint4": "193.27.14.146", + "endpoint6": "2001:ac8:20:309::a17f", + "pubkey": "Fp3bDkNLmmTajbN3cSVM9zi0OeSuOZySMGypk7HOO3E=" + }, + "de20": { + "endpoint4": "185.254.75.3", + "endpoint6": "2a03:d9c0:3000::a20f", + "pubkey": "/pS3lXg1jTJ7I58GD/s/4GNL2B0U8JNbjbH9Ddh0myw=" + }, + "de21": { + "endpoint4": "185.254.75.4", + "endpoint6": "2a03:d9c0:3000::a21f", + "pubkey": "I6LOIdGsXojaR9GtwJUyFSzLtSnhct/x6IOrxK1W/Qo=" + }, + "de22": { + "endpoint4": "185.254.75.5", + "endpoint6": "2a03:d9c0:3000::a22f", + "pubkey": "+TpVOeCDHnfnqWMw1MI9MUK+UqleDQJeH4PN7/PyuU0=" + }, + "de4": { + "endpoint4": "185.213.155.130", + "endpoint6": "2a03:1b20:6:f011::a01f", + "pubkey": "XTdlx3YmLb1vg1NsruXYmfzP6FZKmZR90Vr3u9kJ7S0=" + }, + "de5": { + "endpoint4": "185.213.155.222", + "endpoint6": "2a03:1b20:6:f011::a02f", + "pubkey": "bRcOjl6Yc+2x0dHCO6eSGoo9Y9euv9DljDJEYoLA0ks=" + }, + "de7": { + "endpoint4": "185.209.196.66", + "endpoint6": "2a03:1b20:6:f011::a07f", + "pubkey": "+0BEfUZ3D0DEM/fJVPUUhYYDdkkLjqedVerm8dV4bmE=" + }, + "de8": { + "endpoint4": "185.209.196.67", + "endpoint6": "2a03:1b20:6:f011::a08f", + "pubkey": "XIge3HgGEHf52e4Jpzk8iFOrrp6q7trq0udhufFlDVo=" + }, + "dk2": { + "endpoint4": "45.129.56.67", + "endpoint6": "2a03:1b20:8:f011::a02f", + "pubkey": "egl+0TkpFU39F5O6r6+hIBMPQLOa8/t5CymOZV6CC3Y=" + }, + "dk3": { + "endpoint4": "45.129.56.68", + "endpoint6": "2a03:1b20:8:f011::a03f", + "pubkey": "R5LUBgM/1UjeAR4lt+L/yA30Gee6/VqVZ9eAB3ZTajs=" + }, + "dk5": { + "endpoint4": "89.45.7.178", + "endpoint6": "2001:ac8:37:5d::a05f", + "pubkey": "7eykWQ65FV7saXDJiZazA5htM0Fr/01FrUa5Mgyg4j0=" + }, + "dk6": { + "endpoint4": "89.45.7.194", + "endpoint6": "2001:ac8:37:5e::a06f", + "pubkey": "jlhgiPDCNxhrfMUEAEXxU8AyJU+oZ+4TCYrt7o5VsFs=" + }, + "dk7": { + "endpoint4": "89.45.7.210", + "endpoint6": "2001:ac8:37:5f::a07f", + "pubkey": "E3XgsLAaDdRhYl5tPbBIO87bdTYQmpF72nqIhFBk3g8=" + }, + "dk8": { + "endpoint4": "82.103.140.213", + "endpoint6": "2a00:9080:1:98c::1f", + "pubkey": "H7tZk6jMQps9WHn8opffvYmt6XN3v1614EGpsMZoA3w=" + }, + "ee1": { + "endpoint4": "194.127.167.67", + "endpoint6": "2a07:d880:2::a01f", + "pubkey": "5Gr+2UwVVy/jRJPKJGOIWXTTsqxPGd8mL/VgPlcuZXU=" + }, + "ee2": { + "endpoint4": "194.127.167.87", + "endpoint6": "2a07:d880:2::a02f", + "pubkey": "LH+fpnB3eeHVgxrFIBUtiieXfEqd2sZENyyzGhS5K2o=" + }, + "ee3": { + "endpoint4": "194.127.167.107", + "endpoint6": "2a07:d880:2::a03f", + "pubkey": "BFTDEFHcbU9huaxwpYa98eeaSJZa1iEJsH8OLXHxQjk=" + }, + "es1": { + "endpoint4": "194.99.104.10", + "endpoint6": "2001:ac8:23:2c::a01f", + "pubkey": "hDflDse0Nz7GsZ0q5uylWOJaJQ6woJPCGy8IvTXKjzo=" + }, + "es2": { + "endpoint4": "37.120.199.34", + "endpoint6": "2001:ac8:23:4b::a02f", + "pubkey": "fMYx8zLs1oBQvXtkdpdCwhy0UUx9QhbF0kaXp1QJJSY=" + }, + "es4": { + "endpoint4": "45.152.183.50", + "endpoint6": "2001:ac8:23:5a::a04f", + "pubkey": "Bnrn99Enx6mxeZO77+DanSMhAXi7EHazFUwGmFL2VCo=" + }, + "es5": { + "endpoint4": "45.152.183.58", + "endpoint6": "2001:ac8:23:5b::a05f", + "pubkey": "/u0n1ETjberX5jYv0W94zLvX5Qzn+pPL/8umey/iIlE=" + }, + "fi1": { + "endpoint4": "185.204.1.203", + "endpoint6": "2a0c:f040:0:2790::a01f", + "pubkey": "lA7gRTmiY9IcSQGXjOEaJjvgtO76BwYJsaaNQqemMWU=" + }, + "fi2": { + "endpoint4": "185.204.1.211", + "endpoint6": "2a0c:f040:0:2790::a02f", + "pubkey": "HjKLtlLs1RRTS8OhxBO7HaDizaWcVVieefKn2gPPTRQ=" + }, + "fi3": { + "endpoint4": "185.204.1.219", + "endpoint6": "2a0c:f040:0:2790::a03f", + "pubkey": "Jv9FNGbb9T4ZYCXTjn/ib3ozCRvZ1ccYILuiJ1+1IgQ=" + }, + "fr10": { + "endpoint4": "194.110.113.19", + "endpoint6": "2001:ac8:25:d3::a10f", + "pubkey": "82ptbnzmyqf9XX8QK4dd5l6n60dSP0FRaHykNr1RDTc=" + }, + "fr11": { + "endpoint4": "194.110.113.35", + "endpoint6": "2001:ac8:25:d4::a11f", + "pubkey": "YKHo5jAYWOzvAFzc+9XAjn7rEWqY75MA3fPJmk7D7jU=" + }, + "fr12": { + "endpoint4": "194.110.113.51", + "endpoint6": "2001:ac8:25:d5::a12f", + "pubkey": "3DsVxyx5NU+RiwTKqUKqG8/9yiEk+SFd+21DEZ0dAwo=" + }, + "fr13": { + "endpoint4": "194.110.113.67", + "endpoint6": "2001:ac8:25:d6::a13f", + "pubkey": "2tuaExmwkXGVjJRnd3D31GsDwKXy2q+eD0Cy2gUbDSU=" + }, + "fr14": { + "endpoint4": "194.110.113.83", + "endpoint6": "2001:ac8:25:d7::a14f", + "pubkey": "rlKbOMrLiHiNphSB/kMEiLNdAPtgt+f64Rxqa+z991E=" + }, + "fr4": { + "endpoint4": "193.32.126.66", + "endpoint6": "2a03:1b20:9:f011::a01f", + "pubkey": "ov323GyDOEHLT0sNRUUPYiE3BkvFDjpmi1a4fzv49hE=" + }, + "fr5": { + "endpoint4": "193.32.126.67", + "endpoint6": "2a03:1b20:9:f011::a02f", + "pubkey": "R5Ve+PJD24QjNXi2Dim7szwCiOLnv+6hg+WyTudAYmE=" + }, + "fr6": { + "endpoint4": "193.32.126.68", + "endpoint6": "2a03:1b20:9:f011::a03f", + "pubkey": "w4r/o6VImF7l0/De3JpOGnpzjAFv9wcCu8Rop5eZkWc=" + }, + "fr7": { + "endpoint4": "193.32.126.69", + "endpoint6": "2a03:1b20:9:f011::a04f", + "pubkey": "E/KjR7nlFouuRXh1pwGDr7iK2TAZ6c4K0LjjmA1A2Tc=" + }, + "fr8": { + "endpoint4": "193.32.126.70", + "endpoint6": "2a03:1b20:9:f011::a05f", + "pubkey": "cmqtSjWUa4/0bENQDKxdr0vQqf4nFVDodarHm0Pc0hY=" + }, + "gb11": { + "endpoint4": "185.195.232.66", + "endpoint6": "2a03:1b20:7:f011::a11f", + "pubkey": "VZwE8hrpNzg6SMwn9LtEqonXzSWd5dkFk62PrNWFW3Y=" + }, + "gb12": { + "endpoint4": "185.195.232.67", + "endpoint6": "2a03:1b20:7:f011::a12f", + "pubkey": "PLpO9ikFX1garSFaeUpo7XVSMrILrTB8D9ZwQt6Zgwk=" + }, + "gb13": { + "endpoint4": "185.195.232.68", + "endpoint6": "2a03:1b20:7:f011::a13f", + "pubkey": "bG6WulLmMK408n719B8nQJNuTRyRA3Qjm7bsm9d6v2M=" + }, + "gb14": { + "endpoint4": "185.195.232.69", + "endpoint6": "2a03:1b20:7:f011::a14f", + "pubkey": "INRhM0h4T1hi9j28pcC+vRv47bp7DIsNKtagaFZFSBI=" + }, + "gb15": { + "endpoint4": "185.195.232.70", + "endpoint6": "2a03:1b20:7:f011::a15f", + "pubkey": "MVqe9e9aDwfFuvEhEn4Wd/zWV3cmiCX9fZMWetz+23A=" + }, + "gb16": { + "endpoint4": "141.98.100.146", + "endpoint6": "2001:ac8:31:237::a16f", + "pubkey": "OLqqtEra8OCMZ9mvI9attDHly+wFVU+j/g47GvgpDAY=" + }, + "gb17": { + "endpoint4": "37.120.198.146", + "endpoint6": "2001:ac8:31:238::a17f", + "pubkey": "9ERbjhPKAITbf5J8NPXlyrJeeBzAJ7TlxKVAV4Cf+iA=" + }, + "gb18": { + "endpoint4": "89.238.176.162", + "endpoint6": "2001:ac8:31:239::a18f", + "pubkey": "ug9qzYOLA7WRR17XzmGSnYNnt4HficuJpFlXopaWOB8=" + }, + "gb19": { + "endpoint4": "89.238.176.178", + "endpoint6": "2001:ac8:31:23a::a19f", + "pubkey": "yO0LXXBLbm6vhQb2HlHknCF5Q04DnzAwBYvZk/diCXI=" + }, + "gb20": { + "endpoint4": "217.138.254.98", + "endpoint6": "2001:ac8:31:23b::a20f", + "pubkey": "Kt7nO9EG5CpRJ8ga56gnmcP4K/dr87xtpMOtpj1GtEs=" + }, + "gb22": { + "endpoint4": "185.206.227.130", + "endpoint6": "2001:ac8:21:ac::a22f", + "pubkey": "3V91P8R1cTWiHL940niI4eJCuJrpWViHSitl6HwDkm0=" + }, + "gb24": { + "endpoint4": "194.37.96.98", + "endpoint6": "2001:ac8:21:ae::a24f", + "pubkey": "vWFuRUwBf6AtDtN8ZqygEgGrfDhoQ7s+FOPKcTwInU8=" + }, + "gb25": { + "endpoint4": "81.92.205.18", + "endpoint6": "2001:ac8:21:af::a25f", + "pubkey": "HAsZqzSSc9sxOTfpV6PQg0ll8rRn0IzRNdyGL/Vq+X0=" + }, + "gb26": { + "endpoint4": "86.106.136.210", + "endpoint6": "2001:ac8:21:b5::a26f", + "pubkey": "oSsZE1FGG+KbUHCBgT84RkSOhkZfUBKLPcF9SNL9yCY=" + }, + "gb27": { + "endpoint4": "89.238.130.66", + "endpoint6": "2001:ac8:21:b6::a27f", + "pubkey": "MFY3o3SFgAsTRL0EVAfvFU0qxQ2GWLdtE1xTsk87w1U=" + }, + "gb28": { + "endpoint4": "194.37.96.114", + "endpoint6": "2001:ac8:21:b7::a28f", + "pubkey": "6cp7iV7x3DGcvcfL83VohcMu5BYaJOo9b1ffC/4L31Q=" + }, + "gb29": { + "endpoint4": "81.92.206.2", + "endpoint6": "2001:ac8:21:b8::a29f", + "pubkey": "uaBPua4Tnbluy51WbNOahHx77RGJFGRr/MAqWFILJhI=" + }, + "gb30": { + "endpoint4": "194.37.96.130", + "endpoint6": "2001:ac8:21:b9::a30f", + "pubkey": "/XJ5QVlczjYpsYj7acmoXu+17PRkY68NYUx1jk7dvyY=" + }, + "gb31": { + "endpoint4": "89.238.143.226", + "endpoint6": "2001:ac8:21:ba::a31f", + "pubkey": "+tcSmB5oL9s+eIRl33hFKH+qAJVG9t42cfym7WzRMB0=" + }, + "gb32": { + "endpoint4": "194.37.96.146", + "endpoint6": "2001:ac8:21:bb::a32f", + "pubkey": "u/CMY/BfJDTQk6n7WXbhHvM7LUvHIqJRuzGk0V8y/U8=" + }, + "gb4": { + "endpoint4": "141.98.252.130", + "endpoint6": "2a03:1b20:7:f011::a01f", + "pubkey": "IJJe0TQtuQOyemL4IZn6oHEsMKSPqOuLfD5HoAWEPTY=" + }, + "gb5": { + "endpoint4": "141.98.252.222", + "endpoint6": "2a03:1b20:7:f011::a02f", + "pubkey": "J57ba81Q8bigy9RXBXvl0DgABTrbl81nb37GuX50gnY=" + }, + "hk1": { + "endpoint4": "209.58.188.180", + "endpoint6": "2001:df1:801:a009:10::a01f", + "pubkey": "oS4vR1RHoFtpevzl2KLUjqDH9AiLwnh9GHBMiB5FVgM=" + }, + "hk2": { + "endpoint4": "89.45.6.82", + "endpoint6": "2001:ac8:92:3::a02f", + "pubkey": "hHsvoe2aKb8OEbPKQcgBfP/N0tcwLULSyFS/yan9nkI=" + }, + "hk3": { + "endpoint4": "89.45.6.98", + "endpoint6": "2001:ac8:92:4::a03f", + "pubkey": "NwJsMjTnkY5Qr95Zmh75N0OfiQroEQdaIpxh58RCIGU=" + }, + "hk4": { + "endpoint4": "89.45.6.114", + "endpoint6": "2001:ac8:92:5::a04f", + "pubkey": "ZTPHtQfr9FOhws6SQ+uQzeUn5atv8m72QOF+7jaBmDM=" + }, + "hu3": { + "endpoint4": "86.106.74.66", + "endpoint6": "2001:ac8:26:ad::a03f", + "pubkey": "lSsOZ4jUbcbi7pHDqXi7U/8O55sCMKfMwF1GF+1+qgM=" + }, + "hu4": { + "endpoint4": "86.106.74.82", + "endpoint6": "2001:ac8:26:ae::a04f", + "pubkey": "VLosXjrnpppwX5yjqW6WaFOYEY76hWQrDPlfe/0dzyY=" + }, + "hu5": { + "endpoint4": "86.106.74.98", + "endpoint6": "2001:ac8:26:af::a05f", + "pubkey": "mZM32UGNrhVXeQrTPCMqjh3jMyH5HvHbk8vwieTWpzM=" + }, + "ie1": { + "endpoint4": "217.138.222.98", + "endpoint6": "2001:ac8:88:5d::a01f", + "pubkey": "202IWDDdX4GK94YtFlB/DEOPxe6BLpiwFYAviWHiKj8=" + }, + "ie2": { + "endpoint4": "217.138.222.106", + "endpoint6": "2001:ac8:88:5e::a02f", + "pubkey": "DOunbHw/O5gnTNo1Ov/6rknpvJck9BlQ1zTMHE4JA38=" + }, + "it4": { + "endpoint4": "91.193.5.2", + "endpoint6": "2001:ac8:24:7a::a04f", + "pubkey": "CJMsEa5/skjmYPc+lvHnmLD1dpSFoRmv/FE815oBbRE=" + }, + "it5": { + "endpoint4": "91.193.5.18", + "endpoint6": "2001:ac8:24:7b::a05f", + "pubkey": "FetdLS9yyn5FQYWpJQUUdxs17Abjp5AotivoxUiOVHk=" + }, + "it6": { + "endpoint4": "91.193.5.34", + "endpoint6": "2001:ac8:24:7c::a06f", + "pubkey": "6c25503CIsKKZ5BwFvSnid6dcCKTh5/ftmz4MvGnXzQ=" + }, + "it7": { + "endpoint4": "37.120.201.82", + "endpoint6": "2001:ac8:24:50::a07f", + "pubkey": "F4Scn2i1IIHTsWsCfXesNb2XYyrIu8Wn+vJihvPVk2M=" + }, + "it8": { + "endpoint4": "37.120.201.114", + "endpoint6": "2001:ac8:24:49::a08f", + "pubkey": "hW+QDgH+88xUCgMSZkdMqTIuUossLmopwu6nWqHCsXc=" + }, + "jp10": { + "endpoint4": "91.193.7.34", + "endpoint6": "2001:ac8:40:ba::a10f", + "pubkey": "OR4kf/AOFDn3dCzZdG/hiH92lRHeYPFitKHm40wWTWc=" + }, + "jp11": { + "endpoint4": "91.193.7.50", + "endpoint6": "2001:ac8:40:bb::a11f", + "pubkey": "Xmucvp5MtwXQ3LjkI/o7kb3qb6O9QrdBhyhp8AkobDQ=" + }, + "jp12": { + "endpoint4": "91.193.7.66", + "endpoint6": "2001:ac8:40:bc::a12f", + "pubkey": "HOoaS6M9s/Tvip91Zc38B6X/uqyyhpI/EBuw2daQuXo=" + }, + "jp13": { + "endpoint4": "91.193.7.82", + "endpoint6": "2001:ac8:40:bd::a13f", + "pubkey": "MirGjkQpzD6c6yxgbcvECZlECFvgO0hx5p+QhpOJYRQ=" + }, + "jp6": { + "endpoint4": "217.138.252.226", + "endpoint6": "2001:ac8:40:b6::a06f", + "pubkey": "4EhX6bW/gfcu75nPm9nyexX6cRZXN/RCt/TETfXF0jc=" + }, + "jp7": { + "endpoint4": "217.138.252.242", + "endpoint6": "2001:ac8:40:b7::a07f", + "pubkey": "JYBVvOwWa3cbZrm3ZUWry3CgG6AxsSlxJv7H2yEsCjk=" + }, + "jp8": { + "endpoint4": "91.193.7.2", + "endpoint6": "2001:ac8:40:b8::a08f", + "pubkey": "ATinKg0uacPxUhrxqjixcgksJ8coK8zP2Y9q0Hz4dnA=" + }, + "jp9": { + "endpoint4": "91.193.7.18", + "endpoint6": "2001:ac8:40:b9::a09f", + "pubkey": "6qBkfoucP2xtTJo5hiXl+1b5pbAHPVMcbng/DIhJEiw=" + }, + "lu1": { + "endpoint4": "92.223.89.181", + "endpoint6": "2a03:90c0:83:2953::a01f", + "pubkey": "nqb90SP3pY5kGjO0UetVv7PdOkZUEOh91Gmcf3LFRXc=" + }, + "lu2": { + "endpoint4": "92.223.89.165", + "endpoint6": "2a03:90c0:83:2953::a02f", + "pubkey": "08lMToz0IbJfqNdybOrLJ+bGeyl28DuTaM80paWCrVg=" + }, + "lv1": { + "endpoint4": "31.170.22.15", + "endpoint6": "2a00:c68:0:cbd0::a01f", + "pubkey": "889sMm3aPBqCae6b74/wrpcF03dDyyMqoUjsHWt+QQ8=" + }, + "md1": { + "endpoint4": "178.175.131.98", + "endpoint6": "2a00:1dc0:2925:10::a01f", + "pubkey": "BQobp2UXHJguYGz06WWJGJV6QytNIZlgMwr6Joufhx8=" + }, + "nl1": { + "endpoint4": "193.32.249.66", + "endpoint6": "2a03:1b20:3:f011::a01f", + "pubkey": "UrQiI9ISdPPzd4ARw1NHOPKKvKvxUhjwRjaI0JpJFgM=" + }, + "nl20": { + "endpoint4": "92.60.40.194", + "endpoint6": "2a0c:59c0:18::a20f", + "pubkey": "StMPmol1+QQQQCJyAkm7t+l/QYTKe5CzXUhw0I6VX14=" + }, + "nl21": { + "endpoint4": "92.60.40.209", + "endpoint6": "2a0c:59c0:18::a21f", + "pubkey": "RodGkT2Xqiumwb7pg4WmiTjkZgJq0hW9okaJUyNBong=" + }, + "nl22": { + "endpoint4": "92.60.40.224", + "endpoint6": "2a0c:59c0:18::a22f", + "pubkey": "xwANpTKjog2nflBgA+HWplQfUXgbvh+b4a53P83nmX0=" + }, + "nl23": { + "endpoint4": "92.60.40.239", + "endpoint6": "2a0c:59c0:18::a23f", + "pubkey": "PaU5gPqZnj9XQ2csZK2oiyNz/cOUZM3yk6qHm67wbmA=" + }, + "nl2": { + "endpoint4": "185.65.134.222", + "endpoint6": "2a03:1b20:3:f011::a02f", + "pubkey": "P0NpAUCe/gfL4lgs/PH4nDd5kA5zNDtHbUcqfYmSdmg=" + }, + "nl3": { + "endpoint4": "185.65.134.223", + "endpoint6": "2a03:1b20:3:f011::a03f", + "pubkey": "hnRorSW0YHlHAzGb4Uc/sjOqQIrqDnpJnTQi/n7Rp1c=" + }, + "nl4": { + "endpoint4": "193.32.249.69", + "endpoint6": "2a03:1b20:3:f011::a04f", + "pubkey": "hnRyse6QxPPcZOoSwRsHUtK1W+APWXnIoaDTmH6JsHQ=" + }, + "nl5": { + "endpoint4": "193.32.249.70", + "endpoint6": "2a03:1b20:3:f011::a05f", + "pubkey": "33BoONMGCm2vknq2eq72eozRsHmHQY6ZHEEZ4851TkY=" + }, + "no1": { + "endpoint4": "176.125.235.71", + "endpoint6": "2a02:20c8:4124::a01f", + "pubkey": "jOUZjMq2PWHDzQxu3jPXktYB7EKeFwBzGZx56cTXXQg=" + }, + "no2": { + "endpoint4": "176.125.235.72", + "endpoint6": "2a02:20c8:4124::a02f", + "pubkey": "IhhpKphSFWpwja1P4HBctZ367G3Q53EgdeFGZro29Tc=" + }, + "no3": { + "endpoint4": "176.125.235.73", + "endpoint6": "2a02:20c8:4124::a03f", + "pubkey": "zOBWmQ3BEOZKsYKbj4dC2hQjxCbr3eKa6wGWyEDYbC4=" + }, + "no4": { + "endpoint4": "176.125.235.74", + "endpoint6": "2a02:20c8:4124::a04f", + "pubkey": "veeEoYS9a2T6K8WMs/MvRCdNJG580XbhnLfbFjp3B0M=" + }, + "nz1": { + "endpoint4": "103.108.94.34", + "endpoint6": "2400:fa80:4:10::a01f", + "pubkey": "fz9sSuR61ZqbFlI004lFBksGbw3U4KADy0Kvxhv5JyY=" + }, + "nz2": { + "endpoint4": "103.231.91.226", + "endpoint6": "2400:fa80:4:11::a02f", + "pubkey": "kDVDjSME2WSxhEqOV6fkeNetTHv6tYWD8HNqHXCnESw=" + }, + "pl1": { + "endpoint4": "185.244.214.58", + "endpoint6": "2a0d:5600:13:9::a01f", + "pubkey": "p9FqkVuPmFXOta1CFn81m0HRgD+uic5UfLU0fQb3t00=" + }, + "pl2": { + "endpoint4": "37.120.156.242", + "endpoint6": "2a0d:5600:13:1b::a02f", + "pubkey": "9v9VK6f98rFS2iZvYxqTvNWeeT34EYn6TRRZqNC2MhU=" + }, + "pl3": { + "endpoint4": "5.253.206.210", + "endpoint6": "2a0d:5600:13:1c::a03f", + "pubkey": "VXt/spGVLruJ0m7aSkKWIIc5ktxS6wOg9dlNwDOKw0I=" + }, + "pl4": { + "endpoint4": "37.120.211.210", + "endpoint6": "2a0d:5600:13:3c::a04f", + "pubkey": "fOEmuT2M++Qnk1riHmce8DCriSlO5G5BQZVmzK7tq2E=" + }, + "pt1": { + "endpoint4": "94.46.24.33", + "endpoint6": "2a00:1651:0:4000::a01f", + "pubkey": "xL7uaEPI7KV3aNPELKpGjVxBCq0yiAc376iS/MRDo3Y=" + }, + "pt2": { + "endpoint4": "94.46.24.49", + "endpoint6": "2a00:1651:0:4001::a02f", + "pubkey": "9fS+IEof6FztE6sdxuyq94PzB90obnggin4TuHEpLhY=" + }, + "ro4": { + "endpoint4": "185.45.15.194", + "endpoint6": "2a04:9dc0:0:94::a04f", + "pubkey": "+5uSytyBBNzlJSc/Bg+B5fbhz04hGJEtgjYRY9eDFi0=" + }, + "ro5": { + "endpoint4": "185.45.15.210", + "endpoint6": "2a04:9dc0:0:95::a05f", + "pubkey": "6hqbJrVJMv5a15d1zvJDw09bB1heRHHupc2GEmUsmGo=" + }, + "ro6": { + "endpoint4": "185.123.143.194", + "endpoint6": "2a04:9dc0:0:96::a06f", + "pubkey": "t1D8bGu6LN9Rtscxe5KtDl9Xfa3wFgj+Mpn+89onYD8=" + }, + "ro7": { + "endpoint4": "185.123.143.210", + "endpoint6": "2a04:9dc0:0:97::a07f", + "pubkey": "PBkAK/T6eQHrBTAvfeSngjNnwb8FvhwQ2FKXEQp5dgM=" + }, + "ro8": { + "endpoint4": "185.120.144.98", + "endpoint6": "2a04:9dc0:0:98::a08f", + "pubkey": "oqfJ+FTSFZjTGzNVU7V8SOskjc0OtOEZ9HbUyHwKuBI=" + }, + "rs3": { + "endpoint4": "152.89.160.178", + "endpoint6": "2001:ac8:7d:1b::a03f", + "pubkey": "9U+3Wxd6DLZ+p9q0OImYd5FeLYjs86DHO7wsEL04M2A=" + }, + "rs4": { + "endpoint4": "89.38.224.82", + "endpoint6": "2001:ac8:7d:20::a04f", + "pubkey": "XfYd3s53gcTH4TDL8aCu2sa88TAxuWBD7CcOHtlDmjw=" + }, + "se10": { + "endpoint4": "185.213.154.69", + "endpoint6": "2a03:1b20:5:f011::a10f", + "pubkey": "veGD6/aEY6sMfN3Ls7YWPmNgu3AheO7nQqsFT47YSws=" + }, + "se12": { + "endpoint4": "185.65.135.69", + "endpoint6": "2a03:1b20:4:f011::a12f", + "pubkey": "AYlClNe1D8w0AWmVm8NN5BMv4nkXdAaQpby8rbyrCSU=" + }, + "se13": { + "endpoint4": "185.65.135.70", + "endpoint6": "2a03:1b20:4:f011::a13f", + "pubkey": "615mnBGkvjZnD/vRbyL/6da7YhtctfB+jimN+wfV724=" + }, + "se14": { + "endpoint4": "185.65.135.71", + "endpoint6": "2a03:1b20:4:f011::a14f", + "pubkey": "v02a3f1hdtTFD+bzStbGN6FxwOMAA/4d/yjNKoLTXFI=" + }, + "se15": { + "endpoint4": "193.138.218.80", + "endpoint6": "2a03:1b20:1:f410::a15f", + "pubkey": "5y66WShsFXqM5K7/4CPEGCWfk7PQyNhVBT2ILjbGm2I=" + }, + "se16": { + "endpoint4": "193.138.218.81", + "endpoint6": "2a03:1b20:1:f410::a16f", + "pubkey": "IW9HxGy0fqpxHLDWpbdgGoJJ2uxGDq1e/MVuDQuEumY=" + }, + "se17": { + "endpoint4": "193.138.218.82", + "endpoint6": "2a03:1b20:1:f410::a17f", + "pubkey": "dBAObjXtN11hAbyYZxw0m6NQw86ccnkY5O0YKSmq4lI=" + }, + "se18": { + "endpoint4": "193.138.218.83", + "endpoint6": "2a03:1b20:1:f410::a18f", + "pubkey": "fZFAcd8vqWOBpRqlXifsjzGf16gMTg2GuwKyZtkG6UU=" + }, + "se19": { + "endpoint4": "45.83.220.66", + "endpoint6": "2a03:1b20:1:e011::a19f", + "pubkey": "oaIh0j5LHNtoBWeFKOa+l1QBt+fNu2rHN9ALubSakyg=" + }, + "se1": { + "endpoint4": "193.138.218.220", + "endpoint6": "2a03:1b20:1:f410::a01f", + "pubkey": "Qn1QaXYTJJSmJSMw18CGdnFiVM0/Gj/15OdkxbXCSG0=" + }, + "se21": { + "endpoint4": "45.83.220.68", + "endpoint6": "2a03:1b20:1:e011::a21f", + "pubkey": "7ncbaCb+9za3jnXlR95I6dJBkwL1ABB5i4ndFUesYxE=" + }, + "se22": { + "endpoint4": "45.83.220.69", + "endpoint6": "2a03:1b20:1:e011::a22f", + "pubkey": "cwglRdgLQ4gMG36TIYlc5OIemLNrYs4UM1KTc8mnzxk=" + }, + "se23": { + "endpoint4": "45.83.220.70", + "endpoint6": "2a03:1b20:1:e011::a23f", + "pubkey": "XscA5gebj51nmhAr6o+aUCnMHWGjbS1Gvvd0tuLRiFE=" + }, + "se24": { + "endpoint4": "45.83.220.71", + "endpoint6": "2a03:1b20:1:e011::a24f", + "pubkey": "/D3LwQ+danoTnbsrI6O7oHZmYQB6m+/aOQ8ldsGkVh8=" + }, + "se26": { + "endpoint4": "185.195.233.66", + "endpoint6": "2a03:1b20:4:f011::a26f", + "pubkey": "1493vtFUbIfSpQKRBki/1d0YgWIQwMV4AQAvGxjCNVM=" + }, + "se27": { + "endpoint4": "185.195.233.67", + "endpoint6": "2a03:1b20:4:f011::a27f", + "pubkey": "3UPY4O7hJ31aEi9BVWbJTGKK5pjh9lBm++vquG34owo=" + }, + "se28": { + "endpoint4": "185.195.233.68", + "endpoint6": "2a03:1b20:4:f011::a28f", + "pubkey": "V6RHmYEXDDXvCPZENmhwk5VEn6KgSseTFHw/IkXFzGg=" + }, + "se2": { + "endpoint4": "185.65.135.130", + "endpoint6": "2a03:1b20:4:f011::a02f", + "pubkey": "BfyxzL1mtigKIfM51OhxD+FBBSk+/SHEUE9UlDJ45W4=" + }, + "se3": { + "endpoint4": "185.213.154.66", + "endpoint6": "2a03:1b20:5:f011:31::a03f", + "pubkey": "5JMPeO7gXIbR5CnUa/NPNK4L5GqUnreF0/Bozai4pl4=" + }, + "se4": { + "endpoint4": "193.138.218.130", + "endpoint6": "2a03:1b20:1:f410:40::a04f", + "pubkey": "m4jnogFbACz7LByjo++8z5+1WV0BuR1T7E1OWA+n8h0=" + }, + "se5": { + "endpoint4": "185.213.154.67", + "endpoint6": "2a03:1b20:5:f011::a05f", + "pubkey": "AtvE5KdPeQtOcE2QyXaPt9eQoBV3GBxzimQ2FIuGQ2U=" + }, + "se6": { + "endpoint4": "185.65.135.222", + "endpoint6": "2a03:1b20:4:f011::a06f", + "pubkey": "pKcMMeC4jMUxSU5pH1orvp4//GrY8is+y9JRfVP3+BY=" + }, + "se7": { + "endpoint4": "185.65.135.223", + "endpoint6": "2a03:1b20:4:f011::a07f", + "pubkey": "Io+BJ9lxGxi8jhvy95tqwudkzzy5zrvrf8KLxWRGs0w=" + }, + "se8": { + "endpoint4": "185.65.135.224", + "endpoint6": "2a03:1b20:4:f011::a08f", + "pubkey": "CNn6UoRrPYQYUYt19fXJb75MI6a24Mgq/+OKAahfI0I=" + }, + "se9": { + "endpoint4": "185.213.154.68", + "endpoint6": "2a03:1b20:5:f011::a09f", + "pubkey": "BLNHNoGO88LjV/wDBa7CUUwUzPq/fO2UwcGLy56hKy4=" + }, + "sg4": { + "endpoint4": "94.198.43.34", + "endpoint6": "2a0a:b640:1:57::a04f", + "pubkey": "HbD3PLJKJdHPyjof67Tug83HH5x/KyInbiuPQvkOaDI=" + }, + "sg5": { + "endpoint4": "94.198.43.50", + "endpoint6": "2a0a:b640:1:58::a05f", + "pubkey": "+B9zLO2t0vCxoLlrG3fhB8M1OQ/kOSr6VL81eP+AUXU=" + }, + "sg6": { + "endpoint4": "94.198.43.66", + "endpoint6": "2a0a:b640:1:59::a06f", + "pubkey": "FfjGK3hSDhCm8xWixKv2O4SbPcQEH9Vx2ykfEWEY7ho=" + }, + "sg7": { + "endpoint4": "94.198.43.82", + "endpoint6": "2a0a:b640:1:5a::a07f", + "pubkey": "4KtYjALlkYH0xKW6AeUAhyznDAa5GKqDk8WHYso9/D8=" + }, + "sg8": { + "endpoint4": "94.198.43.98", + "endpoint6": "2a0a:b640:1:5b::a08f", + "pubkey": "VxROoDxnI3XS5DBgXEucl+iEd964v//8p7dHGMWGbkE=" + }, + "us101": { + "endpoint4": "86.106.121.158", + "endpoint6": "2a0d:5600:24:aa5::b01f", + "pubkey": "iuFDwOiNNnWfTmtprPCLscUjonu+KKfXu39TL/SSzh4=" + }, + "us102": { + "endpoint4": "86.106.121.171", + "endpoint6": "2a0d:5600:24:aa6::b02f", + "pubkey": "w/wxejfsFw2YFSYohzUB+Avtw0nW9RAkQjQyLExcfB0=" + }, + "us103": { + "endpoint4": "86.106.121.184", + "endpoint6": "2a0d:5600:24:aa7::b03f", + "pubkey": "dl5Xf/oCHVDVnzzb5i1/NyAct191DT5qqRtOAJZpOlw=" + }, + "us104": { + "endpoint4": "86.106.121.197", + "endpoint6": "2a0d:5600:24:aa8::b04f", + "pubkey": "7gzFk0q3W/GOUhBRQ/CVaUfYUw4jnH4o83+Q7mRPRFY=" + }, + "us105": { + "endpoint4": "86.106.121.210", + "endpoint6": "2a0d:5600:24:aa9::b05f", + "pubkey": "f2C9CzsFx3nJii34l7i7pXMdpzp9cHEpkCZ3es+S+V4=" + }, + "us106": { + "endpoint4": "86.106.121.223", + "endpoint6": "2a0d:5600:24:aaa::b06f", + "pubkey": "vyMlF2Un/Fr1hJC3iYYvyaq1oaVMziCNAhZYkSjbylM=" + }, + "us107": { + "endpoint4": "86.106.121.236", + "endpoint6": "2a0d:5600:24:aab::b07f", + "pubkey": "EZGBydcOeP/lS3jXfkVohMG78z9qUx4SqLFQVMONSSM=" + }, + "us108": { + "endpoint4": "86.106.121.249", + "endpoint6": "2a0d:5600:24:aac::b08f", + "pubkey": "Sq5u3QIxgLGvoo9sCv5revDYTNKcGFzmeip4DnKcpCE=" + }, + "us10": { + "endpoint4": "198.54.128.82", + "endpoint6": "2607:9000:2000:19::a10f", + "pubkey": "dEtwYUFPV0pF7MWJpzo+AixB2CdEIXxBQcQg1ljQkVo=" + }, + "us110": { + "endpoint4": "89.45.224.15", + "endpoint6": "2a0d:5600:24:aae::b10f", + "pubkey": "tT4SYF5SX0U9nVjC/9HWIqrvixReJCgkqawvk2CJiW8=" + }, + "us111": { + "endpoint4": "89.45.224.28", + "endpoint6": "2a0d:5600:24:aaf::b11f", + "pubkey": "r03nZ+5rVtqatadUs783W1LU6WInJlpbjW3r8E2MPzo=" + }, + "us112": { + "endpoint4": "89.45.224.41", + "endpoint6": "2a0d:5600:24:ab1::b12f", + "pubkey": "K2chJLdNAgSOLlBXA3aHDwKxxpPaqcgp6XGN8yRYPl8=" + }, + "us113": { + "endpoint4": "89.45.224.54", + "endpoint6": "2a0d:5600:24:ab2::b13f", + "pubkey": "IJ4cae+w9SuGUmYbkH1jwnTCQ6bbphUG2cM1UpP96Ek=" + }, + "us114": { + "endpoint4": "89.45.224.67", + "endpoint6": "2a0d:5600:24:ab3::b14f", + "pubkey": "OjMVxFNSRjZC5dwCU+hK6oEGOF9rZBE3GbJ7Y1CkFmM=" + }, + "us115": { + "endpoint4": "89.45.224.80", + "endpoint6": "2a0d:5600:24:ab4::b15f", + "pubkey": "HfvVMtGke52M9yqqQvuIEwd0NxXAfe0ZqgHLPqT9ShE=" + }, + "us116": { + "endpoint4": "89.45.224.93", + "endpoint6": "2a0d:5600:24:ab5::b16f", + "pubkey": "sIB3ajbcYSGYby0JJO7l8zjZMm/FbqHZh620Ln4spTQ=" + }, + "us117": { + "endpoint4": "89.45.224.106", + "endpoint6": "2a0d:5600:24:ab6::b17f", + "pubkey": "gW5zLgLNCtypRmHfeSIHN5j1SS7ymoUqjt7YBhVWZkg=" + }, + "us118": { + "endpoint4": "89.45.224.119", + "endpoint6": "2a0d:5600:24:ab7::b18f", + "pubkey": "jaJS7IFuOco51K89tEkrabi80CC4gOdf+1y8NjWFw30=" + }, + "us119": { + "endpoint4": "89.45.224.132", + "endpoint6": "2a0d:5600:24:ab8::b19f", + "pubkey": "3akIB2iC31EHstfYVYILp6l6kavjnZ8a66xAxujHNF4=" + }, + "us11": { + "endpoint4": "198.54.128.90", + "endpoint6": "2607:9000:2000:20::a11f", + "pubkey": "/oMM8Z3svzY5wteCZPL111XjfaJvek/8s+PkUmvDIHs=" + }, + "us120": { + "endpoint4": "89.45.224.145", + "endpoint6": "2a0d:5600:24:ab9::b20f", + "pubkey": "WNAKxc1A0oHd2CwxBhsbErLYxIau28YuRp9f3QUtUkA=" + }, + "us121": { + "endpoint4": "89.45.224.158", + "endpoint6": "2a0d:5600:24:aba::b21f", + "pubkey": "hbLv5Ec+ebWkLfpMkrfQi3yBZt+QtzUM73A21/KsXDk=" + }, + "us122": { + "endpoint4": "89.45.224.171", + "endpoint6": "2a0d:5600:24:abb::b22f", + "pubkey": "xGN1FCQVDNywOx6124UCdh2Us1iBu/2FzVNhVOjJMj4=" + }, + "us123": { + "endpoint4": "89.45.224.184", + "endpoint6": "2a0d:5600:24:abc::b23f", + "pubkey": "btzdd6JSFFCnkmCd49zXWrIDEo1wZvxLSfqvF2eilX0=" + }, + "us124": { + "endpoint4": "89.45.224.197", + "endpoint6": "2a0d:5600:24:abd::b24f", + "pubkey": "PHYy+c8lDKwU1A2LYw6mZKXOuxR2+6DPrBv4hd9auSA=" + }, + "us125": { + "endpoint4": "89.45.224.210", + "endpoint6": "2a0d:5600:24:abe::b25f", + "pubkey": "J8QaV8tZyFBrb9atVg3mI2Vb3/DtWVJSHFYSrdy6w2w=" + }, + "us126": { + "endpoint4": "89.45.224.223", + "endpoint6": "2a0d:5600:24:abf::b26f", + "pubkey": "gBNBBb4vgJG4NX0/nCs8bdkVshQGadVA8YTHr+0+aFo=" + }, + "us127": { + "endpoint4": "89.45.224.236", + "endpoint6": "2a0d:5600:24:ac1::b27f", + "pubkey": "aUn8FOe9q2LSm41mi9b4VXTIOISaDT4hfUqDnzk4Jk0=" + }, + "us128": { + "endpoint4": "68.235.43.130", + "endpoint6": "2607:9000:0:67::b28f", + "pubkey": "6S4lS+ShQOI0BHMunSiuM++0gy+o+jtpHx9pbJ5XeFk=" + }, + "us129": { + "endpoint4": "68.235.43.138", + "endpoint6": "2607:9000:0:68::b29f", + "pubkey": "dr0ORuPoV9TYY6G5cM00cOoO72wfUC7Lmni7+Az9m0Y=" + }, + "us12": { + "endpoint4": "198.54.128.98", + "endpoint6": "2607:9000:2000:25::a12f", + "pubkey": "fBVnH5KCfh1tCYzRlMusbUDLK1IswpE984JCLY3jQCA=" + }, + "us130": { + "endpoint4": "68.235.43.146", + "endpoint6": "2607:9000:0:69::b30f", + "pubkey": "VY5Dos3WeCyI1Jb8Z+KhB4YlEKZmrQeSNcP0WCrzk2I=" + }, + "us131": { + "endpoint4": "68.235.43.154", + "endpoint6": "2607:9000:0:70::b31f", + "pubkey": "Na8m5Z3O6kwtLFPsign+JPlLoFm/Q3eBdIMI08psSzg=" + }, + "us132": { + "endpoint4": "68.235.43.162", + "endpoint6": "2607:9000:0:71::b32f", + "pubkey": "X50kEMmdPc50SYWFaDFNOAMzUYnCZv3rxzw2Y6BqOyk=" + }, + "us133": { + "endpoint4": "68.235.43.170", + "endpoint6": "2607:9000:0:72::b33f", + "pubkey": "01KgzQY+pT7Q+GPUa1ijj0YgdN5owMaK9ViRZO4dIWo=" + }, + "us134": { + "endpoint4": "69.4.234.147", + "endpoint6": "2606:2e00:0:b9::b34f", + "pubkey": "H07w0/FzBuD7J1XX7AIPWQWq0KgAsik6NWnCDq+ouWs=" + }, + "us135": { + "endpoint4": "69.4.234.138", + "endpoint6": "2606:2e00:0:b9::b35f", + "pubkey": "hILFNRuu7ANGMAXOIwPKI3M/Q9lfzO2C+gYHs+5mQAw=" + }, + "us136": { + "endpoint4": "69.4.234.139", + "endpoint6": "2606:2e00:0:b9::b36f", + "pubkey": "CjSHNIrHSOr6me7OjckbfJb4XbfoDcDBvT5VS2jmFVM=" + }, + "us137": { + "endpoint4": "69.4.234.140", + "endpoint6": "2606:2e00:0:b9::b37f", + "pubkey": "wrlLOHa2QW+6FzEom2qOEyBvv06BTjwR0w6N0Rnb5jU=" + }, + "us138": { + "endpoint4": "69.4.234.141", + "endpoint6": "2606:2e00:0:b9::b38f", + "pubkey": "t7EpO096Y6jrzr/KHHfpMQsUG0Cu2sga0Di8P9f5Jh4=" + }, + "us139": { + "endpoint4": "69.4.234.142", + "endpoint6": "2606:2e00:0:b9::b39f", + "pubkey": "9tPpMdtpDweGoB6U5ZEnSTgYVwxD4fOytsl1TXrnHl4=" + }, + "us140": { + "endpoint4": "69.4.234.143", + "endpoint6": "2606:2e00:0:b9::b40f", + "pubkey": "/zr7GFpDW+Px3Y3iu8zhv8wzPWNP/OU4IICnb5H2ZXc=" + }, + "us141": { + "endpoint4": "69.4.234.144", + "endpoint6": "2606:2e00:0:b9::b41f", + "pubkey": "KpBP2riY4EKvf02tBXWwT7xHG0CMtRg/N6Q/B3Tng0o=" + }, + "us142": { + "endpoint4": "69.4.234.145", + "endpoint6": "2606:2e00:0:b9::b42f", + "pubkey": "ipEYDec8mAA89BgZRPezVDeVILmePOT+sL0ybd+O5Ug=" + }, + "us143": { + "endpoint4": "193.27.13.98", + "endpoint6": "2001:ac8:9a:5::b43f", + "pubkey": "ys1/HwvP8ajGFVUooMA4CjE11QGqZUCdcO0uw7pxm3c=" + }, + "us144": { + "endpoint4": "193.27.13.114", + "endpoint6": "2001:ac8:9a:6::b44f", + "pubkey": "oLDrbdUAs51AAA9TjFnSvmmfV85dp2ZWFqr29P2HxzM=" + }, + "us145": { + "endpoint4": "193.27.13.130", + "endpoint6": "2001:ac8:9a:7::b45f", + "pubkey": "C4bKoKfELQFJNzhpkPPLz2XwAu0mUDQ+RgP1SWgA0xk=" + }, + "us146": { + "endpoint4": "193.27.13.146", + "endpoint6": "2001:ac8:9a:8::b46f", + "pubkey": "Dp5YVZ7Zxa/PM5fIXa1RA9vdz8hB/IaI5H7cSP7ByFk=" + }, + "us147": { + "endpoint4": "193.27.13.162", + "endpoint6": "2001:ac8:9a:9::b47f", + "pubkey": "Q/slQ6Agjqp6iNvfbTGyz7CXv/LgsK4XnJil7UE60ng=" + }, + "us148": { + "endpoint4": "193.27.13.194", + "endpoint6": "2001:ac8:9a:11::b48f", + "pubkey": "yK1wfMTkMbksuR7+rlEbkq6mk5wsdyIJYSD9fB/htnA=" + }, + "us149": { + "endpoint4": "193.27.13.210", + "endpoint6": "2001:ac8:9a:12::b49f", + "pubkey": "vh34NFVrwEKbmX+Rqy5xKyQ81unOWLb0DpYXSGHLxyk=" + }, + "us150": { + "endpoint4": "193.27.13.226", + "endpoint6": "2001:ac8:9a:13::b50f", + "pubkey": "bigXstWXYiY7BznqpvHr40hyhcAXCyDsajLJ+HxRTk8=" + }, + "us151": { + "endpoint4": "193.27.13.242", + "endpoint6": "2001:ac8:9a:14::b51f", + "pubkey": "RRQAnqeXwqxhltKBEFWdg9nwoPraRMvr7LIE91kg+zg=" + }, + "us152": { + "endpoint4": "194.110.112.2", + "endpoint6": "2001:ac8:9a:15::b52f", + "pubkey": "fymKfaPctNpWCfC4xGl9UjZQ4bvEXT6GTK1+7DtVYBk=" + }, + "us153": { + "endpoint4": "194.110.112.18", + "endpoint6": "2001:ac8:9a:16::b53f", + "pubkey": "GYU0qZ/in7Bw9mxgQw1z5hAuTbXF8Tt8rGyAD7rA0Ho=" + }, + "us154": { + "endpoint4": "194.110.112.34", + "endpoint6": "2001:ac8:9a:17::b54f", + "pubkey": "AFmZ9bQhiP4yCbAddJTpxbzF/IWlNgjrzN0OqqCE6A8=" + }, + "us155": { + "endpoint4": "94.198.42.114", + "endpoint6": "2a0d:5600:6:37::b55f", + "pubkey": "Vn49S74HvUx5p1JybskzoqZraPsMh++hFQtcJqBUEWc=" + }, + "us156": { + "endpoint4": "94.198.42.130", + "endpoint6": "2a0d:5600:6:38::b56f", + "pubkey": "GMBXSH/CBSxkz1TptnYTwQO/ilEXherAicOaD/O/p0c=" + }, + "us157": { + "endpoint4": "94.198.42.146", + "endpoint6": "2a0d:5600:6:39::b57f", + "pubkey": "VK/eyHhPkl2u7ojWeL9efJq2AFvRA/FHC6dskHIzWRM=" + }, + "us158": { + "endpoint4": "94.198.42.162", + "endpoint6": "2a0d:5600:6:40::b58f", + "pubkey": "sMDULNyxlCjepgfB83cw2fYQIYT96jnrs22mtYevfCE=" + }, + "us159": { + "endpoint4": "94.198.42.178", + "endpoint6": "2a0d:5600:6:41::b59f", + "pubkey": "Xottq8FZOISCWMfJNapyVEA3dvKpmZ00L6wPeljGOWc=" + }, + "us160": { + "endpoint4": "94.198.42.194", + "endpoint6": "2a0d:5600:6:42::b60f", + "pubkey": "jxKlvTobgX32KYjSuLYb1Fm7gU1skslm3DatfxQCOl4=" + }, + "us161": { + "endpoint4": "94.198.42.210", + "endpoint6": "2a0d:5600:6:43::b61f", + "pubkey": "SYM77EPyWfOIK9CSJyuZ4mnGf17NLmj1i8VhWRbgPCs=" + }, + "us162": { + "endpoint4": "94.198.42.226", + "endpoint6": "2a0d:5600:6:44::b62f", + "pubkey": "VM0nmizpRkwPOKmIzgBGm0fbfZfMkZa6q/YvUtWz8V4=" + }, + "us163": { + "endpoint4": "94.198.42.242", + "endpoint6": "2a0d:5600:6:45::b63f", + "pubkey": "CIPpa9aYSN+KdwdLpIOxBP0egzdUFzDGUAmwzGZGoGY=" + }, + "us164": { + "endpoint4": "193.27.12.146", + "endpoint6": "2a0d:5600:6:46::b64f", + "pubkey": "iUpEL5CW9iTVR+NPWnd4DUAD5YaT6x1fKJl8uCa/xhE=" + }, + "us165": { + "endpoint4": "89.38.227.210", + "endpoint6": "2a0d:5600:6:47::b65f", + "pubkey": "AhxM2YMzknN6/yeIsNluflHQYyGPVHX+RAztHHzwek0=" + }, + "us166": { + "endpoint4": "89.38.227.226", + "endpoint6": "2a0d:5600:6:48::b66f", + "pubkey": "6n/1JcWj8udnJkPvrbpbY6sp6v/HPHSXsVNaTxZ3A0E=" + }, + "us167": { + "endpoint4": "66.115.180.231", + "endpoint6": "2607:f7a0:1:d::b67f", + "pubkey": "Qnb4cyMyHnrQlXUZ8YHh6UPYktfFaGeimjznPaZCpBY=" + }, + "us168": { + "endpoint4": "66.115.180.232", + "endpoint6": "2607:f7a0:1:d::b68f", + "pubkey": "pg4kotnWL9a3BahNti+vFBvficl1o4iZ/+t35pbsPgY=" + }, + "us169": { + "endpoint4": "66.115.180.233", + "endpoint6": "2607:f7a0:1:d::b69f", + "pubkey": "clLbW98O5wGCAf8E/H/uAW3n7orhY3bQO+cNxOCedzw=" + }, + "us170": { + "endpoint4": "66.115.180.234", + "endpoint6": "2607:f7a0:1:d::b70f", + "pubkey": "KOenblckGztqhbgUGFCagR8qDDtIX2/RIGRDmEBjxGM=" + }, + "us171": { + "endpoint4": "66.115.180.235", + "endpoint6": "2607:f7a0:1:d::b71f", + "pubkey": "UpNcVbTDbcOYfcGqDT52M2OR9RPI1HcQFrbXUPEIpT4=" + }, + "us172": { + "endpoint4": "66.115.180.236", + "endpoint6": "2607:f7a0:1:d::b72f", + "pubkey": "j2Bac2450sZJyeeBTo8YQkdIFiPwwx8PSPxqkXSDN34=" + }, + "us173": { + "endpoint4": "66.115.180.237", + "endpoint6": "2607:f7a0:1:d::b73f", + "pubkey": "o3YKd2Hn//+R8r0vdE2DMSgnLleARo8DvjMM7XjzFQw=" + }, + "us174": { + "endpoint4": "66.115.180.238", + "endpoint6": "2607:f7a0:1:d::b74f", + "pubkey": "XgXzdXuzqeMBlM3p56j6kogTPkKYXkBfIM5WkmjEXws=" + }, + "us175": { + "endpoint4": "66.115.180.239", + "endpoint6": "2607:f7a0:1:d::b75f", + "pubkey": "dVF4vhm2wGsfNjvX+5CsgTSPp70YjHbtYe+8uhWVzBA=" + }, + "us176": { + "endpoint4": "66.115.180.240", + "endpoint6": "2607:f7a0:1:d::b76f", + "pubkey": "Cx/hhbSGCLO3fwm8vU2c81CRziEU7pF8aEkAcPClG0A=" + }, + "us177": { + "endpoint4": "198.54.131.82", + "endpoint6": "2607:9000:5000:15::b77f", + "pubkey": "T1fKJp8knv4kqsfy9O04OIy+1nl5b9ypcnIzdmcfyzM=" + }, + "us178": { + "endpoint4": "198.54.131.98", + "endpoint6": "2607:9000:5000:16::b78f", + "pubkey": "+MmbnwQFKC18GJvunTQyAC2uvDwgEi9XXU7aksr9Czo=" + }, + "us179": { + "endpoint4": "198.54.131.114", + "endpoint6": "2607:9000:5000:17::b79f", + "pubkey": "+DIu6EMVk9QEsy6/NppxcDjuLSG6rTJ3TywYN3wXDkQ=" + }, + "us17": { + "endpoint4": "50.2.184.146", + "endpoint6": "2607:ff28:800f:10::a02f", + "pubkey": "XihrmIgj3/yCGr/NW0wNJm9haS3FQl6p5MvSB8mWdjc=" + }, + "us180": { + "endpoint4": "198.54.131.130", + "endpoint6": "2607:9000:5000:18::b80f", + "pubkey": "rgtjtftlhL1m9dC9KoacFbzQ9YVma6GOWIfoLom8TUc=" + }, + "us181": { + "endpoint4": "198.54.131.146", + "endpoint6": "2607:9000:5000:19::b81f", + "pubkey": "+c43g3SchQLZP1ODAMZemGi1fkLf89A0T+pbM4JWqRw=" + }, + "us182": { + "endpoint4": "198.54.131.162", + "endpoint6": "2607:9000:5000:20::b82f", + "pubkey": "Uqx528kx/O1VKpG8DLKK5Q3Hz6JcxTbosYYwoDR4LgA=" + }, + "us183": { + "endpoint4": "198.54.130.82", + "endpoint6": "2607:9000:4000:15::b83f", + "pubkey": "Yph7Oo28maPFDw/yJI5Bq+gvGE5qRqsYxt1lJ97vviI=" + }, + "us184": { + "endpoint4": "198.54.130.98", + "endpoint6": "2607:9000:4000:16::b84f", + "pubkey": "vx+vqAj0vcbMlUZd7XRvvFi1ab5+cqxrBA5t8kti/ik=" + }, + "us185": { + "endpoint4": "198.54.130.114", + "endpoint6": "2607:9000:4000:17::b85f", + "pubkey": "tnIQb/4YrNqLxN2RzK4N+3fikmEZLBGwAo9hbA7jXAM=" + }, + "us186": { + "endpoint4": "198.54.130.130", + "endpoint6": "2607:9000:4000:18::b86f", + "pubkey": "IAyoNcOK87VO8e7rjFOQodLY6apnWCh6fTmgInGvnxk=" + }, + "us187": { + "endpoint4": "198.54.130.146", + "endpoint6": "2607:9000:4000:19::b87f", + "pubkey": "KmsxVTOtLaR3s1nI2wNCA24eISH5Rp7dZIKhEvIaci8=" + }, + "us189": { + "endpoint4": "198.54.133.82", + "endpoint6": "2607:9000:7000:15::b89f", + "pubkey": "ctROwSybsU4cHsnGidKtbGYWRB2R17PFMMAqEHpsSm0=" + }, + "us18": { + "endpoint4": "68.235.43.90", + "endpoint6": "2607:9000:0:61::a02f", + "pubkey": "J7kRI51rpEiFy3HMxXS6azAhvdOqAbvLKwiDI8SyKU0=" + }, + "us190": { + "endpoint4": "198.54.133.98", + "endpoint6": "2607:9000:7000:16::b90f", + "pubkey": "bdxYH3G6foGCwurPSIGPi4oneZfk3S+cpZSd+pUezUc=" + }, + "us191": { + "endpoint4": "198.54.133.114", + "endpoint6": "2607:9000:7000:17::b91f", + "pubkey": "D8pVZcwerPfEKUTHW5qZ9AzQl8zPRPp3BVqUmINR+g8=" + }, + "us192": { + "endpoint4": "198.54.133.130", + "endpoint6": "2607:9000:7000:18::b92f", + "pubkey": "AxQo/yew9yqQTk/2Z45qI0YZ33ZJ2P+y/K6dFUmvUCQ=" + }, + "us193": { + "endpoint4": "198.54.133.146", + "endpoint6": "2607:9000:7000:19::b93f", + "pubkey": "l5kFrUCMY1ip/rEDAppxRe0GjxDdGTAWNouBdGmTc1Q=" + }, + "us194": { + "endpoint4": "198.54.133.162", + "endpoint6": "2607:9000:7000:20::b94f", + "pubkey": "Zs07i3DIinREejSjUA7dXpDZvu00YRVNJakTEgckpVs=" + }, + "us195": { + "endpoint4": "198.54.134.82", + "endpoint6": "2607:9000:8000:15::b95f", + "pubkey": "7PBJv+IH8NbH1WTCbptgzghi8hH7E8WsrqVH/cl0FBY=" + }, + "us196": { + "endpoint4": "198.54.134.98", + "endpoint6": "2607:9000:8000:16::b96f", + "pubkey": "3mQ+bBKGgX+7eunw64OhpWUz+UHL7Is2fcJWXO5UHQY=" + }, + "us197": { + "endpoint4": "198.54.134.114", + "endpoint6": "2607:9000:8000:17::b97f", + "pubkey": "U20kRb33zBR15Gsd6bP9hQccDL0O4HysxMa5QjubxC0=" + }, + "us198": { + "endpoint4": "198.54.134.130", + "endpoint6": "2607:9000:8000:18::b98f", + "pubkey": "e66QrzHRv/dFmGj8dyGEKxaZiC6Vt3MzLiiRcYJqVjQ=" + }, + "us199": { + "endpoint4": "198.54.134.146", + "endpoint6": "2607:9000:8000:19::b99f", + "pubkey": "FSd0QIqNsLGf+B/IqQzg9wyjKpfVwXiy/P9vt8Zylmg=" + }, + "us200": { + "endpoint4": "198.54.134.162", + "endpoint6": "2607:9000:8000:20::c00f", + "pubkey": "jHaXA+nq2od3uwNPzOUuGeLTuXBTTyXdPsi0lib4pVg=" + }, + "us201": { + "endpoint4": "66.115.165.211", + "endpoint6": "2607:f7a0:16:5::c01f", + "pubkey": "4A5vS/WtSI2038iXnQ0i3jz2GIAJn6PB7l4JrOUubBo=" + }, + "us202": { + "endpoint4": "66.115.165.212", + "endpoint6": "2607:f7a0:16:5::c02f", + "pubkey": "0mc2D++TlTUUn8HToWbbATvrKtM3vCWJ65OzK9j/uDI=" + }, + "us203": { + "endpoint4": "66.115.165.213", + "endpoint6": "2607:f7a0:16:5::c03f", + "pubkey": "XwBEfnMpAqnkqc6mttfOkFacfZgRKrzIX8y7DrTZvxQ=" + }, + "us204": { + "endpoint4": "66.115.165.214", + "endpoint6": "2607:f7a0:16:5::c04f", + "pubkey": "xyE6GqJaU7ntIh1pQyZxd1KyR9UxO49aQ1c1WYQqCXQ=" + }, + "us205": { + "endpoint4": "66.115.165.215", + "endpoint6": "2607:f7a0:16:5::c05f", + "pubkey": "Nr//h6Q+LwJeV4nqnmIcXYQYigt8iKJgK8C81KiOdkU=" + }, + "us206": { + "endpoint4": "66.115.165.216", + "endpoint6": "2607:f7a0:16:5::c06f", + "pubkey": "RacjA0eNOBUACA8MvC2MKjt8ZTqxkYoB15kZKQaj3Ts=" + }, + "us207": { + "endpoint4": "66.115.165.217", + "endpoint6": "2607:f7a0:16:5::c07f", + "pubkey": "JTpeoUyC0CA/NiHoGk+nH8oM6hHY/Nawmvy5nYdXByE=" + }, + "us208": { + "endpoint4": "66.115.165.218", + "endpoint6": "2607:f7a0:16:5::c08f", + "pubkey": "0N/GPSDWTju1YV8MCCx5n9O4scMKYP7Nh/nnLsje8W4=" + }, + "us209": { + "endpoint4": "199.229.250.52", + "endpoint6": "2607:f7a0:c:4::c09f", + "pubkey": "APxS9ebzK537njzcfB9gh8VXWrFrKvZeC6QQe0ZCUUM=" + }, + "us210": { + "endpoint4": "199.229.250.53", + "endpoint6": "2607:f7a0:c:4::c10f", + "pubkey": "92KRwUmhQY/n5cAUKR1R/Z/z17wOmB08GZxuats8cEw=" + }, + "us213": { + "endpoint4": "199.229.250.56", + "endpoint6": "2607:f7a0:c:4::c13f", + "pubkey": "7YYXE9f3qJBHtccXrr3H8eFeZL3kPSd+zhX8A6q4GBM=" + }, + "us214": { + "endpoint4": "199.229.250.57", + "endpoint6": "2607:f7a0:c:4::c14f", + "pubkey": "xqPiSkNlmz6KgC4UKz8rmey8VcmLHhTxCSYcNk9hAGo=" + }, + "us215": { + "endpoint4": "199.229.250.58", + "endpoint6": "2607:f7a0:c:4::c15f", + "pubkey": "H6XbhZN1u6qYDJSfoSNWz4uTnSGuQEpdFR6T0kgrwhU=" + }, + "us216": { + "endpoint4": "199.229.250.59", + "endpoint6": "2607:f7a0:c:4::c16f", + "pubkey": "ErdLbpitZKoIURt85r/VYNwq8FcwKOkGAhh6PgknT3U=" + }, + "us22": { + "endpoint4": "68.235.43.98", + "endpoint6": "2607:9000:0:62::a03f", + "pubkey": "cyFIfgkdN/teublULKmhQj5+dJnhsGcLyRiWxjQscW4=" + }, + "us23": { + "endpoint4": "68.235.43.106", + "endpoint6": "2607:9000:0:63::a04f", + "pubkey": "tAThJW853lY/JTNqU6zcBtYk8PxM93P2DqQFWfs1Z3M=" + }, + "us30": { + "endpoint4": "174.127.113.8", + "endpoint6": "2606:2e00:8007:1::a30f", + "pubkey": "RW+wwTv4BqRNbHPZFcIwl74f9kuRQlFLxnaocpMyKgw=" + }, + "us31": { + "endpoint4": "174.127.113.9", + "endpoint6": "2606:2e00:8007:1::a31f", + "pubkey": "jByGGMuJ53aax6Kvo5CTL7Bz2e9ZglFgHbC6IOoux2o=" + }, + "us32": { + "endpoint4": "174.127.113.10", + "endpoint6": "2606:2e00:8007:1::a32f", + "pubkey": "jHxY2OKpxjqAwWH4r1Pb2K6xDUDt087ivxpM1KpE0Ec=" + }, + "us33": { + "endpoint4": "174.127.113.11", + "endpoint6": "2606:2e00:8007:1::a33f", + "pubkey": "d0QX/luq22c8W+SEeegfI02NL1gCg7F6HSZFiDZK4k8=" + }, + "us34": { + "endpoint4": "174.127.113.12", + "endpoint6": "2606:2e00:8007:1::a34f", + "pubkey": "GCfWfE0241Hj8oSZIDQzk9VsLVC5VQ3MgFAEdhepNyA=" + }, + "us35": { + "endpoint4": "174.127.113.13", + "endpoint6": "2606:2e00:8007:1::a35f", + "pubkey": "sUve70TE2F3AaSGRPjN5aYr4um9OlKlIbnDw/2Ab8xg=" + }, + "us36": { + "endpoint4": "174.127.113.14", + "endpoint6": "2606:2e00:8007:1::a36f", + "pubkey": "fb9f0n73/qk9wvQQ9ufo7EZmeIH9bxmjETLdetuMyz8=" + }, + "us37": { + "endpoint4": "174.127.113.15", + "endpoint6": "2606:2e00:8007:1::a37f", + "pubkey": "smo7KmPLfKStrAlIwU5Vmr2aCD/UNUfR6LrUAraY3jY=" + }, + "us38": { + "endpoint4": "174.127.113.16", + "endpoint6": "2606:2e00:8007:1::a38f", + "pubkey": "EWuW/w7GpnxKdl0sr+dfxJ3DTxjMN6JWs/GR6OIzgB4=" + }, + "us39": { + "endpoint4": "174.127.113.17", + "endpoint6": "2606:2e00:8007:1::a39f", + "pubkey": "fjO/un6d9DFtxjhwbe8cMohORIgbPFN0WgLw/LdHoRg=" + }, + "us44": { + "endpoint4": "198.54.128.58", + "endpoint6": "2607:9000:2000:16::a44f", + "pubkey": "Cbcd0TNfEsI45BFzJO8mK9uF2mjGSiXPfF+EwOQSy0Y=" + }, + "us45": { + "endpoint4": "198.54.128.50", + "endpoint6": "2607:9000:2000:15::a45f", + "pubkey": "9xreD+7LFgwE74vlpqDOqJzXg5BCCi7Qk4QiAzAMyXs=" + }, + "us46": { + "endpoint4": "198.54.128.42", + "endpoint6": "2607:9000:2000:14::a46f", + "pubkey": "49D0pBK50sOxNXURjkoAQHZYDGmhGXWcSx9y7p7BWyU=" + }, + "us47": { + "endpoint4": "198.54.128.34", + "endpoint6": "2607:9000:2000:13::a47f", + "pubkey": "Hp5qr3VmbPdD6vV8N1RPxasaES6RxRkMAnPr30bUdlw=" + }, + "us48": { + "endpoint4": "198.54.129.66", + "endpoint6": "2607:9000:3000:16::a48f", + "pubkey": "MC86xeCKt9p7wmeRVzP5uW1wMHMQQ6C3zcIj0GHRH0U=" + }, + "us49": { + "endpoint4": "198.54.129.58", + "endpoint6": "2607:9000:3000:15::a49f", + "pubkey": "MyHeQad1Ls+uDIo1sQh1wJi0HnkNcB93/UDhCvJgSQY=" + }, + "us4": { + "endpoint4": "68.235.43.82", + "endpoint6": "2607:9000:0:60::a01f", + "pubkey": "9BIWByBn70uCB9qVj9Vf02yzar4RJQjgHyVpo+yLk2c=" + }, + "us50": { + "endpoint4": "198.54.129.50", + "endpoint6": "2607:9000:3000:14::a50f", + "pubkey": "Wamqk6xVi4JyGOoVfupt+yZzwlw+D1AuCqaeJ5BEJA0=" + }, + "us51": { + "endpoint4": "198.54.129.42", + "endpoint6": "2607:9000:3000:13::a51f", + "pubkey": "tuUArWyYDE785bvmkAwjWkxTZYa5ga+33m8GEfsolQU=" + }, + "us52": { + "endpoint4": "89.46.114.236", + "endpoint6": "2a0d:5600:8:f::a52f", + "pubkey": "0iaEZviiUACDQ9fijhXPPIgZr7HxgYzwuW/KDg0jZDQ=" + }, + "us53": { + "endpoint4": "89.45.90.2", + "endpoint6": "2a0d:5600:8:f::a53f", + "pubkey": "3CkVF922uY4xAZBfgRQq3U1mwr24uJlXxvLc3gsHgwA=" + }, + "us54": { + "endpoint4": "89.45.90.15", + "endpoint6": "2a0d:5600:8:f::a54f", + "pubkey": "dYmbNr7Dp4m0u5RQMcNAJrzE6nch8LQZYKX+s2dMnjs=" + }, + "us55": { + "endpoint4": "89.45.90.28", + "endpoint6": "2a0d:5600:8:1e::a55f", + "pubkey": "UdS9GBs0EtvPe+P51SacTRqpj/2PLtiI82510Zz6cTA=" + }, + "us56": { + "endpoint4": "89.45.90.41", + "endpoint6": "2a0d:5600:8:1e::a56f", + "pubkey": "hbVECYaoa1t5FuiM5S1uTGVaGadYDfre478Oh9Crkyc=" + }, + "us57": { + "endpoint4": "89.45.90.54", + "endpoint6": "2a0d:5600:8:1e::a57f", + "pubkey": "xUBnJ4rQNo8zrbGlFLnFogi/ZQKKNjXJD3Kz/YPCDD4=" + }, + "us58": { + "endpoint4": "89.45.90.67", + "endpoint6": "2a0d:5600:8:1f::a58f", + "pubkey": "t5jurRQzlV1JL8y6w0wyLdG4S9p2ice/VQ1YqghE2RY=" + }, + "us59": { + "endpoint4": "89.45.90.80", + "endpoint6": "2a0d:5600:8:1f::a59f", + "pubkey": "hbZzut9clpSR1ryMFcsX53Flq8vccXqG4FoHFnb3EDQ=" + }, + "us60": { + "endpoint4": "89.45.90.93", + "endpoint6": "2a0d:5600:8:21::a60f", + "pubkey": "/NKEAnIB2uTUG7K0bvb+zd6HPqay1tzz0cNrv8nngRQ=" + }, + "us61": { + "endpoint4": "89.45.90.106", + "endpoint6": "2a0d:5600:8:21::a61f", + "pubkey": "PEIvhnDtxI7hrvAO/QXoeiO/u2w9SI8s3a0ahZ12CBs=" + }, + "us62": { + "endpoint4": "89.45.90.119", + "endpoint6": "2a0d:5600:8:21::a62f", + "pubkey": "yuITCrm6C98a6uhpYz9njQr0cqghADkrJvw/Me8dlS4=" + }, + "us63": { + "endpoint4": "89.45.90.132", + "endpoint6": "2a0d:5600:8:28::a63f", + "pubkey": "eLJO1DIrQ1wI4NCVbsBzAKMi8T0D3I5feYLXjdgRpTc=" + }, + "us64": { + "endpoint4": "89.45.90.145", + "endpoint6": "2a0d:5600:8:28::a64f", + "pubkey": "J/ho14X87UdfahnH6m+StgazV92je4HiUQ3je6j+W2E=" + }, + "us65": { + "endpoint4": "89.45.90.158", + "endpoint6": "2a0d:5600:8:28::a65f", + "pubkey": "cHI6R/6RHJlyLZYzRw2HRNJwtgmuBRDRP5Dbwaws3zo=" + }, + "us66": { + "endpoint4": "89.45.90.171", + "endpoint6": "2a0d:5600:8:29::a66f", + "pubkey": "bGQd5D0DEfTNPkU5yYY7tZ4nr0AgdPX87krGv1cm4yQ=" + }, + "us67": { + "endpoint4": "89.45.90.184", + "endpoint6": "2a0d:5600:8:29::a67f", + "pubkey": "jzimocgM4cWW3V+WN5uc8mxO5k97vAwbuGalz4s12U4=" + }, + "us68": { + "endpoint4": "89.45.90.197", + "endpoint6": "2a0d:5600:8:29::a68f", + "pubkey": "TyZ5tCLvOyHbiNYiySZ4h4Mcyt1BLnGy5MXaaggKvVU=" + }, + "us69": { + "endpoint4": "89.45.90.210", + "endpoint6": "2a0d:5600:8:3f::a69f", + "pubkey": "bVRtvE1WQQmAjnC1BybSXz2r9VHLp9DKwsEZ3UzELjg=" + }, + "us6": { + "endpoint4": "66.71.247.202", + "endpoint6": "2607:f7a0:6:7::a06f", + "pubkey": "M3SdiG/jYf5e7iYdYKDze4pHctIEY4r9cEMYrSIiojQ=" + }, + "us70": { + "endpoint4": "89.45.90.223", + "endpoint6": "2a0d:5600:8:3f::a70f", + "pubkey": "mQOWxQ1I5KlZh+f1g3C870r32TmDj3eGAsb5s+K75Gw=" + }, + "us71": { + "endpoint4": "89.45.90.236", + "endpoint6": "2a0d:5600:8:3f::a71f", + "pubkey": "my8fkG14VylzBgeyctdppk9eMc+o5gZBpkJHbYmq7RQ=" + }, + "us72": { + "endpoint4": "89.46.62.145", + "endpoint6": "2a0d:5600:24:a7b::a72f", + "pubkey": "+/HYwELAaww6XTtPmvf3Hr8NqLIr69YNUpAMBvWJiGw=" + }, + "us73": { + "endpoint4": "89.46.62.158", + "endpoint6": "2a0d:5600:24:a7c::a73f", + "pubkey": "34rw+ei9qLjTOTOHCoz/3pG4XaMfmuRwYajuG/7Tsyc=" + }, + "us74": { + "endpoint4": "89.46.62.171", + "endpoint6": "2a0d:5600:24:a7d::a74f", + "pubkey": "3KoxhZNXXuXnVt0T7Ka4XnSbIRTZnh+DFq+eI05yVHo=" + }, + "us75": { + "endpoint4": "89.46.62.184", + "endpoint6": "2a0d:5600:24:a7e::a75f", + "pubkey": "U06dpwDLyRfe+H0p80SjrdlKEVraqEsHFsAVUd/Chls=" + }, + "us76": { + "endpoint4": "89.46.62.197", + "endpoint6": "2a0d:5600:24:a7f::a76f", + "pubkey": "cVDIYPzNChIeANp+0jE12kWM5Ga1MbmNErT1Pmaf12A=" + }, + "us77": { + "endpoint4": "89.46.62.210", + "endpoint6": "2a0d:5600:24:a80::a77f", + "pubkey": "mqSfg28JSJwUuqvOBKbCwPp2E7zgNi46kuxKj5FzDUY=" + }, + "us78": { + "endpoint4": "89.46.62.223", + "endpoint6": "2a0d:5600:24:a81::a78f", + "pubkey": "9BXmWC1UkQMnzS71WXVxfBW5O+AIFTXRCx31SpCvhSg=" + }, + "us79": { + "endpoint4": "89.46.62.236", + "endpoint6": "2a0d:5600:24:a82::a79f", + "pubkey": "oofWbWXoLbEzmnsQX6ZYdgYNzSjkBg58zpAdIBUlUAk=" + }, + "us80": { + "endpoint4": "83.143.246.98", + "endpoint6": "2a0d:5600:24:a83::a80f", + "pubkey": "t/VsxDKzPfh3H3XG3ckVr1e8sJ3PuuD0YxdfFtyKjRM=" + }, + "us81": { + "endpoint4": "86.106.143.2", + "endpoint6": "2a0d:5600:24:a84::a81f", + "pubkey": "kxS/gAMkGwpR/F7J4L0JCjZEzR+rq0i2lqK6wWnZLAE=" + }, + "us82": { + "endpoint4": "86.106.143.15", + "endpoint6": "2a0d:5600:24:a85::a82f", + "pubkey": "qS+FVzRxR0VXljM2aguVXLq494VRuS5sqcE3/DscJRU=" + }, + "us83": { + "endpoint4": "86.106.143.28", + "endpoint6": "2a0d:5600:24:a86::a83f", + "pubkey": "7TLCd9zMWxlB2geyeaMDVRJsdPtTvXEApADfoCA3zCY=" + }, + "us84": { + "endpoint4": "86.106.143.41", + "endpoint6": "2a0d:5600:24:a87::a84f", + "pubkey": "rFV47I3lu0zlLqJBfV+0Zq8Kt8ytnFVWA02lOq5IyFw=" + }, + "us85": { + "endpoint4": "86.106.143.54", + "endpoint6": "2a0d:5600:24:a88::a85f", + "pubkey": "9iNdLMieZ5V2Hv4Dmm4xFqMAbtjnBReEe4iy8A5WRHo=" + }, + "us86": { + "endpoint4": "86.106.143.67", + "endpoint6": "2a0d:5600:24:a89::a86f", + "pubkey": "5FXy0/tMXj/TYKVj9PHJ42lCpbWP4qLAOpLZa6FnsRw=" + }, + "us87": { + "endpoint4": "86.106.143.80", + "endpoint6": "2a0d:5600:24:a8a::a87f", + "pubkey": "QRp4cLDKwbJbondYIi0mPlGmBxI8NV5geXBy4EdKhEM=" + }, + "us88": { + "endpoint4": "86.106.143.93", + "endpoint6": "2a0d:5600:24:a8b::a88f", + "pubkey": "ru9aQRxYBkK5pWvNkdFlCR8VMPSqcEENBPGkIGEN0XU=" + }, + "us89": { + "endpoint4": "86.106.143.106", + "endpoint6": "2a0d:5600:24:a8c::a89f", + "pubkey": "u5NkFaOlhZX9AtjBVb4hTYqwgmTToernOrCc2D7B7hk=" + }, + "us90": { + "endpoint4": "86.106.143.119", + "endpoint6": "2a0d:5600:24:a8d::a90f", + "pubkey": "UwNBR7xJgc+R383zl2Eas2HzSC3hOFY5zDsfHRGSlgg=" + }, + "us91": { + "endpoint4": "86.106.143.132", + "endpoint6": "2a0d:5600:24:a8e::a91f", + "pubkey": "bOOP5lIjqCdDx5t+mP/kEcSbHS4cZqE0rMlBI178lyY=" + }, + "us92": { + "endpoint4": "86.106.143.145", + "endpoint6": "2a0d:5600:24:a8f::a92f", + "pubkey": "JQo2XN042FQbMrpvRMpEoA+CpqhRESeSWjkNB+k41Ds=" + }, + "us94": { + "endpoint4": "86.106.143.171", + "endpoint6": "2a0d:5600:24:a91::a94f", + "pubkey": "oKKbNl27XkJvtyQx8ikzH0heoFJ+INjQeg4JzasBWTA=" + }, + "us95": { + "endpoint4": "86.106.143.184", + "endpoint6": "2a0d:5600:24:a92::a95f", + "pubkey": "GcnYpduxlDZhlzmRiXV6rwXbeJDgBZMn8e7adsMNg3Y=" + }, + "us96": { + "endpoint4": "86.106.143.197", + "endpoint6": "2a0d:5600:24:a93::a96f", + "pubkey": "CYoBb5hayfNzt+lOgJyMXcsWKitTn4QAXut7kg4relc=" + }, + "us97": { + "endpoint4": "86.106.143.210", + "endpoint6": "2a0d:5600:24:a94::a97f", + "pubkey": "5fzEFqyRqc6qa1QPngIBK1gmWc0ex1Bpot/f6RqZPmc=" + }, + "us98": { + "endpoint4": "86.106.143.223", + "endpoint6": "2a0d:5600:24:a95::a98f", + "pubkey": "bo50ppMvVlNG4S6zqgd/J5l1Ce7Og89u+wR10OvJrQ4=" + }, + "us99": { + "endpoint4": "86.106.143.236", + "endpoint6": "2a0d:5600:24:a96::a99f", + "pubkey": "EPLh6pVel06dND8cE4Prix9GP4hGLYNhQhn5mSN2yzM=" + } +} diff --git a/modules/mullvad/update.sh b/modules/mullvad/update.sh new file mode 100755 index 0000000..cd458d6 --- /dev/null +++ b/modules/mullvad/update.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +# This gets the current wireguard relay list from mullvad’s API and transforms +# it into a format that takes up less space than the original response. +set -euo pipefail +curl -s 'https://api.mullvad.net/www/relays/wireguard/' | jq '. | map({ + key: .hostname | split("-")[0], + value: { + endpoint4: .ipv4_addr_in, + endpoint6: .ipv6_addr_in, + pubkey: .pubkey + } +}) | from_entries' > relays.json diff --git a/users/simon/files/scripts/mullvad b/users/simon/files/scripts/mullvad index 545092b..934d3cb 100755 --- a/users/simon/files/scripts/mullvad +++ b/users/simon/files/scripts/mullvad @@ -1,14 +1,60 @@ #!/usr/bin/env bash +# This reads wg-quick compatible configuration files from +# /etc/wireguard/mullvad-LOCATION.conf +# +# Since they are autogenerated by nix and therefore world-readable, they do not +# include secrets like the private key and client address. Instead, they are +# manually added after wg-quick set up the tunnel by retrieving them with +# pass(1) from web/mullvad.net/wireguard. +# +# Format of pass entry: +# PrivateKey: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa= +# Address4: 10.0.0.1/32 +# Address6: fd00::1/128 +set -euo pipefail + if (( $# < 1 )); then echo "USAGE: $0 LOCATION|off" >&2 exit 1 fi -current_interfaces="$(ip -o a | grep -oE '[0-9]*:\ mullvad-(v6-)?[a-z][a-z][0-9]*' | uniq | cut -d: -f2 | tr -d ' ')" -for current_interface in $current_interfaces; do - sudo wg-quick down "$current_interface" +INTERFACE="mullvad-$1" + +cmd() { + echo "[#] $*" >&2 + sudo "$@" +} + +# Make sure gpg-agent is unlocked so the period where the interface exists but +# no private key is set is minised. +pass web/mullvad.net/wireguard >/dev/null + +for interface in /sys/class/net/*; do + interface="${interface#/sys/class/net/}" + [[ $interface =~ ^mullvad-(v6-)?[a-z]{2}[0-9]*$ ]] && cmd wg-quick down "$interface" done if [ "$1" != "off" ]; then - sudo wg-quick up mullvad-$1 + cmd wg-quick up "$INTERFACE" + pass web/mullvad.net/wireguard | while read -r line; do + key="${line%%: *}" + value="${line#*: }" + case "$key" in + PrivateKey) + cmd wg set "$INTERFACE" private-key /dev/stdin <<< "$value" + continue + ;; + Address4) + cmd ip -4 address add "$value" dev "$INTERFACE" + continue + ;; + Address6) + cmd ip -6 address add "$value" dev "$INTERFACE" + continue + ;; + *) + echo "Invalid key '$key'" + exit 1 + esac + done fi