From 2ffa25098c33a20a9a437d75cf02c935941f55b4 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 3 Jun 2026 16:04:04 +0200 Subject: [PATCH 01/13] feat: update Signup.storyboard --- IVPNClient/Scenes/Signup.storyboard | 826 ++++++++++++++-------------- 1 file changed, 413 insertions(+), 413 deletions(-) diff --git a/IVPNClient/Scenes/Signup.storyboard b/IVPNClient/Scenes/Signup.storyboard index a8e09345..5df7b80a 100644 --- a/IVPNClient/Scenes/Signup.storyboard +++ b/IVPNClient/Scenes/Signup.storyboard @@ -1,9 +1,9 @@ - + - + @@ -23,10 +23,10 @@ - + - + @@ -120,7 +120,7 @@ @@ -293,7 +293,7 @@ - + @@ -303,6 +303,385 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -320,7 +699,7 @@ - + @@ -401,7 +780,7 @@ - + + @@ -427,6 +820,7 @@ + @@ -526,7 +920,7 @@ - + @@ -535,7 +929,7 @@ - + @@ -544,7 +938,7 @@ - + @@ -569,7 +963,7 @@ - + @@ -619,7 +1013,7 @@ - + @@ -638,7 +1032,7 @@ - + @@ -649,397 +1043,3 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 28e054ebd70a0037e827f9e4bcc1173d3ad23af8 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 3 Jun 2026 16:27:04 +0200 Subject: [PATCH 02/13] =?UTF-8?q?feat:=20create=20SelectPlanViewController?= =?UTF-8?q?.swift=E2=80=8E.swift?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IVPNClient.xcodeproj/project.pbxproj | 28 ++ IVPNClient/Config/servers.json | 2 +- IVPNClient/Managers/NavigationManager.swift | 26 ++ IVPNClient/Models/ProductId.swift | 12 +- IVPNClient/Models/Service.swift | 94 +++- IVPNClient/Scenes/Signup.storyboard | 419 ++++++++++++++++++ .../Scenes/Signup/LoginViewController.swift | 23 +- ...lanViewController.swift\342\200\216.swift" | 276 ++++++++++++ .../Signup/SelectPlan/View/PlanLabel.swift | 32 ++ .../SelectPlan/View/SelectPlanView.swift | 98 ++++ .../SettingsViewController.swift | 2 +- .../Extensions/UIViewController+Ext.swift | 2 +- IVPNClient/ViewModels/AccountViewModel.swift | 2 +- .../ViewModels/InfoAlertViewModel.swift | 2 +- 14 files changed, 971 insertions(+), 47 deletions(-) create mode 100644 "IVPNClient/Scenes/Signup/SelectPlan/SelectPlanViewController.swift\342\200\216.swift" create mode 100644 IVPNClient/Scenes/Signup/SelectPlan/View/PlanLabel.swift create mode 100644 IVPNClient/Scenes/Signup/SelectPlan/View/SelectPlanView.swift diff --git a/IVPNClient.xcodeproj/project.pbxproj b/IVPNClient.xcodeproj/project.pbxproj index 4f2e927c..78f42ee5 100644 --- a/IVPNClient.xcodeproj/project.pbxproj +++ b/IVPNClient.xcodeproj/project.pbxproj @@ -287,6 +287,9 @@ 82E3B21E29DDD32B00998F67 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82E3B21D29DDD32B00998F67 /* MainView.swift */; }; 82E4FCB023D71FDF00BEBA1A /* UIApplication+ExtTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82E4FCAF23D71FDF00BEBA1A /* UIApplication+ExtTests.swift */; }; 82E5449224EE584E006DEF8D /* UIImageView+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82E5449124EE584E006DEF8D /* UIImageView+Ext.swift */; }; + 82E6C0382FD06C550024F094 /* SelectPlanViewController.swift‎.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82E6C0372FD06C530024F094 /* SelectPlanViewController.swift‎.swift */; }; + 82E6C03A2FD06C750024F094 /* SelectPlanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82E6C0392FD06C720024F094 /* SelectPlanView.swift */; }; + 82E6C03C2FD06C840024F094 /* PlanLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82E6C03B2FD06C830024F094 /* PlanLabel.swift */; }; 82E7167E2181E8AF00D6B7C2 /* TunnelType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82E7167D2181E8AF00D6B7C2 /* TunnelType.swift */; }; 82E716812181E8AF00D6B7C2 /* TunnelType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82E7167D2181E8AF00D6B7C2 /* TunnelType.swift */; }; 82E716822181E8AF00D6B7C2 /* TunnelType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82E7167D2181E8AF00D6B7C2 /* TunnelType.swift */; }; @@ -697,6 +700,9 @@ 82E3B21D29DDD32B00998F67 /* MainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = ""; }; 82E4FCAF23D71FDF00BEBA1A /* UIApplication+ExtTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIApplication+ExtTests.swift"; sourceTree = ""; }; 82E5449124EE584E006DEF8D /* UIImageView+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImageView+Ext.swift"; sourceTree = ""; }; + 82E6C0372FD06C530024F094 /* SelectPlanViewController.swift‎.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SelectPlanViewController.swift‎.swift"; sourceTree = ""; }; + 82E6C0392FD06C720024F094 /* SelectPlanView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectPlanView.swift; sourceTree = ""; }; + 82E6C03B2FD06C830024F094 /* PlanLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlanLabel.swift; sourceTree = ""; }; 82E7167D2181E8AF00D6B7C2 /* TunnelType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TunnelType.swift; sourceTree = ""; }; 82E716832181E8E100D6B7C2 /* ProviderConfigurationKeys.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProviderConfigurationKeys.swift; sourceTree = ""; }; 82E716892181E8E900D6B7C2 /* WireGuardProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WireGuardProtocol.swift; sourceTree = ""; }; @@ -1456,6 +1462,7 @@ 82DEF01B2447149000CCB5CD /* Signup */ = { isa = PBXGroup; children = ( + 82E6C0352FD06C370024F094 /* SelectPlan */, 82DEF01C244714B300CCB5CD /* Scanner */, 82DEF0222447280300CCB5CD /* CreateAccount */, 82DEF0242447282E00CCB5CD /* Payment */, @@ -1541,6 +1548,24 @@ path = Scene; sourceTree = ""; }; + 82E6C0352FD06C370024F094 /* SelectPlan */ = { + isa = PBXGroup; + children = ( + 82E6C0372FD06C530024F094 /* SelectPlanViewController.swift‎.swift */, + 82E6C0362FD06C420024F094 /* View */, + ); + path = SelectPlan; + sourceTree = ""; + }; + 82E6C0362FD06C420024F094 /* View */ = { + isa = PBXGroup; + children = ( + 82E6C03B2FD06C830024F094 /* PlanLabel.swift */, + 82E6C0392FD06C720024F094 /* SelectPlanView.swift */, + ); + path = View; + sourceTree = ""; + }; 82E81AE52449C42C00D81FB7 /* View */ = { isa = PBXGroup; children = ( @@ -2252,6 +2277,7 @@ 822B85D921B941A200715691 /* NotificationName+Ext.swift in Sources */, 8290195F243CB27500777B6E /* ControlPanelView.swift in Sources */, 82D598C021A6991B000FABDE /* NetworkManager.swift in Sources */, + 82E6C03A2FD06C750024F094 /* SelectPlanView.swift in Sources */, 82D598AC21A566CD000FABDE /* NetworkProtectionTableViewCell.swift in Sources */, 826C1F8425DBEF1800314C4B /* DNSManager.swift in Sources */, 8208525623FD56870008C112 /* FloatingPanelMainLayout.swift in Sources */, @@ -2286,6 +2312,7 @@ 82FF0D442315587000440E5D /* UITextFieldPadding.swift in Sources */, 8243584425DAA7BD005FDEBB /* SecureDNSViewController.swift in Sources */, 82BBF26D21AE95C000589766 /* UIApplication+Ext.swift in Sources */, + 82E6C03C2FD06C840024F094 /* PlanLabel.swift in Sources */, 82B329CB29F7C9F400F3ED9B /* UIWindow+Ext.swift in Sources */, 82C973A0217DFA9C00CE06D4 /* Host.swift in Sources */, 82A160BA221C4E2000730577 /* Server+CoreDataClass.swift in Sources */, @@ -2390,6 +2417,7 @@ 821CA2D7287C5AB20067F70D /* PortViewController.swift in Sources */, 82061F66238D2730009DDF4D /* ICMPHeader.swift in Sources */, 824BC466240906ED00A61B29 /* VPNStatusViewModel.swift in Sources */, + 82E6C0382FD06C550024F094 /* SelectPlanViewController.swift‎.swift in Sources */, 8247E1DE22687C28006C0C08 /* ProductId.swift in Sources */, 829DF2822497953C000DC2DB /* UIButton+Ext.swift in Sources */, 82234B6721BA7F3500B082DE /* Logger.swift in Sources */, diff --git a/IVPNClient/Config/servers.json b/IVPNClient/Config/servers.json index 46103436..1b99ce18 100644 --- a/IVPNClient/Config/servers.json +++ b/IVPNClient/Config/servers.json @@ -1 +1 @@ -{"wireguard":[{"gateway":"ar.wg.ivpn.net","country_code":"AR","country":"Argentina","city":"Buenos Aires","latitude":-34.614,"longitude":-58.371,"isp":"Datapacket","hosts":[{"hostname":"ar1.wg.ivpn.net","dns_name":"ar1.gw.ivpn.net","host":"149.22.83.100","public_key":"NXlWMTFlNJKQXfOnt+DJogxnDmfapEdgmHNat2JqwE0=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":11.08,"multihop_port":20600,"v2ray":"149.22.83.102","isp":"Datapacket"}]},{"gateway":"at.wg.ivpn.net","country_code":"AT","country":"Austria","city":"Vienna","latitude":48.2,"longitude":16.3666,"isp":"M247","hosts":[{"hostname":"at1.wg.ivpn.net","dns_name":"at1.gw.ivpn.net","host":"185.244.212.69","public_key":"83LUBnP97SFpnS0y1MpEAFcg8MIiQJgW1FRv/8Mc40g=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":86.14,"multihop_port":25601,"v2ray":"146.70.146.226","isp":"M247"}]},{"gateway":"au-nsw.wg.ivpn.net","country_code":"AU","country":"Australia","city":"Sydney","latitude":-33.92,"longitude":151.1852,"isp":"M247","hosts":[{"hostname":"au-nsw1.wg.ivpn.net","dns_name":"au-nsw1.gw.ivpn.net","host":"46.102.153.246","public_key":"KmSrG48t5xw9CJCPlYLBG3JnmiY0CnUgyRM5TUEwZhM=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":18.17,"multihop_port":26601,"v2ray":"217.138.205.90","isp":"M247"},{"hostname":"au-nsw2.wg.ivpn.net","dns_name":"au-nsw2.gw.ivpn.net","host":"146.70.78.75","public_key":"q+wbp7GjiTszp5G16rNpGCqxkL0qSY3CH4pcgD6UsVQ=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":16.66,"multihop_port":27901,"v2ray":"146.70.210.26","isp":"M247"}]},{"gateway":"be.wg.ivpn.net","country_code":"BE","country":"Belgium","city":"Brussels","latitude":50.8333,"longitude":4.3333,"isp":"M247","hosts":[{"hostname":"be1.wg.ivpn.net","dns_name":"be1.gw.ivpn.net","host":"194.187.251.13","public_key":"awriP5lpdxEMWKuG+A1DOg+vb1M5jd3WhynIMB61BhU=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":47.42,"multihop_port":25701,"v2ray":"37.120.143.130","isp":"M247"},{"hostname":"be2.wg.ivpn.net","dns_name":"be2.gw.ivpn.net","host":"79.127.224.164","public_key":"LeomjeizkMvWJAeYPdowWDrDgJfCRLMAYwt2jkazsyw=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":17.82,"multihop_port":20610,"v2ray":"79.127.224.166","isp":"Datapacket"}]},{"gateway":"bg.wg.ivpn.net","country_code":"BG","country":"Bulgaria","city":"Sofia","latitude":42.6833,"longitude":23.3167,"isp":"M247","hosts":[{"hostname":"bg1.wg.ivpn.net","dns_name":"bg1.gw.ivpn.net","host":"82.102.23.21","public_key":"WDSsdJE6wvATIWfzQwayPtE/0DaXBQgW/hPm7sQSJmU=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":28.19,"multihop_port":25901,"v2ray":"146.70.53.82","isp":"M247"}]},{"gateway":"br.wg.ivpn.net","country_code":"BR","country":"Brazil","city":"Franca","latitude":-20.53,"longitude":-47.39,"isp":"Qnax","hosts":[{"hostname":"br1.wg.ivpn.net","dns_name":"br1.gw.ivpn.net","host":"45.162.230.53","public_key":"eN1f15S3YzRyYCALiPGRQcjkQO9xntcdqPhJJ6TOymc=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":13.29,"multihop_port":26701,"v2ray":"45.162.230.186","isp":"Qnax"}]},{"gateway":"ca-bc.wg.ivpn.net","country_code":"CA","country":"Canada","city":"Vancouver","latitude":49.231,"longitude":-122.8412,"isp":"Tech Futures","hosts":[{"hostname":"ca-bc1.wg.ivpn.net","dns_name":"ca-bc1.gw.ivpn.net","host":"104.193.135.231","public_key":"lXawKqHosFOoc9kqAZwun9Yk3VrPN7vmG/JuQm4kvx0=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":13.94,"multihop_port":20550,"v2ray":"104.193.135.233","isp":"Tech Futures"}]},{"gateway":"ca-on.wg.ivpn.net","country_code":"CA","country":"Canada","city":"Toronto","latitude":43.7,"longitude":-79.42,"isp":"Amanah","hosts":[{"hostname":"ca-on1.wg.ivpn.net","dns_name":"ca-on1.gw.ivpn.net","host":"184.75.215.5","public_key":"eXlmRV8RsCQZjWwiSYxwtEr/xwanM/2HER2YqIGTdHk=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":18.28,"multihop_port":20580,"v2ray":"184.75.215.7","isp":"Amanah"},{"hostname":"ca-on2.wg.ivpn.net","dns_name":"ca-on2.gw.ivpn.net","host":"162.219.176.21","public_key":"nadUhrHR5E0fCB5wg4efZHNn2NRE+gnuTDjKT21y2V0=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":12.11,"multihop_port":20590,"v2ray":"162.219.176.23","isp":"Amanah"}]},{"gateway":"ca-qc.wg.ivpn.net","country_code":"CA","country":"Canada","city":"Montreal","latitude":45.499,"longitude":-73.57,"isp":"M247","hosts":[{"hostname":"ca-qc1.wg.ivpn.net","dns_name":"ca-qc1.gw.ivpn.net","host":"37.120.130.58","public_key":"rg+GGDmjM4Vxo1hURvKmgm9yonb6qcoKbPCP/DNDBnI=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":13.7,"multihop_port":20960,"v2ray":"37.120.130.61","isp":"M247"},{"hostname":"ca-qc2.wg.ivpn.net","dns_name":"ca-qc2.gw.ivpn.net","host":"87.101.92.29","public_key":"XSKU6fBCDwlb+mGek1O/fUDd/ozO58ZLph/0H7mn+zE=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":15.9,"multihop_port":27001,"v2ray":"89.47.234.130","isp":"M247"}]},{"gateway":"ch.wg.ivpn.net","country_code":"CH","country":"Switzerland","city":"Zurich","latitude":47.38,"longitude":8.55,"isp":"M247","hosts":[{"hostname":"ch1.wg.ivpn.net","dns_name":"ch1.gw.ivpn.net","host":"185.212.170.141","public_key":"dU7gLfcupYd37LW0q6cxC6PHMba+eUFAUOoU/ryXZkY=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":25.31,"multihop_port":23601,"v2ray":"37.120.213.138","isp":"M247"},{"hostname":"ch2.wg.ivpn.net","dns_name":"ch2.gw.ivpn.net","host":"81.17.24.165","public_key":"KRKeAFMJY6OH9RABaeC4feQG/JgbacZVg/w6VUjBSVQ=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":11.97,"multihop_port":20880,"v2ray":"81.17.24.167","isp":"Privatelayer"},{"hostname":"ch3.wg.ivpn.net","dns_name":"ch3.gw.ivpn.net","host":"141.255.166.198","public_key":"JBpgBKtqIneRuEga7mbP2PAk/e4HPRaC11H0A0+R3lA=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":18.12,"multihop_port":22901,"v2ray":"179.43.167.66","isp":"Privatelayer"}]},{"gateway":"cz.wg.ivpn.net","country_code":"CZ","country":"Czech Republic","city":"Prague","latitude":50.0833,"longitude":14.466,"isp":"Datapacket","hosts":[{"hostname":"cz1.wg.ivpn.net","dns_name":"cz1.gw.ivpn.net","host":"185.180.14.41","public_key":"gVbEq2cGRzwCSGPqT2oRSYYN+P6IK3uvvRffErASDSk=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":19.92,"multihop_port":25201,"v2ray":"195.181.160.184","isp":"Datapacket"}]},{"gateway":"de.wg.ivpn.net","country_code":"DE","country":"Germany","city":"Frankfurt","latitude":50.1,"longitude":8.675,"isp":"Leaseweb","hosts":[{"hostname":"de2.wg.ivpn.net","dns_name":"de2.gw.ivpn.net","host":"37.58.60.151","public_key":"QhY3OtBf4FFafKtLO33e6k8JnAl8e6ktFcRUyLjCDVY=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":21.16,"multihop_port":22001,"v2ray":"178.162.222.166","isp":"Leaseweb"},{"hostname":"de3.wg.ivpn.net","dns_name":"de3.gw.ivpn.net","host":"146.70.160.170","public_key":"CugQQtD8YJKRwS5IukNWkMcyqOzlOxfGRPhGeQRAb2Y=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":28.26,"multihop_port":21050,"v2ray":"146.70.160.166","isp":"M247"},{"hostname":"de4.wg.ivpn.net","dns_name":"de4.gw.ivpn.net","host":"185.102.219.26","public_key":"mS3/WpXjnMAMmXjSpd4nFzx9HSE3ubv2WyjpyH2REgs=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":14.56,"multihop_port":20920,"v2ray":"185.102.219.56","isp":"Datapacket"}]},{"gateway":"dk.wg.ivpn.net","country_code":"DK","country":"Denmark","city":"Copenhagen","latitude":55.6786,"longitude":12.5635,"isp":"M247","hosts":[{"hostname":"dk1.wg.ivpn.net","dns_name":"dk1.gw.ivpn.net","host":"185.245.84.229","public_key":"jTsV5gOD7lT4egDj9rhKwO2OO2X7bKs2EQPcZEnUWDE=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":100,"multihop_port":25501,"v2ray":"193.29.107.226","isp":"M247"},{"hostname":"dk2.wg.ivpn.net","dns_name":"dk2.gw.ivpn.net","host":"121.127.45.39","public_key":"olw7V0P0PD3OL4ucZUhCL/XNGqSSGYO59+RmXPBH22s=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":8.7,"multihop_port":20620,"v2ray":"121.127.45.41","isp":"Datapacket"}]},{"gateway":"es.wg.ivpn.net","country_code":"ES","country":"Spain","city":"Madrid","latitude":40.4,"longitude":-3.6834,"isp":"Datapacket","hosts":[{"hostname":"es1.wg.ivpn.net","dns_name":"es1.gw.ivpn.net","host":"84.17.62.98","public_key":"w7umiArTtlJ4Pk6Ii9WX5VXK5vw/Qu+Z37/icKlIYWo=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":44.46,"multihop_port":21501,"v2ray":"185.93.3.196","isp":"Datapacket"}]},{"gateway":"fi.wg.ivpn.net","country_code":"FI","country":"Finland","city":"Helsinki","latitude":60.1756,"longitude":24.9341,"isp":"Creanova","hosts":[{"hostname":"fi1.wg.ivpn.net","dns_name":"fi1.gw.ivpn.net","host":"194.34.134.63","public_key":"mIxEzfjZ2wV6jJVj30w38ECd2LSH4bw/HLMnM2ICHiI=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":28.42,"multihop_port":26001,"v2ray":"185.103.110.231","isp":"Creanova"}]},{"gateway":"fr.wg.ivpn.net","country_code":"FR","country":"France","city":"Paris","latitude":48.8667,"longitude":2.3333,"isp":"Datapacket","hosts":[{"hostname":"fr1.wg.ivpn.net","dns_name":"fr1.gw.ivpn.net","host":"185.246.211.185","public_key":"g7BuMzj3r/noLiLR4qhQMcvU6GSIY8RGEnaYtdYsFX4=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":18.8,"multihop_port":23401,"v2ray":"185.246.211.184","isp":"Datapacket"}]},{"gateway":"gb-man.wg.ivpn.net","country_code":"GB","country":"United Kingdom","city":"Manchester","latitude":53.451,"longitude":-2.319,"isp":"M247","hosts":[{"hostname":"gb-man1.wg.ivpn.net","dns_name":"gb-man1.gw.ivpn.net","host":"185.195.202.23","public_key":"+hf4DYilNEIjTdSOuCNcWdqVyaRoxGzXw7wvNl7f7Rg=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":7.78,"multihop_port":26901,"v2ray":"185.195.202.25","isp":"M247"}]},{"gateway":"gb.wg.ivpn.net","country_code":"GB","country":"United Kingdom","city":"London","latitude":51.5,"longitude":-0.1167,"isp":"Datapacket","hosts":[{"hostname":"gb1.wg.ivpn.net","dns_name":"gb1.gw.ivpn.net","host":"185.59.221.140","public_key":"yKK5x+D17Jr3Q12T/UBaDjNVmNdZBsqpvTqH6YfsGHg=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":6.77,"multihop_port":20801,"v2ray":"185.59.221.159","isp":"Datapacket"},{"hostname":"gb2.wg.ivpn.net","dns_name":"gb2.gw.ivpn.net","host":"185.59.221.225","public_key":"x0BTRaxsdxAd58ZyU2YMX4bmuj+Eg+8/urT2F3Vs1n8=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":6.59,"multihop_port":24201,"v2ray":"185.59.221.226","isp":"Datapacket"},{"hostname":"gb3.wg.ivpn.net","dns_name":"gb3.gw.ivpn.net","host":"81.92.202.114","public_key":"7+jos+Eg+hMEOQE4Std6OJ+WVnCcmbqS1/EbPwn9w3s=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":8.41,"multihop_port":20980,"v2ray":"81.92.202.117","isp":"M247"}]},{"gateway":"gr.wg.ivpn.net","country_code":"GR","country":"Greece","city":"Athens","latitude":37.871,"longitude":23.8707,"isp":"Datapacket","hosts":[{"hostname":"gr1.wg.ivpn.net","dns_name":"gr1.gw.ivpn.net","host":"169.150.252.113","public_key":"79rPSFIEQ4KWX9UN+FSMVfI0mPPVY5elS16O/DA6uDw=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":11.15,"multihop_port":20540,"v2ray":"169.150.252.115","isp":"Datapacket"}]},{"gateway":"hk.wg.ivpn.net","country_code":"HK","country":"Hong Kong","city":"Hong Kong","latitude":22.305,"longitude":114.185,"isp":"Leaseweb","hosts":[{"hostname":"hk2.wg.ivpn.net","dns_name":"hk2.gw.ivpn.net","host":"64.120.120.239","public_key":"kyolyq4cJydI3vQB2ESTIUAy2Fq0bpOf+Qe7GIq6XEA=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":28.51,"multihop_port":27501,"v2ray":"64.120.120.237","isp":"Leaseweb"},{"hostname":"hk3.wg.ivpn.net","dns_name":"hk3.gw.ivpn.net","host":"118.107.244.206","public_key":"qq1simsFNm2FpZM0J8u8Aa0rkk5HEasvLksPyLv+0Sk=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":7.25,"multihop_port":20460,"v2ray":"118.107.244.207","isp":"TheGigabit"}]},{"gateway":"hr.wg.ivpn.net","country_code":"HR","country":"Croatia","city":"Zagreb","latitude":45.811,"longitude":15.977,"isp":"Datapacket","hosts":[{"hostname":"hr1.wg.ivpn.net","dns_name":"hr1.gw.ivpn.net","host":"169.150.242.40","public_key":"yGDzFo6v9BilHj5jb7oaiwaw8hnACFgT1rrHkdnRsXI=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":13.57,"multihop_port":20860,"v2ray":"169.150.242.42","isp":"Datapacket"}]},{"gateway":"hu.wg.ivpn.net","country_code":"HU","country":"Hungary","city":"Budapest","latitude":47.5,"longitude":19.0833,"isp":"M247","hosts":[{"hostname":"hu1.wg.ivpn.net","dns_name":"hu1.gw.ivpn.net","host":"185.189.114.189","public_key":"G30fNdXrnlqtqqOLF23QXWzFdLIKDxLW60HoYPvqml8=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":54.08,"multihop_port":25401,"v2ray":"37.120.144.178","isp":"M247"}]},{"gateway":"ie.wg.ivpn.net","country_code":"IE","country":"Ireland","city":"Dublin","latitude":53.337,"longitude":-6.259,"isp":"Datapacket","hosts":[{"hostname":"ie1.wg.ivpn.net","dns_name":"ie1.gw.ivpn.net","host":"87.249.137.138","public_key":"jTRkgALSK2hJZmzfQsyKVsYQEepIqgSDnJImzNyLfQ4=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":33.61,"multihop_port":20850,"v2ray":"87.249.137.140","isp":"Datapacket"}]},{"gateway":"il.wg.ivpn.net","country_code":"IL","country":"Israel","city":"Holon, Tel Aviv","latitude":32.08,"longitude":34.77,"isp":"HQServ","hosts":[{"hostname":"il1.wg.ivpn.net","dns_name":"il1.gw.ivpn.net","host":"185.191.204.133","public_key":"HR9gAjpxXU3YVt6kehBw5n8yVYVE0iIgJdc4HTqOzEE=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":11.93,"multihop_port":27301,"v2ray":"185.191.204.135","isp":"HQServ"}]},{"gateway":"is.wg.ivpn.net","country_code":"IS","country":"Iceland","city":"Reykjavik","latitude":64.15,"longitude":-21.95,"isp":"Advania","hosts":[{"hostname":"is1.wg.ivpn.net","dns_name":"is1.gw.ivpn.net","host":"82.221.107.185","public_key":"nZZT6TlQ2dXlVe3P3B5ozEScHYMWH4JY4y3to8w5dz0=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":70.39,"multihop_port":23501,"v2ray":"82.221.107.183","isp":"Advania"}]},{"gateway":"it.wg.ivpn.net","country_code":"IT","country":"Italy","city":"Milan","latitude":45.47,"longitude":9.205,"isp":"Datapacket","hosts":[{"hostname":"it2.wg.ivpn.net","dns_name":"it2.gw.ivpn.net","host":"84.17.59.149","public_key":"IYi+s9DZusPErv0k2Ls/jgdubmeCrUcEJ1cNgmxPx0k=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":14.1,"multihop_port":21100,"v2ray":"84.17.59.146","isp":"Datapacket"}]},{"gateway":"jp.wg.ivpn.net","country_code":"JP","country":"Japan","city":"Tokyo","latitude":35.62,"longitude":139.74,"isp":"TheGigabit","hosts":[{"hostname":"jp2.wg.ivpn.net","dns_name":"jp2.gw.ivpn.net","host":"185.135.77.81","public_key":"YuhEd9+a90/+uucZC+qzsyMHkfe/GiwG1dq7g2HegXQ=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":8.67,"multihop_port":20830,"v2ray":"185.135.77.100","isp":"TheGigabit"}]},{"gateway":"lu.wg.ivpn.net","country_code":"LU","country":"Luxembourg","city":"Luxembourg","latitude":49.6113,"longitude":6.1294,"isp":"EstNOC","hosts":[{"hostname":"lu2.wg.ivpn.net","dns_name":"lu2.gw.ivpn.net","host":"185.221.132.181","public_key":"m5M76ffpSSUOJba3GK6WTooI8vNFYTnyw/PJuBbmGXA=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":54.44,"multihop_port":27212,"v2ray":"185.221.132.183","isp":"EstNOC"}]},{"gateway":"mx.wg.ivpn.net","country_code":"MX","country":"Mexico","city":"Querétaro","latitude":20.574,"longitude":-100.2965,"isp":"Datapacket","hosts":[{"hostname":"mx1.wg.ivpn.net","dns_name":"mx1.gw.ivpn.net","host":"121.127.43.196","public_key":"ReKHoFVVGfR4Tgzl2GPPioAtQm3HmecKTU0HK67NcXU=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":20.1,"multihop_port":20570,"v2ray":"121.127.43.198","isp":"Datapacket"}]},{"gateway":"my.wg.ivpn.net","country_code":"MY","country":"Malaysia","city":"Kuala Lumpur","latitude":3.1494,"longitude":101.706,"isp":"TheGigabit","hosts":[{"hostname":"my1.wg.ivpn.net","dns_name":"my1.gw.ivpn.net","host":"61.4.97.154","public_key":"M9SsMCpUw7ad6YbqQr8r2saBK2zAf3tBj82DzsQjgkY=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":21.99,"multihop_port":20470,"v2ray":"61.4.97.155","isp":"TheGigabit"}]},{"gateway":"nl.wg.ivpn.net","country_code":"NL","country":"Netherlands","city":"Amsterdam","latitude":52.376,"longitude":4.898,"isp":"Datapacket","hosts":[{"hostname":"nl2.wg.ivpn.net","dns_name":"nl2.gw.ivpn.net","host":"185.102.218.104","public_key":"AsMT2FqpkZbjzWeDch6GwufF5odl259W/hIkGytVfWo=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":6.9,"multihop_port":20910,"v2ray":"185.102.218.99","isp":"Datapacket"},{"hostname":"nl3.wg.ivpn.net","dns_name":"nl3.gw.ivpn.net","host":"95.211.95.9","public_key":"XDU6Syq1DY82IMatsHV0x/TAtbLiRwh/SdFCXlEn40c=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":15.42,"multihop_port":23101,"v2ray":"95.211.172.72","isp":"Leaseweb"},{"hostname":"nl4.wg.ivpn.net","dns_name":"nl4.gw.ivpn.net","host":"95.211.95.19","public_key":"cVB66gPq5cZ9dfXY+e2pbsCyih5o1zk04l5c5VCsV1g=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":5.64,"multihop_port":23201,"v2ray":"95.211.172.99","isp":"Leaseweb"},{"hostname":"nl5.wg.ivpn.net","dns_name":"nl5.gw.ivpn.net","host":"95.211.243.162","public_key":"NCagAawwRixI6Iw/NWiGD8lbjDNCl0aTICZKJtO/1HA=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":35.67,"multihop_port":23901,"v2ray":"95.211.187.225","isp":"Leaseweb"},{"hostname":"nl6.wg.ivpn.net","dns_name":"nl6.gw.ivpn.net","host":"95.211.243.182","public_key":"hMWpqb3FEATHIbImPVWB/5z2nWIXghwpnJjevPY+1H0=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":10.72,"multihop_port":24101,"v2ray":"95.211.187.231","isp":"Leaseweb"},{"hostname":"nl7.wg.ivpn.net","dns_name":"nl7.gw.ivpn.net","host":"95.211.172.105","public_key":"hQNYqtfOOAEz0IGshLx/TI9hUrfR9gIIkjVm4VsCbBM=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":17.97,"multihop_port":22501,"v2ray":"95.211.172.107","isp":"Leaseweb"},{"hostname":"nl8.wg.ivpn.net","dns_name":"nl8.gw.ivpn.net","host":"95.211.198.167","public_key":"/nY1/OhVhdHtbnU/s31zYUuPBH0pizv4DemW5KDOUkg=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":9.34,"multihop_port":22801,"v2ray":"95.211.198.169","isp":"Leaseweb"}]},{"gateway":"no.wg.ivpn.net","country_code":"NO","country":"Norway","city":"Oslo","latitude":59.9167,"longitude":10.75,"isp":"Servetheworld","hosts":[{"hostname":"no1.wg.ivpn.net","dns_name":"no1.gw.ivpn.net","host":"91.189.177.156","public_key":"xFO6ksbO3Gr05rRgAW0O5Veoi4bpTgz2G9RvtBzK7Cg=","local_ip":"172.16.0.1/12","ipv6":{},"load":27.15,"multihop_port":25301,"v2ray":"217.170.197.28","isp":"Servetheworld"}]},{"gateway":"pe.wg.ivpn.net","country_code":"PE","country":"Peru","city":"Lima","latitude":-12.089,"longitude":-76.9759,"isp":"Datapacket","hosts":[{"hostname":"pe1.wg.ivpn.net","dns_name":"pe1.gw.ivpn.net","host":"79.127.252.68","public_key":"LGvYaCFJxdDePXV+r5ENsmugIlVufCCSSm2A6EUXXGw=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":5.7,"multihop_port":20490,"v2ray":"79.127.252.70","isp":"Datapacket"}]},{"gateway":"pl.wg.ivpn.net","country_code":"PL","country":"Poland","city":"Warsaw","latitude":52.25,"longitude":21,"isp":"Datapacket","hosts":[{"hostname":"pl1.wg.ivpn.net","dns_name":"pl1.gw.ivpn.net","host":"185.246.208.109","public_key":"1JDmF79rWj5C+kHp71AbdHne/yGaizWCd2bLfSFvYjo=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":6.7,"multihop_port":25101,"v2ray":"185.246.208.87","isp":"Datapacket"}]},{"gateway":"pt.wg.ivpn.net","country_code":"PT","country":"Portugal","city":"Lisbon","latitude":38.7227,"longitude":-9.1449,"isp":"Hostwebis","hosts":[{"hostname":"pt1.wg.ivpn.net","dns_name":"pt1.gw.ivpn.net","host":"94.46.175.113","public_key":"nMnA82YVrvEK80GVoY/0Z9McWeqjcLzuMYSL+86j5nU=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":5.62,"multihop_port":27101,"v2ray":"94.46.175.130","isp":"Hostwebis"}]},{"gateway":"ro.wg.ivpn.net","country_code":"RO","country":"Romania","city":"Bucharest","latitude":44.4334,"longitude":26.0999,"isp":"M247","hosts":[{"hostname":"ro1.wg.ivpn.net","dns_name":"ro1.gw.ivpn.net","host":"37.120.206.53","public_key":"F2uQ57hysZTlw8WYELnyCw9Lga80wNYoYwkrrxyXKmw=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":53.67,"multihop_port":22301,"v2ray":"185.120.147.58","isp":"M247"}]},{"gateway":"rs.wg.ivpn.net","country_code":"RS","country":"Serbia","city":"Belgrade","latitude":44.8186,"longitude":20.468,"isp":"M247","hosts":[{"hostname":"rs1.wg.ivpn.net","dns_name":"rs1.gw.ivpn.net","host":"141.98.103.253","public_key":"xLN/lpQThQ3z3tvYf7VqdAsRL/nton1Vhv2kCZlQtWE=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":52.14,"multihop_port":26801,"v2ray":"146.70.111.114","isp":"M247"}]},{"gateway":"se.wg.ivpn.net","country_code":"SE","country":"Sweden","city":"Stockholm","latitude":59.3508,"longitude":18.0973,"isp":"GleSyS","hosts":[{"hostname":"se1.wg.ivpn.net","dns_name":"se1.gw.ivpn.net","host":"80.67.10.141","public_key":"u8VHnYEpoEjJWDAF9NAUkU6s810RnkMuhEfFD9U0cGo=","local_ip":"172.16.0.1/12","ipv6":{},"load":13.95,"multihop_port":24001,"v2ray":"80.67.10.139","isp":"GleSyS"},{"hostname":"se2.wg.ivpn.net","dns_name":"se2.gw.ivpn.net","host":"37.120.153.226","public_key":"2n0nFE1g/+vQr2AOQPm9Igyiy0zh9uTTultvOOSkMRo=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":26.5,"multihop_port":20970,"v2ray":"37.120.153.227","isp":"M247"}]},{"gateway":"sg.wg.ivpn.net","country_code":"SG","country":"Singapore","city":"Singapore","latitude":1.293,"longitude":103.8558,"isp":"M247","hosts":[{"hostname":"sg1.wg.ivpn.net","dns_name":"sg1.gw.ivpn.net","host":"185.128.24.189","public_key":"pWk0u1Xq8FHC+xpkN+C6yEKOTEanorR5zMCSfHlLzFw=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":26.93,"multihop_port":26101,"v2ray":"146.70.192.138","isp":"M247"},{"hostname":"sg2.wg.ivpn.net","dns_name":"sg2.gw.ivpn.net","host":"37.120.151.122","public_key":"hSg0At4uwuIhmTy5UT4fRbi5AN6JO2ZWTuIvqd4nHCE=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":88.88,"multihop_port":20950,"v2ray":"37.120.151.125","isp":"M247"}]},{"gateway":"sk.wg.ivpn.net","country_code":"SK","country":"Slovakia","city":"Bratislava","latitude":48.15,"longitude":17.117,"isp":"Datapacket","hosts":[{"hostname":"sk2.wg.ivpn.net","dns_name":"sk2.gw.ivpn.net","host":"156.146.40.205","public_key":"xxEl8CIjNLpig6fp7z4USHZLK35Nu5HENFNwTdeAbzU=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":31.71,"multihop_port":20400,"v2ray":"156.146.40.208","isp":"Datapacket"}]},{"gateway":"tw.wg.ivpn.net","country_code":"TW","country":"Taiwan","city":"Taipei","latitude":25.073,"longitude":121.578,"isp":"TheGigabit","hosts":[{"hostname":"tw1.wg.ivpn.net","dns_name":"tw1.gw.ivpn.net","host":"185.189.160.123","public_key":"fMTCCbbKqPp60fkqnaQvJ9mX2r6zBlt7xhUp8sGfJQY=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":21.11,"multihop_port":20820,"v2ray":"185.189.160.21","isp":"TheGigabit"}]},{"gateway":"ua.wg.ivpn.net","country_code":"UA","country":"Ukraine","city":"Kyiv","latitude":50.4754,"longitude":30.5461,"isp":"Server.ua","hosts":[{"hostname":"ua2.wg.ivpn.net","dns_name":"ua2.gw.ivpn.net","host":"91.232.28.116","public_key":"WmMJBUyI0tdByPhMyvKWAbQMRE1I3ilPi/fIeG3m+UE=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":7.31,"multihop_port":20450,"v2ray":"91.232.28.119","isp":"Server.ua"}]},{"gateway":"us-az.wg.ivpn.net","country_code":"US","country":"United States","city":"Phoenix, AZ","latitude":33.455,"longitude":-111.978,"isp":"Tzulo","hosts":[{"hostname":"us-az2.wg.ivpn.net","dns_name":"us-az2.gw.ivpn.net","host":"198.44.133.198","public_key":"IXV6W/NAMdIyf5QpndaLOVDgwupq0hQIxPGLb580cy4=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":7.15,"multihop_port":20350,"v2ray":"198.44.133.200","isp":"Tzulo"}]},{"gateway":"us-ca-sjc.wg.ivpn.net","country_code":"US","country":"United States","city":"San Jose, CA","latitude":37.408,"longitude":-121.893,"isp":"Tzulo","hosts":[{"hostname":"us-ca-sjc1.wg.ivpn.net","dns_name":"us-ca-sjc1.gw.ivpn.net","host":"198.44.134.38","public_key":"HJWSwK2AWdygxWVA6QzbsvyvGYUiLJWe4qZIiEZXMDo=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":5.56,"multihop_port":20370,"v2ray":"198.44.134.40","isp":"Tzulo"}]},{"gateway":"us-ca.wg.ivpn.net","country_code":"US","country":"United States","city":"Los Angeles, CA","latitude":34.1139,"longitude":-118.4068,"isp":"Tzulo","hosts":[{"hostname":"us-ca3.wg.ivpn.net","dns_name":"us-ca3.gw.ivpn.net","host":"198.54.129.100","public_key":"J5+Bx84LxNPdWEhewOvBV/fGWiDluIBlAcr1QlJZil8=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":9.62,"multihop_port":21301,"v2ray":"198.54.129.212","isp":"Tzulo"},{"hostname":"us-ca5.wg.ivpn.net","dns_name":"us-ca5.gw.ivpn.net","host":"185.180.13.41","public_key":"FGl78s9Ct6xNamQ2/CtAyXwGePrrU0kiZxfM27pm8XA=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":9.49,"multihop_port":20940,"v2ray":"185.180.13.38","isp":"Datapacket"},{"hostname":"us-ca6.wg.ivpn.net","dns_name":"us-ca6.gw.ivpn.net","host":"185.152.67.20","public_key":"gFPUMq/KAr5KXWAeIH1wyPJ3lzjJ70zkV7GqMP15ymA=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":6.96,"multihop_port":20340,"v2ray":"185.152.67.22","isp":"Datapacket"},{"hostname":"us-ca7.wg.ivpn.net","dns_name":"us-ca7.gw.ivpn.net","host":"198.54.129.22","public_key":"BzJnDnpeR0oGDaXnkONIZWrTQtaaWl79oCAQuLi8umY=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":6.77,"multihop_port":20360,"v2ray":"198.54.129.195","isp":"Tzulo"}]},{"gateway":"us-co.wg.ivpn.net","country_code":"US","country":"United States","city":"Denver, CO","latitude":39.749,"longitude":-104.997,"isp":"Datapacket","hosts":[{"hostname":"us-co1.wg.ivpn.net","dns_name":"us-co1.gw.ivpn.net","host":"121.127.44.29","public_key":"eW3Xf/azDAah8xaM0z5rMxJZkWM6YlWuZsEbMwy9j2Y=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":25.07,"multihop_port":20560,"v2ray":"121.127.44.31","isp":"Datapacket"}]},{"gateway":"us-fl.wg.ivpn.net","country_code":"US","country":"United States","city":"Miami, FL","latitude":25.776,"longitude":-80.193,"isp":"Datapacket","hosts":[{"hostname":"us-fl2.wg.ivpn.net","dns_name":"us-fl2.gw.ivpn.net","host":"195.181.163.83","public_key":"HWDCBq3k20Ky72W4wMrAtCITY0fwqNVooHzKEKFtHCc=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":10.81,"multihop_port":20380,"v2ray":"195.181.163.86","isp":"Datapacket"}]},{"gateway":"us-ga.wg.ivpn.net","country_code":"US","country":"United States","city":"Atlanta, GA","latitude":33.749,"longitude":-84.387,"isp":"Datapacket","hosts":[{"hostname":"us-ga3.wg.ivpn.net","dns_name":"us-ga3.gw.ivpn.net","host":"185.93.0.212","public_key":"jD8h+pL5/d6fmYcTzl0lR8AWzQVN5XkwRFSmM/3NcDM=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":5.56,"multihop_port":20900,"v2ray":"185.93.0.217","isp":"Datapacket"},{"hostname":"us-ga4.wg.ivpn.net","dns_name":"us-ga4.gw.ivpn.net","host":"67.213.209.3","public_key":"DBOSDaNKSauFlqPE62a3bVBeJ5VsLdx9Lms27hpajm0=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":6.6,"multihop_port":20310,"v2ray":"67.213.209.5","isp":"Ingenuity"},{"hostname":"us-ga5.wg.ivpn.net","dns_name":"us-ga5.gw.ivpn.net","host":"198.44.138.54","public_key":"4BIZI97EGcwqZBg5S+nba3rZ18CL0wG7I872Wj0WATY=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":6.41,"multihop_port":20390,"v2ray":"198.44.138.56","isp":"Tzulo"}]},{"gateway":"us-il.wg.ivpn.net","country_code":"US","country":"United States","city":"Chicago, IL","latitude":41.887,"longitude":-87.632,"isp":"Datapacket","hosts":[{"hostname":"us-il3.wg.ivpn.net","dns_name":"us-il3.gw.ivpn.net","host":"89.187.181.116","public_key":"hku9gjamhoii8OvxZgx+TdUDIkOAQYFu39qbav2AyUQ=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":18.84,"multihop_port":20930,"v2ray":"89.187.181.121","isp":"Datapacket"},{"hostname":"us-il4.wg.ivpn.net","dns_name":"us-il4.gw.ivpn.net","host":"68.235.50.198","public_key":"JeKmL8RcIHoHbjFcrStJL8uCHaoZ+jvY/M0SkLA93kE=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":12.77,"multihop_port":20410,"v2ray":"68.235.50.200","isp":"Tzulo"},{"hostname":"us-il5.wg.ivpn.net","dns_name":"us-il5.gw.ivpn.net","host":"68.235.50.214","public_key":"TLS6jY8aHviLDDywQ6iCeEM+b+YI2l3YSD6UtGZ5okY=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":9.66,"multihop_port":20420,"v2ray":"68.235.50.216","isp":"Tzulo"}]},{"gateway":"us-ma.wg.ivpn.net","country_code":"US","country":"United States","city":"Boston, MA","latitude":42.376,"longitude":-71.078,"isp":"Datapacket","hosts":[{"hostname":"us-ma1.wg.ivpn.net","dns_name":"us-ma1.gw.ivpn.net","host":"109.61.86.50","public_key":"JtIx5H4hqFUhwyrnlVlvthQgwNKJTKnpmT7Ld1XcPhM=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":15.06,"multihop_port":20870,"v2ray":"109.61.86.52","isp":"Datapacket"}]},{"gateway":"us-nj.wg.ivpn.net","country_code":"US","country":"United States","city":"Secaucus, NJ","latitude":40.778,"longitude":-74.069,"isp":"Ingenuity","hosts":[{"hostname":"us-nj1.wg.ivpn.net","dns_name":"us-nj1.gw.ivpn.net","host":"69.4.232.51","public_key":"ZffXqS8uJHDHLwTuYAVNhYn6IbWvcM2FsdCCLugHCCw=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":13.15,"multihop_port":20320,"v2ray":"69.4.232.53","isp":"Ingenuity"},{"hostname":"us-nj4.wg.ivpn.net","dns_name":"us-nj4.gw.ivpn.net","host":"194.36.111.54","public_key":"1Te4AfL1yKo2k4jzPALnRPfKE3YSzXKo4XIRHPz5FxI=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":30.45,"multihop_port":27401,"v2ray":"37.120.202.42","isp":"M247"}]},{"gateway":"us-nv.wg.ivpn.net","country_code":"US","country":"United States","city":"Las Vegas, NV","latitude":36.2333,"longitude":-115.2654,"isp":"M247","hosts":[{"hostname":"us-nv1.wg.ivpn.net","dns_name":"us-nv1.gw.ivpn.net","host":"185.242.5.37","public_key":"PRpvAZyoNWNm/KHlqafjtYoZtn1PkIPylUE4WbuYmgM=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":8.85,"multihop_port":26501,"v2ray":"185.242.5.146","isp":"M247"}]},{"gateway":"us-ny.wg.ivpn.net","country_code":"US","country":"United States","city":"New York, NY","latitude":40.6943,"longitude":-73.9249,"isp":"M247","hosts":[{"hostname":"us-ny2.wg.ivpn.net","dns_name":"us-ny2.gw.ivpn.net","host":"212.103.48.195","public_key":"c7DwY2uT+6ulWAJ5u8qJNWHroA0qyJLcdNzf/f2kkhs=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":6.16,"multihop_port":21801,"v2ray":"212.103.48.199","isp":"M247"},{"hostname":"us-ny3.wg.ivpn.net","dns_name":"us-ny3.gw.ivpn.net","host":"89.187.178.145","public_key":"m5/Ssw9SN3WuE+yD/fAsH5G8iuI8TcDGEiZZnPgiMCc=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":6.25,"multihop_port":27601,"v2ray":"89.187.178.150","isp":"Datapacket"},{"hostname":"us-ny4.wg.ivpn.net","dns_name":"us-ny4.gw.ivpn.net","host":"91.132.137.170","public_key":"6/tjvgb7HFl7UuvBSegolxa1zKr3iSlDrlCexCmhAGE=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":6.03,"multihop_port":20990,"v2ray":"91.132.137.173","isp":"M247"}]},{"gateway":"us-tx.wg.ivpn.net","country_code":"US","country":"United States","city":"Dallas, TX","latitude":32.912,"longitude":-96.785,"isp":"Datapacket","hosts":[{"hostname":"us-tx4.wg.ivpn.net","dns_name":"us-tx4.gw.ivpn.net","host":"89.187.164.118","public_key":"6jIFbOQFIW7HalTcJBq9hx28Yp9C11ZwtEojpGDqfFA=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":8.34,"multihop_port":20300,"v2ray":"89.187.164.120","isp":"Datapacket"},{"hostname":"us-tx5.wg.ivpn.net","dns_name":"us-tx5.gw.ivpn.net","host":"206.217.207.179","public_key":"9XqprMJxKlMFVP7uHm4GR6dHnu2qNNAFfWY/w9leInY=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":5.56,"multihop_port":20330,"v2ray":"206.217.207.181","isp":"Ingenuity"},{"hostname":"us-tx6.wg.ivpn.net","dns_name":"us-tx6.gw.ivpn.net","host":"198.44.137.198","public_key":"ovdPq1PhjsqSrYgH4LbLyKNkXs+q5w9YvG31B81TLyU=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":8.86,"multihop_port":20430,"v2ray":"198.44.137.200","isp":"Tzulo"}]},{"gateway":"us-ut.wg.ivpn.net","country_code":"US","country":"United States","city":"Salt Lake City, UT","latitude":40.7774,"longitude":-111.93,"isp":"100TB","hosts":[{"hostname":"us-ut1.wg.ivpn.net","dns_name":"us-ut1.gw.ivpn.net","host":"206.190.145.92","public_key":"KirI7bpxD186CuYiOqNHF+QUe6YmRYf6CN3pXWOJT2k=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":9.15,"multihop_port":24401,"v2ray":"206.190.145.88","isp":"100TB"}]},{"gateway":"us-va.wg.ivpn.net","country_code":"US","country":"United States","city":"Ashburn, VA","latitude":39.0437,"longitude":-77.4875,"isp":"Datapacket","hosts":[{"hostname":"us-va1.wg.ivpn.net","dns_name":"us-va1.gw.ivpn.net","host":"37.19.206.106","public_key":"ZCnZK6U+cRuP/WgzIDb/P6UG2rX/KyCRd5vJ1hAbr2E=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":7.15,"multihop_port":27701,"v2ray":"37.19.206.111","isp":"Datapacket"}]},{"gateway":"us-wa.wg.ivpn.net","country_code":"US","country":"United States","city":"Seattle, WA","latitude":47.6211,"longitude":-122.3244,"isp":"Tzulo","hosts":[{"hostname":"us-wa2.wg.ivpn.net","dns_name":"us-wa2.gw.ivpn.net","host":"198.44.131.4","public_key":"VcrOOozBUCIURU0AnqMAE7AkMmC7Qrp+j/PzPbgbalU=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":16.82,"multihop_port":27801,"v2ray":"198.44.131.20","isp":"Tzulo"}]},{"gateway":"za.wg.ivpn.net","country_code":"ZA","country":"South Africa","city":"Johannesburg","latitude":-26.195,"longitude":28.034,"isp":"Datapacket","hosts":[{"hostname":"za1.wg.ivpn.net","dns_name":"za1.gw.ivpn.net","host":"169.150.238.108","public_key":"tgrAA+uJZppS9esgOi0pe3rHajQQ7c/KF8WPOua6qy4=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":8.34,"multihop_port":20840,"v2ray":"169.150.238.109","isp":"Datapacket"}]}],"openvpn":[{"gateway":"ar.gw.ivpn.net","country_code":"AR","country":"Argentina","city":"Buenos Aires","latitude":-34.614,"longitude":-58.371,"isp":"Datapacket","hosts":[{"hostname":"ar1.gw.ivpn.net","dns_name":"ar1.gw.ivpn.net","host":"149.22.83.97","load":11.08,"multihop_port":20600,"obfs":{"obfs3_multihop_port":20601,"obfs4_multihop_port":20602,"obfs4_key":"nYpMZiGcjWbjQ+8GzltcIqSwcVS4u6m8q7A7szcJHNQ1XHrpHk9r99bHCpzfvnQmNAjdWw"},"v2ray":"149.22.83.102","isp":"Datapacket"}]},{"gateway":"at.gw.ivpn.net","country_code":"AT","country":"Austria","city":"Vienna","latitude":48.2,"longitude":16.3666,"isp":"M247","hosts":[{"hostname":"at1.gw.ivpn.net","dns_name":"at1.gw.ivpn.net","host":"185.244.212.66","load":86.14,"multihop_port":25601,"obfs":{"obfs3_multihop_port":25602,"obfs4_multihop_port":25603,"obfs4_key":"75HhQC6n6ctp9Fa9wCvEnc6ip5FnEfuIGc+dVNLH4M15FjB/Ve6bI1b8lYFhk6T+4/HkDQ"},"v2ray":"146.70.146.226","isp":"M247"}]},{"gateway":"au-nsw.gw.ivpn.net","country_code":"AU","country":"Australia","city":"Sydney","latitude":-33.92,"longitude":151.1852,"isp":"M247","hosts":[{"hostname":"au-nsw1.gw.ivpn.net","dns_name":"au-nsw1.gw.ivpn.net","host":"46.102.153.242","load":18.17,"multihop_port":26601,"obfs":{"obfs3_multihop_port":26602,"obfs4_multihop_port":26603,"obfs4_key":"/rjoeDjduOFq1UvT332vhS398h1RP5hC3m7sDJKNSyJ6TO8mkcxWAYILw0i+bgS/3JD5YA"},"v2ray":"217.138.205.90","isp":"M247"},{"hostname":"au-nsw2.gw.ivpn.net","dns_name":"au-nsw2.gw.ivpn.net","host":"146.70.78.74","load":16.66,"multihop_port":27901,"obfs":{"obfs3_multihop_port":27902,"obfs4_multihop_port":27903,"obfs4_key":"qtdQ5krD9EQFR98xNo/v5cmGb10wqt0Om9pYMIHWQh4oz5xcAXj32rViEyN0bnkkhaZnBA"},"v2ray":"146.70.210.26","isp":"M247"}]},{"gateway":"be.gw.ivpn.net","country_code":"BE","country":"Belgium","city":"Brussels","latitude":50.8333,"longitude":4.3333,"isp":"M247","hosts":[{"hostname":"be1.gw.ivpn.net","dns_name":"be1.gw.ivpn.net","host":"194.187.251.10","load":47.42,"multihop_port":25701,"obfs":{"obfs3_multihop_port":25702,"obfs4_multihop_port":25703,"obfs4_key":"cN8i60FUVy2mmGpy+tkQAz8hu/N0EGPq8cZwIotEDwdhAYdLV+ATes/AEjzdub2K68TlYg"},"v2ray":"37.120.143.130","isp":"M247"},{"hostname":"be2.gw.ivpn.net","dns_name":"be2.gw.ivpn.net","host":"79.127.224.161","load":17.82,"multihop_port":20610,"obfs":{"obfs3_multihop_port":20611,"obfs4_multihop_port":20612,"obfs4_key":"C0/5wLYnt+Ga3iPeVBVWCNTz3P4FE13ggOlgzRnOZHLtDJyVSvoN+gPI62gmOaPmh+LyFQ"},"v2ray":"79.127.224.166","isp":"Datapacket"}]},{"gateway":"bg.gw.ivpn.net","country_code":"BG","country":"Bulgaria","city":"Sofia","latitude":42.6833,"longitude":23.3167,"isp":"M247","hosts":[{"hostname":"bg1.gw.ivpn.net","dns_name":"bg1.gw.ivpn.net","host":"82.102.23.18","load":28.19,"multihop_port":25901,"obfs":{"obfs3_multihop_port":25902,"obfs4_multihop_port":25903,"obfs4_key":"K+mCw9+zy/8pBQt6IUKRlg2eJ3DCnJ1BvIccLq/6A2D6HoZddyDnZQYb2Sb2e464dVgBWw"},"v2ray":"146.70.53.82","isp":"M247"}]},{"gateway":"br.gw.ivpn.net","country_code":"BR","country":"Brazil","city":"Franca","latitude":-20.53,"longitude":-47.39,"isp":"Qnax","hosts":[{"hostname":"br1.gw.ivpn.net","dns_name":"br1.gw.ivpn.net","host":"45.162.230.50","load":13.29,"multihop_port":26701,"obfs":{"obfs3_multihop_port":26702,"obfs4_multihop_port":26703,"obfs4_key":"h4bBkocahWveuv/nWPRMYXBTw95ExTiXwmoydkNlV6hgfy8/ZjaKc34rqTuOyOH+CK7OZw"},"v2ray":"45.162.230.186","isp":"Qnax"}]},{"gateway":"ca-bc.gw.ivpn.net","country_code":"CA","country":"Canada","city":"Vancouver","latitude":49.231,"longitude":-122.8412,"isp":"Tech Futures","hosts":[{"hostname":"ca-bc1.gw.ivpn.net","dns_name":"ca-bc1.gw.ivpn.net","host":"104.193.135.228","load":13.94,"multihop_port":20550,"obfs":{"obfs3_multihop_port":20551,"obfs4_multihop_port":20552,"obfs4_key":"EE2sCZ06sv+v/UIezUZLFrey101UpbHVG8ZD0G303wCzusXbkK4Bi+tzg0J7DM9v7YLwBg"},"v2ray":"104.193.135.233","isp":"Tech Futures"}]},{"gateway":"ca-on.gw.ivpn.net","country_code":"CA","country":"Canada","city":"Toronto","latitude":43.7,"longitude":-79.42,"isp":"Amanah","hosts":[{"hostname":"ca-on1.gw.ivpn.net","dns_name":"ca-on1.gw.ivpn.net","host":"184.75.215.2","load":18.28,"multihop_port":20580,"obfs":{"obfs3_multihop_port":20581,"obfs4_multihop_port":20582,"obfs4_key":"ndx/mul0z+GgeDfKkqoSa8RuqCBA3MYWLnoBtH6YqOwWmjQY1wsotr80+nOhW4bRKu3HIw"},"v2ray":"184.75.215.7","isp":"Amanah"},{"hostname":"ca-on2.gw.ivpn.net","dns_name":"ca-on2.gw.ivpn.net","host":"162.219.176.18","load":12.11,"multihop_port":20590,"obfs":{"obfs3_multihop_port":20591,"obfs4_multihop_port":20592,"obfs4_key":"2jIHUkKQYA8cNacmXLYjMYioV3dkN8nr0gV4r9D9nwFB42Q5IpUYadk0oyk47Js+z36gWw"},"v2ray":"162.219.176.23","isp":"Amanah"}]},{"gateway":"ca-qc.gw.ivpn.net","country_code":"CA","country":"Canada","city":"Montreal","latitude":45.499,"longitude":-73.57,"isp":"M247","hosts":[{"hostname":"ca-qc1.gw.ivpn.net","dns_name":"ca-qc1.gw.ivpn.net","host":"37.120.130.60","load":13.7,"multihop_port":20960,"obfs":{"obfs3_multihop_port":20961,"obfs4_multihop_port":20962,"obfs4_key":"bsOfJuEd+ZAuslrnkTkaBL0zzGt1UZyppbGOE+DV9fw0H6G63gnvNtmNRgffcnPJs9XeWg"},"v2ray":"37.120.130.61","isp":"M247"},{"hostname":"ca-qc2.gw.ivpn.net","dns_name":"ca-qc2.gw.ivpn.net","host":"87.101.92.26","load":15.9,"multihop_port":27001,"obfs":{"obfs3_multihop_port":27002,"obfs4_multihop_port":27003,"obfs4_key":"hfhRyd1nnfLN2QcWgqQo2iDkj6+Z71t2h4dbcsmBT5pZNBpWg3pbRfGQ0u6RCanCyK6xQA"},"v2ray":"89.47.234.130","isp":"M247"}]},{"gateway":"ch.gw.ivpn.net","country_code":"CH","country":"Switzerland","city":"Zurich","latitude":47.38,"longitude":8.55,"isp":"M247","hosts":[{"hostname":"ch1.gw.ivpn.net","dns_name":"ch1.gw.ivpn.net","host":"185.212.170.138","load":25.31,"multihop_port":23601,"obfs":{"obfs3_multihop_port":23602,"obfs4_multihop_port":23603,"obfs4_key":"ELnV4JNKu0vUNd3J+QDn64yfZtqM0hNN6O5n6RkDLHbeSDBZmxP1N4dlwwChV/uySX+DEQ"},"v2ray":"37.120.213.138","isp":"M247"},{"hostname":"ch2.gw.ivpn.net","dns_name":"ch2.gw.ivpn.net","host":"81.17.24.162","load":11.97,"multihop_port":20880,"obfs":{"obfs3_multihop_port":20881,"obfs4_multihop_port":20882,"obfs4_key":"XeGJcOeMYGPRN+xNlmd8lDSt71ae6BHF7kzaYXs9bVSv80cgoGTKQZ5+2VW6UHNURiI8aQ"},"v2ray":"81.17.24.167","isp":"Privatelayer"},{"hostname":"ch3.gw.ivpn.net","dns_name":"ch3.gw.ivpn.net","host":"141.255.166.194","load":18.12,"multihop_port":22901,"obfs":{"obfs3_multihop_port":22902,"obfs4_multihop_port":22903,"obfs4_key":"oNaH5sHCPGGk5m3/VMOrTDL+m1qsJrze+bqDs78vhOYBpjx5Jjq5TXu1dXNfDJCKNmKnUA"},"v2ray":"179.43.167.66","isp":"Privatelayer"}]},{"gateway":"cz.gw.ivpn.net","country_code":"CZ","country":"Czech Republic","city":"Prague","latitude":50.0833,"longitude":14.466,"isp":"Datapacket","hosts":[{"hostname":"cz1.gw.ivpn.net","dns_name":"cz1.gw.ivpn.net","host":"195.181.160.167","load":19.92,"multihop_port":25201,"obfs":{"obfs3_multihop_port":25202,"obfs4_multihop_port":25203,"obfs4_key":"JZ3PtIyflM3VwVow2vqi08OxddOWSx9j6B6yZSGoZLs9QE0hzSAj3ZBWEsCKFeQ2RcAoCQ"},"v2ray":"195.181.160.184","isp":"Datapacket"}]},{"gateway":"de.gw.ivpn.net","country_code":"DE","country":"Germany","city":"Frankfurt","latitude":50.1,"longitude":8.675,"isp":"Leaseweb","hosts":[{"hostname":"de2.gw.ivpn.net","dns_name":"de2.gw.ivpn.net","host":"178.162.211.114","load":21.16,"multihop_port":22001,"obfs":{"obfs3_multihop_port":22002,"obfs4_multihop_port":22003,"obfs4_key":"dEhLA4ZsvVP8+PRvlSHKwmW8JyzR1Bwy7+BFKF7Ux4L2B5YvdqqOrv/8eHliEj2mm2Z8Iw"},"v2ray":"178.162.222.166","isp":"Leaseweb"},{"hostname":"de3.gw.ivpn.net","dns_name":"de3.gw.ivpn.net","host":"146.70.160.162","load":28.26,"multihop_port":21050,"obfs":{"obfs3_multihop_port":21051,"obfs4_multihop_port":21052,"obfs4_key":"IFf+iLf7lgc0K81tQkZL5zndlWflvnLZyYSGGNLtSXLLivlIeBuXCPFDJ7fkL3TOd5uhOA"},"v2ray":"146.70.160.166","isp":"M247"},{"hostname":"de4.gw.ivpn.net","dns_name":"de4.gw.ivpn.net","host":"185.102.219.40","load":14.56,"multihop_port":20920,"obfs":{"obfs3_multihop_port":20921,"obfs4_multihop_port":20922,"obfs4_key":"LzIBOv6zUOyI3/VfDLfqNmOTxCOHRo3bWirKHOf0GdJOPlmdZGHG9kH/aJwHNemsY0fWew"},"v2ray":"185.102.219.56","isp":"Datapacket"}]},{"gateway":"dk.gw.ivpn.net","country_code":"DK","country":"Denmark","city":"Copenhagen","latitude":55.6786,"longitude":12.5635,"isp":"M247","hosts":[{"hostname":"dk1.gw.ivpn.net","dns_name":"dk1.gw.ivpn.net","host":"185.245.84.226","load":100,"multihop_port":25501,"obfs":{"obfs3_multihop_port":25502,"obfs4_multihop_port":25503,"obfs4_key":"ngjtv9UISX4tB5AkBnrEN2TrAnUqVwNZ688VqDlS4BDxQXJeJF3ynZtngRqeowhEahsccQ"},"v2ray":"193.29.107.226","isp":"M247"},{"hostname":"dk2.gw.ivpn.net","dns_name":"dk2.gw.ivpn.net","host":"121.127.45.36","load":8.7,"multihop_port":20620,"obfs":{"obfs3_multihop_port":20621,"obfs4_multihop_port":20622,"obfs4_key":"D0UIq0H1cEggbQt8LPd92fe5oqlo7cip3HQBYzX7W7+nFo9F3x87yuL6TvvUCZrSwbIVAg"},"v2ray":"121.127.45.41","isp":"Datapacket"}]},{"gateway":"es.gw.ivpn.net","country_code":"ES","country":"Spain","city":"Madrid","latitude":40.4,"longitude":-3.6834,"isp":"Datapacket","hosts":[{"hostname":"es1.gw.ivpn.net","dns_name":"es1.gw.ivpn.net","host":"185.93.3.193","load":44.46,"multihop_port":21501,"obfs":{"obfs3_multihop_port":21502,"obfs4_multihop_port":21503,"obfs4_key":"x4A9SBY5yzPKH1QOkEsGYcIR2JA/Pu393jv/ZSg4YO2DsVhr3TQFxcMO3QhD9iSF48smJA"},"v2ray":"185.93.3.196","isp":"Datapacket"}]},{"gateway":"fi.gw.ivpn.net","country_code":"FI","country":"Finland","city":"Helsinki","latitude":60.1756,"longitude":24.9341,"isp":"Creanova","hosts":[{"hostname":"fi1.gw.ivpn.net","dns_name":"fi1.gw.ivpn.net","host":"185.112.82.12","load":28.42,"multihop_port":26001,"obfs":{"obfs3_multihop_port":26002,"obfs4_multihop_port":26003,"obfs4_key":"SvvSpGiFctjs4n2wZGnZUf9fAL8wag70SrA3FX+9f3Sq+KgBn+/8P6fE3239ezemg9svLA"},"v2ray":"185.103.110.231","isp":"Creanova"}]},{"gateway":"fr.gw.ivpn.net","country_code":"FR","country":"France","city":"Paris","latitude":48.8667,"longitude":2.3333,"isp":"Datapacket","hosts":[{"hostname":"fr1.gw.ivpn.net","dns_name":"fr1.gw.ivpn.net","host":"185.246.211.179","load":18.8,"multihop_port":23401,"obfs":{"obfs3_multihop_port":23402,"obfs4_multihop_port":23403,"obfs4_key":"CMf0pNZ46nFdG0Tpa3hE0cK9wtUAReJL7HN66G9Jq3tlrTSWrU0DLf7sCQgXV+WFoc8iaw"},"v2ray":"185.246.211.184","isp":"Datapacket"}]},{"gateway":"gb-man.gw.ivpn.net","country_code":"GB","country":"United Kingdom","city":"Manchester","latitude":53.451,"longitude":-2.319,"isp":"M247","hosts":[{"hostname":"gb-man1.gw.ivpn.net","dns_name":"gb-man1.gw.ivpn.net","host":"185.195.202.20","load":7.78,"multihop_port":26901,"obfs":{"obfs3_multihop_port":26902,"obfs4_multihop_port":26903,"obfs4_key":"WuP3pMrsQA+uAC72sV+Y62E1uvOWcnbTNJCmRHXqtWbbYzECF5swu62dzD/JOKoa5t0tGQ"},"v2ray":"185.195.202.25","isp":"M247"}]},{"gateway":"gb.gw.ivpn.net","country_code":"GB","country":"United Kingdom","city":"London","latitude":51.5,"longitude":-0.1167,"isp":"Datapacket","hosts":[{"hostname":"gb1.gw.ivpn.net","dns_name":"gb1.gw.ivpn.net","host":"185.59.221.133","load":6.77,"multihop_port":20801,"obfs":{"obfs3_multihop_port":20802,"obfs4_multihop_port":20803,"obfs4_key":"5whTESvZxQE28wKqJWZ9fQFy09d8//GNaPDeYHVR+FJZTyI+DMS6qX4Mt2FKSf/zBToaDg"},"v2ray":"185.59.221.159","isp":"Datapacket"},{"hostname":"gb2.gw.ivpn.net","dns_name":"gb2.gw.ivpn.net","host":"185.59.221.88","load":6.59,"multihop_port":24201,"obfs":{"obfs3_multihop_port":24202,"obfs4_multihop_port":24203,"obfs4_key":"4hrCOgPsRfmnQ6cLvV5mtM2XZCRS/DXG/izYSg2qZC+WJ0GsnhTlKByPM2iJ555MaM8vJA"},"v2ray":"185.59.221.226","isp":"Datapacket"},{"hostname":"gb3.gw.ivpn.net","dns_name":"gb3.gw.ivpn.net","host":"81.92.202.116","load":8.41,"multihop_port":20980,"obfs":{"obfs3_multihop_port":20981,"obfs4_multihop_port":20982,"obfs4_key":"GIqTpQh4aDEYbwpwhF23HNAr/vVqSqRwYxqe2mdkKzapfj0fd9ZLrM2jG2ISVdSjNBhYRQ"},"v2ray":"81.92.202.117","isp":"M247"}]},{"gateway":"gr.gw.ivpn.net","country_code":"GR","country":"Greece","city":"Athens","latitude":37.871,"longitude":23.8707,"isp":"Datapacket","hosts":[{"hostname":"gr1.gw.ivpn.net","dns_name":"gr1.gw.ivpn.net","host":"169.150.252.110","load":11.15,"multihop_port":20540,"obfs":{"obfs3_multihop_port":20541,"obfs4_multihop_port":20542,"obfs4_key":"zyWssFvuJOCSBixUnRaF0qk+BLJQbnm7YpZ5oSVk5ElIksjA7OvwigQBc2NF2kt9/lQSEw"},"v2ray":"169.150.252.115","isp":"Datapacket"}]},{"gateway":"hk.gw.ivpn.net","country_code":"HK","country":"Hong Kong","city":"Hong Kong","latitude":22.305,"longitude":114.185,"isp":"Leaseweb","hosts":[{"hostname":"hk2.gw.ivpn.net","dns_name":"hk2.gw.ivpn.net","host":"209.58.188.13","load":28.51,"multihop_port":27501,"obfs":{"obfs3_multihop_port":27502,"obfs4_multihop_port":27503,"obfs4_key":"GIunWjiq00Piv3Xf4VeMkmUQ8NzD8sxRkSIbA3bxrU4LhPVth+3qM2zQwI4GesQDCDY5RA"},"v2ray":"64.120.120.237","isp":"Leaseweb"},{"hostname":"hk3.gw.ivpn.net","dns_name":"hk3.gw.ivpn.net","host":"118.107.244.184","load":7.25,"multihop_port":20460,"obfs":{"obfs3_multihop_port":20461,"obfs4_multihop_port":20462,"obfs4_key":"wnI0gz3hLM9VhkABSncBIsGERgn16UzTxkj7dEeYYo/y2Wu0/w24rfriA5KL7ugpTyvEFg"},"v2ray":"118.107.244.207","isp":"TheGigabit"}]},{"gateway":"hr.gw.ivpn.net","country_code":"HR","country":"Croatia","city":"Zagreb","latitude":45.811,"longitude":15.977,"isp":"Datapacket","hosts":[{"hostname":"hr1.gw.ivpn.net","dns_name":"hr1.gw.ivpn.net","host":"169.150.242.1","load":13.57,"multihop_port":20860,"obfs":{"obfs3_multihop_port":20861,"obfs4_multihop_port":20862,"obfs4_key":"MndMzdMCy8m0bY1LPNh1GAWQXhTom4Jr5eSrkMGTF6n2r3hhYd1lGPM+Q417OB+/dz2qDA"},"v2ray":"169.150.242.42","isp":"Datapacket"}]},{"gateway":"hu.gw.ivpn.net","country_code":"HU","country":"Hungary","city":"Budapest","latitude":47.5,"longitude":19.0833,"isp":"M247","hosts":[{"hostname":"hu1.gw.ivpn.net","dns_name":"hu1.gw.ivpn.net","host":"185.189.114.186","load":54.08,"multihop_port":25401,"obfs":{"obfs3_multihop_port":25402,"obfs4_multihop_port":25403,"obfs4_key":"2TwZqxAakni0S4S3ulOIqMZimqqug0KCr6pNREN6KytrtIh486nkJyiFRqaYZlx+FlxEcg"},"v2ray":"37.120.144.178","isp":"M247"}]},{"gateway":"ie.gw.ivpn.net","country_code":"IE","country":"Ireland","city":"Dublin","latitude":53.337,"longitude":-6.259,"isp":"Datapacket","hosts":[{"hostname":"ie1.gw.ivpn.net","dns_name":"ie1.gw.ivpn.net","host":"87.249.137.136","load":33.61,"multihop_port":20850,"obfs":{"obfs3_multihop_port":20851,"obfs4_multihop_port":20852,"obfs4_key":"tWiVshynDq75bW24Ch2p9nRjLF4wa7YWHy9xCX5hJ5J0lZpflq8L/UluCfi51nxZDTouZA"},"v2ray":"87.249.137.140","isp":"Datapacket"}]},{"gateway":"il.gw.ivpn.net","country_code":"IL","country":"Israel","city":"Holon, Tel Aviv","latitude":32.08,"longitude":34.77,"isp":"HQServ","hosts":[{"hostname":"il1.gw.ivpn.net","dns_name":"il1.gw.ivpn.net","host":"185.191.204.130","load":11.93,"multihop_port":27301,"obfs":{"obfs3_multihop_port":27302,"obfs4_multihop_port":27303,"obfs4_key":"DysuSM7UWjquj4BAVYf6mOUnRKfY1QXs17MXiV5aYapFfOkQPpx5nQPVQ2M+rLDxN9TSRg"},"v2ray":"185.191.204.135","isp":"HQServ"}]},{"gateway":"is.gw.ivpn.net","country_code":"IS","country":"Iceland","city":"Reykjavik","latitude":64.15,"longitude":-21.95,"isp":"Advania","hosts":[{"hostname":"is1.gw.ivpn.net","dns_name":"is1.gw.ivpn.net","host":"82.221.107.178","load":70.39,"multihop_port":23501,"obfs":{"obfs3_multihop_port":23502,"obfs4_multihop_port":23503,"obfs4_key":"xx/Lor3q60/pVh4PKWi0GZaw64pPXFTkALnGlvRaBMiPRkFilr7KhYmPInDnZxzr4c4AIw"},"v2ray":"82.221.107.183","isp":"Advania"}]},{"gateway":"it.gw.ivpn.net","country_code":"IT","country":"Italy","city":"Milan","latitude":45.47,"longitude":9.205,"isp":"Datapacket","hosts":[{"hostname":"it2.gw.ivpn.net","dns_name":"it2.gw.ivpn.net","host":"84.17.59.137","load":14.1,"multihop_port":21100,"obfs":{"obfs3_multihop_port":21101,"obfs4_multihop_port":21102,"obfs4_key":"8msjDzd52ALBZF9Ej8i6BYXc4qSTiG8P739Px77EHp0uOVd5/VvDhrBfGcBQxDIgBlUeLw"},"v2ray":"84.17.59.146","isp":"Datapacket"}]},{"gateway":"jp.gw.ivpn.net","country_code":"JP","country":"Japan","city":"Tokyo","latitude":35.62,"longitude":139.74,"isp":"TheGigabit","hosts":[{"hostname":"jp2.gw.ivpn.net","dns_name":"jp2.gw.ivpn.net","host":"185.135.77.35","load":8.67,"multihop_port":20830,"obfs":{"obfs3_multihop_port":20831,"obfs4_multihop_port":20832,"obfs4_key":"giZJF4edg7wcjxbdgD2RjFcF9QAzExLHIJYjm2cLLtx7MrxP0p96mIFj9T8LSQotKB63fA"},"v2ray":"185.135.77.100","isp":"TheGigabit"}]},{"gateway":"lu.gw.ivpn.net","country_code":"LU","country":"Luxembourg","city":"Luxembourg","latitude":49.6113,"longitude":6.1294,"isp":"EstNOC","hosts":[{"hostname":"lu2.gw.ivpn.net","dns_name":"lu2.gw.ivpn.net","host":"185.221.132.178","load":54.44,"multihop_port":27212,"obfs":{"obfs3_multihop_port":27213,"obfs4_multihop_port":27214,"obfs4_key":"5zv2iXbmjV6wI3IEGxSZNfOnIIzfeehDF4FxkwcPi5sqDqa+6ecU2Nx55qIRstLfyzNEJA"},"v2ray":"185.221.132.183","isp":"EstNOC"}]},{"gateway":"mx.gw.ivpn.net","country_code":"MX","country":"Mexico","city":"Querétaro","latitude":20.574,"longitude":-100.2965,"isp":"Datapacket","hosts":[{"hostname":"mx1.gw.ivpn.net","dns_name":"mx1.gw.ivpn.net","host":"121.127.43.193","load":20.1,"multihop_port":20570,"obfs":{"obfs3_multihop_port":20571,"obfs4_multihop_port":20572,"obfs4_key":"j+m8maujVIgwIuDswG84veNQpprZobIszwL5rJ3FZZGD8ES7c3P6pN9aCJW4YJvnRxducg"},"v2ray":"121.127.43.198","isp":"Datapacket"}]},{"gateway":"my.gw.ivpn.net","country_code":"MY","country":"Malaysia","city":"Kuala Lumpur","latitude":3.1494,"longitude":101.706,"isp":"TheGigabit","hosts":[{"hostname":"my1.gw.ivpn.net","dns_name":"my1.gw.ivpn.net","host":"61.4.97.148","load":21.99,"multihop_port":20470,"obfs":{"obfs3_multihop_port":20471,"obfs4_multihop_port":20472,"obfs4_key":"k2hwCe8gDb24K5n2jNXYO5YCl5XCIEhuRwpYSsEhKWorah8OUM1C1crawbfstj+W2IQdOA"},"v2ray":"61.4.97.155","isp":"TheGigabit"}]},{"gateway":"nl.gw.ivpn.net","country_code":"NL","country":"Netherlands","city":"Amsterdam","latitude":52.376,"longitude":4.898,"isp":"Datapacket","hosts":[{"hostname":"nl2.gw.ivpn.net","dns_name":"nl2.gw.ivpn.net","host":"185.102.218.112","load":6.9,"multihop_port":20910,"obfs":{"obfs3_multihop_port":20911,"obfs4_multihop_port":20912,"obfs4_key":"RsYbGPn8XBsjDEqiYyHlNQ9E/whBLlfbFAD0hzA68ArgdzWuD4pvwBhcl0ckNwXhYfNALA"},"v2ray":"185.102.218.99","isp":"Datapacket"},{"hostname":"nl3.gw.ivpn.net","dns_name":"nl3.gw.ivpn.net","host":"95.211.172.68","load":15.42,"multihop_port":23101,"obfs":{"obfs3_multihop_port":23102,"obfs4_multihop_port":23103,"obfs4_key":"eUXsScIg0K0LKVgA8yq2Mc++pfnTQ9nr3gnV8n1NIw7wRqinhO6uuXiSS5J19agQaPK1ew"},"v2ray":"95.211.172.72","isp":"Leaseweb"},{"hostname":"nl4.gw.ivpn.net","dns_name":"nl4.gw.ivpn.net","host":"95.211.172.95","load":5.64,"multihop_port":23201,"obfs":{"obfs3_multihop_port":23202,"obfs4_multihop_port":23203,"obfs4_key":"KEw6WJF+NDOQv7yMvq+dAAAkPbcYJ8PX6pffRd8EM3uaOy2QcpMcdHI7s700Kq/ZvV3HBQ"},"v2ray":"95.211.172.99","isp":"Leaseweb"},{"hostname":"nl5.gw.ivpn.net","dns_name":"nl5.gw.ivpn.net","host":"95.211.187.222","load":35.67,"multihop_port":23901,"obfs":{"obfs3_multihop_port":23902,"obfs4_multihop_port":23903,"obfs4_key":"fcWCrzzatLbk1LNKsuQZKpQrC3ZXwQ85GO5xRS467KJBRDrmvnyMb6ARbLGu+gYkTnNELQ"},"v2ray":"95.211.187.225","isp":"Leaseweb"},{"hostname":"nl6.gw.ivpn.net","dns_name":"nl6.gw.ivpn.net","host":"95.211.187.228","load":10.72,"multihop_port":24101,"obfs":{"obfs3_multihop_port":24102,"obfs4_multihop_port":24103,"obfs4_key":"lT3OGPQS1CwwqtalMExN7qxEoDDBLLlcoh5a6YW3DPj8esEBEG6wY5OfYonxltBzoVu4PA"},"v2ray":"95.211.187.231","isp":"Leaseweb"},{"hostname":"nl7.gw.ivpn.net","dns_name":"nl7.gw.ivpn.net","host":"95.211.95.22","load":17.97,"multihop_port":22501,"obfs":{"obfs3_multihop_port":22502,"obfs4_multihop_port":22503,"obfs4_key":"ffMnq7Gc/D7KWoLckJ4t8nf3zZqVdlffe2lVfUCceOyOTdRApkeJGgEai0TI1z76Yey9Lw"},"v2ray":"95.211.172.107","isp":"Leaseweb"},{"hostname":"nl8.gw.ivpn.net","dns_name":"nl8.gw.ivpn.net","host":"95.211.172.18","load":9.34,"multihop_port":22801,"obfs":{"obfs3_multihop_port":22802,"obfs4_multihop_port":22803,"obfs4_key":"h+u/6VkPDJXySoJ6QEM1hOjWPD58OS4AZPP9ofP/yCWGBQpPoMc78l7C74eFvqKKkFAXDw"},"v2ray":"95.211.198.169","isp":"Leaseweb"}]},{"gateway":"no.gw.ivpn.net","country_code":"NO","country":"Norway","city":"Oslo","latitude":59.9167,"longitude":10.75,"isp":"Servetheworld","hosts":[{"hostname":"no1.gw.ivpn.net","dns_name":"no1.gw.ivpn.net","host":"194.242.10.150","load":27.15,"multihop_port":25301,"obfs":{"obfs3_multihop_port":25302,"obfs4_multihop_port":25303,"obfs4_key":"uhLy//KRu6DrYfgDJmwjC6Fxk5h+MRDNOwFe7qzGTjfOiHLWRSoRx6OdNvzjPPXq0ZJnZg"},"v2ray":"217.170.197.28","isp":"Servetheworld"}]},{"gateway":"pe.gw.ivpn.net","country_code":"PE","country":"Peru","city":"Lima","latitude":-12.089,"longitude":-76.9759,"isp":"Datapacket","hosts":[{"hostname":"pe1.gw.ivpn.net","dns_name":"pe1.gw.ivpn.net","host":"79.127.252.65","load":5.7,"multihop_port":20490,"obfs":{"obfs3_multihop_port":20491,"obfs4_multihop_port":20492,"obfs4_key":"ckCu0Xq5Zt5K3wbkJbtg0JwjxnW08NaY9M/pkkL6ENijKB7pIbYjtVrYdYAX/tH2kIBmeg"},"v2ray":"79.127.252.70","isp":"Datapacket"}]},{"gateway":"pl.gw.ivpn.net","country_code":"PL","country":"Poland","city":"Warsaw","latitude":52.25,"longitude":21,"isp":"Datapacket","hosts":[{"hostname":"pl1.gw.ivpn.net","dns_name":"pl1.gw.ivpn.net","host":"185.246.208.86","load":6.7,"multihop_port":25101,"obfs":{"obfs3_multihop_port":25102,"obfs4_multihop_port":25103,"obfs4_key":"S9XZyigxYjF5jWcwYpMmV9HJq4Vni1yQvLKI03n0TJ7csrgsX7lPpFfECAGQruHh1wkMXg"},"v2ray":"185.246.208.87","isp":"Datapacket"}]},{"gateway":"pt.gw.ivpn.net","country_code":"PT","country":"Portugal","city":"Lisbon","latitude":38.7227,"longitude":-9.1449,"isp":"Hostwebis","hosts":[{"hostname":"pt1.gw.ivpn.net","dns_name":"pt1.gw.ivpn.net","host":"94.46.175.112","load":5.62,"multihop_port":27101,"obfs":{"obfs3_multihop_port":27102,"obfs4_multihop_port":27103,"obfs4_key":"NqXqKMt8UF25hYDIwfh2K4Rr4a7F41HzZDGjX7SYwRaoOtrTL665yV6Z3h9wF+/R1YE8KQ"},"v2ray":"94.46.175.130","isp":"Hostwebis"}]},{"gateway":"ro.gw.ivpn.net","country_code":"RO","country":"Romania","city":"Bucharest","latitude":44.4334,"longitude":26.0999,"isp":"M247","hosts":[{"hostname":"ro1.gw.ivpn.net","dns_name":"ro1.gw.ivpn.net","host":"37.120.206.50","load":53.67,"multihop_port":22301,"obfs":{"obfs3_multihop_port":22302,"obfs4_multihop_port":22303,"obfs4_key":"lqfg/sP9uLakoQiA6YI5/kHQ4/FvQTp6jRgxSswjHwC8POOM23FijEWKyykngn1Eb3xfLA"},"v2ray":"185.120.147.58","isp":"M247"}]},{"gateway":"rs.gw.ivpn.net","country_code":"RS","country":"Serbia","city":"Belgrade","latitude":44.8186,"longitude":20.468,"isp":"M247","hosts":[{"hostname":"rs1.gw.ivpn.net","dns_name":"rs1.gw.ivpn.net","host":"141.98.103.250","load":52.14,"multihop_port":26801,"obfs":{"obfs3_multihop_port":26802,"obfs4_multihop_port":26803,"obfs4_key":"0MqgxLrLFQTlQWGAjY9es+Nv45d37/5lulWw0iEFoiUvtzOcbut8hK9AhCis17EXi+lUXw"},"v2ray":"146.70.111.114","isp":"M247"}]},{"gateway":"se.gw.ivpn.net","country_code":"SE","country":"Sweden","city":"Stockholm","latitude":59.3508,"longitude":18.0973,"isp":"GleSyS","hosts":[{"hostname":"se1.gw.ivpn.net","dns_name":"se1.gw.ivpn.net","host":"80.67.10.138","load":13.95,"multihop_port":24001,"obfs":{"obfs3_multihop_port":24002,"obfs4_multihop_port":24003,"obfs4_key":"/yhTV2SsTXlwsG2mCS90ZAYIZivsSyloaFw6VDj0pnpJOuUxXcZBOgdyQ/lfWxJtvHZmPg"},"v2ray":"80.67.10.139","isp":"GleSyS"},{"hostname":"se2.gw.ivpn.net","dns_name":"se2.gw.ivpn.net","host":"37.120.153.228","load":26.5,"multihop_port":20970,"obfs":{"obfs3_multihop_port":20971,"obfs4_multihop_port":20972,"obfs4_key":"xd6oVIT+22zMb84GGO+veRRswXf51ucRiaxpkJ9k84S713VJcpyO2WzCoSd4bi4yLuY0Eg"},"v2ray":"37.120.153.227","isp":"M247"}]},{"gateway":"sg.gw.ivpn.net","country_code":"SG","country":"Singapore","city":"Singapore","latitude":1.293,"longitude":103.8558,"isp":"M247","hosts":[{"hostname":"sg1.gw.ivpn.net","dns_name":"sg1.gw.ivpn.net","host":"185.128.24.186","load":26.93,"multihop_port":26101,"obfs":{"obfs3_multihop_port":26102,"obfs4_multihop_port":26103,"obfs4_key":"0N1ZmZlnyhS/3Y1OhvB0Bk3BGU2LFy0zyuWPYwM/P+mfX57w8zI7/YcBfIXZVgDiStt4MQ"},"v2ray":"146.70.192.138","isp":"M247"},{"hostname":"sg2.gw.ivpn.net","dns_name":"sg2.gw.ivpn.net","host":"37.120.151.124","load":88.88,"multihop_port":20950,"obfs":{"obfs3_multihop_port":20951,"obfs4_multihop_port":20952,"obfs4_key":"aTFzbPtK0zvLwSoUZkanzj+0wFPYg+IXyV01spxcedY5r46rywRCHgt8CRaBgpxhV8YzEA"},"v2ray":"37.120.151.125","isp":"M247"}]},{"gateway":"sk.gw.ivpn.net","country_code":"SK","country":"Slovakia","city":"Bratislava","latitude":48.15,"longitude":17.117,"isp":"Datapacket","hosts":[{"hostname":"sk2.gw.ivpn.net","dns_name":"sk2.gw.ivpn.net","host":"156.146.40.202","load":31.71,"multihop_port":20400,"obfs":{"obfs3_multihop_port":20401,"obfs4_multihop_port":20402,"obfs4_key":"ALsqb8RNZcvMzBsxnf4WQQYklUL0P6TUhyoXiwK1XPOEcCtW278YediLvTvOMeD5WLkPKg"},"v2ray":"156.146.40.208","isp":"Datapacket"}]},{"gateway":"tw.gw.ivpn.net","country_code":"TW","country":"Taiwan","city":"Taipei","latitude":25.073,"longitude":121.578,"isp":"TheGigabit","hosts":[{"hostname":"tw1.gw.ivpn.net","dns_name":"tw1.gw.ivpn.net","host":"185.189.160.6","load":21.11,"multihop_port":20820,"obfs":{"obfs3_multihop_port":20821,"obfs4_multihop_port":20822,"obfs4_key":"/ilRlB3BkUzUG2yd+++6KeYEF9PEB+3T3XcQhVjfoF8wJH1kgjGXvikjS1j/1SknFpGPaA"},"v2ray":"185.189.160.21","isp":"TheGigabit"}]},{"gateway":"ua.gw.ivpn.net","country_code":"UA","country":"Ukraine","city":"Kyiv","latitude":50.4754,"longitude":30.5461,"isp":"Server.ua","hosts":[{"hostname":"ua2.gw.ivpn.net","dns_name":"ua2.gw.ivpn.net","host":"91.232.28.126","load":7.31,"multihop_port":20450,"obfs":{"obfs3_multihop_port":20451,"obfs4_multihop_port":20452,"obfs4_key":"lEx5hd4iiT/fRyl34m5b/752sAPUr8UIJFh4HIyziOnQgVpcYtviI9Du6qBOb7dOFT0VKg"},"v2ray":"91.232.28.119","isp":"Server.ua"}]},{"gateway":"us-az.gw.ivpn.net","country_code":"US","country":"United States","city":"Phoenix, AZ","latitude":33.455,"longitude":-111.978,"isp":"Tzulo","hosts":[{"hostname":"us-az2.gw.ivpn.net","dns_name":"us-az2.gw.ivpn.net","host":"198.44.133.195","load":7.15,"multihop_port":20350,"obfs":{"obfs3_multihop_port":20351,"obfs4_multihop_port":20352,"obfs4_key":"w312C9Y2spTP0jgZ8WK81WScpsjzhh89KPeo9Oh363xxrlQKemiHeTFTdxWgJPr5jstMMQ"},"v2ray":"198.44.133.200","isp":"Tzulo"}]},{"gateway":"us-ca-sjc.gw.ivpn.net","country_code":"US","country":"United States","city":"San Jose, CA","latitude":37.408,"longitude":-121.893,"isp":"Tzulo","hosts":[{"hostname":"us-ca-sjc1.gw.ivpn.net","dns_name":"us-ca-sjc1.gw.ivpn.net","host":"198.44.134.35","load":5.56,"multihop_port":20370,"obfs":{"obfs3_multihop_port":20371,"obfs4_multihop_port":20372,"obfs4_key":"6uU8G40246SdZd+OHZgXYhNPf/eRe/eZ+siGgzAU05QT7+cZumgh+mTpkVmEPOndcF8HLA"},"v2ray":"198.44.134.40","isp":"Tzulo"}]},{"gateway":"us-ca.gw.ivpn.net","country_code":"US","country":"United States","city":"Los Angeles, CA","latitude":34.1139,"longitude":-118.4068,"isp":"Tzulo","hosts":[{"hostname":"us-ca3.gw.ivpn.net","dns_name":"us-ca3.gw.ivpn.net","host":"198.54.129.99","load":9.62,"multihop_port":21301,"obfs":{"obfs3_multihop_port":21302,"obfs4_multihop_port":21303,"obfs4_key":"rharPyhkUzYwmCP8ZzeaCwnJAmwOqwDTLOlJqzi/kAxMn4OVXtbzCk9Ww8XR31D2rmk3MA"},"v2ray":"198.54.129.212","isp":"Tzulo"},{"hostname":"us-ca5.gw.ivpn.net","dns_name":"us-ca5.gw.ivpn.net","host":"185.180.13.57","load":9.49,"multihop_port":20940,"obfs":{"obfs3_multihop_port":20941,"obfs4_multihop_port":20942,"obfs4_key":"+nBc8v94uD0T/q9QeEcOgHiDODs0XtVxFI5Iw5bJJSD7YA8Bj9HuHkzsxFjVk/RIqKCyHA"},"v2ray":"185.180.13.38","isp":"Datapacket"},{"hostname":"us-ca6.gw.ivpn.net","dns_name":"us-ca6.gw.ivpn.net","host":"185.152.67.8","load":6.96,"multihop_port":20340,"obfs":{"obfs3_multihop_port":20341,"obfs4_multihop_port":20342,"obfs4_key":"XI/Vz2NKJGAOTY5tqN6BgIa2Pq4p9bbXF9yG/HIT82whDKSHqqzQrVVNex38/B99JXC9SA"},"v2ray":"185.152.67.22","isp":"Datapacket"},{"hostname":"us-ca7.gw.ivpn.net","dns_name":"us-ca7.gw.ivpn.net","host":"198.54.129.19","load":6.77,"multihop_port":20360,"obfs":{"obfs3_multihop_port":20361,"obfs4_multihop_port":20362,"obfs4_key":"l5sfflk5U6K7YvmvnMrTg67CgjcfPrv4J4w/bjVv8ldvyw2g0Zmgfwwm49L6iOV8A5NPcw"},"v2ray":"198.54.129.195","isp":"Tzulo"}]},{"gateway":"us-co.gw.ivpn.net","country_code":"US","country":"United States","city":"Denver, CO","latitude":39.749,"longitude":-104.997,"isp":"Datapacket","hosts":[{"hostname":"us-co1.gw.ivpn.net","dns_name":"us-co1.gw.ivpn.net","host":"121.127.44.26","load":25.07,"multihop_port":20560,"obfs":{"obfs3_multihop_port":20561,"obfs4_multihop_port":20562,"obfs4_key":"mupqY+RsAT5UMgL7i4LRuGwAE1xTC7/Y0bBN5SL05dGt0QTlT7oFex/MMjPx2sTBLRHZBQ"},"v2ray":"121.127.44.31","isp":"Datapacket"}]},{"gateway":"us-fl.gw.ivpn.net","country_code":"US","country":"United States","city":"Miami, FL","latitude":25.776,"longitude":-80.193,"isp":"Datapacket","hosts":[{"hostname":"us-fl2.gw.ivpn.net","dns_name":"us-fl2.gw.ivpn.net","host":"195.181.163.72","load":10.81,"multihop_port":20380,"obfs":{"obfs3_multihop_port":20381,"obfs4_multihop_port":20382,"obfs4_key":"hjZz9k3QyS00InRiWxhNoj0bkjKk0Tzxl/EAEzrhCnAH4DIfKqdRpF2KVqhN4t+owpnEag"},"v2ray":"195.181.163.86","isp":"Datapacket"}]},{"gateway":"us-ga.gw.ivpn.net","country_code":"US","country":"United States","city":"Atlanta, GA","latitude":33.749,"longitude":-84.387,"isp":"Datapacket","hosts":[{"hostname":"us-ga3.gw.ivpn.net","dns_name":"us-ga3.gw.ivpn.net","host":"185.93.0.215","load":5.56,"multihop_port":20900,"obfs":{"obfs3_multihop_port":20901,"obfs4_multihop_port":20902,"obfs4_key":"T+tizn1ig40+uFLUBYtIL43xkkK0v074ZSAM3EfwCzwgE3qPOxJfsPCi2iiGXcBKK0tvLg"},"v2ray":"185.93.0.217","isp":"Datapacket"},{"hostname":"us-ga4.gw.ivpn.net","dns_name":"us-ga4.gw.ivpn.net","host":"67.213.215.91","load":6.6,"multihop_port":20310,"obfs":{"obfs3_multihop_port":20311,"obfs4_multihop_port":20312,"obfs4_key":"Vme6BaDad4DaS29Hmqyt3MzBs2dPrnYdUihJ/mUXBc3DY89Z8oXuLdeoh3/auJJAA2FqCQ"},"v2ray":"67.213.209.5","isp":"Ingenuity"},{"hostname":"us-ga5.gw.ivpn.net","dns_name":"us-ga5.gw.ivpn.net","host":"198.44.138.51","load":6.41,"multihop_port":20390,"obfs":{"obfs3_multihop_port":20391,"obfs4_multihop_port":20392,"obfs4_key":"WYqQNxVjs1oqw8ckmLqFnWQCLe980g0DwYn/Ceyw7OBlUMaYajSTkAv43zUt0eazzHGeRg"},"v2ray":"198.44.138.56","isp":"Tzulo"}]},{"gateway":"us-il.gw.ivpn.net","country_code":"US","country":"United States","city":"Chicago, IL","latitude":41.887,"longitude":-87.632,"isp":"Datapacket","hosts":[{"hostname":"us-il3.gw.ivpn.net","dns_name":"us-il3.gw.ivpn.net","host":"89.187.181.118","load":18.84,"multihop_port":20930,"obfs":{"obfs3_multihop_port":20931,"obfs4_multihop_port":20932,"obfs4_key":"jKCjgD5H90uS3zpu9Vm+mIvo0QwEIU7f018gZLPGItQ8oZe2iWWfHjAp3DVMTCIJXNusOQ"},"v2ray":"89.187.181.121","isp":"Datapacket"},{"hostname":"us-il4.gw.ivpn.net","dns_name":"us-il4.gw.ivpn.net","host":"68.235.50.195","load":12.77,"multihop_port":20410,"obfs":{"obfs3_multihop_port":20411,"obfs4_multihop_port":20412,"obfs4_key":"LZvOe2brUHBL4TNcpL2DUBNPCQAh9StzltzXzj/3C1rTbWKDuIzjt1hioSVMxhBB80pzDg"},"v2ray":"68.235.50.200","isp":"Tzulo"},{"hostname":"us-il5.gw.ivpn.net","dns_name":"us-il5.gw.ivpn.net","host":"68.235.50.211","load":9.66,"multihop_port":20420,"obfs":{"obfs3_multihop_port":20421,"obfs4_multihop_port":20422,"obfs4_key":"8x9qetgJQPAXO53JSFKdF33Ntsri/azaW706XihoibFIx/JB5oh4gWC17LfW5Vz/gFO8Mg"},"v2ray":"68.235.50.216","isp":"Tzulo"}]},{"gateway":"us-ma.gw.ivpn.net","country_code":"US","country":"United States","city":"Boston, MA","latitude":42.376,"longitude":-71.078,"isp":"Datapacket","hosts":[{"hostname":"us-ma1.gw.ivpn.net","dns_name":"us-ma1.gw.ivpn.net","host":"109.61.86.47","load":15.06,"multihop_port":20870,"obfs":{"obfs3_multihop_port":20871,"obfs4_multihop_port":20872,"obfs4_key":"6gPx3OetMICSn/v9I/boxkZX1Me3J823v/QxJNGM1h2noy6XxkLXRpyGCASZe/frLEMIdA"},"v2ray":"109.61.86.52","isp":"Datapacket"}]},{"gateway":"us-nj.gw.ivpn.net","country_code":"US","country":"United States","city":"Secaucus, NJ","latitude":40.778,"longitude":-74.069,"isp":"Ingenuity","hosts":[{"hostname":"us-nj1.gw.ivpn.net","dns_name":"us-nj1.gw.ivpn.net","host":"67.213.220.13","load":13.15,"multihop_port":20320,"obfs":{"obfs3_multihop_port":20321,"obfs4_multihop_port":20322,"obfs4_key":"ChCOcj2flD4cPwApR45KIBkkyhVFKUwerIxnfZxrtcLTA2K7wqXGRczH5ebIONeja+i+Qw"},"v2ray":"69.4.232.53","isp":"Ingenuity"},{"hostname":"us-nj4.gw.ivpn.net","dns_name":"us-nj4.gw.ivpn.net","host":"194.36.111.50","load":30.45,"multihop_port":27401,"obfs":{"obfs3_multihop_port":27402,"obfs4_multihop_port":27403,"obfs4_key":"lHDLT6cTgt0bh3ysogDdiXL4eWGRtJZ0cZGJmvpeK0YLUAsBfsOzKv46V0iv5ykwRPm6Mg"},"v2ray":"37.120.202.42","isp":"M247"}]},{"gateway":"us-nv.gw.ivpn.net","country_code":"US","country":"United States","city":"Las Vegas, NV","latitude":36.2333,"longitude":-115.2654,"isp":"M247","hosts":[{"hostname":"us-nv1.gw.ivpn.net","dns_name":"us-nv1.gw.ivpn.net","host":"185.242.5.34","load":8.85,"multihop_port":26501,"obfs":{"obfs3_multihop_port":26502,"obfs4_multihop_port":26503,"obfs4_key":"Kux7OTSrUOkklATpG67hJPz7xCWpW6eD9Qdw2GNKAmaaPA5zvPC3SXQRvyrYdyAAqMXMfg"},"v2ray":"185.242.5.146","isp":"M247"}]},{"gateway":"us-ny.gw.ivpn.net","country_code":"US","country":"United States","city":"New York, NY","latitude":40.6943,"longitude":-73.9249,"isp":"M247","hosts":[{"hostname":"us-ny2.gw.ivpn.net","dns_name":"us-ny2.gw.ivpn.net","host":"212.103.48.194","load":6.16,"multihop_port":21801,"obfs":{"obfs3_multihop_port":21802,"obfs4_multihop_port":21803,"obfs4_key":"GtK9yCXTtrLOrf0MTWdWqjzQ1vd1eKsVjiOuR5CiVaDf4dCSalyJ+kmik4nfU9Gj6UwcCg"},"v2ray":"212.103.48.199","isp":"M247"},{"hostname":"us-ny3.gw.ivpn.net","dns_name":"us-ny3.gw.ivpn.net","host":"89.187.178.144","load":6.25,"multihop_port":27601,"obfs":{"obfs3_multihop_port":27602,"obfs4_multihop_port":27603,"obfs4_key":"eL/9iKx6f5bHowNJBsT2E/Aag5w8Cvtb3DduySudJmuK2GtIOUwNzS33lFZwSUEnJIYwLg"},"v2ray":"89.187.178.150","isp":"Datapacket"},{"hostname":"us-ny4.gw.ivpn.net","dns_name":"us-ny4.gw.ivpn.net","host":"91.132.137.172","load":6.03,"multihop_port":20990,"obfs":{"obfs3_multihop_port":20991,"obfs4_multihop_port":20992,"obfs4_key":"P4Cw+PtgDKh6YfQAu7seQj4DJpRpdphchOCukV/Bum+yTaY2cOl9FcOzB+2O5l4gGy0iSA"},"v2ray":"91.132.137.173","isp":"M247"}]},{"gateway":"us-tx.gw.ivpn.net","country_code":"US","country":"United States","city":"Dallas, TX","latitude":32.912,"longitude":-96.785,"isp":"Datapacket","hosts":[{"hostname":"us-tx4.gw.ivpn.net","dns_name":"us-tx4.gw.ivpn.net","host":"89.187.164.114","load":8.34,"multihop_port":20300,"obfs":{"obfs3_multihop_port":20301,"obfs4_multihop_port":20302,"obfs4_key":"/HpSOdr8Uy7XJE/OtakmxEOFauDUfXr0/YW7ot9vG9BQhMRFEhwwHmfFW5MIsrlsukzJUA"},"v2ray":"89.187.164.120","isp":"Datapacket"},{"hostname":"us-tx5.gw.ivpn.net","dns_name":"us-tx5.gw.ivpn.net","host":"174.127.114.249","load":5.56,"multihop_port":20330,"obfs":{"obfs3_multihop_port":20331,"obfs4_multihop_port":20332,"obfs4_key":"tWmnJOYPpK/Un1x88sXcVouJRC+p/Z2PAeqvpLL6PpSzaHeOObMGTlU4V0oxgm56n8rJOg"},"v2ray":"206.217.207.181","isp":"Ingenuity"},{"hostname":"us-tx6.gw.ivpn.net","dns_name":"us-tx6.gw.ivpn.net","host":"198.44.137.195","load":8.86,"multihop_port":20430,"obfs":{"obfs3_multihop_port":20431,"obfs4_multihop_port":20432,"obfs4_key":"En3wxWJvDOtmq5iIC/OqNzXcgoJA+X7ySJRReUKi4Oyi8NpQPRI7dl9D98ixSo9Txm2CdA"},"v2ray":"198.44.137.200","isp":"Tzulo"}]},{"gateway":"us-ut.gw.ivpn.net","country_code":"US","country":"United States","city":"Salt Lake City, UT","latitude":40.7774,"longitude":-111.93,"isp":"100TB","hosts":[{"hostname":"us-ut1.gw.ivpn.net","dns_name":"us-ut1.gw.ivpn.net","host":"198.105.216.28","load":9.15,"multihop_port":24401,"obfs":{"obfs3_multihop_port":24402,"obfs4_multihop_port":24403,"obfs4_key":"gb5dp9i4QnFKT0GQPMEsDlqN+JORU3lyU65s9R1064aZ1jKfWfkc+SxbOlNEh23CvIAOeg"},"v2ray":"206.190.145.88","isp":"100TB"}]},{"gateway":"us-va.gw.ivpn.net","country_code":"US","country":"United States","city":"Ashburn, VA","latitude":39.0437,"longitude":-77.4875,"isp":"Datapacket","hosts":[{"hostname":"us-va1.gw.ivpn.net","dns_name":"us-va1.gw.ivpn.net","host":"37.19.206.105","load":7.15,"multihop_port":27701,"obfs":{"obfs3_multihop_port":27702,"obfs4_multihop_port":27703,"obfs4_key":"5Lk8BSID+M9QAGSglQTrYkom+V0mkIv0HgR80+9vKCcnZOu0f+aJhfOXqKnpHarJbIEHCw"},"v2ray":"37.19.206.111","isp":"Datapacket"}]},{"gateway":"us-wa.gw.ivpn.net","country_code":"US","country":"United States","city":"Seattle, WA","latitude":47.6211,"longitude":-122.3244,"isp":"Tzulo","hosts":[{"hostname":"us-wa2.gw.ivpn.net","dns_name":"us-wa2.gw.ivpn.net","host":"198.44.131.3","load":16.82,"multihop_port":27801,"obfs":{"obfs3_multihop_port":27802,"obfs4_multihop_port":27803,"obfs4_key":"9h0W5BTzGSDpY2tGjdvViSJfEkT/BuwHS0cnFX07cEj3RRDtmxsC0f+kapO8+Kh+fz1XMQ"},"v2ray":"198.44.131.20","isp":"Tzulo"}]},{"gateway":"za.gw.ivpn.net","country_code":"ZA","country":"South Africa","city":"Johannesburg","latitude":-26.195,"longitude":28.034,"isp":"Datapacket","hosts":[{"hostname":"za1.gw.ivpn.net","dns_name":"za1.gw.ivpn.net","host":"169.150.238.103","load":8.34,"multihop_port":20840,"obfs":{"obfs3_multihop_port":20841,"obfs4_multihop_port":20842,"obfs4_key":"vM1zdiOMhoqMKZCOi/lMj7TfWJb5/UsM25p8FE/AUezwbYWhUkhpD5RbXBOBDNhZuYzPGA"},"v2ray":"169.150.238.109","isp":"Datapacket"}]}],"config":{"antitracker":{"default":{"ip":"10.0.254.2","multihop-ip":"10.0.254.102"},"hardcore":{"ip":"10.0.254.3","multihop-ip":"10.0.254.103"}},"antitracker_plus":{"DnsServers":[{"Name":"Basic","Description":"Basic","Normal":"10.0.254.4","Hardcore":"10.0.254.5"},{"Name":"Comprehensive","Description":"Comprehensive","Normal":"10.0.254.6","Hardcore":"10.0.254.7"},{"Name":"Restrictive","Description":"Restrictive","Normal":"10.0.254.18","Hardcore":"10.0.254.19"},{"Name":"Easylist","Description":"EasyList + EasyPrivacy","Normal":"10.0.254.14","Hardcore":"10.0.254.15"},{"Name":"Oisdbig","Description":"OISD Big","Normal":"10.0.254.2","Hardcore":"10.0.254.3"},{"Name":"Stevenblack","Description":"Steven Black Unified + Ads + Malware","Normal":"10.0.254.20","Hardcore":"10.0.254.21"},{"Name":"Hagezilight","Description":"Hagezi Light","Normal":"10.0.254.22","Hardcore":"10.0.254.23"},{"Name":"Hagezipro","Description":"Hagezi Pro","Normal":"10.0.254.10","Hardcore":"10.0.254.11"},{"Name":"Hageziproplus","Description":"Hagezi Pro++","Normal":"10.0.254.24","Hardcore":"10.0.254.25"},{"Name":"Hageziultimate","Description":"Hagezi Ultimate","Normal":"10.0.254.12","Hardcore":"10.0.254.13"}]},"api":{"ips":["198.50.177.220","149.56.162.156","198.50.177.222","149.56.162.159","198.50.177.223"],"ipv6s":["2607:5300:203:1735::8888","2607:5300:203:1735::8","2607:5300:203:1735:6580:7300:0:aaaa"]},"ports":{"test":[{"echoserver":"37.187.112.240"}],"openvpn":[{"type":"UDP","port":53},{"type":"UDP","port":80},{"type":"UDP","range":{"min":5500,"max":19999}},{"type":"UDP","range":{"min":60000,"max":65000}},{"type":"UDP","port":123},{"type":"UDP","port":2049},{"type":"UDP","range":{"min":50000,"max":59999}},{"type":"UDP","port":2050},{"type":"UDP","range":{"min":40000,"max":49999}},{"type":"UDP","port":443},{"type":"UDP","port":1194},{"type":"UDP","range":{"min":30000,"max":39999}},{"type":"TCP","port":80},{"type":"TCP","port":443},{"type":"TCP","port":1194},{"type":"TCP","port":2049},{"type":"TCP","port":2050},{"type":"TCP","port":30587},{"type":"TCP","port":41893},{"type":"TCP","port":48574},{"type":"TCP","port":58237},{"type":"TCP","range":{"min":5500,"max":19999}},{"type":"TCP","range":{"min":30000,"max":65000}}],"wireguard":[{"type":"UDP","port":53},{"type":"UDP","port":80},{"type":"UDP","port":123},{"type":"UDP","port":443},{"type":"UDP","port":500},{"type":"UDP","port":1194},{"type":"UDP","port":2049},{"type":"UDP","port":2050},{"type":"UDP","port":4500},{"type":"UDP","port":30587},{"type":"UDP","port":41893},{"type":"UDP","port":48574},{"type":"UDP","port":58237},{"type":"UDP","range":{"min":5500,"max":19999}},{"type":"UDP","range":{"min":30000,"max":65000}}],"obfs3":{"port":5145},"obfs4":{"port":5146},"v2ray":{"id":"27de860d-5601-412d-8b71-baa048a94b98","openvpn":[{"type":"UDP","port":20501},{"type":"UDP","port":20502},{"type":"UDP","port":20503},{"type":"UDP","port":20504},{"type":"TCP","port":1443}],"wireguard":[{"type":"UDP","port":15351}]}}}} +{"wireguard":[{"gateway":"ar.wg.ivpn.net","country_code":"AR","country":"Argentina","city":"Buenos Aires","latitude":-34.614,"longitude":-58.371,"isp":"Datapacket","hosts":[{"hostname":"ar1.wg.ivpn.net","dns_name":"ar1.gw.ivpn.net","host":"149.22.83.100","public_key":"NXlWMTFlNJKQXfOnt+DJogxnDmfapEdgmHNat2JqwE0=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":30.69,"multihop_port":20600,"v2ray":"149.22.83.102","isp":"Datapacket"}]},{"gateway":"at.wg.ivpn.net","country_code":"AT","country":"Austria","city":"Vienna","latitude":48.2,"longitude":16.3666,"isp":"M247","hosts":[{"hostname":"at1.wg.ivpn.net","dns_name":"at1.gw.ivpn.net","host":"185.244.212.69","public_key":"83LUBnP97SFpnS0y1MpEAFcg8MIiQJgW1FRv/8Mc40g=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":39.32,"multihop_port":25601,"v2ray":"146.70.146.226","isp":"M247"},{"hostname":"at2.wg.ivpn.net","dns_name":"at2.gw.ivpn.net","host":"141.98.214.213","public_key":"ZKzgHiEL7p32Gu9+26X8SEIOc+Xln88lISG4FPZwtF0=","local_ip":"172.16.0.1/12","ipv6":{},"load":9.95,"multihop_port":25602,"v2ray":"141.98.214.215","isp":"EstNOC"}]},{"gateway":"au-nsw.wg.ivpn.net","country_code":"AU","country":"Australia","city":"Sydney","latitude":-33.92,"longitude":151.1852,"isp":"M247","hosts":[{"hostname":"au-nsw1.wg.ivpn.net","dns_name":"au-nsw1.gw.ivpn.net","host":"46.102.153.246","public_key":"KmSrG48t5xw9CJCPlYLBG3JnmiY0CnUgyRM5TUEwZhM=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":20.77,"multihop_port":26601,"v2ray":"217.138.205.90","isp":"M247"},{"hostname":"au-nsw2.wg.ivpn.net","dns_name":"au-nsw2.gw.ivpn.net","host":"146.70.78.75","public_key":"q+wbp7GjiTszp5G16rNpGCqxkL0qSY3CH4pcgD6UsVQ=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":8.51,"multihop_port":27901,"v2ray":"146.70.210.26","isp":"M247"}]},{"gateway":"be.wg.ivpn.net","country_code":"BE","country":"Belgium","city":"Brussels","latitude":50.8333,"longitude":4.3333,"isp":"M247","hosts":[{"hostname":"be1.wg.ivpn.net","dns_name":"be1.gw.ivpn.net","host":"194.187.251.13","public_key":"awriP5lpdxEMWKuG+A1DOg+vb1M5jd3WhynIMB61BhU=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":42.27,"multihop_port":25701,"v2ray":"37.120.143.130","isp":"M247"},{"hostname":"be2.wg.ivpn.net","dns_name":"be2.gw.ivpn.net","host":"79.127.224.164","public_key":"LeomjeizkMvWJAeYPdowWDrDgJfCRLMAYwt2jkazsyw=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":13.69,"multihop_port":20610,"v2ray":"79.127.224.166","isp":"Datapacket"}]},{"gateway":"bg.wg.ivpn.net","country_code":"BG","country":"Bulgaria","city":"Sofia","latitude":42.6833,"longitude":23.3167,"isp":"M247","hosts":[{"hostname":"bg1.wg.ivpn.net","dns_name":"bg1.gw.ivpn.net","host":"82.102.23.21","public_key":"WDSsdJE6wvATIWfzQwayPtE/0DaXBQgW/hPm7sQSJmU=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":51.37,"multihop_port":25901,"v2ray":"146.70.53.82","isp":"M247"}]},{"gateway":"br.wg.ivpn.net","country_code":"BR","country":"Brazil","city":"Franca","latitude":-20.53,"longitude":-47.39,"isp":"Qnax","hosts":[{"hostname":"br1.wg.ivpn.net","dns_name":"br1.gw.ivpn.net","host":"45.162.230.53","public_key":"eN1f15S3YzRyYCALiPGRQcjkQO9xntcdqPhJJ6TOymc=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":13.81,"multihop_port":26701,"v2ray":"45.162.230.186","isp":"Qnax"}]},{"gateway":"ca-bc.wg.ivpn.net","country_code":"CA","country":"Canada","city":"Vancouver","latitude":49.231,"longitude":-122.8412,"isp":"Tech Futures","hosts":[{"hostname":"ca-bc1.wg.ivpn.net","dns_name":"ca-bc1.gw.ivpn.net","host":"104.193.135.231","public_key":"lXawKqHosFOoc9kqAZwun9Yk3VrPN7vmG/JuQm4kvx0=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":34.2,"multihop_port":20550,"v2ray":"104.193.135.233","isp":"Tech Futures"}]},{"gateway":"ca-on.wg.ivpn.net","country_code":"CA","country":"Canada","city":"Toronto","latitude":43.7,"longitude":-79.42,"isp":"Amanah","hosts":[{"hostname":"ca-on1.wg.ivpn.net","dns_name":"ca-on1.gw.ivpn.net","host":"184.75.215.5","public_key":"eXlmRV8RsCQZjWwiSYxwtEr/xwanM/2HER2YqIGTdHk=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":18.15,"multihop_port":20580,"v2ray":"184.75.215.7","isp":"Amanah"},{"hostname":"ca-on2.wg.ivpn.net","dns_name":"ca-on2.gw.ivpn.net","host":"162.219.176.21","public_key":"nadUhrHR5E0fCB5wg4efZHNn2NRE+gnuTDjKT21y2V0=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":12.48,"multihop_port":20590,"v2ray":"162.219.176.23","isp":"Amanah"}]},{"gateway":"ca-qc.wg.ivpn.net","country_code":"CA","country":"Canada","city":"Montreal","latitude":45.499,"longitude":-73.57,"isp":"M247","hosts":[{"hostname":"ca-qc1.wg.ivpn.net","dns_name":"ca-qc1.gw.ivpn.net","host":"37.120.130.58","public_key":"rg+GGDmjM4Vxo1hURvKmgm9yonb6qcoKbPCP/DNDBnI=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":7.22,"multihop_port":20960,"v2ray":"37.120.130.61","isp":"M247"},{"hostname":"ca-qc2.wg.ivpn.net","dns_name":"ca-qc2.gw.ivpn.net","host":"87.101.92.29","public_key":"XSKU6fBCDwlb+mGek1O/fUDd/ozO58ZLph/0H7mn+zE=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":20.38,"multihop_port":27001,"v2ray":"89.47.234.130","isp":"M247"}]},{"gateway":"ch.wg.ivpn.net","country_code":"CH","country":"Switzerland","city":"Zurich","latitude":47.38,"longitude":8.55,"isp":"M247","hosts":[{"hostname":"ch1.wg.ivpn.net","dns_name":"ch1.gw.ivpn.net","host":"185.212.170.141","public_key":"dU7gLfcupYd37LW0q6cxC6PHMba+eUFAUOoU/ryXZkY=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":19.57,"multihop_port":23601,"v2ray":"37.120.213.138","isp":"M247"},{"hostname":"ch2.wg.ivpn.net","dns_name":"ch2.gw.ivpn.net","host":"81.17.24.165","public_key":"KRKeAFMJY6OH9RABaeC4feQG/JgbacZVg/w6VUjBSVQ=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":27.93,"multihop_port":20880,"v2ray":"81.17.24.167","isp":"Privatelayer"},{"hostname":"ch3.wg.ivpn.net","dns_name":"ch3.gw.ivpn.net","host":"141.255.166.198","public_key":"JBpgBKtqIneRuEga7mbP2PAk/e4HPRaC11H0A0+R3lA=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":15.07,"multihop_port":22901,"v2ray":"179.43.167.66","isp":"Privatelayer"}]},{"gateway":"cz.wg.ivpn.net","country_code":"CZ","country":"Czech Republic","city":"Prague","latitude":50.0833,"longitude":14.466,"isp":"Datapacket","hosts":[{"hostname":"cz1.wg.ivpn.net","dns_name":"cz1.gw.ivpn.net","host":"185.180.14.41","public_key":"gVbEq2cGRzwCSGPqT2oRSYYN+P6IK3uvvRffErASDSk=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":26.68,"multihop_port":25201,"v2ray":"195.181.160.184","isp":"Datapacket"}]},{"gateway":"de.wg.ivpn.net","country_code":"DE","country":"Germany","city":"Frankfurt","latitude":50.1,"longitude":8.675,"isp":"Leaseweb","hosts":[{"hostname":"de2.wg.ivpn.net","dns_name":"de2.gw.ivpn.net","host":"37.58.60.151","public_key":"QhY3OtBf4FFafKtLO33e6k8JnAl8e6ktFcRUyLjCDVY=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":33.84,"multihop_port":22001,"v2ray":"178.162.222.166","isp":"Leaseweb"},{"hostname":"de3.wg.ivpn.net","dns_name":"de3.gw.ivpn.net","host":"146.70.160.170","public_key":"CugQQtD8YJKRwS5IukNWkMcyqOzlOxfGRPhGeQRAb2Y=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":19.02,"multihop_port":21050,"v2ray":"146.70.160.166","isp":"M247"},{"hostname":"de4.wg.ivpn.net","dns_name":"de4.gw.ivpn.net","host":"185.102.219.26","public_key":"mS3/WpXjnMAMmXjSpd4nFzx9HSE3ubv2WyjpyH2REgs=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":10.18,"multihop_port":20920,"v2ray":"185.102.219.56","isp":"Datapacket"}]},{"gateway":"dk.wg.ivpn.net","country_code":"DK","country":"Denmark","city":"Copenhagen","latitude":55.6786,"longitude":12.5635,"isp":"M247","hosts":[{"hostname":"dk1.wg.ivpn.net","dns_name":"dk1.gw.ivpn.net","host":"185.245.84.229","public_key":"jTsV5gOD7lT4egDj9rhKwO2OO2X7bKs2EQPcZEnUWDE=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":11.36,"multihop_port":25501,"v2ray":"193.29.107.226","isp":"M247"},{"hostname":"dk2.wg.ivpn.net","dns_name":"dk2.gw.ivpn.net","host":"121.127.45.39","public_key":"olw7V0P0PD3OL4ucZUhCL/XNGqSSGYO59+RmXPBH22s=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":10.04,"multihop_port":20620,"v2ray":"121.127.45.41","isp":"Datapacket"}]},{"gateway":"es.wg.ivpn.net","country_code":"ES","country":"Spain","city":"Madrid","latitude":40.4,"longitude":-3.6834,"isp":"Datapacket","hosts":[{"hostname":"es1.wg.ivpn.net","dns_name":"es1.gw.ivpn.net","host":"84.17.62.98","public_key":"w7umiArTtlJ4Pk6Ii9WX5VXK5vw/Qu+Z37/icKlIYWo=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":23.91,"multihop_port":21501,"v2ray":"185.93.3.196","isp":"Datapacket"}]},{"gateway":"fi.wg.ivpn.net","country_code":"FI","country":"Finland","city":"Helsinki","latitude":60.1756,"longitude":24.9341,"isp":"Creanova","hosts":[{"hostname":"fi1.wg.ivpn.net","dns_name":"fi1.gw.ivpn.net","host":"194.34.134.63","public_key":"mIxEzfjZ2wV6jJVj30w38ECd2LSH4bw/HLMnM2ICHiI=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":32.43,"multihop_port":26001,"v2ray":"185.103.110.231","isp":"Creanova"}]},{"gateway":"fr.wg.ivpn.net","country_code":"FR","country":"France","city":"Paris","latitude":48.8667,"longitude":2.3333,"isp":"Datapacket","hosts":[{"hostname":"fr1.wg.ivpn.net","dns_name":"fr1.gw.ivpn.net","host":"185.246.211.185","public_key":"g7BuMzj3r/noLiLR4qhQMcvU6GSIY8RGEnaYtdYsFX4=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":5.85,"multihop_port":23401,"v2ray":"185.246.211.184","isp":"Datapacket"}]},{"gateway":"gb-man.wg.ivpn.net","country_code":"GB","country":"United Kingdom","city":"Manchester","latitude":53.451,"longitude":-2.319,"isp":"M247","hosts":[{"hostname":"gb-man1.wg.ivpn.net","dns_name":"gb-man1.gw.ivpn.net","host":"185.195.202.23","public_key":"+hf4DYilNEIjTdSOuCNcWdqVyaRoxGzXw7wvNl7f7Rg=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":5.84,"multihop_port":26901,"v2ray":"185.195.202.25","isp":"M247"}]},{"gateway":"gb.wg.ivpn.net","country_code":"GB","country":"United Kingdom","city":"London","latitude":51.5,"longitude":-0.1167,"isp":"Datapacket","hosts":[{"hostname":"gb1.wg.ivpn.net","dns_name":"gb1.gw.ivpn.net","host":"185.59.221.140","public_key":"yKK5x+D17Jr3Q12T/UBaDjNVmNdZBsqpvTqH6YfsGHg=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":10.94,"multihop_port":20801,"v2ray":"185.59.221.159","isp":"Datapacket"},{"hostname":"gb2.wg.ivpn.net","dns_name":"gb2.gw.ivpn.net","host":"185.59.221.225","public_key":"x0BTRaxsdxAd58ZyU2YMX4bmuj+Eg+8/urT2F3Vs1n8=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":5.88,"multihop_port":24201,"v2ray":"185.59.221.226","isp":"Datapacket"},{"hostname":"gb3.wg.ivpn.net","dns_name":"gb3.gw.ivpn.net","host":"81.92.202.114","public_key":"7+jos+Eg+hMEOQE4Std6OJ+WVnCcmbqS1/EbPwn9w3s=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":8.53,"multihop_port":20980,"v2ray":"81.92.202.117","isp":"M247"}]},{"gateway":"gr.wg.ivpn.net","country_code":"GR","country":"Greece","city":"Athens","latitude":37.871,"longitude":23.8707,"isp":"Datapacket","hosts":[{"hostname":"gr1.wg.ivpn.net","dns_name":"gr1.gw.ivpn.net","host":"169.150.252.113","public_key":"79rPSFIEQ4KWX9UN+FSMVfI0mPPVY5elS16O/DA6uDw=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":22.22,"multihop_port":20540,"v2ray":"169.150.252.115","isp":"Datapacket"}]},{"gateway":"hk.wg.ivpn.net","country_code":"HK","country":"Hong Kong","city":"Hong Kong","latitude":22.305,"longitude":114.185,"isp":"Leaseweb","hosts":[{"hostname":"hk2.wg.ivpn.net","dns_name":"hk2.gw.ivpn.net","host":"64.120.120.239","public_key":"kyolyq4cJydI3vQB2ESTIUAy2Fq0bpOf+Qe7GIq6XEA=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":55.84,"multihop_port":27501,"v2ray":"64.120.120.237","isp":"Leaseweb"},{"hostname":"hk3.wg.ivpn.net","dns_name":"hk3.gw.ivpn.net","host":"61.4.117.34","public_key":"qq1simsFNm2FpZM0J8u8Aa0rkk5HEasvLksPyLv+0Sk=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":14.83,"multihop_port":20460,"v2ray":"61.4.117.35","isp":"TheGigabit"}]},{"gateway":"hr.wg.ivpn.net","country_code":"HR","country":"Croatia","city":"Zagreb","latitude":45.811,"longitude":15.977,"isp":"Datapacket","hosts":[{"hostname":"hr1.wg.ivpn.net","dns_name":"hr1.gw.ivpn.net","host":"169.150.242.40","public_key":"yGDzFo6v9BilHj5jb7oaiwaw8hnACFgT1rrHkdnRsXI=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":20.53,"multihop_port":20860,"v2ray":"169.150.242.42","isp":"Datapacket"}]},{"gateway":"hu.wg.ivpn.net","country_code":"HU","country":"Hungary","city":"Budapest","latitude":47.5,"longitude":19.0833,"isp":"M247","hosts":[{"hostname":"hu1.wg.ivpn.net","dns_name":"hu1.gw.ivpn.net","host":"185.189.114.189","public_key":"G30fNdXrnlqtqqOLF23QXWzFdLIKDxLW60HoYPvqml8=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":14.81,"multihop_port":25401,"v2ray":"37.120.144.178","isp":"M247"}]},{"gateway":"ie.wg.ivpn.net","country_code":"IE","country":"Ireland","city":"Dublin","latitude":53.337,"longitude":-6.259,"isp":"Datapacket","hosts":[{"hostname":"ie1.wg.ivpn.net","dns_name":"ie1.gw.ivpn.net","host":"87.249.137.138","public_key":"jTRkgALSK2hJZmzfQsyKVsYQEepIqgSDnJImzNyLfQ4=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":10.55,"multihop_port":20850,"v2ray":"87.249.137.140","isp":"Datapacket"}]},{"gateway":"il.wg.ivpn.net","country_code":"IL","country":"Israel","city":"Holon, Tel Aviv","latitude":32.08,"longitude":34.77,"isp":"HQServ","hosts":[{"hostname":"il1.wg.ivpn.net","dns_name":"il1.gw.ivpn.net","host":"185.191.204.133","public_key":"HR9gAjpxXU3YVt6kehBw5n8yVYVE0iIgJdc4HTqOzEE=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":21.16,"multihop_port":27301,"v2ray":"185.191.204.135","isp":"HQServ"}]},{"gateway":"is.wg.ivpn.net","country_code":"IS","country":"Iceland","city":"Reykjavik","latitude":63.99,"longitude":-22.54,"isp":"EstNOC","hosts":[{"hostname":"is2.wg.ivpn.net","dns_name":"is2.gw.ivpn.net","host":"45.133.193.73","public_key":"De15mswz2WkiJhXiKKV/73W5wy2bodCwb5A84IKDx3A=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":6.12,"multihop_port":23502,"v2ray":"45.133.193.71","isp":"EstNOC"},{"hostname":"is3.wg.ivpn.net","dns_name":"is3.gw.ivpn.net","host":"185.165.170.78","public_key":"GphF6YGIMRJdbSWO9jvzGCM/i4XEZcgL6KJeykGZJxQ=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":75.48,"multihop_port":23503,"v2ray":"185.165.170.122","isp":"Flokinet"}]},{"gateway":"it.wg.ivpn.net","country_code":"IT","country":"Italy","city":"Milan","latitude":45.47,"longitude":9.205,"isp":"Datapacket","hosts":[{"hostname":"it2.wg.ivpn.net","dns_name":"it2.gw.ivpn.net","host":"84.17.59.149","public_key":"IYi+s9DZusPErv0k2Ls/jgdubmeCrUcEJ1cNgmxPx0k=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":11.37,"multihop_port":21100,"v2ray":"84.17.59.146","isp":"Datapacket"}]},{"gateway":"jp.wg.ivpn.net","country_code":"JP","country":"Japan","city":"Tokyo","latitude":35.62,"longitude":139.74,"isp":"TheGigabit","hosts":[{"hostname":"jp2.wg.ivpn.net","dns_name":"jp2.gw.ivpn.net","host":"185.135.77.81","public_key":"YuhEd9+a90/+uucZC+qzsyMHkfe/GiwG1dq7g2HegXQ=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":7.16,"multihop_port":20830,"v2ray":"185.135.77.100","isp":"TheGigabit"}]},{"gateway":"lu.wg.ivpn.net","country_code":"LU","country":"Luxembourg","city":"Luxembourg","latitude":49.6113,"longitude":6.1294,"isp":"EstNOC","hosts":[{"hostname":"lu2.wg.ivpn.net","dns_name":"lu2.gw.ivpn.net","host":"185.221.132.181","public_key":"m5M76ffpSSUOJba3GK6WTooI8vNFYTnyw/PJuBbmGXA=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":100,"multihop_port":27212,"v2ray":"185.221.132.183","isp":"EstNOC"}]},{"gateway":"mx.wg.ivpn.net","country_code":"MX","country":"Mexico","city":"Querétaro","latitude":20.574,"longitude":-100.2965,"isp":"Datapacket","hosts":[{"hostname":"mx1.wg.ivpn.net","dns_name":"mx1.gw.ivpn.net","host":"121.127.43.196","public_key":"ReKHoFVVGfR4Tgzl2GPPioAtQm3HmecKTU0HK67NcXU=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":21.09,"multihop_port":20570,"v2ray":"121.127.43.198","isp":"Datapacket"}]},{"gateway":"my.wg.ivpn.net","country_code":"MY","country":"Malaysia","city":"Kuala Lumpur","latitude":3.1494,"longitude":101.706,"isp":"TheGigabit","hosts":[{"hostname":"my1.wg.ivpn.net","dns_name":"my1.gw.ivpn.net","host":"61.4.97.154","public_key":"M9SsMCpUw7ad6YbqQr8r2saBK2zAf3tBj82DzsQjgkY=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":13.21,"multihop_port":20470,"v2ray":"61.4.97.155","isp":"TheGigabit"}]},{"gateway":"nl.wg.ivpn.net","country_code":"NL","country":"Netherlands","city":"Amsterdam","latitude":52.376,"longitude":4.898,"isp":"Datapacket","hosts":[{"hostname":"nl2.wg.ivpn.net","dns_name":"nl2.gw.ivpn.net","host":"185.102.218.104","public_key":"AsMT2FqpkZbjzWeDch6GwufF5odl259W/hIkGytVfWo=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":7.59,"multihop_port":20910,"v2ray":"185.102.218.99","isp":"Datapacket"},{"hostname":"nl3.wg.ivpn.net","dns_name":"nl3.gw.ivpn.net","host":"95.211.95.9","public_key":"XDU6Syq1DY82IMatsHV0x/TAtbLiRwh/SdFCXlEn40c=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":16.34,"multihop_port":23101,"v2ray":"95.211.172.72","isp":"Leaseweb"},{"hostname":"nl5.wg.ivpn.net","dns_name":"nl5.gw.ivpn.net","host":"95.211.243.162","public_key":"NCagAawwRixI6Iw/NWiGD8lbjDNCl0aTICZKJtO/1HA=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":24.79,"multihop_port":23901,"v2ray":"95.211.187.225","isp":"Leaseweb"},{"hostname":"nl6.wg.ivpn.net","dns_name":"nl6.gw.ivpn.net","host":"95.211.243.182","public_key":"hMWpqb3FEATHIbImPVWB/5z2nWIXghwpnJjevPY+1H0=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":13.01,"multihop_port":24101,"v2ray":"95.211.187.231","isp":"Leaseweb"},{"hostname":"nl7.wg.ivpn.net","dns_name":"nl7.gw.ivpn.net","host":"95.211.172.105","public_key":"hQNYqtfOOAEz0IGshLx/TI9hUrfR9gIIkjVm4VsCbBM=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":16.33,"multihop_port":22501,"v2ray":"95.211.172.107","isp":"Leaseweb"},{"hostname":"nl8.wg.ivpn.net","dns_name":"nl8.gw.ivpn.net","host":"95.211.198.167","public_key":"/nY1/OhVhdHtbnU/s31zYUuPBH0pizv4DemW5KDOUkg=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":8.32,"multihop_port":22801,"v2ray":"95.211.198.169","isp":"Leaseweb"}]},{"gateway":"no.wg.ivpn.net","country_code":"NO","country":"Norway","city":"Oslo","latitude":59.9167,"longitude":10.75,"isp":"Servetheworld","hosts":[{"hostname":"no1.wg.ivpn.net","dns_name":"no1.gw.ivpn.net","host":"91.189.177.156","public_key":"xFO6ksbO3Gr05rRgAW0O5Veoi4bpTgz2G9RvtBzK7Cg=","local_ip":"172.16.0.1/12","ipv6":{},"load":41.19,"multihop_port":25301,"v2ray":"217.170.197.28","isp":"Servetheworld"}]},{"gateway":"pe.wg.ivpn.net","country_code":"PE","country":"Peru","city":"Lima","latitude":-12.089,"longitude":-76.9759,"isp":"Datapacket","hosts":[{"hostname":"pe1.wg.ivpn.net","dns_name":"pe1.gw.ivpn.net","host":"79.127.252.68","public_key":"LGvYaCFJxdDePXV+r5ENsmugIlVufCCSSm2A6EUXXGw=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":9.51,"multihop_port":20490,"v2ray":"79.127.252.70","isp":"Datapacket"}]},{"gateway":"pl.wg.ivpn.net","country_code":"PL","country":"Poland","city":"Warsaw","latitude":52.25,"longitude":21,"isp":"Datapacket","hosts":[{"hostname":"pl1.wg.ivpn.net","dns_name":"pl1.gw.ivpn.net","host":"185.246.208.109","public_key":"1JDmF79rWj5C+kHp71AbdHne/yGaizWCd2bLfSFvYjo=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":6.47,"multihop_port":25101,"v2ray":"185.246.208.87","isp":"Datapacket"}]},{"gateway":"pt.wg.ivpn.net","country_code":"PT","country":"Portugal","city":"Lisbon","latitude":38.7227,"longitude":-9.1449,"isp":"Hostwebis","hosts":[{"hostname":"pt1.wg.ivpn.net","dns_name":"pt1.gw.ivpn.net","host":"94.46.175.113","public_key":"nMnA82YVrvEK80GVoY/0Z9McWeqjcLzuMYSL+86j5nU=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":11.56,"multihop_port":27101,"v2ray":"94.46.175.130","isp":"Hostwebis"}]},{"gateway":"ro.wg.ivpn.net","country_code":"RO","country":"Romania","city":"Bucharest","latitude":44.4334,"longitude":26.0999,"isp":"M247","hosts":[{"hostname":"ro1.wg.ivpn.net","dns_name":"ro1.gw.ivpn.net","host":"37.120.206.53","public_key":"F2uQ57hysZTlw8WYELnyCw9Lga80wNYoYwkrrxyXKmw=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":49.85,"multihop_port":22301,"v2ray":"185.120.147.58","isp":"M247"}]},{"gateway":"rs.wg.ivpn.net","country_code":"RS","country":"Serbia","city":"Belgrade","latitude":44.8186,"longitude":20.468,"isp":"M247","hosts":[{"hostname":"rs1.wg.ivpn.net","dns_name":"rs1.gw.ivpn.net","host":"141.98.103.253","public_key":"xLN/lpQThQ3z3tvYf7VqdAsRL/nton1Vhv2kCZlQtWE=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":91.75,"multihop_port":26801,"v2ray":"146.70.111.114","isp":"M247"}]},{"gateway":"se.wg.ivpn.net","country_code":"SE","country":"Sweden","city":"Stockholm","latitude":59.3508,"longitude":18.0973,"isp":"GleSyS","hosts":[{"hostname":"se1.wg.ivpn.net","dns_name":"se1.gw.ivpn.net","host":"80.67.10.141","public_key":"u8VHnYEpoEjJWDAF9NAUkU6s810RnkMuhEfFD9U0cGo=","local_ip":"172.16.0.1/12","ipv6":{},"load":32.91,"multihop_port":24001,"v2ray":"80.67.10.139","isp":"GleSyS"},{"hostname":"se2.wg.ivpn.net","dns_name":"se2.gw.ivpn.net","host":"37.120.153.226","public_key":"2n0nFE1g/+vQr2AOQPm9Igyiy0zh9uTTultvOOSkMRo=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":19.09,"multihop_port":20970,"v2ray":"37.120.153.227","isp":"M247"}]},{"gateway":"sg.wg.ivpn.net","country_code":"SG","country":"Singapore","city":"Singapore","latitude":1.293,"longitude":103.8558,"isp":"M247","hosts":[{"hostname":"sg1.wg.ivpn.net","dns_name":"sg1.gw.ivpn.net","host":"185.128.24.189","public_key":"pWk0u1Xq8FHC+xpkN+C6yEKOTEanorR5zMCSfHlLzFw=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":85.21,"multihop_port":26101,"v2ray":"146.70.192.138","isp":"M247"},{"hostname":"sg2.wg.ivpn.net","dns_name":"sg2.gw.ivpn.net","host":"37.120.151.122","public_key":"hSg0At4uwuIhmTy5UT4fRbi5AN6JO2ZWTuIvqd4nHCE=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":16.64,"multihop_port":20950,"v2ray":"37.120.151.125","isp":"M247"}]},{"gateway":"sk.wg.ivpn.net","country_code":"SK","country":"Slovakia","city":"Bratislava","latitude":48.15,"longitude":17.117,"isp":"Datapacket","hosts":[{"hostname":"sk2.wg.ivpn.net","dns_name":"sk2.gw.ivpn.net","host":"156.146.40.205","public_key":"xxEl8CIjNLpig6fp7z4USHZLK35Nu5HENFNwTdeAbzU=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":24,"multihop_port":20400,"v2ray":"156.146.40.208","isp":"Datapacket"}]},{"gateway":"tw.wg.ivpn.net","country_code":"TW","country":"Taiwan","city":"Taipei","latitude":25.073,"longitude":121.578,"isp":"TheGigabit","hosts":[{"hostname":"tw1.wg.ivpn.net","dns_name":"tw1.gw.ivpn.net","host":"185.189.160.123","public_key":"fMTCCbbKqPp60fkqnaQvJ9mX2r6zBlt7xhUp8sGfJQY=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":22.16,"multihop_port":20820,"v2ray":"185.189.160.21","isp":"TheGigabit"}]},{"gateway":"ua.wg.ivpn.net","country_code":"UA","country":"Ukraine","city":"Kyiv","latitude":50.4754,"longitude":30.5461,"isp":"Server.ua","hosts":[{"hostname":"ua2.wg.ivpn.net","dns_name":"ua2.gw.ivpn.net","host":"91.232.28.116","public_key":"WmMJBUyI0tdByPhMyvKWAbQMRE1I3ilPi/fIeG3m+UE=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":9.22,"multihop_port":20450,"v2ray":"91.232.28.119","isp":"Server.ua"}]},{"gateway":"us-az.wg.ivpn.net","country_code":"US","country":"United States","city":"Phoenix, AZ","latitude":33.455,"longitude":-111.978,"isp":"Tzulo","hosts":[{"hostname":"us-az2.wg.ivpn.net","dns_name":"us-az2.gw.ivpn.net","host":"198.44.133.198","public_key":"IXV6W/NAMdIyf5QpndaLOVDgwupq0hQIxPGLb580cy4=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":7.77,"multihop_port":20350,"v2ray":"198.44.133.200","isp":"Tzulo"}]},{"gateway":"us-ca-sjc.wg.ivpn.net","country_code":"US","country":"United States","city":"San Jose, CA","latitude":37.408,"longitude":-121.893,"isp":"Tzulo","hosts":[{"hostname":"us-ca-sjc1.wg.ivpn.net","dns_name":"us-ca-sjc1.gw.ivpn.net","host":"198.44.134.38","public_key":"HJWSwK2AWdygxWVA6QzbsvyvGYUiLJWe4qZIiEZXMDo=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":9.91,"multihop_port":20370,"v2ray":"198.44.134.40","isp":"Tzulo"}]},{"gateway":"us-ca.wg.ivpn.net","country_code":"US","country":"United States","city":"Los Angeles, CA","latitude":34.1139,"longitude":-118.4068,"isp":"Tzulo","hosts":[{"hostname":"us-ca3.wg.ivpn.net","dns_name":"us-ca3.gw.ivpn.net","host":"198.54.129.100","public_key":"J5+Bx84LxNPdWEhewOvBV/fGWiDluIBlAcr1QlJZil8=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":14.68,"multihop_port":21301,"v2ray":"198.54.129.212","isp":"Tzulo"},{"hostname":"us-ca5.wg.ivpn.net","dns_name":"us-ca5.gw.ivpn.net","host":"185.180.13.41","public_key":"FGl78s9Ct6xNamQ2/CtAyXwGePrrU0kiZxfM27pm8XA=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":11.25,"multihop_port":20940,"v2ray":"185.180.13.38","isp":"Datapacket"},{"hostname":"us-ca6.wg.ivpn.net","dns_name":"us-ca6.gw.ivpn.net","host":"185.152.67.20","public_key":"gFPUMq/KAr5KXWAeIH1wyPJ3lzjJ70zkV7GqMP15ymA=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":7.38,"multihop_port":20340,"v2ray":"185.152.67.22","isp":"Datapacket"},{"hostname":"us-ca7.wg.ivpn.net","dns_name":"us-ca7.gw.ivpn.net","host":"198.54.129.22","public_key":"BzJnDnpeR0oGDaXnkONIZWrTQtaaWl79oCAQuLi8umY=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":5.78,"multihop_port":20360,"v2ray":"198.54.129.195","isp":"Tzulo"}]},{"gateway":"us-co.wg.ivpn.net","country_code":"US","country":"United States","city":"Denver, CO","latitude":39.749,"longitude":-104.997,"isp":"Datapacket","hosts":[{"hostname":"us-co1.wg.ivpn.net","dns_name":"us-co1.gw.ivpn.net","host":"121.127.44.29","public_key":"eW3Xf/azDAah8xaM0z5rMxJZkWM6YlWuZsEbMwy9j2Y=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":25.99,"multihop_port":20560,"v2ray":"121.127.44.31","isp":"Datapacket"}]},{"gateway":"us-fl.wg.ivpn.net","country_code":"US","country":"United States","city":"Miami, FL","latitude":25.776,"longitude":-80.193,"isp":"Datapacket","hosts":[{"hostname":"us-fl2.wg.ivpn.net","dns_name":"us-fl2.gw.ivpn.net","host":"195.181.163.83","public_key":"HWDCBq3k20Ky72W4wMrAtCITY0fwqNVooHzKEKFtHCc=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":24.59,"multihop_port":20380,"v2ray":"195.181.163.86","isp":"Datapacket"}]},{"gateway":"us-ga.wg.ivpn.net","country_code":"US","country":"United States","city":"Atlanta, GA","latitude":33.749,"longitude":-84.387,"isp":"Datapacket","hosts":[{"hostname":"us-ga3.wg.ivpn.net","dns_name":"us-ga3.gw.ivpn.net","host":"185.93.0.212","public_key":"jD8h+pL5/d6fmYcTzl0lR8AWzQVN5XkwRFSmM/3NcDM=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":9,"multihop_port":20900,"v2ray":"185.93.0.217","isp":"Datapacket"},{"hostname":"us-ga5.wg.ivpn.net","dns_name":"us-ga5.gw.ivpn.net","host":"198.44.138.54","public_key":"4BIZI97EGcwqZBg5S+nba3rZ18CL0wG7I872Wj0WATY=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":24.16,"multihop_port":20390,"v2ray":"198.44.138.56","isp":"Tzulo"}]},{"gateway":"us-il.wg.ivpn.net","country_code":"US","country":"United States","city":"Chicago, IL","latitude":41.887,"longitude":-87.632,"isp":"Datapacket","hosts":[{"hostname":"us-il3.wg.ivpn.net","dns_name":"us-il3.gw.ivpn.net","host":"89.187.181.116","public_key":"hku9gjamhoii8OvxZgx+TdUDIkOAQYFu39qbav2AyUQ=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":51.73,"multihop_port":20930,"v2ray":"89.187.181.121","isp":"Datapacket"},{"hostname":"us-il4.wg.ivpn.net","dns_name":"us-il4.gw.ivpn.net","host":"68.235.50.198","public_key":"JeKmL8RcIHoHbjFcrStJL8uCHaoZ+jvY/M0SkLA93kE=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":19.24,"multihop_port":20410,"v2ray":"68.235.50.200","isp":"Tzulo"},{"hostname":"us-il5.wg.ivpn.net","dns_name":"us-il5.gw.ivpn.net","host":"68.235.50.214","public_key":"TLS6jY8aHviLDDywQ6iCeEM+b+YI2l3YSD6UtGZ5okY=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":12.11,"multihop_port":20420,"v2ray":"68.235.50.216","isp":"Tzulo"}]},{"gateway":"us-ma.wg.ivpn.net","country_code":"US","country":"United States","city":"Boston, MA","latitude":42.376,"longitude":-71.078,"isp":"Datapacket","hosts":[{"hostname":"us-ma1.wg.ivpn.net","dns_name":"us-ma1.gw.ivpn.net","host":"109.61.86.50","public_key":"JtIx5H4hqFUhwyrnlVlvthQgwNKJTKnpmT7Ld1XcPhM=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":77.37,"multihop_port":20870,"v2ray":"109.61.86.52","isp":"Datapacket"}]},{"gateway":"us-nj.wg.ivpn.net","country_code":"US","country":"United States","city":"Secaucus, NJ","latitude":40.737764,"longitude":-74.151747,"isp":"M247","hosts":[{"hostname":"us-nj4.wg.ivpn.net","dns_name":"us-nj4.gw.ivpn.net","host":"194.36.111.54","public_key":"1Te4AfL1yKo2k4jzPALnRPfKE3YSzXKo4XIRHPz5FxI=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":26.18,"multihop_port":27401,"v2ray":"37.120.202.42","isp":"M247"}]},{"gateway":"us-nv.wg.ivpn.net","country_code":"US","country":"United States","city":"Las Vegas, NV","latitude":36.2333,"longitude":-115.2654,"isp":"M247","hosts":[{"hostname":"us-nv1.wg.ivpn.net","dns_name":"us-nv1.gw.ivpn.net","host":"185.242.5.37","public_key":"PRpvAZyoNWNm/KHlqafjtYoZtn1PkIPylUE4WbuYmgM=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":11.7,"multihop_port":26501,"v2ray":"185.242.5.146","isp":"M247"}]},{"gateway":"us-ny.wg.ivpn.net","country_code":"US","country":"United States","city":"New York, NY","latitude":40.6943,"longitude":-73.9249,"isp":"M247","hosts":[{"hostname":"us-ny2.wg.ivpn.net","dns_name":"us-ny2.gw.ivpn.net","host":"212.103.48.195","public_key":"c7DwY2uT+6ulWAJ5u8qJNWHroA0qyJLcdNzf/f2kkhs=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":5.49,"multihop_port":21801,"v2ray":"212.103.48.199","isp":"M247"},{"hostname":"us-ny3.wg.ivpn.net","dns_name":"us-ny3.gw.ivpn.net","host":"89.187.178.145","public_key":"m5/Ssw9SN3WuE+yD/fAsH5G8iuI8TcDGEiZZnPgiMCc=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":5.31,"multihop_port":27601,"v2ray":"89.187.178.150","isp":"Datapacket"},{"hostname":"us-ny4.wg.ivpn.net","dns_name":"us-ny4.gw.ivpn.net","host":"91.132.137.170","public_key":"6/tjvgb7HFl7UuvBSegolxa1zKr3iSlDrlCexCmhAGE=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":8.85,"multihop_port":20990,"v2ray":"91.132.137.173","isp":"M247"}]},{"gateway":"us-tx.wg.ivpn.net","country_code":"US","country":"United States","city":"Dallas, TX","latitude":32.912,"longitude":-96.785,"isp":"Datapacket","hosts":[{"hostname":"us-tx4.wg.ivpn.net","dns_name":"us-tx4.gw.ivpn.net","host":"89.187.164.118","public_key":"6jIFbOQFIW7HalTcJBq9hx28Yp9C11ZwtEojpGDqfFA=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":6.78,"multihop_port":20300,"v2ray":"89.187.164.120","isp":"Datapacket"},{"hostname":"us-tx6.wg.ivpn.net","dns_name":"us-tx6.gw.ivpn.net","host":"198.44.137.198","public_key":"ovdPq1PhjsqSrYgH4LbLyKNkXs+q5w9YvG31B81TLyU=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":25.22,"multihop_port":20430,"v2ray":"198.44.137.200","isp":"Tzulo"}]},{"gateway":"us-ut.wg.ivpn.net","country_code":"US","country":"United States","city":"Salt Lake City, Utah","latitude":40.75,"longitude":-111.88,"isp":"Tzulo","hosts":[{"hostname":"us-ut2.wg.ivpn.net","dns_name":"us-ut2.gw.ivpn.net","host":"198.44.139.94","public_key":"5bX1NIcNST+78oqQVS8I+uGY4vBHGSpF95lNIokwHRY=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":5.59,"multihop_port":24402,"v2ray":"198.44.139.91","isp":"Tzulo"}]},{"gateway":"us-va.wg.ivpn.net","country_code":"US","country":"United States","city":"Ashburn, VA","latitude":39.0437,"longitude":-77.4875,"isp":"Datapacket","hosts":[{"hostname":"us-va1.wg.ivpn.net","dns_name":"us-va1.gw.ivpn.net","host":"37.19.206.106","public_key":"ZCnZK6U+cRuP/WgzIDb/P6UG2rX/KyCRd5vJ1hAbr2E=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":6.15,"multihop_port":27701,"v2ray":"37.19.206.111","isp":"Datapacket"}]},{"gateway":"us-wa.wg.ivpn.net","country_code":"US","country":"United States","city":"Seattle, WA","latitude":47.62,"longitude":-122.34,"isp":"Tzulo","hosts":[{"hostname":"us-wa2.wg.ivpn.net","dns_name":"us-wa2.gw.ivpn.net","host":"198.44.131.4","public_key":"4OvdVPdxffZx3gbU0fXAzQdTcE2w6mLKP+p4fIAJoQM=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":9.22,"multihop_port":27801,"v2ray":"198.44.131.20","isp":"Tzulo"}]},{"gateway":"za.wg.ivpn.net","country_code":"ZA","country":"South Africa","city":"Johannesburg","latitude":-26.195,"longitude":28.034,"isp":"Datapacket","hosts":[{"hostname":"za1.wg.ivpn.net","dns_name":"za1.gw.ivpn.net","host":"169.150.238.108","public_key":"tgrAA+uJZppS9esgOi0pe3rHajQQ7c/KF8WPOua6qy4=","local_ip":"172.16.0.1/12","ipv6":{"local_ip":"fd00:4956:504e:ffff::/96"},"load":17.31,"multihop_port":20840,"v2ray":"169.150.238.109","isp":"Datapacket"}]}],"openvpn":[{"gateway":"ar.gw.ivpn.net","country_code":"AR","country":"Argentina","city":"Buenos Aires","latitude":-34.614,"longitude":-58.371,"isp":"Datapacket","hosts":[{"hostname":"ar1.gw.ivpn.net","dns_name":"ar1.gw.ivpn.net","host":"149.22.83.97","load":30.69,"multihop_port":20600,"obfs":{"obfs3_multihop_port":20601,"obfs4_multihop_port":20602,"obfs4_key":"nYpMZiGcjWbjQ+8GzltcIqSwcVS4u6m8q7A7szcJHNQ1XHrpHk9r99bHCpzfvnQmNAjdWw"},"v2ray":"149.22.83.102","isp":"Datapacket"}]},{"gateway":"at.gw.ivpn.net","country_code":"AT","country":"Austria","city":"Vienna","latitude":48.2,"longitude":16.3666,"isp":"M247","hosts":[{"hostname":"at1.gw.ivpn.net","dns_name":"at1.gw.ivpn.net","host":"185.244.212.66","load":39.32,"multihop_port":25601,"obfs":{"obfs3_multihop_port":25602,"obfs4_multihop_port":25603,"obfs4_key":"75HhQC6n6ctp9Fa9wCvEnc6ip5FnEfuIGc+dVNLH4M15FjB/Ve6bI1b8lYFhk6T+4/HkDQ"},"v2ray":"146.70.146.226","isp":"M247"},{"hostname":"at2.gw.ivpn.net","dns_name":"at2.gw.ivpn.net","host":"141.98.214.210","load":9.95,"multihop_port":25602,"obfs":{"obfs3_multihop_port":25603,"obfs4_multihop_port":25604,"obfs4_key":"S40ChpeUOFV7kkkNBvXACnCuUCsAP/dhY/T3/Bkg1WTLYl8odV3LH91a0WtSgd7uHDrlYQ"},"v2ray":"141.98.214.215","isp":"EstNOC"}]},{"gateway":"au-nsw.gw.ivpn.net","country_code":"AU","country":"Australia","city":"Sydney","latitude":-33.92,"longitude":151.1852,"isp":"M247","hosts":[{"hostname":"au-nsw1.gw.ivpn.net","dns_name":"au-nsw1.gw.ivpn.net","host":"46.102.153.242","load":20.77,"multihop_port":26601,"obfs":{"obfs3_multihop_port":26602,"obfs4_multihop_port":26603,"obfs4_key":"/rjoeDjduOFq1UvT332vhS398h1RP5hC3m7sDJKNSyJ6TO8mkcxWAYILw0i+bgS/3JD5YA"},"v2ray":"217.138.205.90","isp":"M247"},{"hostname":"au-nsw2.gw.ivpn.net","dns_name":"au-nsw2.gw.ivpn.net","host":"146.70.78.74","load":8.51,"multihop_port":27901,"obfs":{"obfs3_multihop_port":27902,"obfs4_multihop_port":27903,"obfs4_key":"qtdQ5krD9EQFR98xNo/v5cmGb10wqt0Om9pYMIHWQh4oz5xcAXj32rViEyN0bnkkhaZnBA"},"v2ray":"146.70.210.26","isp":"M247"}]},{"gateway":"be.gw.ivpn.net","country_code":"BE","country":"Belgium","city":"Brussels","latitude":50.8333,"longitude":4.3333,"isp":"M247","hosts":[{"hostname":"be1.gw.ivpn.net","dns_name":"be1.gw.ivpn.net","host":"194.187.251.10","load":42.27,"multihop_port":25701,"obfs":{"obfs3_multihop_port":25702,"obfs4_multihop_port":25703,"obfs4_key":"cN8i60FUVy2mmGpy+tkQAz8hu/N0EGPq8cZwIotEDwdhAYdLV+ATes/AEjzdub2K68TlYg"},"v2ray":"37.120.143.130","isp":"M247"},{"hostname":"be2.gw.ivpn.net","dns_name":"be2.gw.ivpn.net","host":"79.127.224.161","load":13.69,"multihop_port":20610,"obfs":{"obfs3_multihop_port":20611,"obfs4_multihop_port":20612,"obfs4_key":"C0/5wLYnt+Ga3iPeVBVWCNTz3P4FE13ggOlgzRnOZHLtDJyVSvoN+gPI62gmOaPmh+LyFQ"},"v2ray":"79.127.224.166","isp":"Datapacket"}]},{"gateway":"bg.gw.ivpn.net","country_code":"BG","country":"Bulgaria","city":"Sofia","latitude":42.6833,"longitude":23.3167,"isp":"M247","hosts":[{"hostname":"bg1.gw.ivpn.net","dns_name":"bg1.gw.ivpn.net","host":"82.102.23.18","load":51.37,"multihop_port":25901,"obfs":{"obfs3_multihop_port":25902,"obfs4_multihop_port":25903,"obfs4_key":"K+mCw9+zy/8pBQt6IUKRlg2eJ3DCnJ1BvIccLq/6A2D6HoZddyDnZQYb2Sb2e464dVgBWw"},"v2ray":"146.70.53.82","isp":"M247"}]},{"gateway":"br.gw.ivpn.net","country_code":"BR","country":"Brazil","city":"Franca","latitude":-20.53,"longitude":-47.39,"isp":"Qnax","hosts":[{"hostname":"br1.gw.ivpn.net","dns_name":"br1.gw.ivpn.net","host":"45.162.230.50","load":13.81,"multihop_port":26701,"obfs":{"obfs3_multihop_port":26702,"obfs4_multihop_port":26703,"obfs4_key":"h4bBkocahWveuv/nWPRMYXBTw95ExTiXwmoydkNlV6hgfy8/ZjaKc34rqTuOyOH+CK7OZw"},"v2ray":"45.162.230.186","isp":"Qnax"}]},{"gateway":"ca-bc.gw.ivpn.net","country_code":"CA","country":"Canada","city":"Vancouver","latitude":49.231,"longitude":-122.8412,"isp":"Tech Futures","hosts":[{"hostname":"ca-bc1.gw.ivpn.net","dns_name":"ca-bc1.gw.ivpn.net","host":"104.193.135.228","load":34.2,"multihop_port":20550,"obfs":{"obfs3_multihop_port":20551,"obfs4_multihop_port":20552,"obfs4_key":"EE2sCZ06sv+v/UIezUZLFrey101UpbHVG8ZD0G303wCzusXbkK4Bi+tzg0J7DM9v7YLwBg"},"v2ray":"104.193.135.233","isp":"Tech Futures"}]},{"gateway":"ca-on.gw.ivpn.net","country_code":"CA","country":"Canada","city":"Toronto","latitude":43.7,"longitude":-79.42,"isp":"Amanah","hosts":[{"hostname":"ca-on1.gw.ivpn.net","dns_name":"ca-on1.gw.ivpn.net","host":"184.75.215.2","load":18.15,"multihop_port":20580,"obfs":{"obfs3_multihop_port":20581,"obfs4_multihop_port":20582,"obfs4_key":"ndx/mul0z+GgeDfKkqoSa8RuqCBA3MYWLnoBtH6YqOwWmjQY1wsotr80+nOhW4bRKu3HIw"},"v2ray":"184.75.215.7","isp":"Amanah"},{"hostname":"ca-on2.gw.ivpn.net","dns_name":"ca-on2.gw.ivpn.net","host":"162.219.176.18","load":12.48,"multihop_port":20590,"obfs":{"obfs3_multihop_port":20591,"obfs4_multihop_port":20592,"obfs4_key":"2jIHUkKQYA8cNacmXLYjMYioV3dkN8nr0gV4r9D9nwFB42Q5IpUYadk0oyk47Js+z36gWw"},"v2ray":"162.219.176.23","isp":"Amanah"}]},{"gateway":"ca-qc.gw.ivpn.net","country_code":"CA","country":"Canada","city":"Montreal","latitude":45.499,"longitude":-73.57,"isp":"M247","hosts":[{"hostname":"ca-qc1.gw.ivpn.net","dns_name":"ca-qc1.gw.ivpn.net","host":"37.120.130.60","load":7.22,"multihop_port":20960,"obfs":{"obfs3_multihop_port":20961,"obfs4_multihop_port":20962,"obfs4_key":"bsOfJuEd+ZAuslrnkTkaBL0zzGt1UZyppbGOE+DV9fw0H6G63gnvNtmNRgffcnPJs9XeWg"},"v2ray":"37.120.130.61","isp":"M247"},{"hostname":"ca-qc2.gw.ivpn.net","dns_name":"ca-qc2.gw.ivpn.net","host":"87.101.92.26","load":20.38,"multihop_port":27001,"obfs":{"obfs3_multihop_port":27002,"obfs4_multihop_port":27003,"obfs4_key":"hfhRyd1nnfLN2QcWgqQo2iDkj6+Z71t2h4dbcsmBT5pZNBpWg3pbRfGQ0u6RCanCyK6xQA"},"v2ray":"89.47.234.130","isp":"M247"}]},{"gateway":"ch.gw.ivpn.net","country_code":"CH","country":"Switzerland","city":"Zurich","latitude":47.38,"longitude":8.55,"isp":"M247","hosts":[{"hostname":"ch1.gw.ivpn.net","dns_name":"ch1.gw.ivpn.net","host":"185.212.170.138","load":19.57,"multihop_port":23601,"obfs":{"obfs3_multihop_port":23602,"obfs4_multihop_port":23603,"obfs4_key":"ELnV4JNKu0vUNd3J+QDn64yfZtqM0hNN6O5n6RkDLHbeSDBZmxP1N4dlwwChV/uySX+DEQ"},"v2ray":"37.120.213.138","isp":"M247"},{"hostname":"ch2.gw.ivpn.net","dns_name":"ch2.gw.ivpn.net","host":"81.17.24.162","load":27.93,"multihop_port":20880,"obfs":{"obfs3_multihop_port":20881,"obfs4_multihop_port":20882,"obfs4_key":"XeGJcOeMYGPRN+xNlmd8lDSt71ae6BHF7kzaYXs9bVSv80cgoGTKQZ5+2VW6UHNURiI8aQ"},"v2ray":"81.17.24.167","isp":"Privatelayer"},{"hostname":"ch3.gw.ivpn.net","dns_name":"ch3.gw.ivpn.net","host":"141.255.166.194","load":15.07,"multihop_port":22901,"obfs":{"obfs3_multihop_port":22902,"obfs4_multihop_port":22903,"obfs4_key":"oNaH5sHCPGGk5m3/VMOrTDL+m1qsJrze+bqDs78vhOYBpjx5Jjq5TXu1dXNfDJCKNmKnUA"},"v2ray":"179.43.167.66","isp":"Privatelayer"}]},{"gateway":"cz.gw.ivpn.net","country_code":"CZ","country":"Czech Republic","city":"Prague","latitude":50.0833,"longitude":14.466,"isp":"Datapacket","hosts":[{"hostname":"cz1.gw.ivpn.net","dns_name":"cz1.gw.ivpn.net","host":"195.181.160.167","load":26.68,"multihop_port":25201,"obfs":{"obfs3_multihop_port":25202,"obfs4_multihop_port":25203,"obfs4_key":"JZ3PtIyflM3VwVow2vqi08OxddOWSx9j6B6yZSGoZLs9QE0hzSAj3ZBWEsCKFeQ2RcAoCQ"},"v2ray":"195.181.160.184","isp":"Datapacket"}]},{"gateway":"de.gw.ivpn.net","country_code":"DE","country":"Germany","city":"Frankfurt","latitude":50.1,"longitude":8.675,"isp":"Leaseweb","hosts":[{"hostname":"de2.gw.ivpn.net","dns_name":"de2.gw.ivpn.net","host":"178.162.211.114","load":33.84,"multihop_port":22001,"obfs":{"obfs3_multihop_port":22002,"obfs4_multihop_port":22003,"obfs4_key":"dEhLA4ZsvVP8+PRvlSHKwmW8JyzR1Bwy7+BFKF7Ux4L2B5YvdqqOrv/8eHliEj2mm2Z8Iw"},"v2ray":"178.162.222.166","isp":"Leaseweb"},{"hostname":"de3.gw.ivpn.net","dns_name":"de3.gw.ivpn.net","host":"146.70.160.162","load":19.02,"multihop_port":21050,"obfs":{"obfs3_multihop_port":21051,"obfs4_multihop_port":21052,"obfs4_key":"IFf+iLf7lgc0K81tQkZL5zndlWflvnLZyYSGGNLtSXLLivlIeBuXCPFDJ7fkL3TOd5uhOA"},"v2ray":"146.70.160.166","isp":"M247"},{"hostname":"de4.gw.ivpn.net","dns_name":"de4.gw.ivpn.net","host":"185.102.219.40","load":10.18,"multihop_port":20920,"obfs":{"obfs3_multihop_port":20921,"obfs4_multihop_port":20922,"obfs4_key":"LzIBOv6zUOyI3/VfDLfqNmOTxCOHRo3bWirKHOf0GdJOPlmdZGHG9kH/aJwHNemsY0fWew"},"v2ray":"185.102.219.56","isp":"Datapacket"}]},{"gateway":"dk.gw.ivpn.net","country_code":"DK","country":"Denmark","city":"Copenhagen","latitude":55.6786,"longitude":12.5635,"isp":"M247","hosts":[{"hostname":"dk1.gw.ivpn.net","dns_name":"dk1.gw.ivpn.net","host":"185.245.84.226","load":11.36,"multihop_port":25501,"obfs":{"obfs3_multihop_port":25502,"obfs4_multihop_port":25503,"obfs4_key":"ngjtv9UISX4tB5AkBnrEN2TrAnUqVwNZ688VqDlS4BDxQXJeJF3ynZtngRqeowhEahsccQ"},"v2ray":"193.29.107.226","isp":"M247"},{"hostname":"dk2.gw.ivpn.net","dns_name":"dk2.gw.ivpn.net","host":"121.127.45.36","load":10.04,"multihop_port":20620,"obfs":{"obfs3_multihop_port":20621,"obfs4_multihop_port":20622,"obfs4_key":"D0UIq0H1cEggbQt8LPd92fe5oqlo7cip3HQBYzX7W7+nFo9F3x87yuL6TvvUCZrSwbIVAg"},"v2ray":"121.127.45.41","isp":"Datapacket"}]},{"gateway":"es.gw.ivpn.net","country_code":"ES","country":"Spain","city":"Madrid","latitude":40.4,"longitude":-3.6834,"isp":"Datapacket","hosts":[{"hostname":"es1.gw.ivpn.net","dns_name":"es1.gw.ivpn.net","host":"185.93.3.193","load":23.91,"multihop_port":21501,"obfs":{"obfs3_multihop_port":21502,"obfs4_multihop_port":21503,"obfs4_key":"x4A9SBY5yzPKH1QOkEsGYcIR2JA/Pu393jv/ZSg4YO2DsVhr3TQFxcMO3QhD9iSF48smJA"},"v2ray":"185.93.3.196","isp":"Datapacket"}]},{"gateway":"fi.gw.ivpn.net","country_code":"FI","country":"Finland","city":"Helsinki","latitude":60.1756,"longitude":24.9341,"isp":"Creanova","hosts":[{"hostname":"fi1.gw.ivpn.net","dns_name":"fi1.gw.ivpn.net","host":"185.112.82.12","load":32.43,"multihop_port":26001,"obfs":{"obfs3_multihop_port":26002,"obfs4_multihop_port":26003,"obfs4_key":"SvvSpGiFctjs4n2wZGnZUf9fAL8wag70SrA3FX+9f3Sq+KgBn+/8P6fE3239ezemg9svLA"},"v2ray":"185.103.110.231","isp":"Creanova"}]},{"gateway":"fr.gw.ivpn.net","country_code":"FR","country":"France","city":"Paris","latitude":48.8667,"longitude":2.3333,"isp":"Datapacket","hosts":[{"hostname":"fr1.gw.ivpn.net","dns_name":"fr1.gw.ivpn.net","host":"185.246.211.179","load":5.85,"multihop_port":23401,"obfs":{"obfs3_multihop_port":23402,"obfs4_multihop_port":23403,"obfs4_key":"CMf0pNZ46nFdG0Tpa3hE0cK9wtUAReJL7HN66G9Jq3tlrTSWrU0DLf7sCQgXV+WFoc8iaw"},"v2ray":"185.246.211.184","isp":"Datapacket"}]},{"gateway":"gb-man.gw.ivpn.net","country_code":"GB","country":"United Kingdom","city":"Manchester","latitude":53.451,"longitude":-2.319,"isp":"M247","hosts":[{"hostname":"gb-man1.gw.ivpn.net","dns_name":"gb-man1.gw.ivpn.net","host":"185.195.202.20","load":5.84,"multihop_port":26901,"obfs":{"obfs3_multihop_port":26902,"obfs4_multihop_port":26903,"obfs4_key":"WuP3pMrsQA+uAC72sV+Y62E1uvOWcnbTNJCmRHXqtWbbYzECF5swu62dzD/JOKoa5t0tGQ"},"v2ray":"185.195.202.25","isp":"M247"}]},{"gateway":"gb.gw.ivpn.net","country_code":"GB","country":"United Kingdom","city":"London","latitude":51.5,"longitude":-0.1167,"isp":"Datapacket","hosts":[{"hostname":"gb1.gw.ivpn.net","dns_name":"gb1.gw.ivpn.net","host":"185.59.221.133","load":10.94,"multihop_port":20801,"obfs":{"obfs3_multihop_port":20802,"obfs4_multihop_port":20803,"obfs4_key":"5whTESvZxQE28wKqJWZ9fQFy09d8//GNaPDeYHVR+FJZTyI+DMS6qX4Mt2FKSf/zBToaDg"},"v2ray":"185.59.221.159","isp":"Datapacket"},{"hostname":"gb2.gw.ivpn.net","dns_name":"gb2.gw.ivpn.net","host":"185.59.221.88","load":5.88,"multihop_port":24201,"obfs":{"obfs3_multihop_port":24202,"obfs4_multihop_port":24203,"obfs4_key":"4hrCOgPsRfmnQ6cLvV5mtM2XZCRS/DXG/izYSg2qZC+WJ0GsnhTlKByPM2iJ555MaM8vJA"},"v2ray":"185.59.221.226","isp":"Datapacket"},{"hostname":"gb3.gw.ivpn.net","dns_name":"gb3.gw.ivpn.net","host":"81.92.202.116","load":8.53,"multihop_port":20980,"obfs":{"obfs3_multihop_port":20981,"obfs4_multihop_port":20982,"obfs4_key":"GIqTpQh4aDEYbwpwhF23HNAr/vVqSqRwYxqe2mdkKzapfj0fd9ZLrM2jG2ISVdSjNBhYRQ"},"v2ray":"81.92.202.117","isp":"M247"}]},{"gateway":"gr.gw.ivpn.net","country_code":"GR","country":"Greece","city":"Athens","latitude":37.871,"longitude":23.8707,"isp":"Datapacket","hosts":[{"hostname":"gr1.gw.ivpn.net","dns_name":"gr1.gw.ivpn.net","host":"169.150.252.110","load":22.22,"multihop_port":20540,"obfs":{"obfs3_multihop_port":20541,"obfs4_multihop_port":20542,"obfs4_key":"zyWssFvuJOCSBixUnRaF0qk+BLJQbnm7YpZ5oSVk5ElIksjA7OvwigQBc2NF2kt9/lQSEw"},"v2ray":"169.150.252.115","isp":"Datapacket"}]},{"gateway":"hk.gw.ivpn.net","country_code":"HK","country":"Hong Kong","city":"Hong Kong","latitude":22.305,"longitude":114.185,"isp":"Leaseweb","hosts":[{"hostname":"hk2.gw.ivpn.net","dns_name":"hk2.gw.ivpn.net","host":"209.58.188.13","load":55.84,"multihop_port":27501,"obfs":{"obfs3_multihop_port":27502,"obfs4_multihop_port":27503,"obfs4_key":"GIunWjiq00Piv3Xf4VeMkmUQ8NzD8sxRkSIbA3bxrU4LhPVth+3qM2zQwI4GesQDCDY5RA"},"v2ray":"64.120.120.237","isp":"Leaseweb"},{"hostname":"hk3.gw.ivpn.net","dns_name":"hk3.gw.ivpn.net","host":"61.4.117.29","load":14.83,"multihop_port":20460,"obfs":{"obfs3_multihop_port":20461,"obfs4_multihop_port":20462,"obfs4_key":"wnI0gz3hLM9VhkABSncBIsGERgn16UzTxkj7dEeYYo/y2Wu0/w24rfriA5KL7ugpTyvEFg"},"v2ray":"61.4.117.35","isp":"TheGigabit"}]},{"gateway":"hr.gw.ivpn.net","country_code":"HR","country":"Croatia","city":"Zagreb","latitude":45.811,"longitude":15.977,"isp":"Datapacket","hosts":[{"hostname":"hr1.gw.ivpn.net","dns_name":"hr1.gw.ivpn.net","host":"169.150.242.1","load":20.53,"multihop_port":20860,"obfs":{"obfs3_multihop_port":20861,"obfs4_multihop_port":20862,"obfs4_key":"MndMzdMCy8m0bY1LPNh1GAWQXhTom4Jr5eSrkMGTF6n2r3hhYd1lGPM+Q417OB+/dz2qDA"},"v2ray":"169.150.242.42","isp":"Datapacket"}]},{"gateway":"hu.gw.ivpn.net","country_code":"HU","country":"Hungary","city":"Budapest","latitude":47.5,"longitude":19.0833,"isp":"M247","hosts":[{"hostname":"hu1.gw.ivpn.net","dns_name":"hu1.gw.ivpn.net","host":"185.189.114.186","load":14.81,"multihop_port":25401,"obfs":{"obfs3_multihop_port":25402,"obfs4_multihop_port":25403,"obfs4_key":"2TwZqxAakni0S4S3ulOIqMZimqqug0KCr6pNREN6KytrtIh486nkJyiFRqaYZlx+FlxEcg"},"v2ray":"37.120.144.178","isp":"M247"}]},{"gateway":"ie.gw.ivpn.net","country_code":"IE","country":"Ireland","city":"Dublin","latitude":53.337,"longitude":-6.259,"isp":"Datapacket","hosts":[{"hostname":"ie1.gw.ivpn.net","dns_name":"ie1.gw.ivpn.net","host":"87.249.137.136","load":10.55,"multihop_port":20850,"obfs":{"obfs3_multihop_port":20851,"obfs4_multihop_port":20852,"obfs4_key":"tWiVshynDq75bW24Ch2p9nRjLF4wa7YWHy9xCX5hJ5J0lZpflq8L/UluCfi51nxZDTouZA"},"v2ray":"87.249.137.140","isp":"Datapacket"}]},{"gateway":"il.gw.ivpn.net","country_code":"IL","country":"Israel","city":"Holon, Tel Aviv","latitude":32.08,"longitude":34.77,"isp":"HQServ","hosts":[{"hostname":"il1.gw.ivpn.net","dns_name":"il1.gw.ivpn.net","host":"185.191.204.130","load":21.16,"multihop_port":27301,"obfs":{"obfs3_multihop_port":27302,"obfs4_multihop_port":27303,"obfs4_key":"DysuSM7UWjquj4BAVYf6mOUnRKfY1QXs17MXiV5aYapFfOkQPpx5nQPVQ2M+rLDxN9TSRg"},"v2ray":"185.191.204.135","isp":"HQServ"}]},{"gateway":"is.gw.ivpn.net","country_code":"IS","country":"Iceland","city":"Reykjavik","latitude":63.99,"longitude":-22.54,"isp":"EstNOC","hosts":[{"hostname":"is2.gw.ivpn.net","dns_name":"is2.gw.ivpn.net","host":"45.133.193.66","load":6.12,"multihop_port":23502,"obfs":{"obfs3_multihop_port":23503,"obfs4_multihop_port":23504,"obfs4_key":"ZNZOSLGU3yrTwwF0sM4yBpsof5Mxekd/FO9xfkpqxhtt8DNQX+vcge9yIA9CHD7AK+4ELg"},"v2ray":"45.133.193.71","isp":"EstNOC"},{"hostname":"is3.gw.ivpn.net","dns_name":"is3.gw.ivpn.net","host":"185.165.170.35","load":75.48,"multihop_port":23503,"obfs":{"obfs3_multihop_port":23504,"obfs4_multihop_port":23505,"obfs4_key":"y1uk8nBFl1xLzPHpbbKXjs8QPiagofcZ6CqowV8K5t3YPoLsItFtQvLy7LvdpfQoIXK3Sw"},"v2ray":"185.165.170.122","isp":"Flokinet"}]},{"gateway":"it.gw.ivpn.net","country_code":"IT","country":"Italy","city":"Milan","latitude":45.47,"longitude":9.205,"isp":"Datapacket","hosts":[{"hostname":"it2.gw.ivpn.net","dns_name":"it2.gw.ivpn.net","host":"84.17.59.137","load":11.37,"multihop_port":21100,"obfs":{"obfs3_multihop_port":21101,"obfs4_multihop_port":21102,"obfs4_key":"8msjDzd52ALBZF9Ej8i6BYXc4qSTiG8P739Px77EHp0uOVd5/VvDhrBfGcBQxDIgBlUeLw"},"v2ray":"84.17.59.146","isp":"Datapacket"}]},{"gateway":"jp.gw.ivpn.net","country_code":"JP","country":"Japan","city":"Tokyo","latitude":35.62,"longitude":139.74,"isp":"TheGigabit","hosts":[{"hostname":"jp2.gw.ivpn.net","dns_name":"jp2.gw.ivpn.net","host":"185.135.77.35","load":7.16,"multihop_port":20830,"obfs":{"obfs3_multihop_port":20831,"obfs4_multihop_port":20832,"obfs4_key":"giZJF4edg7wcjxbdgD2RjFcF9QAzExLHIJYjm2cLLtx7MrxP0p96mIFj9T8LSQotKB63fA"},"v2ray":"185.135.77.100","isp":"TheGigabit"}]},{"gateway":"lu.gw.ivpn.net","country_code":"LU","country":"Luxembourg","city":"Luxembourg","latitude":49.6113,"longitude":6.1294,"isp":"EstNOC","hosts":[{"hostname":"lu2.gw.ivpn.net","dns_name":"lu2.gw.ivpn.net","host":"185.221.132.178","load":100,"multihop_port":27212,"obfs":{"obfs3_multihop_port":27213,"obfs4_multihop_port":27214,"obfs4_key":"5zv2iXbmjV6wI3IEGxSZNfOnIIzfeehDF4FxkwcPi5sqDqa+6ecU2Nx55qIRstLfyzNEJA"},"v2ray":"185.221.132.183","isp":"EstNOC"}]},{"gateway":"mx.gw.ivpn.net","country_code":"MX","country":"Mexico","city":"Querétaro","latitude":20.574,"longitude":-100.2965,"isp":"Datapacket","hosts":[{"hostname":"mx1.gw.ivpn.net","dns_name":"mx1.gw.ivpn.net","host":"121.127.43.193","load":21.09,"multihop_port":20570,"obfs":{"obfs3_multihop_port":20571,"obfs4_multihop_port":20572,"obfs4_key":"j+m8maujVIgwIuDswG84veNQpprZobIszwL5rJ3FZZGD8ES7c3P6pN9aCJW4YJvnRxducg"},"v2ray":"121.127.43.198","isp":"Datapacket"}]},{"gateway":"my.gw.ivpn.net","country_code":"MY","country":"Malaysia","city":"Kuala Lumpur","latitude":3.1494,"longitude":101.706,"isp":"TheGigabit","hosts":[{"hostname":"my1.gw.ivpn.net","dns_name":"my1.gw.ivpn.net","host":"61.4.97.148","load":13.21,"multihop_port":20470,"obfs":{"obfs3_multihop_port":20471,"obfs4_multihop_port":20472,"obfs4_key":"k2hwCe8gDb24K5n2jNXYO5YCl5XCIEhuRwpYSsEhKWorah8OUM1C1crawbfstj+W2IQdOA"},"v2ray":"61.4.97.155","isp":"TheGigabit"}]},{"gateway":"nl.gw.ivpn.net","country_code":"NL","country":"Netherlands","city":"Amsterdam","latitude":52.376,"longitude":4.898,"isp":"Datapacket","hosts":[{"hostname":"nl2.gw.ivpn.net","dns_name":"nl2.gw.ivpn.net","host":"185.102.218.112","load":7.59,"multihop_port":20910,"obfs":{"obfs3_multihop_port":20911,"obfs4_multihop_port":20912,"obfs4_key":"RsYbGPn8XBsjDEqiYyHlNQ9E/whBLlfbFAD0hzA68ArgdzWuD4pvwBhcl0ckNwXhYfNALA"},"v2ray":"185.102.218.99","isp":"Datapacket"},{"hostname":"nl3.gw.ivpn.net","dns_name":"nl3.gw.ivpn.net","host":"95.211.172.68","load":16.34,"multihop_port":23101,"obfs":{"obfs3_multihop_port":23102,"obfs4_multihop_port":23103,"obfs4_key":"eUXsScIg0K0LKVgA8yq2Mc++pfnTQ9nr3gnV8n1NIw7wRqinhO6uuXiSS5J19agQaPK1ew"},"v2ray":"95.211.172.72","isp":"Leaseweb"},{"hostname":"nl5.gw.ivpn.net","dns_name":"nl5.gw.ivpn.net","host":"95.211.187.222","load":24.79,"multihop_port":23901,"obfs":{"obfs3_multihop_port":23902,"obfs4_multihop_port":23903,"obfs4_key":"fcWCrzzatLbk1LNKsuQZKpQrC3ZXwQ85GO5xRS467KJBRDrmvnyMb6ARbLGu+gYkTnNELQ"},"v2ray":"95.211.187.225","isp":"Leaseweb"},{"hostname":"nl6.gw.ivpn.net","dns_name":"nl6.gw.ivpn.net","host":"95.211.187.228","load":13.01,"multihop_port":24101,"obfs":{"obfs3_multihop_port":24102,"obfs4_multihop_port":24103,"obfs4_key":"lT3OGPQS1CwwqtalMExN7qxEoDDBLLlcoh5a6YW3DPj8esEBEG6wY5OfYonxltBzoVu4PA"},"v2ray":"95.211.187.231","isp":"Leaseweb"},{"hostname":"nl7.gw.ivpn.net","dns_name":"nl7.gw.ivpn.net","host":"95.211.95.22","load":16.33,"multihop_port":22501,"obfs":{"obfs3_multihop_port":22502,"obfs4_multihop_port":22503,"obfs4_key":"ffMnq7Gc/D7KWoLckJ4t8nf3zZqVdlffe2lVfUCceOyOTdRApkeJGgEai0TI1z76Yey9Lw"},"v2ray":"95.211.172.107","isp":"Leaseweb"},{"hostname":"nl8.gw.ivpn.net","dns_name":"nl8.gw.ivpn.net","host":"95.211.172.18","load":8.32,"multihop_port":22801,"obfs":{"obfs3_multihop_port":22802,"obfs4_multihop_port":22803,"obfs4_key":"h+u/6VkPDJXySoJ6QEM1hOjWPD58OS4AZPP9ofP/yCWGBQpPoMc78l7C74eFvqKKkFAXDw"},"v2ray":"95.211.198.169","isp":"Leaseweb"}]},{"gateway":"no.gw.ivpn.net","country_code":"NO","country":"Norway","city":"Oslo","latitude":59.9167,"longitude":10.75,"isp":"Servetheworld","hosts":[{"hostname":"no1.gw.ivpn.net","dns_name":"no1.gw.ivpn.net","host":"194.242.10.150","load":41.19,"multihop_port":25301,"obfs":{"obfs3_multihop_port":25302,"obfs4_multihop_port":25303,"obfs4_key":"uhLy//KRu6DrYfgDJmwjC6Fxk5h+MRDNOwFe7qzGTjfOiHLWRSoRx6OdNvzjPPXq0ZJnZg"},"v2ray":"217.170.197.28","isp":"Servetheworld"}]},{"gateway":"pe.gw.ivpn.net","country_code":"PE","country":"Peru","city":"Lima","latitude":-12.089,"longitude":-76.9759,"isp":"Datapacket","hosts":[{"hostname":"pe1.gw.ivpn.net","dns_name":"pe1.gw.ivpn.net","host":"79.127.252.65","load":9.51,"multihop_port":20490,"obfs":{"obfs3_multihop_port":20491,"obfs4_multihop_port":20492,"obfs4_key":"ckCu0Xq5Zt5K3wbkJbtg0JwjxnW08NaY9M/pkkL6ENijKB7pIbYjtVrYdYAX/tH2kIBmeg"},"v2ray":"79.127.252.70","isp":"Datapacket"}]},{"gateway":"pl.gw.ivpn.net","country_code":"PL","country":"Poland","city":"Warsaw","latitude":52.25,"longitude":21,"isp":"Datapacket","hosts":[{"hostname":"pl1.gw.ivpn.net","dns_name":"pl1.gw.ivpn.net","host":"185.246.208.86","load":6.47,"multihop_port":25101,"obfs":{"obfs3_multihop_port":25102,"obfs4_multihop_port":25103,"obfs4_key":"S9XZyigxYjF5jWcwYpMmV9HJq4Vni1yQvLKI03n0TJ7csrgsX7lPpFfECAGQruHh1wkMXg"},"v2ray":"185.246.208.87","isp":"Datapacket"}]},{"gateway":"pt.gw.ivpn.net","country_code":"PT","country":"Portugal","city":"Lisbon","latitude":38.7227,"longitude":-9.1449,"isp":"Hostwebis","hosts":[{"hostname":"pt1.gw.ivpn.net","dns_name":"pt1.gw.ivpn.net","host":"94.46.175.112","load":11.56,"multihop_port":27101,"obfs":{"obfs3_multihop_port":27102,"obfs4_multihop_port":27103,"obfs4_key":"NqXqKMt8UF25hYDIwfh2K4Rr4a7F41HzZDGjX7SYwRaoOtrTL665yV6Z3h9wF+/R1YE8KQ"},"v2ray":"94.46.175.130","isp":"Hostwebis"}]},{"gateway":"ro.gw.ivpn.net","country_code":"RO","country":"Romania","city":"Bucharest","latitude":44.4334,"longitude":26.0999,"isp":"M247","hosts":[{"hostname":"ro1.gw.ivpn.net","dns_name":"ro1.gw.ivpn.net","host":"37.120.206.50","load":49.85,"multihop_port":22301,"obfs":{"obfs3_multihop_port":22302,"obfs4_multihop_port":22303,"obfs4_key":"lqfg/sP9uLakoQiA6YI5/kHQ4/FvQTp6jRgxSswjHwC8POOM23FijEWKyykngn1Eb3xfLA"},"v2ray":"185.120.147.58","isp":"M247"}]},{"gateway":"rs.gw.ivpn.net","country_code":"RS","country":"Serbia","city":"Belgrade","latitude":44.8186,"longitude":20.468,"isp":"M247","hosts":[{"hostname":"rs1.gw.ivpn.net","dns_name":"rs1.gw.ivpn.net","host":"141.98.103.250","load":91.75,"multihop_port":26801,"obfs":{"obfs3_multihop_port":26802,"obfs4_multihop_port":26803,"obfs4_key":"0MqgxLrLFQTlQWGAjY9es+Nv45d37/5lulWw0iEFoiUvtzOcbut8hK9AhCis17EXi+lUXw"},"v2ray":"146.70.111.114","isp":"M247"}]},{"gateway":"se.gw.ivpn.net","country_code":"SE","country":"Sweden","city":"Stockholm","latitude":59.3508,"longitude":18.0973,"isp":"GleSyS","hosts":[{"hostname":"se1.gw.ivpn.net","dns_name":"se1.gw.ivpn.net","host":"80.67.10.138","load":32.91,"multihop_port":24001,"obfs":{"obfs3_multihop_port":24002,"obfs4_multihop_port":24003,"obfs4_key":"/yhTV2SsTXlwsG2mCS90ZAYIZivsSyloaFw6VDj0pnpJOuUxXcZBOgdyQ/lfWxJtvHZmPg"},"v2ray":"80.67.10.139","isp":"GleSyS"},{"hostname":"se2.gw.ivpn.net","dns_name":"se2.gw.ivpn.net","host":"37.120.153.228","load":19.09,"multihop_port":20970,"obfs":{"obfs3_multihop_port":20971,"obfs4_multihop_port":20972,"obfs4_key":"xd6oVIT+22zMb84GGO+veRRswXf51ucRiaxpkJ9k84S713VJcpyO2WzCoSd4bi4yLuY0Eg"},"v2ray":"37.120.153.227","isp":"M247"}]},{"gateway":"sg.gw.ivpn.net","country_code":"SG","country":"Singapore","city":"Singapore","latitude":1.293,"longitude":103.8558,"isp":"M247","hosts":[{"hostname":"sg1.gw.ivpn.net","dns_name":"sg1.gw.ivpn.net","host":"185.128.24.186","load":85.21,"multihop_port":26101,"obfs":{"obfs3_multihop_port":26102,"obfs4_multihop_port":26103,"obfs4_key":"0N1ZmZlnyhS/3Y1OhvB0Bk3BGU2LFy0zyuWPYwM/P+mfX57w8zI7/YcBfIXZVgDiStt4MQ"},"v2ray":"146.70.192.138","isp":"M247"},{"hostname":"sg2.gw.ivpn.net","dns_name":"sg2.gw.ivpn.net","host":"37.120.151.124","load":16.64,"multihop_port":20950,"obfs":{"obfs3_multihop_port":20951,"obfs4_multihop_port":20952,"obfs4_key":"aTFzbPtK0zvLwSoUZkanzj+0wFPYg+IXyV01spxcedY5r46rywRCHgt8CRaBgpxhV8YzEA"},"v2ray":"37.120.151.125","isp":"M247"}]},{"gateway":"sk.gw.ivpn.net","country_code":"SK","country":"Slovakia","city":"Bratislava","latitude":48.15,"longitude":17.117,"isp":"Datapacket","hosts":[{"hostname":"sk2.gw.ivpn.net","dns_name":"sk2.gw.ivpn.net","host":"156.146.40.202","load":24,"multihop_port":20400,"obfs":{"obfs3_multihop_port":20401,"obfs4_multihop_port":20402,"obfs4_key":"ALsqb8RNZcvMzBsxnf4WQQYklUL0P6TUhyoXiwK1XPOEcCtW278YediLvTvOMeD5WLkPKg"},"v2ray":"156.146.40.208","isp":"Datapacket"}]},{"gateway":"tw.gw.ivpn.net","country_code":"TW","country":"Taiwan","city":"Taipei","latitude":25.073,"longitude":121.578,"isp":"TheGigabit","hosts":[{"hostname":"tw1.gw.ivpn.net","dns_name":"tw1.gw.ivpn.net","host":"185.189.160.6","load":22.16,"multihop_port":20820,"obfs":{"obfs3_multihop_port":20821,"obfs4_multihop_port":20822,"obfs4_key":"/ilRlB3BkUzUG2yd+++6KeYEF9PEB+3T3XcQhVjfoF8wJH1kgjGXvikjS1j/1SknFpGPaA"},"v2ray":"185.189.160.21","isp":"TheGigabit"}]},{"gateway":"ua.gw.ivpn.net","country_code":"UA","country":"Ukraine","city":"Kyiv","latitude":50.4754,"longitude":30.5461,"isp":"Server.ua","hosts":[{"hostname":"ua2.gw.ivpn.net","dns_name":"ua2.gw.ivpn.net","host":"91.232.28.126","load":9.22,"multihop_port":20450,"obfs":{"obfs3_multihop_port":20451,"obfs4_multihop_port":20452,"obfs4_key":"lEx5hd4iiT/fRyl34m5b/752sAPUr8UIJFh4HIyziOnQgVpcYtviI9Du6qBOb7dOFT0VKg"},"v2ray":"91.232.28.119","isp":"Server.ua"}]},{"gateway":"us-az.gw.ivpn.net","country_code":"US","country":"United States","city":"Phoenix, AZ","latitude":33.455,"longitude":-111.978,"isp":"Tzulo","hosts":[{"hostname":"us-az2.gw.ivpn.net","dns_name":"us-az2.gw.ivpn.net","host":"198.44.133.195","load":7.77,"multihop_port":20350,"obfs":{"obfs3_multihop_port":20351,"obfs4_multihop_port":20352,"obfs4_key":"w312C9Y2spTP0jgZ8WK81WScpsjzhh89KPeo9Oh363xxrlQKemiHeTFTdxWgJPr5jstMMQ"},"v2ray":"198.44.133.200","isp":"Tzulo"}]},{"gateway":"us-ca-sjc.gw.ivpn.net","country_code":"US","country":"United States","city":"San Jose, CA","latitude":37.408,"longitude":-121.893,"isp":"Tzulo","hosts":[{"hostname":"us-ca-sjc1.gw.ivpn.net","dns_name":"us-ca-sjc1.gw.ivpn.net","host":"198.44.134.35","load":9.91,"multihop_port":20370,"obfs":{"obfs3_multihop_port":20371,"obfs4_multihop_port":20372,"obfs4_key":"6uU8G40246SdZd+OHZgXYhNPf/eRe/eZ+siGgzAU05QT7+cZumgh+mTpkVmEPOndcF8HLA"},"v2ray":"198.44.134.40","isp":"Tzulo"}]},{"gateway":"us-ca.gw.ivpn.net","country_code":"US","country":"United States","city":"Los Angeles, CA","latitude":34.1139,"longitude":-118.4068,"isp":"Tzulo","hosts":[{"hostname":"us-ca3.gw.ivpn.net","dns_name":"us-ca3.gw.ivpn.net","host":"198.54.129.99","load":14.68,"multihop_port":21301,"obfs":{"obfs3_multihop_port":21302,"obfs4_multihop_port":21303,"obfs4_key":"rharPyhkUzYwmCP8ZzeaCwnJAmwOqwDTLOlJqzi/kAxMn4OVXtbzCk9Ww8XR31D2rmk3MA"},"v2ray":"198.54.129.212","isp":"Tzulo"},{"hostname":"us-ca5.gw.ivpn.net","dns_name":"us-ca5.gw.ivpn.net","host":"185.180.13.57","load":11.25,"multihop_port":20940,"obfs":{"obfs3_multihop_port":20941,"obfs4_multihop_port":20942,"obfs4_key":"+nBc8v94uD0T/q9QeEcOgHiDODs0XtVxFI5Iw5bJJSD7YA8Bj9HuHkzsxFjVk/RIqKCyHA"},"v2ray":"185.180.13.38","isp":"Datapacket"},{"hostname":"us-ca6.gw.ivpn.net","dns_name":"us-ca6.gw.ivpn.net","host":"185.152.67.8","load":7.38,"multihop_port":20340,"obfs":{"obfs3_multihop_port":20341,"obfs4_multihop_port":20342,"obfs4_key":"XI/Vz2NKJGAOTY5tqN6BgIa2Pq4p9bbXF9yG/HIT82whDKSHqqzQrVVNex38/B99JXC9SA"},"v2ray":"185.152.67.22","isp":"Datapacket"},{"hostname":"us-ca7.gw.ivpn.net","dns_name":"us-ca7.gw.ivpn.net","host":"198.54.129.19","load":5.78,"multihop_port":20360,"obfs":{"obfs3_multihop_port":20361,"obfs4_multihop_port":20362,"obfs4_key":"l5sfflk5U6K7YvmvnMrTg67CgjcfPrv4J4w/bjVv8ldvyw2g0Zmgfwwm49L6iOV8A5NPcw"},"v2ray":"198.54.129.195","isp":"Tzulo"}]},{"gateway":"us-co.gw.ivpn.net","country_code":"US","country":"United States","city":"Denver, CO","latitude":39.749,"longitude":-104.997,"isp":"Datapacket","hosts":[{"hostname":"us-co1.gw.ivpn.net","dns_name":"us-co1.gw.ivpn.net","host":"121.127.44.26","load":25.99,"multihop_port":20560,"obfs":{"obfs3_multihop_port":20561,"obfs4_multihop_port":20562,"obfs4_key":"mupqY+RsAT5UMgL7i4LRuGwAE1xTC7/Y0bBN5SL05dGt0QTlT7oFex/MMjPx2sTBLRHZBQ"},"v2ray":"121.127.44.31","isp":"Datapacket"}]},{"gateway":"us-fl.gw.ivpn.net","country_code":"US","country":"United States","city":"Miami, FL","latitude":25.776,"longitude":-80.193,"isp":"Datapacket","hosts":[{"hostname":"us-fl2.gw.ivpn.net","dns_name":"us-fl2.gw.ivpn.net","host":"195.181.163.72","load":24.59,"multihop_port":20380,"obfs":{"obfs3_multihop_port":20381,"obfs4_multihop_port":20382,"obfs4_key":"hjZz9k3QyS00InRiWxhNoj0bkjKk0Tzxl/EAEzrhCnAH4DIfKqdRpF2KVqhN4t+owpnEag"},"v2ray":"195.181.163.86","isp":"Datapacket"}]},{"gateway":"us-ga.gw.ivpn.net","country_code":"US","country":"United States","city":"Atlanta, GA","latitude":33.749,"longitude":-84.387,"isp":"Datapacket","hosts":[{"hostname":"us-ga3.gw.ivpn.net","dns_name":"us-ga3.gw.ivpn.net","host":"185.93.0.215","load":9,"multihop_port":20900,"obfs":{"obfs3_multihop_port":20901,"obfs4_multihop_port":20902,"obfs4_key":"T+tizn1ig40+uFLUBYtIL43xkkK0v074ZSAM3EfwCzwgE3qPOxJfsPCi2iiGXcBKK0tvLg"},"v2ray":"185.93.0.217","isp":"Datapacket"},{"hostname":"us-ga5.gw.ivpn.net","dns_name":"us-ga5.gw.ivpn.net","host":"198.44.138.51","load":24.16,"multihop_port":20390,"obfs":{"obfs3_multihop_port":20391,"obfs4_multihop_port":20392,"obfs4_key":"WYqQNxVjs1oqw8ckmLqFnWQCLe980g0DwYn/Ceyw7OBlUMaYajSTkAv43zUt0eazzHGeRg"},"v2ray":"198.44.138.56","isp":"Tzulo"}]},{"gateway":"us-il.gw.ivpn.net","country_code":"US","country":"United States","city":"Chicago, IL","latitude":41.887,"longitude":-87.632,"isp":"Datapacket","hosts":[{"hostname":"us-il3.gw.ivpn.net","dns_name":"us-il3.gw.ivpn.net","host":"89.187.181.118","load":51.73,"multihop_port":20930,"obfs":{"obfs3_multihop_port":20931,"obfs4_multihop_port":20932,"obfs4_key":"jKCjgD5H90uS3zpu9Vm+mIvo0QwEIU7f018gZLPGItQ8oZe2iWWfHjAp3DVMTCIJXNusOQ"},"v2ray":"89.187.181.121","isp":"Datapacket"},{"hostname":"us-il4.gw.ivpn.net","dns_name":"us-il4.gw.ivpn.net","host":"68.235.50.195","load":19.24,"multihop_port":20410,"obfs":{"obfs3_multihop_port":20411,"obfs4_multihop_port":20412,"obfs4_key":"LZvOe2brUHBL4TNcpL2DUBNPCQAh9StzltzXzj/3C1rTbWKDuIzjt1hioSVMxhBB80pzDg"},"v2ray":"68.235.50.200","isp":"Tzulo"},{"hostname":"us-il5.gw.ivpn.net","dns_name":"us-il5.gw.ivpn.net","host":"68.235.50.211","load":12.11,"multihop_port":20420,"obfs":{"obfs3_multihop_port":20421,"obfs4_multihop_port":20422,"obfs4_key":"8x9qetgJQPAXO53JSFKdF33Ntsri/azaW706XihoibFIx/JB5oh4gWC17LfW5Vz/gFO8Mg"},"v2ray":"68.235.50.216","isp":"Tzulo"}]},{"gateway":"us-ma.gw.ivpn.net","country_code":"US","country":"United States","city":"Boston, MA","latitude":42.376,"longitude":-71.078,"isp":"Datapacket","hosts":[{"hostname":"us-ma1.gw.ivpn.net","dns_name":"us-ma1.gw.ivpn.net","host":"109.61.86.47","load":77.37,"multihop_port":20870,"obfs":{"obfs3_multihop_port":20871,"obfs4_multihop_port":20872,"obfs4_key":"6gPx3OetMICSn/v9I/boxkZX1Me3J823v/QxJNGM1h2noy6XxkLXRpyGCASZe/frLEMIdA"},"v2ray":"109.61.86.52","isp":"Datapacket"}]},{"gateway":"us-nj.gw.ivpn.net","country_code":"US","country":"United States","city":"Secaucus, NJ","latitude":40.737764,"longitude":-74.151747,"isp":"M247","hosts":[{"hostname":"us-nj4.gw.ivpn.net","dns_name":"us-nj4.gw.ivpn.net","host":"194.36.111.50","load":26.18,"multihop_port":27401,"obfs":{"obfs3_multihop_port":27402,"obfs4_multihop_port":27403,"obfs4_key":"lHDLT6cTgt0bh3ysogDdiXL4eWGRtJZ0cZGJmvpeK0YLUAsBfsOzKv46V0iv5ykwRPm6Mg"},"v2ray":"37.120.202.42","isp":"M247"}]},{"gateway":"us-nv.gw.ivpn.net","country_code":"US","country":"United States","city":"Las Vegas, NV","latitude":36.2333,"longitude":-115.2654,"isp":"M247","hosts":[{"hostname":"us-nv1.gw.ivpn.net","dns_name":"us-nv1.gw.ivpn.net","host":"185.242.5.34","load":11.7,"multihop_port":26501,"obfs":{"obfs3_multihop_port":26502,"obfs4_multihop_port":26503,"obfs4_key":"Kux7OTSrUOkklATpG67hJPz7xCWpW6eD9Qdw2GNKAmaaPA5zvPC3SXQRvyrYdyAAqMXMfg"},"v2ray":"185.242.5.146","isp":"M247"}]},{"gateway":"us-ny.gw.ivpn.net","country_code":"US","country":"United States","city":"New York, NY","latitude":40.6943,"longitude":-73.9249,"isp":"M247","hosts":[{"hostname":"us-ny2.gw.ivpn.net","dns_name":"us-ny2.gw.ivpn.net","host":"212.103.48.194","load":5.49,"multihop_port":21801,"obfs":{"obfs3_multihop_port":21802,"obfs4_multihop_port":21803,"obfs4_key":"GtK9yCXTtrLOrf0MTWdWqjzQ1vd1eKsVjiOuR5CiVaDf4dCSalyJ+kmik4nfU9Gj6UwcCg"},"v2ray":"212.103.48.199","isp":"M247"},{"hostname":"us-ny3.gw.ivpn.net","dns_name":"us-ny3.gw.ivpn.net","host":"89.187.178.144","load":5.31,"multihop_port":27601,"obfs":{"obfs3_multihop_port":27602,"obfs4_multihop_port":27603,"obfs4_key":"eL/9iKx6f5bHowNJBsT2E/Aag5w8Cvtb3DduySudJmuK2GtIOUwNzS33lFZwSUEnJIYwLg"},"v2ray":"89.187.178.150","isp":"Datapacket"},{"hostname":"us-ny4.gw.ivpn.net","dns_name":"us-ny4.gw.ivpn.net","host":"91.132.137.172","load":8.85,"multihop_port":20990,"obfs":{"obfs3_multihop_port":20991,"obfs4_multihop_port":20992,"obfs4_key":"P4Cw+PtgDKh6YfQAu7seQj4DJpRpdphchOCukV/Bum+yTaY2cOl9FcOzB+2O5l4gGy0iSA"},"v2ray":"91.132.137.173","isp":"M247"}]},{"gateway":"us-tx.gw.ivpn.net","country_code":"US","country":"United States","city":"Dallas, TX","latitude":32.912,"longitude":-96.785,"isp":"Datapacket","hosts":[{"hostname":"us-tx4.gw.ivpn.net","dns_name":"us-tx4.gw.ivpn.net","host":"89.187.164.114","load":6.78,"multihop_port":20300,"obfs":{"obfs3_multihop_port":20301,"obfs4_multihop_port":20302,"obfs4_key":"/HpSOdr8Uy7XJE/OtakmxEOFauDUfXr0/YW7ot9vG9BQhMRFEhwwHmfFW5MIsrlsukzJUA"},"v2ray":"89.187.164.120","isp":"Datapacket"},{"hostname":"us-tx6.gw.ivpn.net","dns_name":"us-tx6.gw.ivpn.net","host":"198.44.137.195","load":25.22,"multihop_port":20430,"obfs":{"obfs3_multihop_port":20431,"obfs4_multihop_port":20432,"obfs4_key":"En3wxWJvDOtmq5iIC/OqNzXcgoJA+X7ySJRReUKi4Oyi8NpQPRI7dl9D98ixSo9Txm2CdA"},"v2ray":"198.44.137.200","isp":"Tzulo"}]},{"gateway":"us-ut.gw.ivpn.net","country_code":"US","country":"United States","city":"Salt Lake City, Utah","latitude":40.75,"longitude":-111.88,"isp":"Tzulo","hosts":[{"hostname":"us-ut2.gw.ivpn.net","dns_name":"us-ut2.gw.ivpn.net","host":"198.44.139.90","load":5.59,"multihop_port":24402,"obfs":{"obfs3_multihop_port":24403,"obfs4_multihop_port":24404,"obfs4_key":"Ep7H6ph1j888uY/stsYPggfOL6RqsUyFpGAWkd/rYCrj/AX72hQxVWG6aCiQiQQ2cSHACw"},"v2ray":"198.44.139.91","isp":"Tzulo"}]},{"gateway":"us-va.gw.ivpn.net","country_code":"US","country":"United States","city":"Ashburn, VA","latitude":39.0437,"longitude":-77.4875,"isp":"Datapacket","hosts":[{"hostname":"us-va1.gw.ivpn.net","dns_name":"us-va1.gw.ivpn.net","host":"37.19.206.105","load":6.15,"multihop_port":27701,"obfs":{"obfs3_multihop_port":27702,"obfs4_multihop_port":27703,"obfs4_key":"5Lk8BSID+M9QAGSglQTrYkom+V0mkIv0HgR80+9vKCcnZOu0f+aJhfOXqKnpHarJbIEHCw"},"v2ray":"37.19.206.111","isp":"Datapacket"}]},{"gateway":"us-wa.gw.ivpn.net","country_code":"US","country":"United States","city":"Seattle, WA","latitude":47.62,"longitude":-122.34,"isp":"Tzulo","hosts":[{"hostname":"us-wa2.gw.ivpn.net","dns_name":"us-wa2.gw.ivpn.net","host":"198.44.131.3","load":9.22,"multihop_port":27801,"obfs":{"obfs3_multihop_port":27802,"obfs4_multihop_port":27803,"obfs4_key":"9h0W5BTzGSDpY2tGjdvViSJfEkT/BuwHS0cnFX07cEj3RRDtmxsC0f+kapO8+Kh+fz1XMQ"},"v2ray":"198.44.131.20","isp":"Tzulo"}]},{"gateway":"za.gw.ivpn.net","country_code":"ZA","country":"South Africa","city":"Johannesburg","latitude":-26.195,"longitude":28.034,"isp":"Datapacket","hosts":[{"hostname":"za1.gw.ivpn.net","dns_name":"za1.gw.ivpn.net","host":"169.150.238.103","load":17.31,"multihop_port":20840,"obfs":{"obfs3_multihop_port":20841,"obfs4_multihop_port":20842,"obfs4_key":"vM1zdiOMhoqMKZCOi/lMj7TfWJb5/UsM25p8FE/AUezwbYWhUkhpD5RbXBOBDNhZuYzPGA"},"v2ray":"169.150.238.109","isp":"Datapacket"}]}],"config":{"antitracker":{"default":{"ip":"10.0.254.2","multihop-ip":"10.0.254.102"},"hardcore":{"ip":"10.0.254.3","multihop-ip":"10.0.254.103"}},"antitracker_plus":{"DnsServers":[{"Name":"Basic","Description":"Basic","Normal":"10.0.254.4","Hardcore":"10.0.254.5"},{"Name":"Comprehensive","Description":"Comprehensive","Normal":"10.0.254.6","Hardcore":"10.0.254.7"},{"Name":"Restrictive","Description":"Restrictive","Normal":"10.0.254.18","Hardcore":"10.0.254.19"},{"Name":"Easylist","Description":"EasyList + EasyPrivacy","Normal":"10.0.254.14","Hardcore":"10.0.254.15"},{"Name":"Oisdbig","Description":"OISD Big","Normal":"10.0.254.2","Hardcore":"10.0.254.3"},{"Name":"Stevenblack","Description":"Steven Black Unified + Ads + Malware","Normal":"10.0.254.20","Hardcore":"10.0.254.21"},{"Name":"Hagezilight","Description":"Hagezi Light","Normal":"10.0.254.22","Hardcore":"10.0.254.23"},{"Name":"Hagezipro","Description":"Hagezi Pro","Normal":"10.0.254.10","Hardcore":"10.0.254.11"},{"Name":"Hageziproplus","Description":"Hagezi Pro++","Normal":"10.0.254.24","Hardcore":"10.0.254.25"},{"Name":"Hageziultimate","Description":"Hagezi Ultimate","Normal":"10.0.254.12","Hardcore":"10.0.254.13"}]},"api":{"ips":["198.50.177.220","149.56.162.156","198.50.177.222","149.56.162.159","198.50.177.223"],"ipv6s":["2607:5300:203:1735::8888","2607:5300:203:1735::8","2607:5300:203:1735:6580:7300:0:aaaa"]},"ports":{"test":[{"echoserver":"37.187.112.240"}],"openvpn":[{"type":"UDP","port":53},{"type":"UDP","port":80},{"type":"UDP","range":{"min":5500,"max":19999}},{"type":"UDP","range":{"min":60000,"max":65000}},{"type":"UDP","port":123},{"type":"UDP","port":2049},{"type":"UDP","range":{"min":50000,"max":59999}},{"type":"UDP","port":2050},{"type":"UDP","range":{"min":40000,"max":49999}},{"type":"UDP","port":443},{"type":"UDP","port":1194},{"type":"UDP","range":{"min":30000,"max":39999}},{"type":"TCP","port":80},{"type":"TCP","port":443},{"type":"TCP","port":1194},{"type":"TCP","port":2049},{"type":"TCP","port":2050},{"type":"TCP","port":30587},{"type":"TCP","port":41893},{"type":"TCP","port":48574},{"type":"TCP","port":58237},{"type":"TCP","range":{"min":5500,"max":19999}},{"type":"TCP","range":{"min":30000,"max":65000}}],"wireguard":[{"type":"UDP","port":53},{"type":"UDP","port":80},{"type":"UDP","port":123},{"type":"UDP","port":443},{"type":"UDP","port":500},{"type":"UDP","port":1194},{"type":"UDP","port":2049},{"type":"UDP","port":2050},{"type":"UDP","port":4500},{"type":"UDP","port":30587},{"type":"UDP","port":41893},{"type":"UDP","port":48574},{"type":"UDP","port":58237},{"type":"UDP","range":{"min":5500,"max":19999}},{"type":"UDP","range":{"min":30000,"max":65000}}],"obfs3":{"port":5145},"obfs4":{"port":5146},"v2ray":{"id":"27de860d-5601-412d-8b71-baa048a94b98","openvpn":[{"type":"UDP","port":20501},{"type":"UDP","port":20502},{"type":"UDP","port":20503},{"type":"UDP","port":20504},{"type":"TCP","port":1443}],"wireguard":[{"type":"UDP","port":15351}]}}}} diff --git a/IVPNClient/Managers/NavigationManager.swift b/IVPNClient/Managers/NavigationManager.swift index 5432be74..3a24db9d 100644 --- a/IVPNClient/Managers/NavigationManager.swift +++ b/IVPNClient/Managers/NavigationManager.swift @@ -47,6 +47,32 @@ class NavigationManager { return navController! } + static func getChangePlanViewController() -> UIViewController { + let storyBoard = UIStoryboard(name: "Signup", bundle: nil) + let navController = storyBoard.instantiateViewController(withIdentifier: "selectPlanView") as? UINavigationController + navController?.modalPresentationStyle = .formSheet + + if let viewController = navController?.topViewController as? SelectPlanViewController { + let serviceType = ServiceType.getType(currentPlan: Application.shared.serviceStatus.currentPlan) + viewController.changingPlan = true + viewController.service = Service(type: serviceType, duration: .month) + } + + return navController! + } + + static func getSelectPlanViewController() -> UIViewController { + let storyBoard = UIStoryboard(name: "Signup", bundle: nil) + let navController = storyBoard.instantiateViewController(withIdentifier: "selectPlanView") as? UINavigationController + navController?.modalPresentationStyle = .formSheet + + if let viewController = navController?.topViewController as? SelectPlanViewController { + viewController.selectingPlan = true + } + + return navController! + } + static func getSubscriptionViewController() -> UIViewController { let storyBoard = UIStoryboard(name: "Signup", bundle: nil) let navController = storyBoard.instantiateViewController(withIdentifier: "subscriptionView") as? UINavigationController diff --git a/IVPNClient/Models/ProductId.swift b/IVPNClient/Models/ProductId.swift index 5980a7b7..f7e38871 100644 --- a/IVPNClient/Models/ProductId.swift +++ b/IVPNClient/Models/ProductId.swift @@ -30,6 +30,11 @@ struct ProductId { static let standardYear = "net.ivpn.subscriptions.standard.1year" static let standardTwoYears = "net.ivpn.subscriptions.standard.2year" static let standardThreeYears = "net.ivpn.subscriptions.standard.3year" + static let proWeek = "net.ivpn.subscriptions.pro.1week" + static let proMonth = "net.ivpn.subscriptions.pro.1month" + static let proYear = "net.ivpn.subscriptions.pro.1year" + static let proTwoYears = "net.ivpn.subscriptions.pro.2year" + static let proThreeYears = "net.ivpn.subscriptions.pro.3year" static var all: Set { return [ @@ -37,7 +42,12 @@ struct ProductId { standardMonth, standardYear, standardTwoYears, - standardThreeYears + standardThreeYears, + proWeek, + proMonth, + proYear, + proTwoYears, + proThreeYears ] } diff --git a/IVPNClient/Models/Service.swift b/IVPNClient/Models/Service.swift index 6c9fff8c..4058448a 100644 --- a/IVPNClient/Models/Service.swift +++ b/IVPNClient/Models/Service.swift @@ -56,40 +56,90 @@ struct Service { } var discountText: String? { - switch duration { - case .week: + switch type { + case .standard: + switch duration { + case .week: + return nil + case .month: + return nil + case .year: + return "-16%" + case .twoYears: + return "-30%" + case .threeYears: + return "-35%" + } + case .pro: + switch duration { + case .week: + return nil + case .month: + return nil + case .year: + return "-16%" + case .twoYears: + return "-33%" + case .threeYears: + return "-38%" + } + case .plus: return nil - case .month: - return nil - case .year: - return "-16%" - case .twoYears: - return "-30%" - case .threeYears: - return "-35%" } } var productId: String { - switch duration { - case .week: - return ProductId.standardWeek - case .month: - return ProductId.standardMonth - case .year: - return ProductId.standardYear - case .twoYears: - return ProductId.standardTwoYears - case .threeYears: - return ProductId.standardThreeYears + switch type { + case .standard: + switch duration { + case .week: + return ProductId.standardWeek + case .month: + return ProductId.standardMonth + case .year: + return ProductId.standardYear + case .twoYears: + return ProductId.standardTwoYears + case .threeYears: + return ProductId.standardThreeYears + } + case .pro: + switch duration { + case .week: + return ProductId.proWeek + case .month: + return ProductId.proMonth + case .year: + return ProductId.proYear + case .twoYears: + return ProductId.proTwoYears + case .threeYears: + return ProductId.proThreeYears + } + case .plus: + return "" } } var typeText: String { - return "Standard" + switch type { + case .standard: + return "Standard" + case .pro: + return "Pro" + case .plus: + return "Plus" + } } var collection: [Service] { + if Application.shared.authentication.isLoggedIn && !Application.shared.serviceStatus.isNewStyleAccount() { + return [ + Service(type: type, duration: .month), + Service(type: type, duration: .year) + ] + } + return ServiceDuration.allCases.map { Service(type: type, duration: $0) } } diff --git a/IVPNClient/Scenes/Signup.storyboard b/IVPNClient/Scenes/Signup.storyboard index 5df7b80a..c2f2a4d2 100644 --- a/IVPNClient/Scenes/Signup.storyboard +++ b/IVPNClient/Scenes/Signup.storyboard @@ -1043,3 +1043,422 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/IVPNClient/Scenes/Signup/LoginViewController.swift b/IVPNClient/Scenes/Signup/LoginViewController.swift index 06e61ced..4924a97d 100644 --- a/IVPNClient/Scenes/Signup/LoginViewController.swift +++ b/IVPNClient/Scenes/Signup/LoginViewController.swift @@ -290,13 +290,9 @@ extension LoginViewController { KeyChain.username = (self.userName.text ?? "").trim() guard !Application.shared.serviceStatus.isLegacyAccount() else { - createSessionSuccess() - return - } - - let serviceType = ServiceType.getType(currentPlan: Application.shared.serviceStatus.currentPlan) - guard serviceType == .standard else { - createSessionSuccess() + navigationController?.dismiss(animated: true, completion: { + NotificationCenter.default.post(name: Notification.Name.UpdateFloatingPanelLayout, object: nil) + }) return } @@ -315,18 +311,7 @@ extension LoginViewController { KeyChain.tempUsername = (self.userName.text ?? "").trim() Application.shared.authentication.removeStoredCredentials() - guard !Application.shared.serviceStatus.isLegacyAccount() else { - createSessionSuccess() - return - } - - let serviceType = ServiceType.getType(currentPlan: Application.shared.serviceStatus.currentPlan) - guard serviceType == .standard else { - createSessionSuccess() - return - } - - let viewController = NavigationManager.getSubscriptionViewController() + let viewController = NavigationManager.getSelectPlanViewController() viewController.presentationController?.delegate = self present(viewController, animated: true, completion: nil) diff --git "a/IVPNClient/Scenes/Signup/SelectPlan/SelectPlanViewController.swift\342\200\216.swift" "b/IVPNClient/Scenes/Signup/SelectPlan/SelectPlanViewController.swift\342\200\216.swift" new file mode 100644 index 00000000..64a47463 --- /dev/null +++ "b/IVPNClient/Scenes/Signup/SelectPlan/SelectPlanViewController.swift\342\200\216.swift" @@ -0,0 +1,276 @@ +// +// SelectPlanViewController.swift +// IVPN iOS app +// https://github.com/ivpn/ios-app +// +// Created by Juraj Hilje on 2020-04-15. +// Copyright (c) 2023 IVPN Limited. +// +// This file is part of the IVPN iOS app. +// +// The IVPN iOS app is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License as published by the Free +// Software Foundation, either version 3 of the License, or (at your option) any later version. +// +// The IVPN iOS app is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// You should have received a copy of the GNU General Public License +// along with the IVPN iOS app. If not, see . +// + +import UIKit +import SnapKit +import JGProgressHUD + +class SelectPlanViewController: UITableViewController { + + // MARK: - @IBOutlets - + + @IBOutlet weak var selectPlanView: SelectPlanView? + + // MARK: - Properties - + + var changingPlan = false + var selectingPlan = false + var standardWeekService = Service(type: .standard, duration: .week) + var standardMonthService = Service(type: .standard, duration: .month) + var standardYearService = Service(type: .standard, duration: .year) + var proWeekService = Service(type: .pro, duration: .week) + var proMonthService = Service(type: .pro, duration: .month) + var proYearService = Service(type: .pro, duration: .year) + + var service = Service(type: .standard, duration: .month) { + didSet { + if changingPlan { + selectPlanView?.setupView(service: service) + } + } + } + + lazy var spinner: UIActivityIndicatorView = { + let spinner = UIActivityIndicatorView() + spinner.hidesWhenStopped = true + spinner.startAnimating() + return spinner + }() + + lazy var retryButton: UIButton = { + let button = UIButton(type: .system) + button.addTarget(self, action: #selector(load), for: .touchUpInside) + button.setTitle("Retry", for: .normal) + button.sizeToFit() + button.isHidden = true + return button + }() + + var displayMode: DisplayMode = .loading { + didSet { + switch displayMode { + case .loading: + spinner.startAnimating() + tableView.separatorStyle = .none + retryButton.isHidden = true + case .content: + spinner.stopAnimating() + tableView.separatorStyle = .singleLine + retryButton.isHidden = true + case .error: + spinner.stopAnimating() + tableView.separatorStyle = .none + retryButton.isHidden = false + } + + tableView.reloadData() + } + } + + private let hud = JGProgressHUD(style: .dark) + private var segueStarted = false + + // MARK: - @IBActions - + + @IBAction func selectStandard(_ sender: UIButton) { + if changingPlan { + changePlan(type: .standard) + return + } + + guard !segueStarted else { return } + segueStarted = true + performSegue(withIdentifier: "selectStandardPlan", sender: nil) + } + + @IBAction func selectPro(_ sender: UIButton) { + if changingPlan { + changePlan(type: .pro) + return + } + + guard !segueStarted else { return } + segueStarted = true + performSegue(withIdentifier: "selectProPlan", sender: nil) + } + + // MARK: - View lifecycle - + + override func viewDidLoad() { + super.viewDidLoad() + initNavigation() + setupView() + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + // iOS 13 UIKit bug: https://forums.developer.apple.com/thread/121861 + // Remove when fixed in future releases + navigationController?.navigationBar.setNeedsLayout() + } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + + if displayMode == .loading { + load() + } + + segueStarted = false + } + + // MARK: - Segues - + + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + if segue.identifier == "selectStandardPlan" { + let viewController = segue.destination as! PaymentViewController + viewController.service = Service(type: .standard, duration: .year) + } + + if segue.identifier == "selectProPlan" { + let viewController = segue.destination as! PaymentViewController + viewController.service = Service(type: .pro, duration: .year) + } + } + + // MARK: - Private methods - + + private func initNavigation() { + navigationController?.navigationBar.prefersLargeTitles = false + + if changingPlan { + navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(dismissViewController)) + navigationItem.rightBarButtonItem = nil + } else if selectingPlan { + navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Close", style: .plain, target: self, action: #selector(dismissViewController)) + } else { + let button = UIButton(type: .system) + button.setImage(UIImage(named: "icon-arrow-left"), for: .normal) + button.sizeToFit() + button.addTarget(self, action: #selector(backButtonPressed), for: .touchUpInside) + navigationItem.leftBarButtonItem = UIBarButtonItem(customView: button) + } + } + + @objc private func backButtonPressed() { + navigationController?.popViewController(animated: true) + } + + private func setupView() { + isModalInPresentation = true + tableView.separatorStyle = .none + view.addSubview(spinner) + view.addSubview(retryButton) + + spinner.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.centerY.equalToSuperview().offset(-80) + } + + retryButton.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.centerY.equalToSuperview().offset(-80) + } + + if changingPlan { + selectPlanView?.setupView(service: service) + } + } + + @objc private func load() { + Task { + await loadProducts() + } + } + + private func loadProducts() async { + displayMode = .loading + + do { + try await PurchaseManager.shared.loadProducts() + updateSubscriptions() + displayMode = .content + } catch { + showAlert(title: "iTunes Store error", message: "Cannot connect to iTunes Store") + displayMode = .error + } + } + + private func changePlan(type: ServiceType) { + hud.indicatorView = JGProgressHUDIndeterminateIndicatorView() + hud.detailTextLabel.text = "Changing plan..." + hud.show(in: (navigationController?.view)!) + + let request = ApiRequestDI(method: .get, endpoint: Config.apiGeoLookup) + ApiService.shared.request(request) { [weak self] (result: Result) in + guard let self = self else { return } + + self.hud.dismiss() + + switch result { + case .success: + self.service = Service(type: type, duration: .month) + case .failure: + break + } + } + } + + private func updateSubscriptions() { + selectPlanView?.standardWeekPriceLabel.text = "\(standardWeekService.priceText) / \(standardWeekService.durationText)" + selectPlanView?.standardMonthPriceLabel.text = "\(standardMonthService.priceText) / \(standardMonthService.durationText)" + selectPlanView?.standardYearPriceLabel.text = "\(standardYearService.priceText) / \(standardYearService.durationText)" + selectPlanView?.proWeekPriceLabel.text = "\(proWeekService.priceText) / \(proWeekService.durationText)" + selectPlanView?.proMonthPriceLabel.text = "\(proMonthService.priceText) / \(proMonthService.durationText)" + selectPlanView?.proYearPriceLabel.text = "\(proYearService.priceText) / \(proYearService.durationText)" + } + +} + +// MARK: - UITableViewDelegate - + +extension SelectPlanViewController { + + override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + guard displayMode == .content else { + return 0 + } + + if indexPath.row == 1 { + return 260 + } + + return 226 + } + +} + +extension SelectPlanViewController { + + enum DisplayMode { + case loading + case content + case error + } + +} diff --git a/IVPNClient/Scenes/Signup/SelectPlan/View/PlanLabel.swift b/IVPNClient/Scenes/Signup/SelectPlan/View/PlanLabel.swift new file mode 100644 index 00000000..66b7f45e --- /dev/null +++ b/IVPNClient/Scenes/Signup/SelectPlan/View/PlanLabel.swift @@ -0,0 +1,32 @@ +// +// PlanLabel.swift +// IVPN iOS app +// https://github.com/ivpn/ios-app +// +// Created by Juraj Hilje on 2020-04-16. +// Copyright (c) 2023 IVPN Limited. +// +// This file is part of the IVPN iOS app. +// +// The IVPN iOS app is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License as published by the Free +// Software Foundation, either version 3 of the License, or (at your option) any later version. +// +// The IVPN iOS app is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// You should have received a copy of the GNU General Public License +// along with the IVPN iOS app. If not, see . +// + +import UIKit + +class PlanLabel: UILabel { + + override func awakeFromNib() { + icon(text: text!, imageName: "icon-check-grey-small", alignment: .left) + } + +} diff --git a/IVPNClient/Scenes/Signup/SelectPlan/View/SelectPlanView.swift b/IVPNClient/Scenes/Signup/SelectPlan/View/SelectPlanView.swift new file mode 100644 index 00000000..72a167cb --- /dev/null +++ b/IVPNClient/Scenes/Signup/SelectPlan/View/SelectPlanView.swift @@ -0,0 +1,98 @@ +// +// SelectPlanView.swift +// IVPN iOS app +// https://github.com/ivpn/ios-app +// +// Created by Juraj Hilje on 2020-04-16. +// Copyright (c) 2023 IVPN Limited. +// +// This file is part of the IVPN iOS app. +// +// The IVPN iOS app is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License as published by the Free +// Software Foundation, either version 3 of the License, or (at your option) any later version. +// +// The IVPN iOS app is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// You should have received a copy of the GNU General Public License +// along with the IVPN iOS app. If not, see . +// + +import UIKit +import SnapKit + +class SelectPlanView: UITableView { + + // MARK: - @IBOutlets - + + @IBOutlet weak var messageLabel: UILabel! + @IBOutlet weak var standardView: UIStackView! + @IBOutlet weak var proView: UIStackView! + @IBOutlet weak var standardWeekPriceLabel: UILabel! + @IBOutlet weak var standardMonthPriceLabel: UILabel! + @IBOutlet weak var standardYearPriceLabel: UILabel! + @IBOutlet weak var proWeekPriceLabel: UILabel! + @IBOutlet weak var proMonthPriceLabel: UILabel! + @IBOutlet weak var proYearPriceLabel: UILabel! + @IBOutlet weak var standardButton: UIButton! + @IBOutlet weak var proButton: UIButton! + @IBOutlet weak var standardCurrentLabel: UILabel! + @IBOutlet weak var proCurrentLabel: UILabel! + + // MARK: - View lifecycle - + + override func awakeFromNib() { + setupLayout() + } + + // MARK: - Methods - + + func setupView(service: Service) { + switch service.type { + case .standard: + standardButton.backgroundColor = UIColor.init(named: Theme.ivpnBlue) + standardButton.set(title: "Select", subtitle: "(Will be active until \(service.willBeActiveUntil))") + proButton.backgroundColor = UIColor.init(named: Theme.ivpnGray5) + proButton.set(title: "Select", subtitle: "") + standardCurrentLabel.isHidden = false + proCurrentLabel.isHidden = true + case .pro: + standardButton.backgroundColor = UIColor.init(named: Theme.ivpnGray5) + standardButton.set(title: "Select", subtitle: "") + proButton.backgroundColor = UIColor.init(named: Theme.ivpnBlue) + proButton.set(title: "Select", subtitle: "(Will be active until \(service.willBeActiveUntil))") + standardCurrentLabel.isHidden = true + proCurrentLabel.isHidden = false + case .plus: + break + } + } + + // MARK: - Private methods - + + private func setupLayout() { + messageLabel.sizeToFit() + + if UIDevice.current.userInterfaceIdiom == .pad { + messageLabel.snp.makeConstraints { make in + make.left.equalTo(21) + make.right.equalTo(-21) + } + + standardView.snp.makeConstraints { make in + make.left.equalTo(21) + make.right.equalTo(-21) + } + + proView.snp.makeConstraints { make in + make.left.equalTo(21) + make.right.equalTo(-21) + } + } + + } + +} diff --git a/IVPNClient/Scenes/ViewControllers/SettingsViewController.swift b/IVPNClient/Scenes/ViewControllers/SettingsViewController.swift index 8294f454..8a7a99b7 100644 --- a/IVPNClient/Scenes/ViewControllers/SettingsViewController.swift +++ b/IVPNClient/Scenes/ViewControllers/SettingsViewController.swift @@ -238,7 +238,7 @@ class SettingsViewController: UITableViewController { } let serviceType = ServiceType.getType(currentPlan: Application.shared.serviceStatus.currentPlan) - guard serviceType == .standard else { + guard (serviceType == .standard || serviceType == .pro) else { return } diff --git a/IVPNClient/Utilities/Extensions/UIViewController+Ext.swift b/IVPNClient/Utilities/Extensions/UIViewController+Ext.swift index 366ec34e..c4da9553 100644 --- a/IVPNClient/Utilities/Extensions/UIViewController+Ext.swift +++ b/IVPNClient/Utilities/Extensions/UIViewController+Ext.swift @@ -249,7 +249,7 @@ extension UIViewController { private func handleInactiveService() { let serviceType = ServiceType.getType(currentPlan: Application.shared.serviceStatus.currentPlan) - if serviceType == .standard && !Application.shared.serviceStatus.isLegacyAccount() { + if (serviceType == .standard || serviceType == .pro) && !Application.shared.serviceStatus.isLegacyAccount() { presentSubscriptionViewController() } else { showAlert(title: "Your account is expired", message: "Please renew your account to use this feature.") diff --git a/IVPNClient/ViewModels/AccountViewModel.swift b/IVPNClient/ViewModels/AccountViewModel.swift index 24979c36..32fa11b2 100644 --- a/IVPNClient/ViewModels/AccountViewModel.swift +++ b/IVPNClient/ViewModels/AccountViewModel.swift @@ -64,7 +64,7 @@ struct AccountViewModel { } var showAddMoreTime: Bool { - return serviceType == .standard && !Application.shared.serviceStatus.isLegacyAccount() + return (serviceType == .standard || serviceType == .pro) && !Application.shared.serviceStatus.isLegacyAccount() } // MARK: - Initialize - diff --git a/IVPNClient/ViewModels/InfoAlertViewModel.swift b/IVPNClient/ViewModels/InfoAlertViewModel.swift index ce18e9ff..4995a060 100644 --- a/IVPNClient/ViewModels/InfoAlertViewModel.swift +++ b/IVPNClient/ViewModels/InfoAlertViewModel.swift @@ -57,7 +57,7 @@ class InfoAlertViewModel { switch infoAlert { case .subscriptionExpiration: let serviceType = ServiceType.getType(currentPlan: Application.shared.serviceStatus.currentPlan) - if serviceType != .standard || Application.shared.serviceStatus.isLegacyAccount() { + if serviceType == .plus || Application.shared.serviceStatus.isLegacyAccount() { return "" } return "RENEW" From d7eac79dacae1d4ac173ab9f9184c1a570d991c4 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 3 Jun 2026 16:34:27 +0200 Subject: [PATCH 03/13] feat: update ServiceTitleTableViewCell.swift --- IVPNClient/Scenes/Signup.storyboard | 2 +- IVPNClient/Scenes/Signup/Payment/PaymentViewController.swift | 1 + IVPNClient/Scenes/TableCells/ServiceTitleTableViewCell.swift | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/IVPNClient/Scenes/Signup.storyboard b/IVPNClient/Scenes/Signup.storyboard index c2f2a4d2..81063525 100644 --- a/IVPNClient/Scenes/Signup.storyboard +++ b/IVPNClient/Scenes/Signup.storyboard @@ -293,7 +293,7 @@ - + diff --git a/IVPNClient/Scenes/Signup/Payment/PaymentViewController.swift b/IVPNClient/Scenes/Signup/Payment/PaymentViewController.swift index f9f7f4d5..1c3c45fc 100644 --- a/IVPNClient/Scenes/Signup/Payment/PaymentViewController.swift +++ b/IVPNClient/Scenes/Signup/Payment/PaymentViewController.swift @@ -233,6 +233,7 @@ extension PaymentViewController { if indexPath.row == 0 { let cell = tableView.dequeueReusableCell(withIdentifier: "ServiceTitleTableViewCell", for: indexPath) as! ServiceTitleTableViewCell cell.service = service.collection[0] + cell.changeButton.isHidden = extendingService cell.selectionStyle = .none return cell } diff --git a/IVPNClient/Scenes/TableCells/ServiceTitleTableViewCell.swift b/IVPNClient/Scenes/TableCells/ServiceTitleTableViewCell.swift index 5d19f9d1..805a100c 100644 --- a/IVPNClient/Scenes/TableCells/ServiceTitleTableViewCell.swift +++ b/IVPNClient/Scenes/TableCells/ServiceTitleTableViewCell.swift @@ -26,6 +26,7 @@ import UIKit class ServiceTitleTableViewCell: UITableViewCell { @IBOutlet weak var titleLabel: UILabel! + @IBOutlet weak var changeButton: UIButton! var service: Service! { didSet { From adc3edf2054ef70500862cbc05c5a7215fc855b1 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 3 Jun 2026 16:38:08 +0200 Subject: [PATCH 04/13] feat: update Signup.storyboard --- IVPNClient/Scenes/Signup.storyboard | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/IVPNClient/Scenes/Signup.storyboard b/IVPNClient/Scenes/Signup.storyboard index 81063525..83f9f470 100644 --- a/IVPNClient/Scenes/Signup.storyboard +++ b/IVPNClient/Scenes/Signup.storyboard @@ -346,7 +346,7 @@ - - + @@ -780,7 +780,7 @@ - - + From 2d2c78ebd65c4d8832143967c891d7d333f6ec9f Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 3 Jun 2026 19:57:37 +0200 Subject: [PATCH 05/13] feat: update Signup.storyboard --- IVPNClient/Models/Service.swift | 2 +- IVPNClient/Scenes/Signup.storyboard | 111 ++++++++++------------------ 2 files changed, 42 insertions(+), 71 deletions(-) diff --git a/IVPNClient/Models/Service.swift b/IVPNClient/Models/Service.swift index 4058448a..c1dc3812 100644 --- a/IVPNClient/Models/Service.swift +++ b/IVPNClient/Models/Service.swift @@ -126,7 +126,7 @@ struct Service { case .standard: return "Standard" case .pro: - return "Pro" + return "Pro Suite" case .plus: return "Plus" } diff --git a/IVPNClient/Scenes/Signup.storyboard b/IVPNClient/Scenes/Signup.storyboard index 83f9f470..8f24194c 100644 --- a/IVPNClient/Scenes/Signup.storyboard +++ b/IVPNClient/Scenes/Signup.storyboard @@ -1,9 +1,9 @@ - + - + @@ -23,10 +23,10 @@ - + - + @@ -120,7 +120,7 @@