diff options
| author | sefidel <contact@sefidel.net> | 2023-09-19 01:26:22 +0900 |
|---|---|---|
| committer | sefidel <contact@sefidel.net> | 2023-09-19 01:26:22 +0900 |
| commit | 9084e40de72042f10c78b5a423b415bad0a53179 (patch) | |
| tree | b9b9ee7598a730fae949debf31d66a09f658eb19 | |
| parent | 4bcd683f46d3907cff4438e4b3e1804bad4e14c8 (diff) | |
| download | nixrc-9084e40de72042f10c78b5a423b415bad0a53179.zip | |
feat(modules): add nm-mullvad
| -rw-r--r-- | modules/nm-mullvad/default.nix | 249 | ||||
| -rwxr-xr-x | modules/nm-mullvad/generate-mullvad-peer-list.sh | 30 | ||||
| -rw-r--r-- | modules/nm-mullvad/mullvad-servers-list.nix | 2471 |
3 files changed, 2750 insertions, 0 deletions
diff --git a/modules/nm-mullvad/default.nix b/modules/nm-mullvad/default.nix new file mode 100644 index 0000000..1473b79 --- /dev/null +++ b/modules/nm-mullvad/default.nix @@ -0,0 +1,249 @@ +{ config, pkgs, lib, ... }: + + +let + cfg = config.networking.networkmanager.nm-mullvad; + + template = { id, uuid, pubKey, endpoint }: + '' + [connection] + id=${id} + uuid=${uuid} + type=wireguard + ${lib.optionalString (!cfg.autoConnect.enable || cfg.autoConnect.profile != id) "autoconnect=false"} + interface-name=${id} + + [wireguard] + ${lib.optionalString (cfg.listenPort != null) "listen-port=${toString cfg.listenPort}"} + private-key=${if cfg.privateKey != null then cfg.privateKey else "@PRIVKEY@"} + + [wireguard-peer.${pubKey}] + endpoint=${endpoint}:51820 + allowed-ips=0.0.0.0/0;::/0; + + [ipv4] + address1=${if cfg.ipv4Address != null then cfg.ipv4Address else "@IPV4ADDRESS@"} + dns=10.64.0.1 + dns-search=~; + method=manual + + [ipv6] + addr-gen-mode=default + address1=${if cfg.ipv6Address != null then cfg.ipv6Address else "@IPV6ADDRESS@"} + method=manual + + [proxy] + ''; + + serversList = import ./mullvad-servers-list.nix; + + allServerIds = builtins.map (x: x.id) serversList; + + availableServersList = builtins.filter (x: lib.elem x.id cfg.availableServers) serversList; + + serverEntryToConnFilename = serverEntry: + "NetworkManager/system-connections/${serverEntry.id}.nmconnection"; + + serverEntryToConnFile = serverEntry: + { + "${serverEntryToConnFilename serverEntry}" = { + text = template + { + inherit (serverEntry) id uuid pubKey endpoint; + }; + mode = "0600"; + }; + }; + + connFiles = lib.fold (x: acc: lib.recursiveUpdate (serverEntryToConnFile x) acc) { } availableServersList; + +in +{ + options.networking.networkmanager.nm-mullvad = { + enable = lib.mkEnableOption "Mullvad VPN profile for NetworkManager"; + + listenPort = lib.mkOption { + type = lib.types.nullOr lib.types.number; + default = null; + + description = '' + Set the port to listen on. Useful if you have a firewall active. + ''; + }; + + openFirewall = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Whether to open firewall for given `listenPort`. + ''; + }; + + autoConnect = { + enable = lib.mkEnableOption "autoconnect for `autoConnect.profile`"; + + profile = lib.mkOption { + type = lib.types.nullOr lib.types.str; + default = null; + description = '' + ID of the profile to autoconnect to. + ''; + }; + }; + + privateKey = lib.mkOption { + type = lib.types.nullOr lib.types.str; + default = null; + description = '' + WireGuard private key to use for authenticating with Mullvad. + ''; + }; + + privateKeyPath = lib.mkOption { + type = lib.types.nullOr lib.types.str; + default = null; + description = '' + Path for the file containing WireGuard private key to use for + authenticating with Mullvad. + ''; + }; + + ipv4Address = lib.mkOption { + type = lib.types.nullOr lib.types.str; + default = null; + description = '' + IPv4 address to assign to the WireGuard interface. + This should include the CIDR notation, e.g.) `10.64.0.1/32` + ''; + }; + + ipv4AddressPath = lib.mkOption { + type = lib.types.nullOr lib.types.str; + default = null; + description = '' + Path for the file containing the IPv4 address to assign to the + WireGuard interface. + This should include the CIDR notation, e.g.) `10.64.0.1/32` + ''; + }; + + ipv6Address = lib.mkOption { + type = lib.types.nullOr lib.types.str; + default = null; + description = '' + IPv6 address to assign to the wireguard interface. + This should include the CIDR notation, e.g.) `fc00:bbbb:bbbb:bb01::1/128` + ''; + }; + + ipv6AddressPath = lib.mkOption { + type = lib.types.nullOr lib.types.str; + default = null; + description = '' + Path for the file containing the IPv6 address to assign to the + WireGuard interface. + This should include the CIDR notation, e.g.) `fc00:bbbb:bbbb:bb01::1/128` + ''; + }; + + availableServers = lib.mkOption + { + type = lib.types.listOf lib.types.str; + default = allServerIds; + description = '' + List of servers that will be made available. + Defaults to all servers, which might introduce clutter. + ''; + }; + }; + + config = lib.mkIf cfg.enable { + assertions = [ + { + assertion = cfg.openFirewall == true -> cfg.listenPort != null; + message = '' + A custom `listenPort` must be given when `openFirewall` is set. + ''; + } + { + assertion = cfg.autoConnect.enable == true -> cfg.autoConnect.profile != null; + message = '' + Profile to use for autoconnect must be set when enabling autoconnect. + ''; + } + { + assertion = cfg.privateKey != null || cfg.privateKeyPath != null; + message = '' + Either `privateKey` or `privateKeyPath` must be set. + ''; + } + { + assertion = cfg.ipv4Address != null || cfg.ipv4AddressPath != null; + message = '' + Either `ipv4Address` or `ipv4AddressPath` must be set. + ''; + } + { + assertion = cfg.ipv6Address != null || cfg.ipv6AddressPath != null; + message = '' + Either `ipv6Address` or `ipv6AddressPath` must be set. + ''; + } + ]; + + environment.etc = connFiles; + + system.activationScripts.nm-mullvad-substitutePrivateKey = lib.mkIf (cfg.privateKeyPath != null) (lib.stringAfter [ "etc" "specialfs" "var" ] + '' + if [ -f "${cfg.privateKeyPath}" ]; then + ${pkgs.systemd}/bin/systemd-cat -t nixos echo "<6>loading networking.networkmanager.nm-mullvad.privateKeyPath from ${cfg.privateKeyPath}" + ${lib.concatMapStringsSep "\n" + (f: "${pkgs.gnused}/bin/sed -ie \"s_@PRIVKEY@_$(< ${cfg.privateKeyPath})_\" ${f}") + (builtins.map (s: "/etc/${serverEntryToConnFilename s}") availableServersList)} + else + warning_msg="WARNING: networking.networkmanager.nm-mullvad.privateKeyPath (${cfg.privateKeyPath}) does not exist." + echo "$warning_msg" + ${pkgs.systemd}/bin/systemd-cat -t nixos echo "<4>$warning_msg" + fi + ''); + + system.activationScripts.nm-mullvad-substituteIpv4Address = lib.mkIf (cfg.ipv4AddressPath != null) (lib.stringAfter [ "etc" "specialfs" "var" ] + '' + if [ -f "${cfg.ipv4AddressPath}" ]; then + ${pkgs.systemd}/bin/systemd-cat -t nixos echo "<6>loading networking.networkmanager.nm-mullvad.ipv4AddressPath from ${cfg.ipv4AddressPath}" + ${lib.concatMapStringsSep "\n" + (f: "${pkgs.gnused}/bin/sed -ie \"s!@IPV4ADDRESS@!$(< ${cfg.ipv4AddressPath})!\" ${f}") + (builtins.map (s: "/etc/${serverEntryToConnFilename s}") availableServersList)} + else + warning_msg="WARNING: networking.networkmanager.nm-mullvad.ipv4AddressPath (${cfg.ipv4AddressPath}) does not exist." + echo "$warning_msg" + ${pkgs.systemd}/bin/systemd-cat -t nixos echo "<4>$warning_msg" + fi + ''); + + system.activationScripts.nm-mullvad-substituteIpv6Address = lib.mkIf (cfg.ipv6AddressPath != null) (lib.stringAfter [ "etc" "specialfs" "var" ] + '' + if [ -f "${cfg.ipv6AddressPath}" ]; then + ${pkgs.systemd}/bin/systemd-cat -t nixos echo "<6>loading networking.networkmanager.nm-mullvad.ipv6AddressPath from ${cfg.ipv6AddressPath}" + ${lib.concatMapStringsSep "\n" + (f: "${pkgs.gnused}/bin/sed -ie \"s!@IPV6ADDRESS@!$(< ${cfg.ipv6AddressPath})!\" ${f}") + (builtins.map (s: "/etc/${serverEntryToConnFilename s}") availableServersList)} + else + warning_msg="WARNING: networking.networkmanager.nm-mullvad.ipv6AddressPath (${cfg.ipv6AddressPath}) does not exist." + echo "$warning_msg" + ${pkgs.systemd}/bin/systemd-cat -t nixos echo "<4>$warning_msg" + fi + ''); + + networking.firewall.allowedUDPPorts = lib.mkIf cfg.openFirewall [ cfg.listenPort ]; + networking.firewall.logReversePathDrops = lib.mkIf cfg.openFirewall true; + networking.firewall.extraCommands = lib.mkIf cfg.openFirewall '' + ip46tables -t mangle -I nixos-fw-rpfilter -p udp -m udp --sport ${toString cfg.listenPort} -j RETURN + ip46tables -t mangle -I nixos-fw-rpfilter -p udp -m udp --dport ${toString cfg.listenPort} -j RETURN + ''; + networking.firewall.extraStopCommands = lib.mkIf cfg.openFirewall '' + ip46tables -t mangle -D nixos-fw-rpfilter -p udp -m udp --sport ${toString cfg.listenPort} -j RETURN || true + ip46tables -t mangle -D nixos-fw-rpfilter -p udp -m udp --dport ${toString cfg.listenPort} -j RETURN || true + ''; + }; +} diff --git a/modules/nm-mullvad/generate-mullvad-peer-list.sh b/modules/nm-mullvad/generate-mullvad-peer-list.sh new file mode 100755 index 0000000..9fe5ed9 --- /dev/null +++ b/modules/nm-mullvad/generate-mullvad-peer-list.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p curl jq + +set -euo pipefail + +script_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd) +output_file="$script_dir/mullvad-servers-list.nix" + +servers_json=$(curl -Ss 'https://api.mullvad.net/www/relays/all') + +readarray -t servers_arr < <(jq -c '.[] | select(.type == "wireguard")' <<< $servers_json) + +printf '# @generated by generate-mullvad-peer-list.sh\n# Do not Edit.\n\n' > $output_file +printf '[\n' >> $output_file + +for item in "${servers_arr[@]}"; do + hostname=$(jq -r '.hostname' <<< $item) + pubkey=$(jq -r '.pubkey' <<< $item) + endpoint=$(jq -r '.ipv4_addr_in' <<< $item) + cat <<EOF >> $output_file + { + id = "$hostname"; + uuid = "$(uuidgen -n @url --sha1 --name "$hostname-$endpoint")"; + pubKey = "$pubkey"; + endpoint = "$endpoint"; + } +EOF +done + +printf ']' >> $output_file diff --git a/modules/nm-mullvad/mullvad-servers-list.nix b/modules/nm-mullvad/mullvad-servers-list.nix new file mode 100644 index 0000000..e35346a --- /dev/null +++ b/modules/nm-mullvad/mullvad-servers-list.nix @@ -0,0 +1,2471 @@ +# @generated by generate-mullvad-peer-list.sh +# Do not Edit. + +[ + { + id = "al-tia-wg-001"; + uuid = "ee47a18f-e230-57dc-99bc-e7e9e98790bd"; + pubKey = "bPfJDdgBXlY4w3ACs68zOMMhLUbbzktCKnLOFHqbxl4="; + endpoint = "31.171.153.66"; + } + { + id = "at-vie-wg-001"; + uuid = "7564fbaa-72f0-5434-999a-0aa7369593c9"; + pubKey = "TNrdH73p6h2EfeXxUiLOCOWHcjmjoslLxZptZpIPQXU="; + endpoint = "146.70.116.98"; + } + { + id = "at-vie-wg-002"; + uuid = "15aa73c2-1fe8-5e3a-8e93-adf0c23d9fd6"; + pubKey = "ehXBc726YX1N6Dm7fDAVMG5cIaYAFqCA4Lbpl4VWcWE="; + endpoint = "146.70.116.130"; + } + { + id = "at-vie-wg-003"; + uuid = "57dfe770-073a-5c85-b4dd-f5b85a08be22"; + pubKey = "ddllelPu2ndjSX4lHhd/kdCStaSJOQixs9z551qN6B8="; + endpoint = "146.70.116.162"; + } + { + id = "au-adl-wg-301"; + uuid = "79203768-bdfd-5b63-b13f-8dce5dea0b47"; + pubKey = "rm2hpBiN91c7reV+cYKlw7QNkYtME/+js7IMyYBB2Aw="; + endpoint = "103.214.20.50"; + } + { + id = "au-adl-wg-302"; + uuid = "cc2bc972-b2d5-5b67-9bb3-a44b449d529a"; + pubKey = "e4jouH8n4e8oyi/Z7d6lJLd6975hlPZmnynJeoU+nWM="; + endpoint = "103.214.20.130"; + } + { + id = "au-bne-wg-301"; + uuid = "57169cb8-d91e-50b9-b775-7a715381539d"; + pubKey = "1H/gj8SVNebAIEGlvMeUVC5Rnf274dfVKbyE+v5G8HA="; + endpoint = "103.216.220.18"; + } + { + id = "au-bne-wg-302"; + uuid = "70bac081-529d-50ce-b156-34c89c8f8eae"; + pubKey = "z+JG0QA4uNd/wRTpjCqn9rDpQsHKhf493omqQ5rqYAc="; + endpoint = "103.216.220.34"; + } + { + id = "au-mel-wg-301"; + uuid = "e0d374e3-257b-5c61-9e74-8633059a4ba5"; + pubKey = "jUMZWFOgoFGhZjBAavE6jW8VgnnNpL4KUiYFYjc1fl8="; + endpoint = "103.108.229.50"; + } + { + id = "au-mel-wg-302"; + uuid = "888c7fe4-5a1c-513a-a6aa-f6a7fe76ed89"; + pubKey = "npTb63jWEaJToBfn0B1iVNbnLXEwwlus5SsolsvUhgU="; + endpoint = "103.108.229.66"; + } + { + id = "au-per-wg-301"; + uuid = "9168cf85-e858-530c-af0f-38d849a8d9d4"; + pubKey = "hQXsNk/9R2We0pzP1S9J3oNErEu2CyENlwTdmDUYFhg="; + endpoint = "103.108.231.50"; + } + { + id = "au-per-wg-302"; + uuid = "7cb257a3-28a1-596d-8a81-533c212ac69c"; + pubKey = "t3Ly8bBdF2gMHzT3d529bVLDw8Jd2/FFG9GXoBEx01g="; + endpoint = "103.108.231.66"; + } + { + id = "au-syd-wg-001"; + uuid = "117c112f-7cfb-5be6-bd0f-f35cb787f98b"; + pubKey = "4JpfHBvthTFOhCK0f5HAbzLXAVcB97uAkuLx7E8kqW0="; + endpoint = "146.70.200.2"; + } + { + id = "au-syd-wg-002"; + uuid = "24b91092-72d7-5095-8e1f-dcfb237589b5"; + pubKey = "lUeDAOy+iAhZDuz5+6zh0Co8wZcs3ahdu2jfqQoDW3E="; + endpoint = "146.70.141.194"; + } + { + id = "au-syd-wg-003"; + uuid = "f99c7c77-db85-5628-9503-6d471f3f1ef3"; + pubKey = "LXuRwa9JRTt2/UtldklKGlj/IVLORITqgET4II4DRkU="; + endpoint = "146.70.200.194"; + } + { + id = "be-bru-wg-101"; + uuid = "3ce6c966-6ec4-527f-8e6a-246d2ca56d4a"; + pubKey = "GE2WP6hmwVggSvGVWLgq2L10T3WM2VspnUptK5F4B0U="; + endpoint = "91.90.123.2"; + } + { + id = "be-bru-wg-102"; + uuid = "c707b92a-4b17-5858-9447-82b3d8aa4e32"; + pubKey = "IY+FKw487MEWqMGNyyrT4PnTrJxce8oiGNHT0zifam8="; + endpoint = "194.110.115.34"; + } + { + id = "be-bru-wg-103"; + uuid = "1857cb28-6c8b-5a5d-bf42-ac6fa7df5c93"; + pubKey = "b5A1ela+BVI+AbNXz7SWekZHvdWWpt3rqUKTJj0SqCU="; + endpoint = "194.110.115.2"; + } + { + id = "bg-sof-wg-001"; + uuid = "97cd9821-97fd-572a-9dcd-fafb5a51e07c"; + pubKey = "J8KysHmHZWqtrVKKOppneDXSks/PDsB1XTlRHpwiABA="; + endpoint = "146.70.188.130"; + } + { + id = "bg-sof-wg-002"; + uuid = "3fdddd37-5094-5228-909a-52833568ebef"; + pubKey = "dg+Fw7GnKvDPBxFpnj1KPoNIu1GakuVoDJjKRni+pRU="; + endpoint = "146.70.188.194"; + } + { + id = "br-sao-wg-001"; + uuid = "644b67c4-ed42-5ffe-ae41-22a37b138749"; + pubKey = "xUDPh13sY127m+7d05SOQAzzNCyufTjaGwCXkWsIjkw="; + endpoint = "149.78.184.194"; + } + { + id = "br-sao-wg-201"; + uuid = "6f3568c8-e33d-5fb8-8d45-5a0bd8e8d6c0"; + pubKey = "8c9M6w1BQbgMVr/Zgrj4GwSdU6q3qfQfWs17kMLC9y4="; + endpoint = "169.150.198.66"; + } + { + id = "br-sao-wg-202"; + uuid = "6f1253fa-2309-5bcd-b086-ec6fc20fff7a"; + pubKey = "jWURoz8SLBUlRTQnAFTA/LDZUTpvlO0ghiVWH7MgaHQ="; + endpoint = "169.150.198.79"; + } + { + id = "ca-mtr-wg-001"; + uuid = "9c4a047d-0de1-5123-aec7-023e3d95d588"; + pubKey = "TUCaQc26/R6AGpkDUr8A8ytUs/e5+UVlIVujbuBwlzI="; + endpoint = "146.70.198.66"; + } + { + id = "ca-mtr-wg-002"; + uuid = "3a60710d-cce9-56c3-9bab-bbd6ea2f6d22"; + pubKey = "7X6zOgtJfJAK8w8C3z+hekcS9Yf3qK3Bp4yx56lqxBQ="; + endpoint = "146.70.198.130"; + } + { + id = "ca-mtr-wg-003"; + uuid = "2cef116f-dd22-50ec-81ac-fc96db96b239"; + pubKey = "57Zu2qPzRScZWsoC2NhXgz0FiC0HiKkbEa559sbxB3k="; + endpoint = "146.70.198.194"; + } + { + id = "ca-mtr-wg-004"; + uuid = "f1a8edd3-995f-59a2-ba0b-7db55cc7d92b"; + pubKey = "Cc5swfQ9f2tAgLduuIqC3bLbwDVoOFkkETghsE6/twA="; + endpoint = "188.241.176.194"; + } + { + id = "ca-tor-wg-001"; + uuid = "7cc33cfc-81bb-5a4b-bbd8-82afcfdb5a27"; + pubKey = "HjcUGVDXWdrRkaKNpc/8494RM5eICO6DPyrhCtTv9Ws="; + endpoint = "178.249.214.2"; + } + { + id = "ca-tor-wg-002"; + uuid = "5451910a-e2f1-57c7-87cd-0db145c304c8"; + pubKey = "iqZSgVlU9H67x/uYE5xsnzLCDXf7FL9iMfyKfl6WsV8="; + endpoint = "178.249.214.15"; + } + { + id = "ca-tor-wg-101"; + uuid = "44299e5b-a5b2-5f6d-aa34-989ca2f89e5f"; + pubKey = "hfvZctxTQukC6lMJ4liGTg1JECT4XqEKpTNPk84k2As="; + endpoint = "198.44.140.130"; + } + { + id = "ca-tor-wg-102"; + uuid = "95dfe54b-c66c-5192-b5cd-be5ddb8af3c9"; + pubKey = "iGwKJTbm/aL4kJXwcJkO0JYPEEGGDcYBrRTG7CHIQx0="; + endpoint = "198.54.132.98"; + } + { + id = "ca-tor-wg-103"; + uuid = "0c523b18-bc6c-5dd9-adc8-0240c07b8345"; + pubKey = "MbusadbeACMR5bv+PPjhldb5CgwjlCbthnTJNrOJnhI="; + endpoint = "198.54.132.226"; + } + { + id = "ca-tor-wg-104"; + uuid = "69c0147d-1f90-59ab-acd1-c7f3fb3579dd"; + pubKey = "y9JT2B69QiWkbEAiXGq5yhtAvg8YNXNkjhHcUiBCiko="; + endpoint = "198.54.132.130"; + } + { + id = "ca-tor-wg-105"; + uuid = "0b8245f4-d930-5e79-8d3e-a64b65097f1d"; + pubKey = "XE+hufytSkX14TjskwmYL4HL4mbPf+Vd5Jfgwf/5JHc="; + endpoint = "198.44.140.162"; + } + { + id = "ca-tor-wg-106"; + uuid = "58e528af-670e-5004-b544-9b0c077d123f"; + pubKey = "ptnLZbreIzTZrSyPD0XhOAAmN194hcPSG5TI5TTiL08="; + endpoint = "198.54.132.162"; + } + { + id = "ca-tor-wg-107"; + uuid = "19b1a8ba-691c-5467-ae80-1714e87e3646"; + pubKey = "jVgDxCstCo0NRZ/dB9fpQiu+dfYK2v3HOa4B6MkLaQA="; + endpoint = "198.44.140.194"; + } + { + id = "ca-van-wg-201"; + uuid = "0abfa385-1ea5-5774-bc65-7bc227350677"; + pubKey = "hYbb2NQKB0g2RefngdHl3bfaLImUuzeVIv2i1VCVIlQ="; + endpoint = "38.240.226.36"; + } + { + id = "ca-van-wg-202"; + uuid = "7f6dc5d1-3323-5f85-8c4c-77df463567a3"; + pubKey = "wGqcNxXH7A3bSptHZo7Dfmymy/Y30Ea/Zd47UkyEbzo="; + endpoint = "38.240.226.68"; + } + { + id = "ca-yyc-wg-201"; + uuid = "0d9a5354-282f-58fa-a210-b0fdabcc5049"; + pubKey = "L4RcVwk0cJJp2u8O9+86sdyUpxfYnr+ME57Ex0RY1Wo="; + endpoint = "38.240.225.36"; + } + { + id = "ca-yyc-wg-202"; + uuid = "03d59948-ebae-51c2-8987-b93db3575e38"; + pubKey = "u9J/fzrSqM2aEFjTs91KEKgBsaQ/I/4XkIP1Z/zYkXA="; + endpoint = "38.240.225.68"; + } + { + id = "ch-zrh-wg-001"; + uuid = "bc5ec01b-10f0-574b-b15c-f94d1153b4eb"; + pubKey = "/iivwlyqWqxQ0BVWmJRhcXIFdJeo0WbHQ/hZwuXaN3g="; + endpoint = "193.32.127.66"; + } + { + id = "ch-zrh-wg-002"; + uuid = "2df0bf96-051e-56d2-9bdc-86a76061f694"; + pubKey = "qcvI02LwBnTb7aFrOyZSWvg4kb7zNW9/+rS6alnWyFE="; + endpoint = "193.32.127.67"; + } + { + id = "ch-zrh-wg-003"; + uuid = "9a12a91c-90e2-5b4a-87e9-7602c7893d6d"; + pubKey = "5Ms10UxGjCSzwImTrvEjcygsWY8AfMIdYyRvgFuTqH8="; + endpoint = "193.32.127.68"; + } + { + id = "ch-zrh-wg-004"; + uuid = "c83465e8-07f1-5f38-92c0-f5e9f4615972"; + pubKey = "C3jAgPirUZG6sNYe4VuAgDEYunENUyG34X42y+SBngQ="; + endpoint = "193.32.127.69"; + } + { + id = "ch-zrh-wg-005"; + uuid = "ec3bcf0e-24c1-5a17-80d8-80db805eae68"; + pubKey = "dV/aHhwG0fmp0XuvSvrdWjCtdyhPDDFiE/nuv/1xnRM="; + endpoint = "193.32.127.70"; + } + { + id = "ch-zrh-wg-201"; + uuid = "1581b4ec-0cbb-52b0-83e9-ae06cf4fd3d9"; + pubKey = "66NPINP4+1AlojLP0J6O9GxdloiegNnGMV4Yit9Kzg0="; + endpoint = "179.43.189.66"; + } + { + id = "ch-zrh-wg-202"; + uuid = "3c4663b4-cc5b-54ae-aa04-85598b58c298"; + pubKey = "gSLSfY2zNFRczxHndeda258z+ayMvd7DqTlKYlKWJUo="; + endpoint = "46.19.136.226"; + } + { + id = "ch-zrh-wg-401"; + uuid = "aa6fe5cd-487a-5e3c-924f-322819abf107"; + pubKey = "45ud3I5O6GmPXTrMJiqkiPMI/ubucDqzGaiq3CHJXk8="; + endpoint = "138.199.6.194"; + } + { + id = "ch-zrh-wg-402"; + uuid = "65128c0d-de6f-5ad5-8a3f-d88e1623ae50"; + pubKey = "7VCMEE+Oljm/qKfQJSUCOYPtRSwdOnuPyqo5Vob+GRY="; + endpoint = "138.199.6.207"; + } + { + id = "ch-zrh-wg-403"; + uuid = "c666e5bb-ec47-595b-ba02-5cd93b8593d5"; + pubKey = "Jmhds6oPu6/j94hjllJCIaKLDyWu6V+ZNRrVVFhWJkI="; + endpoint = "138.199.6.220"; + } + { + id = "ch-zrh-wg-404"; + uuid = "115680da-7d2d-585f-9039-94a269ee3640"; + pubKey = "zfNQqDyPmSUY8+20wxACe/wpk4Q5jpZm5iBqjXj2hk8="; + endpoint = "138.199.6.233"; + } + { + id = "ch-zrh-wg-501"; + uuid = "91c46e1a-4162-5e92-876e-a11b103f6b5b"; + pubKey = "HQzvIK88XSsRujBlwoYvvZ7CMKwiYuOqLXyuckkTPHg="; + endpoint = "146.70.134.98"; + } + { + id = "ch-zrh-wg-502"; + uuid = "c3e53e49-e4aa-5536-94c7-7027d4c7e861"; + pubKey = "TOA/MQWS6TzJVEa//GPyaET5d52VpHO2isS4786GGwU="; + endpoint = "146.70.126.162"; + } + { + id = "ch-zrh-wg-503"; + uuid = "f1d8f2b1-2d38-5d1e-89a5-0354a1714a65"; + pubKey = "ApOUMLFcpTpj/sDAMub0SvASFdsSWtsy+vvw/nWvEmY="; + endpoint = "146.70.126.194"; + } + { + id = "ch-zrh-wg-504"; + uuid = "64dca957-fe09-5e7a-8173-7069127daad2"; + pubKey = "I5XiRYHPmxnmGtPJ90Yio6QXL441C/+kYV6UH6wU+jk="; + endpoint = "146.70.126.226"; + } + { + id = "ch-zrh-wg-505"; + uuid = "38a0a826-8e1f-5c82-86ee-f782b34ac37f"; + pubKey = "dc16Gcid7jLcHRD7uHma1myX3vWhEy/bZIBtqZw0B2I="; + endpoint = "146.70.134.2"; + } + { + id = "ch-zrh-wg-506"; + uuid = "0c30c212-0fc9-57bb-9630-6470747c89b5"; + pubKey = "7xVJLzW0nfmACr1VMc+/SiSMFh0j0EI3DrU/8Fnj1zM="; + endpoint = "146.70.134.34"; + } + { + id = "ch-zrh-wg-507"; + uuid = "d7a643de-a79c-5b4b-97b0-2b8637641f57"; + pubKey = "RNTpvmWTyjNf8w9qdP+5XlFnyAk5TrVvT+CRa8a0zys="; + endpoint = "146.70.134.66"; + } + { + id = "co-bog-wg-001"; + uuid = "810cb67f-7b10-56f1-b6ba-0d476f3371f5"; + pubKey = "iaMa84nCHK+v4TnQH4h2rxkqwwxemORXM12VbJDRZSU="; + endpoint = "154.47.16.34"; + } + { + id = "co-bog-wg-002"; + uuid = "4d43ce2d-41c1-5bb8-b17c-8a71d63eb13c"; + pubKey = "IZDwbG9C/NrOOGVUrn+fDaPr8ZwD/yhvST7XWGk1ln8="; + endpoint = "154.47.16.47"; + } + { + id = "cz-prg-wg-101"; + uuid = "a43d242e-77cf-5522-a873-70108f8b02d2"; + pubKey = "wLBxTaISMJ++vUht4hlAOUog9fhZxDql16TaYWaboDc="; + endpoint = "146.70.129.98"; + } + { + id = "cz-prg-wg-102"; + uuid = "b1d6afa0-2ee4-5ddb-abca-1b684640f56b"; + pubKey = "cRCJ0vULwKRbTfzuo9W+fIt0fJGQE7DLvojIiURIpiI="; + endpoint = "146.70.129.130"; + } + { + id = "cz-prg-wg-201"; + uuid = "d651d1da-a6d0-5fae-85d3-78684338579c"; + pubKey = "5FZW+fNA2iVBSY99HFl+KjGc9AFVNE+UFAedLNhu8lc="; + endpoint = "178.249.209.162"; + } + { + id = "cz-prg-wg-202"; + uuid = "cab14b81-6fa6-5529-9c0e-267e19b8651e"; + pubKey = "ReGrGPKDHri64D7qeXmgcLzjsTJ0B/yM7eekFz1P/34="; + endpoint = "178.249.209.175"; + } + { + id = "de-ber-wg-001"; + uuid = "6709a2ea-1d57-5cb5-a1ee-b6f759e56cad"; + pubKey = "0qSP0VxoIhEhRK+fAHVvmfRdjPs2DmmpOCNLFP/7cGw="; + endpoint = "193.32.248.66"; + } + { + id = "de-ber-wg-002"; + uuid = "350e7cc9-ba02-5730-becf-6692e34b9a1b"; + pubKey = "8ov1Ws0ut3ixWDh9Chp7/WLVn9qC6/WVHtcBcuWBlgo="; + endpoint = "193.32.248.67"; + } + { + id = "de-ber-wg-003"; + uuid = "a213c810-f2f5-59ed-97f8-04deecce38a0"; + pubKey = "USrMatdHiCL5AKdVMpHuYgWuMiK/GHPwRB3Xx00FhU0="; + endpoint = "193.32.248.68"; + } + { + id = "de-ber-wg-004"; + uuid = "1712a616-f6ae-5b9a-85a5-2fbd32c387ca"; + pubKey = "6PchzRRxzeeHdNLyn3Nz0gmN7pUyjoZMpKmKzJRL4GM="; + endpoint = "193.32.248.69"; + } + { + id = "de-ber-wg-005"; + uuid = "874b12d1-a426-598e-9bb2-1e9dc401dff0"; + pubKey = "I4Y7e8LrtBC/7DLpUgRd5k+IZk+whOFVAZgbSivoiBI="; + endpoint = "193.32.248.70"; + } + { + id = "de-ber-wg-006"; + uuid = "78963596-fc70-5d63-98a4-fb548ba2f421"; + pubKey = "eprzkkkSbXCANngQDo305DIAvkKAnZaN71IpTNaOoTk="; + endpoint = "193.32.248.71"; + } + { + id = "de-dus-wg-001"; + uuid = "47f326e0-6177-5ad4-9ffe-e0c44e77d369"; + pubKey = "ku1NYeOAGbY65YL/JKZhrqVzDJKXQiVj9USXbfkOBA0="; + endpoint = "185.254.75.3"; + } + { + id = "de-dus-wg-002"; + uuid = "6c42f8a2-3dae-5d69-afd2-ee638a74a8f4"; + pubKey = "TPAIPTgu9jIitgX1Bz5xMCZJ9pRRZTdtZEOIxArO0Hc="; + endpoint = "185.254.75.4"; + } + { + id = "de-dus-wg-003"; + uuid = "cab1efba-496e-5ab0-929e-f8e8ddd7b188"; + pubKey = "XgSe9UwEV4JJNPPzFFOVYS6scMTL4DeNlwqBl32lDw0="; + endpoint = "185.254.75.5"; + } + { + id = "de-fra-wg-001"; + uuid = "45aa0a64-3573-58c4-8358-22565a07d838"; + pubKey = "HQHCrq4J6bSpdW1fI5hR/bvcrYa6HgGgwaa5ZY749ik="; + endpoint = "185.213.155.73"; + } + { + id = "de-fra-wg-002"; + uuid = "f0462885-3f11-52c6-b82c-33d33dd03057"; + pubKey = "s1c/NsfnqnwQSxao70DY4Co69AFT9e0h88IFuMD5mjs="; + endpoint = "185.213.155.74"; + } + { + id = "de-fra-wg-003"; + uuid = "53b204ec-b2fe-5f6c-87bc-25519bf58d6f"; + pubKey = "vVQKs2TeTbdAvl3sH16UWLSESncXAj0oBaNuFIUkLVk="; + endpoint = "185.209.196.73"; + } + { + id = "de-fra-wg-004"; + uuid = "0bc1df81-ef64-521c-83c6-42e89d2bc836"; + pubKey = "tzYLWgBdwrbbBCXYHRSoYIho4dHtrm+8bdONU1I8xzc="; + endpoint = "185.209.196.74"; + } + { + id = "de-fra-wg-005"; + uuid = "acd0139b-deb5-5735-91c9-bf36414448c4"; + pubKey = "tpobOO6t18CzHjOg0S3RlZJMxd2tz4+BnRYS7NrjTnM="; + endpoint = "185.209.196.75"; + } + { + id = "de-fra-wg-006"; + uuid = "1c7eb5a4-0612-5b3d-ba60-0f28cd8df0e2"; + pubKey = "nAF0wrLG2+avwQfqxnXhBGPUBCvc3QCqWKH4nK5PfEU="; + endpoint = "185.209.196.76"; + } + { + id = "de-fra-wg-007"; + uuid = "9f321d21-c00f-5b7c-becd-934fa58ca627"; + pubKey = "mTmrSuXmTnIC9l2Ur3/QgodGrVEhhIE3pRwOHZpiYys="; + endpoint = "185.209.196.77"; + } + { + id = "de-fra-wg-008"; + uuid = "28f90715-f47a-5ef3-83ef-d04d6e32c0a4"; + pubKey = "TOS3U/dJPzPnk/qsAx6gHxRVIC2wI5l+tAWaJY2mXzY="; + endpoint = "185.209.196.78"; + } + { + id = "de-fra-wg-101"; + uuid = "5839e5ba-342c-58b2-a94b-2415420206ee"; + pubKey = "Voioje9Gfb7aTiK2/H6VyHFK1AFap1glIX0Z1EX2mRQ="; + endpoint = "146.70.117.162"; + } + { + id = "de-fra-wg-102"; + uuid = "73648ac7-d96b-5f7d-96b7-09ef196582f9"; + pubKey = "ydXFN45/kROELJrF6id+uIrnS5DvTKSCkZDjfL9De2Q="; + endpoint = "146.70.117.194"; + } + { + id = "de-fra-wg-103"; + uuid = "e7c1293a-d80a-5df7-883e-ba8e54285da8"; + pubKey = "KkShcqgwbkX2A9n1hhST6qu+m3ldxdJ2Lx8Eiw6mdXw="; + endpoint = "146.70.117.226"; + } + { + id = "de-fra-wg-104"; + uuid = "9d3f31a1-9d0b-5ac2-a2be-11a1b69b083b"; + pubKey = "uKTC5oP/zfn6SSjayiXDDR9L82X0tGYJd5LVn5kzyCc="; + endpoint = "146.70.107.194"; + } + { + id = "de-fra-wg-105"; + uuid = "ef260e26-4550-51b2-8e3a-ae92d109b9cc"; + pubKey = "Sttn2cr14dvIcCrE8qdlRGHXriqvTyvQWC7dzujH/iM="; + endpoint = "146.70.117.2"; + } + { + id = "de-fra-wg-106"; + uuid = "38dfe785-132f-5045-b9ee-f9810be01870"; + pubKey = "9ldhvN7r4xGZkGehbsNfYb5tpyTJ5KBb5B3TbxCwklw="; + endpoint = "146.70.117.34"; + } + { + id = "de-fra-wg-301"; + uuid = "50d4d986-2646-57cd-9bfb-e57a66bd8467"; + pubKey = "dNKRyh2MkJGZdg9jyUJtf9w5GHjX3+/fYatg+xi9TUM="; + endpoint = "194.36.25.3"; + } + { + id = "de-fra-wg-302"; + uuid = "55a405a1-971d-5c2d-8719-e7e6d324e671"; + pubKey = "A3DbIgPycEJhJ1fQ4zzcajLOKTZsJMeawjdPQiWav20="; + endpoint = "194.36.25.18"; + } + { + id = "de-fra-wg-303"; + uuid = "3b04d892-978a-5085-9ffb-fa184652f5a1"; + pubKey = "2P+9SjwVCEnMDnBiYfZtQLq9p2S2TFhCM0xJBoevYk4="; + endpoint = "194.36.25.33"; + } + { + id = "de-fra-wg-304"; + uuid = "5e60d537-068f-5f4f-ae95-c29bf157cc24"; + pubKey = "VgNcwWy8MRhfEZY+XSisDM1ykX+uXlHQScOLqqGMLkc="; + endpoint = "194.36.25.48"; + } + { + id = "de-fra-wg-401"; + uuid = "f43ccc9e-aedc-5aaa-ba4a-2e650f4accd7"; + pubKey = "AbM8fnQWmmX6Nv0Tz68LigPbGkamJgNjxgzPfENOdXU="; + endpoint = "169.150.201.2"; + } + { + id = "de-fra-wg-402"; + uuid = "e10ad32f-84f6-5a43-aef3-d0e8e57e8194"; + pubKey = "6/PBbPtoeWpJA+HZc9Iqg/PPQWD7mGVvZdwQlr1vtRk="; + endpoint = "169.150.201.15"; + } + { + id = "de-fra-wg-403"; + uuid = "83628961-f580-5e3f-95f7-47544649bb0d"; + pubKey = "HWzSNMbQOQafkVp68B7aLRirhNJ6x5Wjw8/y7oUuHW0="; + endpoint = "169.150.201.28"; + } + { + id = "dk-cph-wg-001"; + uuid = "11754013-d5fc-5705-b59d-3798e272a463"; + pubKey = "egl+0TkpFU39F5O6r6+hIBMPQLOa8/t5CymOZV6CC3Y="; + endpoint = "45.129.56.67"; + } + { + id = "dk-cph-wg-002"; + uuid = "3e1c3806-854e-5af7-a263-6c90e17373a3"; + pubKey = "R5LUBgM/1UjeAR4lt+L/yA30Gee6/VqVZ9eAB3ZTajs="; + endpoint = "45.129.56.68"; + } + { + id = "dk-cph-wg-401"; + uuid = "594a8571-bfab-5465-a34d-e172260687ea"; + pubKey = "Jjml2TSqKlgzW6UzPiJszaun743QYpyl5jQk8UOQYg0="; + endpoint = "146.70.197.194"; + } + { + id = "dk-cph-wg-402"; + uuid = "f700c172-df21-5284-86e2-06f4a75f4d38"; + pubKey = "ML0NcFPqy+x+ZJg7y9vfh77hXAOtgueIqp1j+CJVrXM="; + endpoint = "146.70.197.130"; + } + { + id = "ee-tll-wg-001"; + uuid = "eab81f3d-2d35-5277-a493-93040ba72c18"; + pubKey = "bdq37KtfoG1Tm7yQcfitdRyGeZOn/c7PwLN+LgG/6nA="; + endpoint = "194.127.167.67"; + } + { + id = "ee-tll-wg-002"; + uuid = "ce2aced6-be8b-5b58-a11d-5fe388396f29"; + pubKey = "vqGmmcERr/PAKDzy6Dxax8g4150rC93kmKYabZuAzws="; + endpoint = "194.127.167.87"; + } + { + id = "ee-tll-wg-003"; + uuid = "ab3aed12-2bc2-5b42-b2ea-dfcb80ddfd7f"; + pubKey = "+8dUgpD7YA4wMPnRQkO7EI7AeYd30QPMKh/hOaaGIXY="; + endpoint = "194.127.167.107"; + } + { + id = "es-mad-wg-101"; + uuid = "ef7cdf30-e5b1-5dfa-9fa9-81058caa34b4"; + pubKey = "oPpPeyiQhUYqtOxwR387dmFfII8OK5LX2RPyns1rx2U="; + endpoint = "45.134.213.194"; + } + { + id = "es-mad-wg-102"; + uuid = "b45e8040-1d85-5090-b1c2-b6354414ec1a"; + pubKey = "1Wo/cQeVHX2q9k95nxN+48lgkGLsPQ+uesRb/9XdY1Y="; + endpoint = "45.134.213.207"; + } + { + id = "es-mad-wg-201"; + uuid = "6333e91c-67d2-5a67-a8cb-cfd1af3511b9"; + pubKey = "LyO4Xs1eV8JwFr63a1FRnKboQn2Tu/oeMzHhbr7Y6GU="; + endpoint = "146.70.128.194"; + } + { + id = "es-mad-wg-202"; + uuid = "0dd84e1b-cb32-5dd3-8e59-de1c36c279f8"; + pubKey = "iehXacO91FbBqni2IFxedEYPlW2Wvvt9GtRPPPMo9zc="; + endpoint = "146.70.128.226"; + } + { + id = "fi-hel-wg-001"; + uuid = "ff41e4db-12d9-566f-a599-1a18fdfe4170"; + pubKey = "veLqpZazR9j/Ol2G8TfrO32yEhc1i543MCN8rpy1FBA="; + endpoint = "185.204.1.203"; + } + { + id = "fi-hel-wg-002"; + uuid = "c1b4e5e1-4cc8-5bbf-bcaf-73a671747ab8"; + pubKey = "8BbP3GS01dGkN5ENk1Rgedxfd80friyVOABrdMgD3EY="; + endpoint = "185.204.1.211"; + } + { + id = "fi-hel-wg-003"; + uuid = "21819bcf-e233-5bb5-b59b-c4ce5d0248d4"; + pubKey = "FKodo9V6BehkNphL+neI0g4/G/cjbZyYhoptSWf3Si4="; + endpoint = "185.204.1.219"; + } + { + id = "fi-hel-wg-101"; + uuid = "8929291a-f608-56e9-89e0-832ccedf980d"; + pubKey = "2S3G7Sm9DVG6+uJtlDu4N6ed5V97sTbA5dCSkUelWyk="; + endpoint = "193.138.7.137"; + } + { + id = "fi-hel-wg-102"; + uuid = "e26974ae-5c0c-5184-91ab-a0f5b0f66282"; + pubKey = "xeHVhXxyyFqUEE+nsu5Tzd/t9en+++4fVFcSFngpcAU="; + endpoint = "193.138.7.157"; + } + { + id = "fi-hel-wg-103"; + uuid = "614c84dd-c211-5ede-8c73-10d33865002c"; + pubKey = "Mlvu14bSD6jb7ajH/CiJ/IO8W+spB8H6VmdGkFGOcUQ="; + endpoint = "193.138.7.177"; + } + { + id = "fi-hel-wg-104"; + uuid = "83db37fb-7f8d-5175-90a1-5a3a3fe57523"; + pubKey = "keRQGHUbYP2qgDTbYqOsI9byfNb0LOpTZ/KdC67cJiA="; + endpoint = "193.138.7.197"; + } + { + id = "fr-mrs-wg-001"; + uuid = "b223d1eb-a045-580a-8a8a-db805170100d"; + pubKey = "MOk2OTDEaFFN4vsCAgf+qQi6IlY99nCeDEzpXyo65wg="; + endpoint = "138.199.15.162"; + } + { + id = "fr-mrs-wg-002"; + uuid = "b1dc17cd-1de0-5306-8ea7-4414abb22657"; + pubKey = "Z0LEgZIPhNj0+/VWknU3roHlVI3qqAfoV6th9NSC0F0="; + endpoint = "138.199.15.146"; + } + { + id = "fr-par-wg-001"; + uuid = "31b01ace-1972-5970-ba06-44da71a22434"; + pubKey = "ov323GyDOEHLT0sNRUUPYiE3BkvFDjpmi1a4fzv49hE="; + endpoint = "193.32.126.66"; + } + { + id = "fr-par-wg-002"; + uuid = "f3f38302-472c-5d66-bd0d-8941f936f0be"; + pubKey = "R5Ve+PJD24QjNXi2Dim7szwCiOLnv+6hg+WyTudAYmE="; + endpoint = "193.32.126.67"; + } + { + id = "fr-par-wg-003"; + uuid = "48eca2e6-73e6-53e4-9915-5f39b1d4e3ca"; + pubKey = "w4r/o6VImF7l0/De3JpOGnpzjAFv9wcCu8Rop5eZkWc="; + endpoint = "193.32.126.68"; + } + { + id = "fr-par-wg-004"; + uuid = "6f62b893-08bb-5cae-aa1a-21747e4304af"; + pubKey = "E/KjR7nlFouuRXh1pwGDr7iK2TAZ6c4K0LjjmA1A2Tc="; + endpoint = "193.32.126.69"; + } + { + id = "fr-par-wg-005"; + uuid = "f69634da-b341-5f3d-a07a-4e97eb03f200"; + pubKey = "cmqtSjWUa4/0bENQDKxdr0vQqf4nFVDodarHm0Pc0hY="; + endpoint = "193.32.126.70"; + } + { + id = "fr-par-wg-101"; + uuid = "d4cc0735-d933-5afd-91fe-95501ee7b30a"; + pubKey = "e2uj1eu/ZuTPqfY+9ULa6KFPRGLkSWCaooXBg9u9igA="; + endpoint = "146.70.184.2"; + } + { + id = "fr-par-wg-102"; + uuid = "1a379a78-4e4d-5aa9-852a-b0cc5ac120da"; + pubKey = "TR0Gedkbp2mRRXKZ7VB7qaAvJHuQlwaaLFc4fxb4q2M="; + endpoint = "146.70.184.66"; + } + { + id = "gb-lon-wg-001"; + uuid = "28bd9777-1778-5238-9291-6cb721225e8c"; + pubKey = "IJJe0TQtuQOyemL4IZn6oHEsMKSPqOuLfD5HoAWEPTY="; + endpoint = "141.98.252.130"; + } + { + id = "gb-lon-wg-002"; + uuid = "c62f218f-dab7-590f-9992-cc20ca5fffcb"; + pubKey = "J57ba81Q8bigy9RXBXvl0DgABTrbl81nb37GuX50gnY="; + endpoint = "141.98.252.222"; + } + { + id = "gb-lon-wg-003"; + uuid = "3dfc7150-d6a9-55fc-8396-7081422a121e"; + pubKey = "VZwE8hrpNzg6SMwn9LtEqonXzSWd5dkFk62PrNWFW3Y="; + endpoint = "185.195.232.66"; + } + { + id = "gb-lon-wg-004"; + uuid = "30cb5caa-f427-54ed-9fbd-80ca88c025fc"; + pubKey = "PLpO9ikFX1garSFaeUpo7XVSMrILrTB8D9ZwQt6Zgwk="; + endpoint = "185.195.232.67"; + } + { + id = "gb-lon-wg-005"; + uuid = "ab170e26-ed61-567c-a604-284570960c8d"; + pubKey = "bG6WulLmMK408n719B8nQJNuTRyRA3Qjm7bsm9d6v2M="; + endpoint = "185.195.232.68"; + } + { + id = "gb-lon-wg-006"; + uuid = "4ee66491-11e4-5a88-a16e-a877e2d9fef4"; + pubKey = "INRhM0h4T1hi9j28pcC+vRv47bp7DIsNKtagaFZFSBI="; + endpoint = "185.195.232.69"; + } + { + id = "gb-lon-wg-007"; + uuid = "b3b858d7-dcda-5921-8383-f220b7b5c8c0"; + pubKey = "MVqe9e9aDwfFuvEhEn4Wd/zWV3cmiCX9fZMWetz+23A="; + endpoint = "185.195.232.70"; + } + { + id = "gb-lon-wg-201"; + uuid = "6a8e523a-b809-5b15-98b9-cbc07c616422"; + pubKey = "b71Y8V/vVwNRGkL4d1zvApDVL18u7m31dN+x+i5OJVs="; + endpoint = "185.248.85.3"; + } + { + id = "gb-lon-wg-202"; + uuid = "adca4edd-b597-5065-9748-2f4f511790a5"; + pubKey = "+iQWuT3wb2DCy1u2eUKovhJTCB4aUdJUnpxGtONDIVE="; + endpoint = "185.248.85.18"; + } + { + id = "gb-lon-wg-203"; + uuid = "5b71ce0 |
