├── .github ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE │ ├── 1-bug-report.md │ └── 2-feature-request.md ├── PULL_REQUEST_TEMPLATE.md ├── SECURITY.md └── workflows │ ├── ci.yml │ ├── linter.yml │ ├── mobsfscan.yml │ ├── stale.yml │ └── swiftlint.yml ├── .gitignore ├── .swiftlint.yml ├── ACKNOWLEDGEMENTS.md ├── AUTHORS ├── CHANGELOG.md ├── CLA.md ├── CODE_OF_CONDUCT.md ├── IVPNClient.xcodeproj ├── project.pbxproj └── xcshareddata │ └── xcschemes │ ├── IVPNClient.xcscheme │ ├── IVPNWidgetExtension.xcscheme │ ├── openvpn-tunnel-provider.xcscheme │ └── wireguard-tunnel-provider.xcscheme ├── IVPNClient ├── AppDelegate.swift ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── Icon-App-20x20@1x.png │ │ ├── Icon-App-20x20@2x.png │ │ ├── Icon-App-20x20@3x.png │ │ ├── Icon-App-29x29@1x.png │ │ ├── Icon-App-29x29@2x.png │ │ ├── Icon-App-29x29@3x.png │ │ ├── Icon-App-40x40@1x.png │ │ ├── Icon-App-40x40@2x.png │ │ ├── Icon-App-40x40@3x.png │ │ ├── Icon-App-60x60@2x.png │ │ ├── Icon-App-60x60@3x.png │ │ ├── Icon-App-76x76@1x.png │ │ ├── Icon-App-76x76@2x.png │ │ ├── Icon-App-83.5x83.5@2x.png │ │ └── ItunesArtwork@2x.png │ ├── Cellular.imageset │ │ ├── Cellular.pdf │ │ ├── Contents.json │ │ └── Slice Copy.pdf │ ├── Contents.json │ ├── FlagsSVG │ │ ├── AD.imageset │ │ │ ├── AD.svg │ │ │ └── Contents.json │ │ ├── AE.imageset │ │ │ ├── AE.svg │ │ │ └── Contents.json │ │ ├── AF.imageset │ │ │ ├── AF.svg │ │ │ └── Contents.json │ │ ├── AG.imageset │ │ │ ├── AG.svg │ │ │ └── Contents.json │ │ ├── AI.imageset │ │ │ ├── AI.svg │ │ │ └── Contents.json │ │ ├── AL.imageset │ │ │ ├── AL.svg │ │ │ └── Contents.json │ │ ├── AM.imageset │ │ │ ├── AM.svg │ │ │ └── Contents.json │ │ ├── AO.imageset │ │ │ ├── AO.svg │ │ │ └── Contents.json │ │ ├── AR.imageset │ │ │ ├── AR.svg │ │ │ └── Contents.json │ │ ├── AS.imageset │ │ │ ├── AS.svg │ │ │ └── Contents.json │ │ ├── AT.imageset │ │ │ ├── AT.svg │ │ │ └── Contents.json │ │ ├── AU.imageset │ │ │ ├── AU.svg │ │ │ └── Contents.json │ │ ├── AW.imageset │ │ │ ├── AW.svg │ │ │ └── Contents.json │ │ ├── AX.imageset │ │ │ ├── AX.svg │ │ │ └── Contents.json │ │ ├── AZ.imageset │ │ │ ├── AZ.svg │ │ │ └── Contents.json │ │ ├── BA.imageset │ │ │ ├── BA.svg │ │ │ └── Contents.json │ │ ├── BB.imageset │ │ │ ├── BB.svg │ │ │ └── Contents.json │ │ ├── BD.imageset │ │ │ ├── BD.svg │ │ │ └── Contents.json │ │ ├── BE.imageset │ │ │ ├── BE.svg │ │ │ └── Contents.json │ │ ├── BF.imageset │ │ │ ├── BF.svg │ │ │ └── Contents.json │ │ ├── BG.imageset │ │ │ ├── BG.svg │ │ │ └── Contents.json │ │ ├── BH.imageset │ │ │ ├── BH.svg │ │ │ └── Contents.json │ │ ├── BI.imageset │ │ │ ├── BI.svg │ │ │ └── Contents.json │ │ ├── BJ.imageset │ │ │ ├── BJ.svg │ │ │ └── Contents.json │ │ ├── BL.imageset │ │ │ ├── BL.svg │ │ │ └── Contents.json │ │ ├── BM.imageset │ │ │ ├── BM.svg │ │ │ └── Contents.json │ │ ├── BN.imageset │ │ │ ├── BN.svg │ │ │ └── Contents.json │ │ ├── BO.imageset │ │ │ ├── BO.svg │ │ │ └── Contents.json │ │ ├── BR.imageset │ │ │ ├── BR.svg │ │ │ └── Contents.json │ │ ├── BS.imageset │ │ │ ├── BS.svg │ │ │ └── Contents.json │ │ ├── BT.imageset │ │ │ ├── BT.svg │ │ │ └── Contents.json │ │ ├── BV.imageset │ │ │ ├── BV.svg │ │ │ └── Contents.json │ │ ├── BW.imageset │ │ │ ├── BW.svg │ │ │ └── Contents.json │ │ ├── BY.imageset │ │ │ ├── BY.svg │ │ │ └── Contents.json │ │ ├── BZ.imageset │ │ │ ├── BZ.svg │ │ │ └── Contents.json │ │ ├── CA.imageset │ │ │ ├── CA.svg │ │ │ └── Contents.json │ │ ├── CAF.imageset │ │ │ ├── CAF.svg │ │ │ └── Contents.json │ │ ├── CAS.imageset │ │ │ ├── CAS.svg │ │ │ └── Contents.json │ │ ├── CC.imageset │ │ │ ├── CC.svg │ │ │ └── Contents.json │ │ ├── CD.imageset │ │ │ ├── CD.svg │ │ │ └── Contents.json │ │ ├── CF.imageset │ │ │ ├── CF.svg │ │ │ └── Contents.json │ │ ├── CG.imageset │ │ │ ├── CG.svg │ │ │ └── Contents.json │ │ ├── CH.imageset │ │ │ ├── CH.svg │ │ │ └── Contents.json │ │ ├── CI.imageset │ │ │ ├── CI.svg │ │ │ └── Contents.json │ │ ├── CK.imageset │ │ │ ├── CK.svg │ │ │ └── Contents.json │ │ ├── CL.imageset │ │ │ ├── CL.svg │ │ │ └── Contents.json │ │ ├── CM.imageset │ │ │ ├── CM.svg │ │ │ └── Contents.json │ │ ├── CN.imageset │ │ │ ├── CN.svg │ │ │ └── Contents.json │ │ ├── CNA.imageset │ │ │ ├── CNA.svg │ │ │ └── Contents.json │ │ ├── CO.imageset │ │ │ ├── CO.svg │ │ │ └── Contents.json │ │ ├── COC.imageset │ │ │ ├── COC.svg │ │ │ └── Contents.json │ │ ├── CR.imageset │ │ │ ├── CR.svg │ │ │ └── Contents.json │ │ ├── CSA.imageset │ │ │ ├── CSA.svg │ │ │ └── Contents.json │ │ ├── CU.imageset │ │ │ ├── CU.svg │ │ │ └── Contents.json │ │ ├── CV.imageset │ │ │ ├── CV.svg │ │ │ └── Contents.json │ │ ├── CW.imageset │ │ │ ├── CW.svg │ │ │ └── Contents.json │ │ ├── CX.imageset │ │ │ ├── CX.svg │ │ │ └── Contents.json │ │ ├── CY.imageset │ │ │ ├── CY.svg │ │ │ └── Contents.json │ │ ├── CZ.imageset │ │ │ ├── CZ.svg │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── DE.imageset │ │ │ ├── Contents.json │ │ │ └── DE.svg │ │ ├── DJ.imageset │ │ │ ├── Contents.json │ │ │ └── DJ.svg │ │ ├── DK.imageset │ │ │ ├── Contents.json │ │ │ └── DK.svg │ │ ├── DM.imageset │ │ │ ├── Contents.json │ │ │ └── DM.svg │ │ ├── DO.imageset │ │ │ ├── Contents.json │ │ │ └── DO.svg │ │ ├── DZ.imageset │ │ │ ├── Contents.json │ │ │ └── DZ.svg │ │ ├── EC.imageset │ │ │ ├── Contents.json │ │ │ └── EC.svg │ │ ├── EE.imageset │ │ │ ├── Contents.json │ │ │ └── EE.svg │ │ ├── EG.imageset │ │ │ ├── Contents.json │ │ │ └── EG.svg │ │ ├── ER.imageset │ │ │ ├── Contents.json │ │ │ └── ER.svg │ │ ├── ES.imageset │ │ │ ├── Contents.json │ │ │ └── ES.svg │ │ ├── ET.imageset │ │ │ ├── Contents.json │ │ │ └── ET.svg │ │ ├── EU.imageset │ │ │ ├── Contents.json │ │ │ └── EU.svg │ │ ├── FI.imageset │ │ │ ├── Contents.json │ │ │ └── FI.svg │ │ ├── FJ.imageset │ │ │ ├── Contents.json │ │ │ └── FJ.svg │ │ ├── FK.imageset │ │ │ ├── Contents.json │ │ │ └── FK.svg │ │ ├── FM.imageset │ │ │ ├── Contents.json │ │ │ └── FM.svg │ │ ├── FO.imageset │ │ │ ├── Contents.json │ │ │ └── FO.svg │ │ ├── FR.imageset │ │ │ ├── Contents.json │ │ │ └── FR.svg │ │ ├── GA.imageset │ │ │ ├── Contents.json │ │ │ └── GA.svg │ │ ├── GB-ENG.imageset │ │ │ ├── Contents.json │ │ │ └── GB-ENG.svg │ │ ├── GB-NIR.imageset │ │ │ ├── Contents.json │ │ │ └── GB-NIR.svg │ │ ├── GB-SCT.imageset │ │ │ ├── Contents.json │ │ │ └── GB-SCT.svg │ │ ├── GB-WLS.imageset │ │ │ ├── Contents.json │ │ │ └── GB-WLS.svg │ │ ├── GB-ZET.imageset │ │ │ ├── Contents.json │ │ │ └── GB-ZET.svg │ │ ├── GB.imageset │ │ │ ├── Contents.json │ │ │ └── GB.svg │ │ ├── GD.imageset │ │ │ ├── Contents.json │ │ │ └── GD.svg │ │ ├── GE.imageset │ │ │ ├── Contents.json │ │ │ └── GE.svg │ │ ├── GF.imageset │ │ │ ├── Contents.json │ │ │ └── GF.svg │ │ ├── GG.imageset │ │ │ ├── Contents.json │ │ │ └── GG.svg │ │ ├── GH.imageset │ │ │ ├── Contents.json │ │ │ └── GH.svg │ │ ├── GI.imageset │ │ │ ├── Contents.json │ │ │ └── GI.svg │ │ ├── GL.imageset │ │ │ ├── Contents.json │ │ │ └── GL.svg │ │ ├── GM.imageset │ │ │ ├── Contents.json │ │ │ └── GM.svg │ │ ├── GN.imageset │ │ │ ├── Contents.json │ │ │ └── GN.svg │ │ ├── GP.imageset │ │ │ ├── Contents.json │ │ │ └── GP.svg │ │ ├── GQ.imageset │ │ │ ├── Contents.json │ │ │ └── GQ.svg │ │ ├── GR.imageset │ │ │ ├── Contents.json │ │ │ └── GR.svg │ │ ├── GS.imageset │ │ │ ├── Contents.json │ │ │ └── GS.svg │ │ ├── GT.imageset │ │ │ ├── Contents.json │ │ │ └── GT.svg │ │ ├── GU.imageset │ │ │ ├── Contents.json │ │ │ └── GU.svg │ │ ├── GW.imageset │ │ │ ├── Contents.json │ │ │ └── GW.svg │ │ ├── GY.imageset │ │ │ ├── Contents.json │ │ │ └── GY.svg │ │ ├── HK.imageset │ │ │ ├── Contents.json │ │ │ └── HK.svg │ │ ├── HM.imageset │ │ │ ├── Contents.json │ │ │ └── HM.svg │ │ ├── HN.imageset │ │ │ ├── Contents.json │ │ │ └── HN.svg │ │ ├── HR.imageset │ │ │ ├── Contents.json │ │ │ └── HR.svg │ │ ├── HT.imageset │ │ │ ├── Contents.json │ │ │ └── HT.svg │ │ ├── HU.imageset │ │ │ ├── Contents.json │ │ │ └── HU.svg │ │ ├── ID.imageset │ │ │ ├── Contents.json │ │ │ └── ID.svg │ │ ├── IE.imageset │ │ │ ├── Contents.json │ │ │ └── IE.svg │ │ ├── IL.imageset │ │ │ ├── Contents.json │ │ │ └── IL.svg │ │ ├── IM.imageset │ │ │ ├── Contents.json │ │ │ └── IM.svg │ │ ├── IN.imageset │ │ │ ├── Contents.json │ │ │ └── IN.svg │ │ ├── IO.imageset │ │ │ ├── Contents.json │ │ │ └── IO.svg │ │ ├── IQ.imageset │ │ │ ├── Contents.json │ │ │ └── IQ.svg │ │ ├── IR.imageset │ │ │ ├── Contents.json │ │ │ └── IR.svg │ │ ├── IS.imageset │ │ │ ├── Contents.json │ │ │ └── IS.svg │ │ ├── IT.imageset │ │ │ ├── Contents.json │ │ │ └── IT.svg │ │ ├── JE.imageset │ │ │ ├── Contents.json │ │ │ └── JE.svg │ │ ├── JM.imageset │ │ │ ├── Contents.json │ │ │ └── JM.svg │ │ ├── JO.imageset │ │ │ ├── Contents.json │ │ │ └── JO.svg │ │ ├── JP.imageset │ │ │ ├── Contents.json │ │ │ └── JP.svg │ │ ├── KE.imageset │ │ │ ├── Contents.json │ │ │ └── KE.svg │ │ ├── KG.imageset │ │ │ ├── Contents.json │ │ │ └── KG.svg │ │ ├── KH.imageset │ │ │ ├── Contents.json │ │ │ └── KH.svg │ │ ├── KI.imageset │ │ │ ├── Contents.json │ │ │ └── KI.svg │ │ ├── KM.imageset │ │ │ ├── Contents.json │ │ │ └── KM.svg │ │ ├── KN.imageset │ │ │ ├── Contents.json │ │ │ └── KN.svg │ │ ├── KP.imageset │ │ │ ├── Contents.json │ │ │ └── KP.svg │ │ ├── KR.imageset │ │ │ ├── Contents.json │ │ │ └── KR.svg │ │ ├── KW.imageset │ │ │ ├── Contents.json │ │ │ └── KW.svg │ │ ├── KY.imageset │ │ │ ├── Contents.json │ │ │ └── KY.svg │ │ ├── KZ.imageset │ │ │ ├── Contents.json │ │ │ └── KZ.svg │ │ ├── LA.imageset │ │ │ ├── Contents.json │ │ │ └── LA.svg │ │ ├── LB.imageset │ │ │ ├── Contents.json │ │ │ └── LB.svg │ │ ├── LC.imageset │ │ │ ├── Contents.json │ │ │ └── LC.svg │ │ ├── LGBT.imageset │ │ │ ├── Contents.json │ │ │ └── LGBT.svg │ │ ├── LI.imageset │ │ │ ├── Contents.json │ │ │ └── LI.svg │ │ ├── LK.imageset │ │ │ ├── Contents.json │ │ │ └── LK.svg │ │ ├── LR.imageset │ │ │ ├── Contents.json │ │ │ └── LR.svg │ │ ├── LS.imageset │ │ │ ├── Contents.json │ │ │ └── LS.svg │ │ ├── LT.imageset │ │ │ ├── Contents.json │ │ │ └── LT.svg │ │ ├── LU.imageset │ │ │ ├── Contents.json │ │ │ └── LU.svg │ │ ├── LV.imageset │ │ │ ├── Contents.json │ │ │ └── LV.svg │ │ ├── LY.imageset │ │ │ ├── Contents.json │ │ │ └── LY.svg │ │ ├── MA.imageset │ │ │ ├── Contents.json │ │ │ └── MA.svg │ │ ├── MC.imageset │ │ │ ├── Contents.json │ │ │ └── MC.svg │ │ ├── MD.imageset │ │ │ ├── Contents.json │ │ │ └── MD.svg │ │ ├── ME.imageset │ │ │ ├── Contents.json │ │ │ └── ME.svg │ │ ├── MF.imageset │ │ │ ├── Contents.json │ │ │ └── MF.svg │ │ ├── MG.imageset │ │ │ ├── Contents.json │ │ │ └── MG.svg │ │ ├── MH.imageset │ │ │ ├── Contents.json │ │ │ └── MH.svg │ │ ├── MK.imageset │ │ │ ├── Contents.json │ │ │ └── MK.svg │ │ ├── ML.imageset │ │ │ ├── Contents.json │ │ │ └── ML.svg │ │ ├── MM.imageset │ │ │ ├── Contents.json │ │ │ └── MM.svg │ │ ├── MN.imageset │ │ │ ├── Contents.json │ │ │ └── MN.svg │ │ ├── MO.imageset │ │ │ ├── Contents.json │ │ │ └── MO.svg │ │ ├── MP.imageset │ │ │ ├── Contents.json │ │ │ └── MP.svg │ │ ├── MQ.imageset │ │ │ ├── Contents.json │ │ │ └── MQ.svg │ │ ├── MR.imageset │ │ │ ├── Contents.json │ │ │ └── MR.svg │ │ ├── MS.imageset │ │ │ ├── Contents.json │ │ │ └── MS.svg │ │ ├── MT.imageset │ │ │ ├── Contents.json │ │ │ └── MT.svg │ │ ├── MU.imageset │ │ │ ├── Contents.json │ │ │ └── MU.svg │ │ ├── MV.imageset │ │ │ ├── Contents.json │ │ │ └── MV.svg │ │ ├── MW.imageset │ │ │ ├── Contents.json │ │ │ └── MW.svg │ │ ├── MX.imageset │ │ │ ├── Contents.json │ │ │ └── MX.svg │ │ ├── MY.imageset │ │ │ ├── Contents.json │ │ │ └── MY.svg │ │ ├── MZ.imageset │ │ │ ├── Contents.json │ │ │ └── MZ.svg │ │ ├── NA.imageset │ │ │ ├── Contents.json │ │ │ └── NA.svg │ │ ├── NC.imageset │ │ │ ├── Contents.json │ │ │ └── NC.svg │ │ ├── NE.imageset │ │ │ ├── Contents.json │ │ │ └── NE.svg │ │ ├── NF.imageset │ │ │ ├── Contents.json │ │ │ └── NF.svg │ │ ├── NG.imageset │ │ │ ├── Contents.json │ │ │ └── NG.svg │ │ ├── NI.imageset │ │ │ ├── Contents.json │ │ │ └── NI.svg │ │ ├── NL.imageset │ │ │ ├── Contents.json │ │ │ └── NL.svg │ │ ├── NO.imageset │ │ │ ├── Contents.json │ │ │ └── NO.svg │ │ ├── NP.imageset │ │ │ ├── Contents.json │ │ │ └── NP.svg │ │ ├── NR.imageset │ │ │ ├── Contents.json │ │ │ └── NR.svg │ │ ├── NU.imageset │ │ │ ├── Contents.json │ │ │ └── NU.svg │ │ ├── NZ.imageset │ │ │ ├── Contents.json │ │ │ └── NZ.svg │ │ ├── OM.imageset │ │ │ ├── Contents.json │ │ │ └── OM.svg │ │ ├── PA.imageset │ │ │ ├── Contents.json │ │ │ └── PA.svg │ │ ├── PE.imageset │ │ │ ├── Contents.json │ │ │ └── PE.svg │ │ ├── PF.imageset │ │ │ ├── Contents.json │ │ │ └── PF.svg │ │ ├── PG.imageset │ │ │ ├── Contents.json │ │ │ └── PG.svg │ │ ├── PH.imageset │ │ │ ├── Contents.json │ │ │ └── PH.svg │ │ ├── PK.imageset │ │ │ ├── Contents.json │ │ │ └── PK.svg │ │ ├── PL.imageset │ │ │ ├── Contents.json │ │ │ └── PL.svg │ │ ├── PM.imageset │ │ │ ├── Contents.json │ │ │ └── PM.svg │ │ ├── PN.imageset │ │ │ ├── Contents.json │ │ │ └── PN.svg │ │ ├── PR.imageset │ │ │ ├── Contents.json │ │ │ └── PR.svg │ │ ├── PS.imageset │ │ │ ├── Contents.json │ │ │ └── PS.svg │ │ ├── PT.imageset │ │ │ ├── Contents.json │ │ │ └── PT.svg │ │ ├── PW.imageset │ │ │ ├── Contents.json │ │ │ └── PW.svg │ │ ├── PY.imageset │ │ │ ├── Contents.json │ │ │ └── PY.svg │ │ ├── QA.imageset │ │ │ ├── Contents.json │ │ │ └── QA.svg │ │ ├── RE.imageset │ │ │ ├── Contents.json │ │ │ └── RE.svg │ │ ├── RO.imageset │ │ │ ├── Contents.json │ │ │ └── RO.svg │ │ ├── RS.imageset │ │ │ ├── Contents.json │ │ │ └── RS.svg │ │ ├── RU.imageset │ │ │ ├── Contents.json │ │ │ └── RU.svg │ │ ├── RW.imageset │ │ │ ├── Contents.json │ │ │ └── RW.svg │ │ ├── SA.imageset │ │ │ ├── Contents.json │ │ │ └── SA.svg │ │ ├── SB.imageset │ │ │ ├── Contents.json │ │ │ └── SB.svg │ │ ├── SC.imageset │ │ │ ├── Contents.json │ │ │ └── SC.svg │ │ ├── SD.imageset │ │ │ ├── Contents.json │ │ │ └── SD.svg │ │ ├── SE.imageset │ │ │ ├── Contents.json │ │ │ └── SE.svg │ │ ├── SG.imageset │ │ │ ├── Contents.json │ │ │ └── SG.svg │ │ ├── SH.imageset │ │ │ ├── Contents.json │ │ │ └── SH.svg │ │ ├── SI.imageset │ │ │ ├── Contents.json │ │ │ └── SI.svg │ │ ├── SJ.imageset │ │ │ ├── Contents.json │ │ │ └── SJ.svg │ │ ├── SK.imageset │ │ │ ├── Contents.json │ │ │ └── SK.svg │ │ ├── SL.imageset │ │ │ ├── Contents.json │ │ │ └── SL.svg │ │ ├── SM.imageset │ │ │ ├── Contents.json │ │ │ └── SM.svg │ │ ├── SN.imageset │ │ │ ├── Contents.json │ │ │ └── SN.svg │ │ ├── SO.imageset │ │ │ ├── Contents.json │ │ │ └── SO.svg │ │ ├── SR.imageset │ │ │ ├── Contents.json │ │ │ └── SR.svg │ │ ├── SS.imageset │ │ │ ├── Contents.json │ │ │ └── SS.svg │ │ ├── ST.imageset │ │ │ ├── Contents.json │ │ │ └── ST.svg │ │ ├── SV.imageset │ │ │ ├── Contents.json │ │ │ └── SV.svg │ │ ├── SX.imageset │ │ │ ├── Contents.json │ │ │ └── SX.svg │ │ ├── SY.imageset │ │ │ ├── Contents.json │ │ │ └── SY.svg │ │ ├── SZ.imageset │ │ │ ├── Contents.json │ │ │ └── SZ.svg │ │ ├── TC.imageset │ │ │ ├── Contents.json │ │ │ └── TC.svg │ │ ├── TD.imageset │ │ │ ├── Contents.json │ │ │ └── TD.svg │ │ ├── TF.imageset │ │ │ ├── Contents.json │ │ │ └── TF.svg │ │ ├── TG.imageset │ │ │ ├── Contents.json │ │ │ └── TG.svg │ │ ├── TH.imageset │ │ │ ├── Contents.json │ │ │ └── TH.svg │ │ ├── TJ.imageset │ │ │ ├── Contents.json │ │ │ └── TJ.svg │ │ ├── TK.imageset │ │ │ ├── Contents.json │ │ │ └── TK.svg │ │ ├── TL.imageset │ │ │ ├── Contents.json │ │ │ └── TL.svg │ │ ├── TM.imageset │ │ │ ├── Contents.json │ │ │ └── TM.svg │ │ ├── TN.imageset │ │ │ ├── Contents.json │ │ │ └── TN.svg │ │ ├── TO.imageset │ │ │ ├── Contents.json │ │ │ └── TO.svg │ │ ├── TR.imageset │ │ │ ├── Contents.json │ │ │ └── TR.svg │ │ ├── TT.imageset │ │ │ ├── Contents.json │ │ │ └── TT.svg │ │ ├── TV.imageset │ │ │ ├── Contents.json │ │ │ └── TV.svg │ │ ├── TW.imageset │ │ │ ├── Contents.json │ │ │ └── TW.svg │ │ ├── TZ.imageset │ │ │ ├── Contents.json │ │ │ └── TZ.svg │ │ ├── UA.imageset │ │ │ ├── Contents.json │ │ │ └── UA.svg │ │ ├── UG.imageset │ │ │ ├── Contents.json │ │ │ └── UG.svg │ │ ├── UM.imageset │ │ │ ├── Contents.json │ │ │ └── UM.svg │ │ ├── US-CA.imageset │ │ │ ├── Contents.json │ │ │ └── US-CA.svg │ │ ├── US.imageset │ │ │ ├── Contents.json │ │ │ └── US.svg │ │ ├── UY.imageset │ │ │ ├── Contents.json │ │ │ └── UY.svg │ │ ├── UZ.imageset │ │ │ ├── Contents.json │ │ │ └── UZ.svg │ │ ├── VA.imageset │ │ │ ├── Contents.json │ │ │ └── VA.svg │ │ ├── VC.imageset │ │ │ ├── Contents.json │ │ │ └── VC.svg │ │ ├── VE.imageset │ │ │ ├── Contents.json │ │ │ └── VE.svg │ │ ├── VG.imageset │ │ │ ├── Contents.json │ │ │ └── VG.svg │ │ ├── VI.imageset │ │ │ ├── Contents.json │ │ │ └── VI.svg │ │ ├── VN.imageset │ │ │ ├── Contents.json │ │ │ └── VN.svg │ │ ├── VU.imageset │ │ │ ├── Contents.json │ │ │ └── VU.svg │ │ ├── WF.imageset │ │ │ ├── Contents.json │ │ │ └── WF.svg │ │ ├── WS.imageset │ │ │ ├── Contents.json │ │ │ └── WS.svg │ │ ├── WW.imageset │ │ │ ├── Contents.json │ │ │ └── WW.svg │ │ ├── XK.imageset │ │ │ ├── Contents.json │ │ │ └── XK.svg │ │ ├── YE.imageset │ │ │ ├── Contents.json │ │ │ └── YE.svg │ │ ├── YT.imageset │ │ │ ├── Contents.json │ │ │ └── YT.svg │ │ ├── ZA.imageset │ │ │ ├── Contents.json │ │ │ └── ZA.svg │ │ ├── ZM.imageset │ │ │ ├── Contents.json │ │ │ └── ZM.svg │ │ └── ZW.imageset │ │ │ ├── Contents.json │ │ │ └── ZW.svg │ ├── Lock.imageset │ │ ├── Contents.json │ │ └── Lock.pdf │ ├── Unlock.imageset │ │ ├── Contents.json │ │ └── Unlock.pdf │ ├── WiFi.imageset │ │ ├── Contents.json │ │ ├── Slice Copy 2.pdf │ │ └── WiFi.pdf │ ├── alert-info-dark-navy.imageset │ │ ├── Contents.json │ │ └── alert-info-dark-navy.pdf │ ├── favorite-server.imageset │ │ ├── Contents.json │ │ ├── favourite-server-dark.pdf │ │ └── favourite-server-light.pdf │ ├── icon-active-shield.imageset │ │ ├── Contents.json │ │ └── icon-active-shield.pdf │ ├── icon-alert-dark-yellow.imageset │ │ ├── Contents.json │ │ └── icon-alert-dark-yellow.pdf │ ├── icon-arrow-down-gray.imageset │ │ ├── Contents.json │ │ └── icon-arrow-down-gray.pdf │ ├── icon-arrow-left-gray.imageset │ │ ├── Contents.json │ │ ├── icon-arrow-left-gray-dark.pdf │ │ └── icon-arrow-left.pdf │ ├── icon-arrow-left.imageset │ │ ├── Contents.json │ │ └── icon-arrow-left.pdf │ ├── icon-arrow-right-gray.imageset │ │ ├── Contents.json │ │ ├── icon-arrow-right-gray-dark.pdf │ │ └── icon-arrow-right.pdf │ ├── icon-arrow-up-gray.imageset │ │ ├── Contents.json │ │ └── icon-arrow-up-gray.pdf │ ├── icon-check-2.imageset │ │ ├── Contents.json │ │ └── icon-check-2.pdf │ ├── icon-check-grey-small.imageset │ │ ├── Contents.json │ │ └── icon-check-grey-small.pdf │ ├── icon-check.imageset │ │ ├── Contents.json │ │ └── icon-check.pdf │ ├── icon-circle-green.imageset │ │ ├── Contents.json │ │ └── icon-circle-green.pdf │ ├── icon-circle-orange.imageset │ │ ├── Contents.json │ │ └── icon-circle-orange.pdf │ ├── icon-circle-red.imageset │ │ ├── Contents.json │ │ └── icon-circle-red.pdf │ ├── icon-copy.imageset │ │ ├── Contents.json │ │ └── icon-copy.pdf │ ├── icon-crosshair.imageset │ │ ├── Contents.json │ │ ├── icon-crosshair-dark-mode.pdf │ │ └── icon-crosshair.pdf │ ├── icon-fastest-server.imageset │ │ ├── Contents.json │ │ └── icon-fastest-server.pdf │ ├── icon-inactive-shield.imageset │ │ ├── 1 copy.pdf │ │ ├── Contents.json │ │ └── icon-inactive-shield.pdf │ ├── icon-info-2.imageset │ │ ├── Contents.json │ │ └── icon-info-2.pdf │ ├── icon-info.imageset │ │ ├── Contents.json │ │ ├── Slice 2 Copy.pdf │ │ └── icon-info.pdf │ ├── icon-map-pin.imageset │ │ ├── Contents.json │ │ └── icon-map-pin.pdf │ ├── icon-menu.imageset │ │ ├── Contents.json │ │ ├── icon-menu.pdf │ │ └── menu copy.pdf │ ├── icon-qr-code.imageset │ │ ├── Contents.json │ │ └── icon-qr-code.pdf │ ├── icon-server.imageset │ │ ├── Contents.json │ │ └── icon-server.pdf │ ├── icon-settings-2.imageset │ │ ├── Contents.json │ │ └── icon-settings-2.pdf │ ├── icon-settings.imageset │ │ ├── Contents.json │ │ ├── icon-settings-dark.pdf │ │ └── icon-settings.pdf │ ├── icon-shuffle.imageset │ │ ├── Contents.json │ │ ├── icon-shuffle-dark.pdf │ │ └── icon-shuffle.pdf │ ├── icon-star-off.imageset │ │ ├── Contents.json │ │ └── star-off.pdf │ ├── icon-star-on.imageset │ │ ├── Contents.json │ │ └── star-on.pdf │ ├── icon-step-1.imageset │ │ ├── Contents.json │ │ └── icon-step-1.pdf │ ├── icon-step-2.imageset │ │ ├── Contents.json │ │ └── icon-step-2.pdf │ ├── icon-step-3.imageset │ │ ├── Contents.json │ │ └── icon-step-3.pdf │ ├── icon-user.imageset │ │ ├── Contents.json │ │ ├── icon-user-dark.pdf │ │ └── icon-user.pdf │ ├── icon-wifi-off.imageset │ │ ├── Contents.json │ │ └── icon-wifi-off.pdf │ ├── ivpn-logo-gray.imageset │ │ ├── Contents.json │ │ └── ivpn-logo-gray.pdf │ ├── ivpn-logo.imageset │ │ ├── Contents.json │ │ └── ivpn-logo.pdf │ ├── map.imageset │ │ ├── Contents.json │ │ ├── map-1700.pdf │ │ ├── map-3700.pdf │ │ └── map-4700.pdf │ ├── promo-1.imageset │ │ ├── Contents.json │ │ ├── graphic1A.png │ │ ├── graphic1A@2x.png │ │ ├── graphic1A@3x.png │ │ ├── illustration1.png │ │ ├── illustration1@2x.png │ │ └── illustration1@3x.png │ ├── promo-2.imageset │ │ ├── Contents.json │ │ ├── graphic1B.png │ │ ├── graphic1B@2x.png │ │ ├── graphic1B@3x.png │ │ ├── illustration2.png │ │ ├── illustration2@2x.png │ │ └── illustration2@3x.png │ ├── promo-3.imageset │ │ ├── Contents.json │ │ ├── graphic1C.png │ │ ├── graphic1C@2x.png │ │ ├── graphic1C@3x.png │ │ ├── illustration3.png │ │ ├── illustration3@2x.png │ │ └── illustration3@3x.png │ └── promo-4.imageset │ │ ├── Contents.json │ │ ├── Group 27-2.pdf │ │ └── Group 27.pdf ├── Colors.xcassets │ ├── Contents.json │ ├── ivpnBackgroundBase.colorset │ │ └── Contents.json │ ├── ivpnBackgroundConnected.colorset │ │ └── Contents.json │ ├── ivpnBackgroundPrimary.colorset │ │ └── Contents.json │ ├── ivpnBackgroundQuaternary.colorset │ │ └── Contents.json │ ├── ivpnBackgroundSecondary.colorset │ │ └── Contents.json │ ├── ivpnBackgroundTertiary.colorset │ │ └── Contents.json │ ├── ivpnBlue.colorset │ │ └── Contents.json │ ├── ivpnDarkGreen.colorset │ │ └── Contents.json │ ├── ivpnDarkNavy.colorset │ │ └── Contents.json │ ├── ivpnDarkRed.colorset │ │ └── Contents.json │ ├── ivpnDarkYellow.colorset │ │ └── Contents.json │ ├── ivpnGray1.colorset │ │ └── Contents.json │ ├── ivpnGray10.colorset │ │ └── Contents.json │ ├── ivpnGray11.colorset │ │ └── Contents.json │ ├── ivpnGray12.colorset │ │ └── Contents.json │ ├── ivpnGray13.colorset │ │ └── Contents.json │ ├── ivpnGray14.colorset │ │ └── Contents.json │ ├── ivpnGray15.colorset │ │ └── Contents.json │ ├── ivpnGray16.colorset │ │ └── Contents.json │ ├── ivpnGray17.colorset │ │ └── Contents.json │ ├── ivpnGray18.colorset │ │ └── Contents.json │ ├── ivpnGray19.colorset │ │ └── Contents.json │ ├── ivpnGray2.colorset │ │ └── Contents.json │ ├── ivpnGray20.colorset │ │ └── Contents.json │ ├── ivpnGray21.colorset │ │ └── Contents.json │ ├── ivpnGray22.colorset │ │ └── Contents.json │ ├── ivpnGray23.colorset │ │ └── Contents.json │ ├── ivpnGray24.colorset │ │ └── Contents.json │ ├── ivpnGray3.colorset │ │ └── Contents.json │ ├── ivpnGray4.colorset │ │ └── Contents.json │ ├── ivpnGray5.colorset │ │ └── Contents.json │ ├── ivpnGray6.colorset │ │ └── Contents.json │ ├── ivpnGray7.colorset │ │ └── Contents.json │ ├── ivpnGray8.colorset │ │ └── Contents.json │ ├── ivpnGray9.colorset │ │ └── Contents.json │ ├── ivpnGreen.colorset │ │ └── Contents.json │ ├── ivpnLabel5.colorset │ │ └── Contents.json │ ├── ivpnLabel6.colorset │ │ └── Contents.json │ ├── ivpnLabel7.colorset │ │ └── Contents.json │ ├── ivpnLabelPrimary.colorset │ │ └── Contents.json │ ├── ivpnLabelQuaternary.colorset │ │ └── Contents.json │ ├── ivpnLabelSecondary.colorset │ │ └── Contents.json │ ├── ivpnLabelTertiary.colorset │ │ └── Contents.json │ ├── ivpnLightGreen.colorset │ │ └── Contents.json │ ├── ivpnLightNavy.colorset │ │ └── Contents.json │ ├── ivpnLightYellow.colorset │ │ └── Contents.json │ ├── ivpnNavigationTint.colorset │ │ └── Contents.json │ ├── ivpnNavy.colorset │ │ └── Contents.json │ ├── ivpnOrange.colorset │ │ └── Contents.json │ ├── ivpnRed.colorset │ │ └── Contents.json │ └── ivpnRedOff.colorset │ │ └── Contents.json ├── Config │ ├── Config.swift │ ├── OpenVPNConf.template.swift │ ├── Theme.swift │ ├── release.template.xcconfig │ ├── servers-dev.json │ ├── servers.json │ └── staging.template.xcconfig ├── Enums │ ├── AddressType.swift │ ├── ApiRequestDI.swift │ ├── ApiResults │ │ ├── Account.swift │ │ ├── ErrorResult.swift │ │ ├── ErrorResultSessionNew.swift │ │ ├── GeoLookup.swift │ │ ├── InterfaceResult.swift │ │ ├── Result.swift │ │ ├── ServersUpdateResult.swift │ │ ├── Session.swift │ │ ├── SessionStatus.swift │ │ └── SuccessResult.swift │ ├── Capability.swift │ ├── ConnectionSettings.swift │ ├── DNSProtocolType.swift │ ├── NetworkTrust.swift │ ├── NetworkType.swift │ ├── OpenVPNProtocol.swift │ ├── ProviderConfigurationKeys.swift │ ├── ServersSort.swift │ ├── ServiceDuration.swift │ ├── ServiceType.swift │ ├── TunnelType.swift │ └── WireGuardProtocol.swift ├── IVPNClient-Bridging-Header.h ├── IVPNClient.entitlements ├── Info.plist ├── Managers │ ├── APIAccessManager.swift │ ├── APIClient.swift │ ├── APIPublicKeyPin.swift │ ├── ApiService+Ext.swift │ ├── ApiService.swift │ ├── AppKeyManager.swift │ ├── ConnectionManager.swift │ ├── DNSManager.swift │ ├── FileSystemManager.swift │ ├── KeyChain.swift │ ├── NavigationManager.swift │ ├── NetworkManager.swift │ ├── PurchaseManager.swift │ ├── SessionManager.swift │ ├── StorageManager.swift │ ├── VPNErrorObserver.swift │ └── VPNManager.swift ├── Model.xcdatamodeld │ └── Model.xcdatamodel │ │ └── contents ├── Models │ ├── AccessDetails.swift │ ├── AntiTrackerDns.swift │ ├── AppIntents.swift │ ├── Application.swift │ ├── Authentication.swift │ ├── CoreData │ │ ├── CustomPort+CoreDataClass.swift │ │ ├── CustomPort+CoreDataProperties.swift │ │ ├── Network+CoreDataClass.swift │ │ ├── Network+CoreDataProperties.swift │ │ ├── Server+CoreDataClass.swift │ │ └── Server+CoreDataProperties.swift │ ├── Host.swift │ ├── LoginConfirmation.swift │ ├── PortRange.swift │ ├── ProductId.swift │ ├── SecureDNS.swift │ ├── Service.swift │ ├── ServiceStatus.swift │ ├── Settings.swift │ ├── V2Ray │ │ ├── V2RayConfig.swift │ │ ├── V2RayCore.swift │ │ ├── V2RaySettings.swift │ │ └── config.json │ ├── VPNServer.swift │ ├── VPNServerList.swift │ └── WireGuard │ │ ├── CIDRAddress.swift │ │ ├── Interface.swift │ │ ├── Peer.swift │ │ ├── Tunnel.swift │ │ └── WireGuardEndpoint.swift ├── PrivacyInfo.xcprivacy ├── Scenes │ ├── AccountScreen │ │ ├── AccountViewController.swift │ │ └── View │ │ │ └── AccountView.swift │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Controls │ │ ├── FlagImageView.swift │ │ └── UITextFieldPadding.swift │ ├── Initial.storyboard │ ├── MainScreen │ │ ├── AppIntentsHandler.swift │ │ ├── ControlPanel │ │ │ ├── ControlPanelViewController+Ext.swift │ │ │ ├── ControlPanelViewController.swift │ │ │ ├── FloatingPanelController+Ext.swift │ │ │ ├── FloatingPanelMainLayout.swift │ │ │ └── View │ │ │ │ ├── ConnectionInfoBoxView.swift │ │ │ │ ├── ConnectionInfoView.swift │ │ │ │ └── NetworkViewTableCell.swift │ │ ├── MainViewController+Ext.swift │ │ ├── MainViewController.swift │ │ ├── Map │ │ │ ├── AnimatedCircleLayer.swift │ │ │ ├── ConnectToServerPopupView.swift │ │ │ ├── ConnectionInfoPopupView.swift │ │ │ ├── InfoAlertView.swift │ │ │ ├── IpProtocolView.swift │ │ │ ├── MapConstants.swift │ │ │ ├── MapMarkerView.swift │ │ │ └── MapScrollView.swift │ │ └── View │ │ │ ├── ControlPanelView.swift │ │ │ └── MainView.swift │ ├── SecureDNS │ │ ├── SecureDNSViewController.swift │ │ └── View │ │ │ └── SecureDNSView.swift │ ├── Signup.storyboard │ ├── Signup │ │ ├── CaptchaViewController.swift │ │ ├── CreateAccount │ │ │ ├── CreateAccountViewController.swift │ │ │ └── View │ │ │ │ └── CreateAccountView.swift │ │ ├── LoginViewController.swift │ │ ├── Payment │ │ │ ├── PaymentViewController.swift │ │ │ └── View │ │ │ │ └── PaymentComponentView.swift │ │ ├── Scanner │ │ │ ├── ScannerViewController.swift │ │ │ └── View │ │ │ │ └── ScannerView.swift │ │ ├── SelectPlan │ │ │ ├── SelectPlanViewController.swift │ │ │ └── View │ │ │ │ ├── PlanLabel.swift │ │ │ │ └── SelectPlanView.swift │ │ └── TwoFactorViewController.swift │ ├── TableCells │ │ ├── NetworkProtectionHeaderTableViewCell.swift │ │ ├── NetworkProtectionTableViewCell.swift │ │ ├── PortTableViewCell.swift │ │ ├── ProtocolTableViewCell.swift │ │ ├── ServerConfigurationCell.swift │ │ ├── ServerTableViewCell.swift │ │ ├── ServiceTableViewCell.swift │ │ ├── ServiceTitleTableViewCell.swift │ │ └── WireGuardRegenerationRateCell.swift │ └── ViewControllers │ │ ├── AddCustomPortViewController.swift │ │ ├── AdvancedViewController.swift │ │ ├── AntiTrackerListViewController.swift │ │ ├── AntiTrackerViewController.swift │ │ ├── CustomDNSViewController.swift │ │ ├── MTUViewController.swift │ │ ├── NavigationController.swift │ │ ├── NetworkProtectionRulesViewController.swift │ │ ├── NetworkProtectionViewController.swift │ │ ├── PortViewController.swift │ │ ├── ProtocolViewController.swift │ │ ├── ServerViewController.swift │ │ ├── ServersConfigurationTableViewController.swift │ │ ├── SettingsViewController.swift │ │ ├── TermsOfServiceViewController.swift │ │ ├── UpgradePlanViewController.swift │ │ └── WireGuardSettingsViewController.swift ├── Store.storekit ├── Utilities │ ├── DNSResolver │ │ ├── DNSResolver.swift │ │ └── InternetAddress.swift │ ├── Extensions │ │ ├── Alerts+Ext.swift │ │ ├── Array+Ext.swift │ │ ├── Data+Ext.swift │ │ ├── Date+Ext.swift │ │ ├── Decodable+Ext.swift │ │ ├── Designable+Ext.swift │ │ ├── DispatchQueue+Ext.swift │ │ ├── Double+Ext.swift │ │ ├── Error+Ext.swift │ │ ├── FileManager+Extension.swift │ │ ├── NETunnelProviderProtocol+Ext.swift │ │ ├── NEVPNStatus+Ext.swift │ │ ├── NSMutableAttributedString+Ext.swift │ │ ├── NotificationName+Ext.swift │ │ ├── String+Ext.swift │ │ ├── StringProtocol+Ext.swift │ │ ├── TunnelKit+Ext.swift │ │ ├── UIApplication+Ext.swift │ │ ├── UIButton+Ext.swift │ │ ├── UIColor+Ext.swift │ │ ├── UIDevice+Ext.swift │ │ ├── UIImage+Ext.swift │ │ ├── UIImageView+Ext.swift │ │ ├── UILabel+Ext.swift │ │ ├── UITableView+Ext.swift │ │ ├── UITableViewController+Ext.swift │ │ ├── UIView+Ext.swift │ │ ├── UIViewController+Ext.swift │ │ ├── UIWindow+Ext.swift │ │ ├── URL+Ext.swift │ │ └── UserDefaults+Ext.swift │ ├── Kem │ │ └── KemHelper.swift │ ├── Logging │ │ ├── Logger.swift │ │ ├── ringlogger.c │ │ └── ringlogger.h │ └── Pinger │ │ ├── PingManager │ │ ├── ICMPHeader.swift │ │ ├── Ping.swift │ │ ├── PingManager.swift │ │ └── PingResult.swift │ │ └── Pinger.swift ├── ViewModels │ ├── AccountViewModel.swift │ ├── InfoAlertViewModel.swift │ ├── ProofsViewModel.swift │ ├── VPNServerViewModel.swift │ └── VPNStatusViewModel.swift ├── liboqs │ └── include │ │ └── oqs │ │ ├── aes.h │ │ ├── common.h │ │ ├── kem.h │ │ ├── kem_kyber.h │ │ ├── oqs.h │ │ ├── oqsconfig.h │ │ ├── rand.h │ │ ├── sha2.h │ │ ├── sha3.h │ │ ├── sha3x4.h │ │ └── sig.h └── servers.txt ├── IVPNWidget ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Contents.json │ └── WidgetBackground.colorset │ │ └── Contents.json ├── Extension │ ├── KeyChain.swift │ ├── Notification.swift │ ├── UIDevice.swift │ └── UserDefaults.swift ├── IVPNWidget.swift ├── IVPNWidgetBundle.swift ├── Info.plist ├── PrivacyInfo-IVPNWidget.xcprivacy ├── Scene │ ├── ConnectionInfo │ │ ├── ConnectionInfo.swift │ │ ├── ConnectionInfoView.swift │ │ └── ConnectionInfoViewModel.swift │ ├── Location │ │ ├── LocationView.swift │ │ └── LocationViewModel.swift │ ├── MainView.swift │ └── Status │ │ ├── Status.swift │ │ ├── StatusView.swift │ │ └── StatusViewModel.swift ├── Service │ └── DataService.swift └── Widget-Bridging-Header.h ├── IVPNWidgetExtension.entitlements ├── LICENSE.md ├── README.md ├── UITests ├── Extensions │ └── XCUIApplication+Ext.swift ├── Info.plist ├── InitScreenTests.swift ├── MainScreenTests.swift └── SettingsScreenTests.swift ├── UnitTests ├── ApiServiceServersTests.swift ├── ApiSettings.swift ├── Enum │ ├── AddressTypeTests.swift │ ├── ConnectionSettingsTests.swift │ ├── DNSProtocolTypeTests.swift │ └── ServiceTypeTests.swift ├── Extensions │ ├── ArrayTests.swift │ ├── DoubleTests.swift │ ├── NETunnelProviderProtocol+ExtTests.swift │ ├── NEVPNStatusTests.swift │ ├── NSMutableAttributedStringTests.swift │ ├── StringTests.swift │ ├── UIApplication+ExtTests.swift │ ├── UIDeviceTests.swift │ └── UserDefaultsTests.swift ├── Info.plist ├── KeychainTests.swift ├── Managers │ ├── APIAccessManagerTests.swift │ ├── KeyChainTests.swift │ ├── SessionManagerTests.swift │ ├── StorageManager+OnDemandRuleTests.swift │ ├── StorageManagerTests.swift │ └── VPNManagerTests.swift ├── Models │ ├── ApplicationTests.swift │ ├── AuthenticationTests.swift │ ├── GeoLookupTests.swift │ ├── SecureDNSTests.swift │ ├── ServiceStatusTests.swift │ └── VPNServersTests.swift ├── ViewModels │ ├── AccountViewModelTests.swift │ ├── InfoAlertViewModelTests.swift │ ├── ProofsViewModelTests.swift │ ├── VPNServerViewModelTests.swift │ └── VPNStatusViewModelTests.swift └── WireGuard │ ├── AppKeyManagerTests.swift │ ├── CIDRAddressTests.swift │ ├── InterfaceTests.swift │ ├── PeerTests.swift │ ├── TunnelTests.swift │ └── WireGuardEndpointTests.swift ├── V2RayControl ├── ctrl.go ├── go.mod ├── go.sum └── main │ └── main.go ├── build-liboqs.sh ├── build-v2ray.sh ├── fastlane ├── Appfile.template ├── Fastfile └── README.md ├── openvpn-tunnel-provider ├── Info.plist ├── OpenVPNNetworkExtension-Bridging-Header.h ├── PacketTunnelProvider.swift ├── PrivacyInfo-openvpn-tunnel-provider.xcprivacy └── openvpn_tunnel_provider.entitlements └── wireguard-tunnel-provider ├── Info.plist ├── PacketTunnelProvider.swift ├── PrivacyInfo-wireguard-tunnel-provider.xcprivacy ├── TimerManager.swift ├── WireGuard └── WireGuardNetworkExtension-Bridging-Header.h └── wireguard_tunnel_provider.entitlements /.github/ISSUE_TEMPLATE/1-bug-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "Bug report" 3 | about: Report a bug in IVPN iOS app 4 | --- 5 | 6 | # Bug report 7 | 8 | ## Describe your environment 9 | 10 | * Device: _____ 11 | * OS name and version: _____ 12 | * IVPN app version: _____ 13 | 14 | ## Describe the problem 15 | 16 | ### Steps to reproduce: 17 | 18 | 1. _____ 19 | 2. _____ 20 | 3. _____ 21 | 22 | ### Observed Results: 23 | 24 | * What happened? This could be a description, log output, etc. 25 | 26 | ### Expected Results: 27 | 28 | * What did you expect to happen? 29 | 30 | ### Relevant Code: 31 | 32 | ``` 33 | // TODO(you): code here to reproduce the problem 34 | ``` -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/2-feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "Feature request" 3 | about: Suggest a feature for IVPN iOS app 4 | --- 5 | 6 | # Feature request 7 | 8 | ## Description 9 | 10 | A clear and concise description of the problem or missing capability. 11 | 12 | ## Describe the solution you'd like 13 | 14 | If you have a solution in mind, please describe it. 15 | 16 | ## Describe alternatives you've considered 17 | 18 | Have you considered any alternative solutions or workarounds? -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | # This action is disabled until we can run it on Apple Silicon powered macOS runners - https://github.com/github/roadmap/issues/528 4 | 5 | # on: 6 | # push: 7 | # branches: [ "main", "develop" ] 8 | # pull_request: 9 | 10 | # jobs: 11 | # test: 12 | # name: Unit and UI Tests 13 | # runs-on: macOS-latest 14 | # steps: 15 | # - uses: actions/setup-go@v2 16 | # with: 17 | # go-version: 1.18 18 | # - uses: actions/checkout@v2 19 | # - name: Set up config files 20 | # run: | 21 | # cp IVPNClient/Config/staging.template.xcconfig IVPNClient/Config/staging.xcconfig 22 | # cp IVPNClient/Config/release.template.xcconfig IVPNClient/Config/release.xcconfig 23 | # cp IVPNClient/Config/OpenVPNConf.template.swift IVPNClient/Config/OpenVPNConf.swift 24 | # cp fastlane/Appfile.template fastlane/Appfile 25 | # - name: Build and test 26 | # run: xcodebuild test -scheme IVPNClient -destination 'platform=iOS Simulator,name=iPhone 14' 27 | -------------------------------------------------------------------------------- /.github/workflows/linter.yml: -------------------------------------------------------------------------------- 1 | name: Lint Code Base 2 | 3 | on: 4 | push: 5 | branches: [ "main", "develop" ] 6 | pull_request: 7 | 8 | jobs: 9 | build: 10 | name: Lint Code Base 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Checkout Code 14 | uses: actions/checkout@v2 15 | - name: Lint Code Base 16 | uses: docker://github/super-linter:v3.13.1 17 | env: 18 | VALIDATE_ALL_CODEBASE: false 19 | VALIDATE_MARKDOWN: false 20 | VALIDATE_GO: false 21 | VALIDATE_POWERSHELL: false 22 | DEFAULT_BRANCH: develop 23 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -------------------------------------------------------------------------------- /.github/workflows/mobsfscan.yml: -------------------------------------------------------------------------------- 1 | name: mobsfscan 2 | 3 | on: 4 | push: 5 | branches: [ "main", "develop" ] 6 | pull_request: 7 | 8 | jobs: 9 | build: 10 | runs-on: ubuntu-latest 11 | name: mobsfscan 12 | steps: 13 | - uses: actions/checkout@v2 14 | - name: mobsfscan 15 | uses: MobSF/mobsfscan@main 16 | with: 17 | args: '. --json' 18 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | # This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time. 2 | # 3 | # You can adjust the behavior by modifying this file. 4 | # For more information, see: 5 | # https://github.com/actions/stale 6 | name: Mark stale issues and pull requests 7 | 8 | on: 9 | schedule: 10 | - cron: '30 1 * * *' # Scheduled to run at 1:30 AM every day 11 | 12 | jobs: 13 | stale: 14 | 15 | runs-on: ubuntu-latest 16 | permissions: 17 | issues: write 18 | pull-requests: write 19 | 20 | steps: 21 | - uses: actions/stale@v5 22 | with: 23 | repo-token: ${{ secrets.GITHUB_TOKEN }} 24 | stale-issue-message: 'This issue is stale because it has been open 60 days with no activity.' 25 | stale-pr-message: 'This PR is stale because it has been open 60 days with no activity.' 26 | stale-issue-label: 'no-issue-activity' 27 | stale-pr-label: 'no-pr-activity' 28 | exempt-all-assignees: true 29 | exempt-all-milestones: true 30 | -------------------------------------------------------------------------------- /.github/workflows/swiftlint.yml: -------------------------------------------------------------------------------- 1 | name: SwiftLint 2 | 3 | on: 4 | push: 5 | branches: [ "main", "develop" ] 6 | pull_request: 7 | paths: 8 | - '.github/workflows/swiftlint.yml' 9 | - '.swiftlint.yml' 10 | - '**/*.swift' 11 | 12 | jobs: 13 | SwiftLint: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@v2 17 | - name: GitHub Action for SwiftLint 18 | uses: norio-nomura/action-swiftlint@3.1.0 19 | -------------------------------------------------------------------------------- /.swiftlint.yml: -------------------------------------------------------------------------------- 1 | disabled_rules: 2 | - force_cast 3 | - line_length 4 | - trailing_whitespace 5 | - todo 6 | - redundant_discardable_let 7 | - discarded_notification_center_observer 8 | - identifier_name 9 | - force_try 10 | 11 | excluded: 12 | - Pods 13 | - IVPNClient/Utilities/Pinger/PingManager 14 | 15 | function_body_length: 16 | warning: 300 17 | error: 500 18 | function_parameter_count: 19 | warning: 6 20 | error: 8 21 | type_body_length: 22 | warning: 400 23 | error: 500 24 | file_length: 25 | warning: 1000 26 | error: 1500 27 | ignore_comment_only_lines: true 28 | cyclomatic_complexity: 29 | warning: 15 30 | error: 45 31 | reporter: "xcode" -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | # This is the official list of IVPN iOS app authors 2 | 3 | # Names should be added to this file as 4 | # Name 5 | 6 | 7 | # Individual Persons 8 | 9 | Fedir Nepyyvoda 10 | Juraj Hilje 11 | 12 | 13 | # Organizations 14 | 15 | IVPN Limited -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/Cellular.imageset/Cellular.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/Cellular.imageset/Cellular.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/Cellular.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Cellular.pdf" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Slice Copy.pdf", 10 | "appearances" : [ 11 | { 12 | "appearance" : "luminosity", 13 | "value" : "dark" 14 | } 15 | ] 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/Cellular.imageset/Slice Copy.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/Cellular.imageset/Slice Copy.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/AD.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AD.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/AE.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AE.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/AF.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AF.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/AG.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AG.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/AI.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AI.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/AL.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AL.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/AM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/AO.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AO.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/AR.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AR.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/AS.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AS.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/AT.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AT.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/AU.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AU.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/AW.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AW.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/AX.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AX.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/AZ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AZ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BA.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BA.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BB.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BB.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BD.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BD.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BE.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BE.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BF.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BF.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BG.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BG.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BH.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BH.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BI.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BI.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BJ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BJ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BL.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BL.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BN.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BN.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BO.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BO.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BR.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BR.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BS.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BS.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BT.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BT.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BV.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BV.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BW.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BW.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BY.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BY.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/BZ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BZ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CA.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CA.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CAF.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CAF.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CAS.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CAS.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CC.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CC.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CD.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CD.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CF.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CF.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CG.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CG.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CH.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CH.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CI.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CI.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CK.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CK.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CL.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CL.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CN.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CN.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CNA.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CNA.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CO.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CO.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/COC.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "COC.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CR.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CR.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CSA.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CSA.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CU.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CU.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CV.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CV.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CW.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CW.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CX.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CX.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CY.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CY.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/CZ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CZ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/DE.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "DE.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/DJ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "DJ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/DK.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "DK.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/DM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "DM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/DO.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "DO.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/DZ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "DZ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/EC.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "EC.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/EE.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "EE.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/EG.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "EG.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/ER.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ER.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/ES.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ES.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/ET.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ET.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/EU.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "EU.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/FI.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "FI.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/FJ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "FJ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/FK.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "FK.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/FM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "FM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/FO.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "FO.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/FR.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "FR.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GA.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GA.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GB-ENG.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GB-ENG.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GB-NIR.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GB-NIR.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GB-SCT.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GB-SCT.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GB-WLS.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GB-WLS.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GB-ZET.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GB-ZET.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GB.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GB.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GD.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GD.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GE.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GE.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GF.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GF.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GG.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GG.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GH.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GH.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GI.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GI.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GL.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GL.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GN.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GN.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GP.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GP.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GQ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GQ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GR.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GR.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GS.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GS.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GT.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GT.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GU.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GU.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GW.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GW.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/GY.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GY.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/HK.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "HK.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/HM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "HM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/HN.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "HN.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/HR.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "HR.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/HT.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "HT.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/HU.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "HU.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/ID.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ID.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/IE.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "IE.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/IL.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "IL.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/IM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "IM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/IN.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "IN.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/IO.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "IO.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/IQ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "IQ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/IR.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "IR.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/IS.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "IS.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/IT.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "IT.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/JE.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "JE.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/JM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "JM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/JO.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "JO.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/JP.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "JP.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/KE.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "KE.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/KG.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "KG.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/KH.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "KH.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/KI.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "KI.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/KM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "KM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/KN.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "KN.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/KP.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "KP.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/KR.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "KR.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/KW.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "KW.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/KY.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "KY.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/KZ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "KZ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/LA.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LA.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/LB.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LB.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/LC.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LC.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/LGBT.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LGBT.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/LI.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LI.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/LK.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LK.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/LR.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LR.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/LS.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LS.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/LT.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LT.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/LU.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LU.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/LV.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LV.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/LY.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LY.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MA.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MA.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MC.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MC.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MD.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MD.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/ME.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ME.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MF.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MF.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MG.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MG.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MH.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MH.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MK.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MK.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/ML.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ML.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MN.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MN.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MO.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MO.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MP.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MP.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MQ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MQ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MR.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MR.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MS.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MS.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MT.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MT.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MU.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MU.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MV.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MV.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MW.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MW.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MX.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MX.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MY.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MY.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/MZ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MZ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/NA.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "NA.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/NC.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "NC.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/NE.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "NE.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/NF.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "NF.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/NG.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "NG.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/NI.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "NI.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/NL.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "NL.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/NO.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "NO.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/NP.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "NP.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/NR.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "NR.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/NU.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "NU.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/NZ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "NZ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/OM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "OM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/PA.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "PA.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/PE.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "PE.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/PF.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "PF.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/PG.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "PG.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/PH.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "PH.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/PK.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "PK.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/PL.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "PL.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/PM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "PM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/PN.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "PN.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/PR.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "PR.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/PS.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "PS.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/PT.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "PT.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/PW.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "PW.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/PY.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "PY.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/QA.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "QA.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/RE.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "RE.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/RO.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "RO.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/RS.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "RS.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/RU.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "RU.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/RW.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "RW.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SA.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SA.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SB.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SB.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SC.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SC.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SD.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SD.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SE.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SE.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SG.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SG.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SH.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SH.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SI.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SI.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SJ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SJ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SK.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SK.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SL.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SL.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SN.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SN.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SO.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SO.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SR.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SR.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SS.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SS.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/ST.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ST.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SV.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SV.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SX.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SX.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SY.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SY.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/SZ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "SZ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/TC.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TC.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/TD.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TD.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/TF.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TF.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/TG.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TG.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/TH.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TH.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/TJ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TJ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/TK.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TK.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/TL.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TL.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/TM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/TN.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TN.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/TO.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TO.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/TR.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TR.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/TT.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TT.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/TV.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TV.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/TW.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TW.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/TZ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TZ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/UA.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "UA.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/UG.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "UG.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/UM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "UM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/US-CA.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "US-CA.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/US.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "US.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/UY.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "UY.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/UZ.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "UZ.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/VA.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "VA.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/VC.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "VC.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/VE.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "VE.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/VG.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "VG.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/VI.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "VI.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/VN.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "VN.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/VU.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "VU.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/WF.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "WF.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/WS.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "WS.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/WW.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "WW.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/XK.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "XK.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/YE.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "YE.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/YT.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "YT.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/ZA.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ZA.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/ZM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ZM.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/FlagsSVG/ZW.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ZW.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/Lock.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Lock.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/Lock.imageset/Lock.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/Lock.imageset/Lock.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/Unlock.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Unlock.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/Unlock.imageset/Unlock.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/Unlock.imageset/Unlock.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/WiFi.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "WiFi.pdf" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Slice Copy 2.pdf", 10 | "appearances" : [ 11 | { 12 | "appearance" : "luminosity", 13 | "value" : "dark" 14 | } 15 | ] 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/WiFi.imageset/Slice Copy 2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/WiFi.imageset/Slice Copy 2.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/WiFi.imageset/WiFi.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/WiFi.imageset/WiFi.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/alert-info-dark-navy.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "alert-info-dark-navy.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/favorite-server.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "favourite-server-light.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "appearances" : [ 9 | { 10 | "appearance" : "luminosity", 11 | "value" : "dark" 12 | } 13 | ], 14 | "filename" : "favourite-server-dark.pdf", 15 | "idiom" : "universal" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/favorite-server.imageset/favourite-server-dark.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/favorite-server.imageset/favourite-server-dark.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/favorite-server.imageset/favourite-server-light.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/favorite-server.imageset/favourite-server-light.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-active-shield.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-active-shield.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-active-shield.imageset/icon-active-shield.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-active-shield.imageset/icon-active-shield.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-alert-dark-yellow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-alert-dark-yellow.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-arrow-down-gray.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon-arrow-down-gray.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-arrow-left-gray.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon-arrow-left.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "appearances" : [ 9 | { 10 | "appearance" : "luminosity", 11 | "value" : "dark" 12 | } 13 | ], 14 | "filename" : "icon-arrow-left-gray-dark.pdf", 15 | "idiom" : "universal" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-arrow-left.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon-arrow-left.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-arrow-right-gray.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon-arrow-right.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "appearances" : [ 9 | { 10 | "appearance" : "luminosity", 11 | "value" : "dark" 12 | } 13 | ], 14 | "filename" : "icon-arrow-right-gray-dark.pdf", 15 | "idiom" : "universal" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-arrow-up-gray.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon-arrow-up-gray.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-check-2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-check-2.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-check-grey-small.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-check-grey-small.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-check-grey-small.imageset/icon-check-grey-small.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-check-grey-small.imageset/icon-check-grey-small.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-check.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-check.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-check.imageset/icon-check.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-check.imageset/icon-check.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-circle-green.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-circle-green.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-circle-green.imageset/icon-circle-green.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-circle-green.imageset/icon-circle-green.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-circle-orange.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-circle-orange.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-circle-orange.imageset/icon-circle-orange.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-circle-orange.imageset/icon-circle-orange.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-circle-red.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-circle-red.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-circle-red.imageset/icon-circle-red.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-circle-red.imageset/icon-circle-red.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-copy.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-copy.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true 14 | } 15 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-copy.imageset/icon-copy.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-copy.imageset/icon-copy.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-crosshair.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon-crosshair.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "appearances" : [ 9 | { 10 | "appearance" : "luminosity", 11 | "value" : "dark" 12 | } 13 | ], 14 | "filename" : "icon-crosshair-dark-mode.pdf", 15 | "idiom" : "universal" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-fastest-server.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-fastest-server.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-fastest-server.imageset/icon-fastest-server.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-fastest-server.imageset/icon-fastest-server.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-inactive-shield.imageset/1 copy.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-inactive-shield.imageset/1 copy.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-inactive-shield.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-inactive-shield.pdf" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "1 copy.pdf", 10 | "appearances" : [ 11 | { 12 | "appearance" : "luminosity", 13 | "value" : "dark" 14 | } 15 | ] 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-inactive-shield.imageset/icon-inactive-shield.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-inactive-shield.imageset/icon-inactive-shield.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-info-2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-info-2.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-info.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-info.pdf" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Slice 2 Copy.pdf", 10 | "appearances" : [ 11 | { 12 | "appearance" : "luminosity", 13 | "value" : "dark" 14 | } 15 | ] 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-info.imageset/Slice 2 Copy.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-info.imageset/Slice 2 Copy.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-info.imageset/icon-info.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-info.imageset/icon-info.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-map-pin.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-map-pin.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-menu.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-menu.pdf" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "menu copy.pdf", 10 | "appearances" : [ 11 | { 12 | "appearance" : "luminosity", 13 | "value" : "dark" 14 | } 15 | ] 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-menu.imageset/icon-menu.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-menu.imageset/icon-menu.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-menu.imageset/menu copy.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-menu.imageset/menu copy.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-qr-code.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon-qr-code.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-server.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-server.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-settings-2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon-settings-2.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-settings.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-settings.pdf" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon-settings-dark.pdf", 10 | "appearances" : [ 11 | { 12 | "appearance" : "luminosity", 13 | "value" : "dark" 14 | } 15 | ] 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-settings.imageset/icon-settings-dark.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-settings.imageset/icon-settings-dark.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-settings.imageset/icon-settings.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-settings.imageset/icon-settings.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-shuffle.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon-shuffle.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "appearances" : [ 9 | { 10 | "appearance" : "luminosity", 11 | "value" : "dark" 12 | } 13 | ], 14 | "filename" : "icon-shuffle-dark.pdf", 15 | "idiom" : "universal" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-star-off.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "star-off.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-star-on.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "star-on.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-step-1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon-step-1.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "original" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-step-2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon-step-2.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "original" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-step-3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon-step-3.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "original" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-user.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-user.pdf" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon-user-dark.pdf", 10 | "appearances" : [ 11 | { 12 | "appearance" : "luminosity", 13 | "value" : "dark" 14 | } 15 | ] 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-user.imageset/icon-user-dark.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-user.imageset/icon-user-dark.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-user.imageset/icon-user.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/icon-user.imageset/icon-user.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/icon-wifi-off.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon-wifi-off.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/ivpn-logo-gray.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ivpn-logo-gray.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/ivpn-logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ivpn-logo.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/map.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "map-4700.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "map-1700.pdf", 9 | "idiom" : "universal", 10 | "memory" : "1GB" 11 | }, 12 | { 13 | "filename" : "map-3700.pdf", 14 | "idiom" : "universal", 15 | "memory" : "2GB" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-1.imageset/graphic1A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-1.imageset/graphic1A.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-1.imageset/graphic1A@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-1.imageset/graphic1A@2x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-1.imageset/graphic1A@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-1.imageset/graphic1A@3x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-1.imageset/illustration1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-1.imageset/illustration1.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-1.imageset/illustration1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-1.imageset/illustration1@2x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-1.imageset/illustration1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-1.imageset/illustration1@3x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-2.imageset/graphic1B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-2.imageset/graphic1B.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-2.imageset/graphic1B@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-2.imageset/graphic1B@2x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-2.imageset/graphic1B@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-2.imageset/graphic1B@3x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-2.imageset/illustration2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-2.imageset/illustration2.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-2.imageset/illustration2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-2.imageset/illustration2@2x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-2.imageset/illustration2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-2.imageset/illustration2@3x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-3.imageset/graphic1C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-3.imageset/graphic1C.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-3.imageset/graphic1C@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-3.imageset/graphic1C@2x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-3.imageset/graphic1C@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-3.imageset/graphic1C@3x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-3.imageset/illustration3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-3.imageset/illustration3.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-3.imageset/illustration3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-3.imageset/illustration3@2x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-3.imageset/illustration3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-3.imageset/illustration3@3x.png -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Group 27.pdf" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Group 27-2.pdf", 10 | "appearances" : [ 11 | { 12 | "appearance" : "luminosity", 13 | "value" : "dark" 14 | } 15 | ] 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-4.imageset/Group 27-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-4.imageset/Group 27-2.pdf -------------------------------------------------------------------------------- /IVPNClient/Assets.xcassets/promo-4.imageset/Group 27.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ivpn/ios-app/682080eb321b59dcd720b49ee263aa3ade68a082/IVPNClient/Assets.xcassets/promo-4.imageset/Group 27.pdf -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnBackgroundBase.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "1.000", 13 | "alpha" : "1.000", 14 | "blue" : "1.000", 15 | "green" : "1.000" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "0", 31 | "alpha" : "1.000", 32 | "blue" : "0", 33 | "green" : "0" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnBackgroundConnected.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "245", 13 | "alpha" : "1.000", 14 | "blue" : "252", 15 | "green" : "249" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "0", 31 | "alpha" : "1.000", 32 | "blue" : "0", 33 | "green" : "0" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnBackgroundPrimary.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "1.000", 13 | "alpha" : "1.000", 14 | "blue" : "1.000", 15 | "green" : "1.000" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "28", 31 | "alpha" : "1.000", 32 | "blue" : "30", 33 | "green" : "28" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnBackgroundQuaternary.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "242", 13 | "alpha" : "1.000", 14 | "blue" : "246", 15 | "green" : "244" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "0", 31 | "alpha" : "1.000", 32 | "blue" : "0", 33 | "green" : "0" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnBackgroundSecondary.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "132", 13 | "alpha" : "1.000", 14 | "blue" : "165", 15 | "green" : "148" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "44", 31 | "alpha" : "1.000", 32 | "blue" : "46", 33 | "green" : "44" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnBackgroundTertiary.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "1.000", 13 | "alpha" : "1.000", 14 | "blue" : "1.000", 15 | "green" : "1.000" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "58", 31 | "alpha" : "1.000", 32 | "blue" : "60", 33 | "green" : "58" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnBlue.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "230", 9 | "green" : "143", 10 | "red" : "57" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | } 15 | ], 16 | "info" : { 17 | "author" : "xcode", 18 | "version" : 1 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnDarkGreen.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "100", 13 | "alpha" : "1.000", 14 | "blue" : "7", 15 | "green" : "173" 16 | } 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnDarkNavy.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "62", 13 | "alpha" : "1.000", 14 | "blue" : "148", 15 | "green" : "104" 16 | } 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnDarkRed.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "42", 9 | "green" : "21", 10 | "red" : "119" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | } 15 | ], 16 | "info" : { 17 | "author" : "xcode", 18 | "version" : 1 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnDarkYellow.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "119", 13 | "alpha" : "1.000", 14 | "blue" : "50", 15 | "green" : "104" 16 | } 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray1.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "125", 13 | "alpha" : "1.000", 14 | "blue" : "165", 15 | "green" : "145" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "72", 31 | "alpha" : "1.000", 32 | "blue" : "74", 33 | "green" : "72" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray10.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "229", 13 | "alpha" : "1.000", 14 | "blue" : "236", 15 | "green" : "232" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "44", 31 | "alpha" : "1.000", 32 | "blue" : "46", 33 | "green" : "44" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray11.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "225", 13 | "alpha" : "1.000", 14 | "blue" : "252", 15 | "green" : "238" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "58", 31 | "alpha" : "1.000", 32 | "blue" : "60", 33 | "green" : "58" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray12.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "245", 13 | "alpha" : "1.000", 14 | "blue" : "252", 15 | "green" : "249" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "44", 31 | "alpha" : "1.000", 32 | "blue" : "46", 33 | "green" : "44" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray13.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "38", 13 | "alpha" : "1.000", 14 | "blue" : "77", 15 | "green" : "57" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "0", 31 | "alpha" : "1.000", 32 | "blue" : "0", 33 | "green" : "0" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray14.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "237", 13 | "alpha" : "1.000", 14 | "blue" : "247", 15 | "green" : "242" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "72", 31 | "alpha" : "1.000", 32 | "blue" : "74", 33 | "green" : "72" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray15.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "82", 13 | "alpha" : "1.000", 14 | "blue" : "144", 15 | "green" : "103" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "0", 31 | "alpha" : "1.000", 32 | "blue" : "0", 33 | "green" : "0" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray16.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "150", 13 | "alpha" : "1.000", 14 | "blue" : "187", 15 | "green" : "167" 16 | } 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray17.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "1.000", 9 | "green" : "1.000", 10 | "red" : "1.000" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | }, 15 | { 16 | "appearances" : [ 17 | { 18 | "appearance" : "luminosity", 19 | "value" : "dark" 20 | } 21 | ], 22 | "color" : { 23 | "color-space" : "srgb", 24 | "components" : { 25 | "alpha" : "1.000", 26 | "blue" : "50", 27 | "green" : "51", 28 | "red" : "52" 29 | } 30 | }, 31 | "idiom" : "universal" 32 | } 33 | ], 34 | "info" : { 35 | "author" : "xcode", 36 | "version" : 1 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray18.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "109", 9 | "green" : "93", 10 | "red" : "66" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | }, 15 | { 16 | "appearances" : [ 17 | { 18 | "appearance" : "luminosity", 19 | "value" : "dark" 20 | } 21 | ], 22 | "color" : { 23 | "color-space" : "srgb", 24 | "components" : { 25 | "alpha" : "1.000", 26 | "blue" : "211", 27 | "green" : "211", 28 | "red" : "211" 29 | } 30 | }, 31 | "idiom" : "universal" 32 | } 33 | ], 34 | "info" : { 35 | "author" : "xcode", 36 | "version" : 1 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray19.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "244", 9 | "green" : "243", 10 | "red" : "239" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | }, 15 | { 16 | "appearances" : [ 17 | { 18 | "appearance" : "luminosity", 19 | "value" : "dark" 20 | } 21 | ], 22 | "color" : { 23 | "color-space" : "srgb", 24 | "components" : { 25 | "alpha" : "1.000", 26 | "blue" : "26", 27 | "green" : "25", 28 | "red" : "25" 29 | } 30 | }, 31 | "idiom" : "universal" 32 | } 33 | ], 34 | "info" : { 35 | "author" : "xcode", 36 | "version" : 1 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray2.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "223", 13 | "alpha" : "1.000", 14 | "blue" : "235", 15 | "green" : "229" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "44", 31 | "alpha" : "1.000", 32 | "blue" : "46", 33 | "green" : "44" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray20.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "231", 9 | "green" : "223", 10 | "red" : "208" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | }, 15 | { 16 | "appearances" : [ 17 | { 18 | "appearance" : "luminosity", 19 | "value" : "dark" 20 | } 21 | ], 22 | "color" : { 23 | "color-space" : "srgb", 24 | "components" : { 25 | "alpha" : "1.000", 26 | "blue" : "50", 27 | "green" : "51", 28 | "red" : "52" 29 | } 30 | }, 31 | "idiom" : "universal" 32 | } 33 | ], 34 | "info" : { 35 | "author" : "xcode", 36 | "version" : 1 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray21.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "107", 9 | "green" : "107", 10 | "red" : "107" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | }, 15 | { 16 | "appearances" : [ 17 | { 18 | "appearance" : "luminosity", 19 | "value" : "dark" 20 | } 21 | ], 22 | "color" : { 23 | "color-space" : "srgb", 24 | "components" : { 25 | "alpha" : "1.000", 26 | "blue" : "211", 27 | "green" : "209", 28 | "red" : "209" 29 | } 30 | }, 31 | "idiom" : "universal" 32 | } 33 | ], 34 | "info" : { 35 | "author" : "xcode", 36 | "version" : 1 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray22.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "212", 9 | "green" : "212", 10 | "red" : "212" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | }, 15 | { 16 | "appearances" : [ 17 | { 18 | "appearance" : "luminosity", 19 | "value" : "dark" 20 | } 21 | ], 22 | "color" : { 23 | "color-space" : "srgb", 24 | "components" : { 25 | "alpha" : "1.000", 26 | "blue" : "49", 27 | "green" : "49", 28 | "red" : "48" 29 | } 30 | }, 31 | "idiom" : "universal" 32 | } 33 | ], 34 | "info" : { 35 | "author" : "xcode", 36 | "version" : 1 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray23.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "241", 9 | "green" : "242", 10 | "red" : "242" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | }, 15 | { 16 | "appearances" : [ 17 | { 18 | "appearance" : "luminosity", 19 | "value" : "dark" 20 | } 21 | ], 22 | "color" : { 23 | "color-space" : "srgb", 24 | "components" : { 25 | "alpha" : "1.000", 26 | "blue" : "68", 27 | "green" : "69", 28 | "red" : "70" 29 | } 30 | }, 31 | "idiom" : "universal" 32 | } 33 | ], 34 | "info" : { 35 | "author" : "xcode", 36 | "version" : 1 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray24.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "223", 9 | "green" : "215", 10 | "red" : "203" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | }, 15 | { 16 | "appearances" : [ 17 | { 18 | "appearance" : "luminosity", 19 | "value" : "dark" 20 | } 21 | ], 22 | "color" : { 23 | "color-space" : "srgb", 24 | "components" : { 25 | "alpha" : "1.000", 26 | "blue" : "37", 27 | "green" : "34", 28 | "red" : "30" 29 | } 30 | }, 31 | "idiom" : "universal" 32 | } 33 | ], 34 | "info" : { 35 | "author" : "xcode", 36 | "version" : 1 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray3.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "243", 13 | "alpha" : "1.000", 14 | "blue" : "243", 15 | "green" : "243" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "44", 31 | "alpha" : "1.000", 32 | "blue" : "46", 33 | "green" : "44" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray4.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "180", 13 | "alpha" : "1.000", 14 | "blue" : "204", 15 | "green" : "193" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "72", 31 | "alpha" : "1.000", 32 | "blue" : "74", 33 | "green" : "72" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray5.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "209", 13 | "alpha" : "1.000", 14 | "blue" : "222", 15 | "green" : "215" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "72", 31 | "alpha" : "1.000", 32 | "blue" : "74", 33 | "green" : "72" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray6.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "180", 13 | "alpha" : "1.000", 14 | "blue" : "204", 15 | "green" : "193" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "142", 31 | "alpha" : "1.000", 32 | "blue" : "147", 33 | "green" : "142" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray7.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "247", 13 | "alpha" : "1.000", 14 | "blue" : "249", 15 | "green" : "249" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "44", 31 | "alpha" : "1.000", 32 | "blue" : "46", 33 | "green" : "44" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray8.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "238", 13 | "alpha" : "1.000", 14 | "blue" : "240", 15 | "green" : "240" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "58", 31 | "alpha" : "1.000", 32 | "blue" : "60", 33 | "green" : "58" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGray9.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "178", 13 | "alpha" : "1.000", 14 | "blue" : "178", 15 | "green" : "178" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "82", 31 | "alpha" : "1.000", 32 | "blue" : "82", 33 | "green" : "82" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnGreen.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "33", 13 | "alpha" : "1.000", 14 | "blue" : "116", 15 | "green" : "208" 16 | } 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnLabel5.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "152", 13 | "alpha" : "1.000", 14 | "blue" : "179", 15 | "green" : "165" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "128", 31 | "alpha" : "1.000", 32 | "blue" : "154", 33 | "green" : "141" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnLabel6.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "132", 13 | "alpha" : "1.000", 14 | "blue" : "165", 15 | "green" : "148" 16 | } 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnLabel7.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "51", 13 | "alpha" : "1.000", 14 | "blue" : "102", 15 | "green" : "77" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "255", 31 | "alpha" : "1.000", 32 | "blue" : "255", 33 | "green" : "255" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnLabelPrimary.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "38", 13 | "alpha" : "1.000", 14 | "blue" : "77", 15 | "green" : "57" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "1.000", 31 | "alpha" : "1.000", 32 | "blue" : "1.000", 33 | "green" : "1.000" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnLabelQuaternary.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "109", 13 | "alpha" : "1.000", 14 | "blue" : "154", 15 | "green" : "132" 16 | } 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnLabelSecondary.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "51", 13 | "alpha" : "1.000", 14 | "blue" : "102", 15 | "green" : "82" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "1.000", 31 | "alpha" : "1.000", 32 | "blue" : "1.000", 33 | "green" : "1.000" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnLabelTertiary.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "51", 13 | "alpha" : "1.000", 14 | "blue" : "102", 15 | "green" : "77" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "128", 31 | "alpha" : "1.000", 32 | "blue" : "154", 33 | "green" : "141" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnLightGreen.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "230", 13 | "alpha" : "1.000", 14 | "blue" : "217", 15 | "green" : "249" 16 | } 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnLightNavy.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "178", 13 | "alpha" : "1.000", 14 | "blue" : "251", 15 | "green" : "213" 16 | } 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnLightYellow.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "243", 13 | "alpha" : "1.000", 14 | "blue" : "163", 15 | "green" : "226" 16 | } 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnNavigationTint.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "38", 13 | "alpha" : "1.000", 14 | "blue" : "77", 15 | "green" : "57" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "57", 31 | "alpha" : "1.000", 32 | "blue" : "230", 33 | "green" : "143" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnNavy.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "181", 9 | "green" : "131", 10 | "red" : "81" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | } 15 | ], 16 | "info" : { 17 | "author" : "xcode", 18 | "version" : 1 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnOrange.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "255", 13 | "alpha" : "1.000", 14 | "blue" : "51", 15 | "green" : "201" 16 | } 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnRed.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "250", 13 | "alpha" : "1.000", 14 | "blue" : "56", 15 | "green" : "47" 16 | } 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /IVPNClient/Colors.xcassets/ivpnRedOff.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "255", 13 | "alpha" : "1.000", 14 | "blue" : "88", 15 | "green" : "98" 16 | } 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /IVPNClient/Config/release.template.xcconfig: -------------------------------------------------------------------------------- 1 | Environment = production 2 | ApiHostName = api.ivpn.net 3 | TlsHostName = ivpn.net 4 | -------------------------------------------------------------------------------- /IVPNClient/Config/servers-dev.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "gateway":"", 4 | "country_code":"", 5 | "country":"", 6 | "city":"", 7 | "ip_addresses":[""] 8 | } 9 | ] 10 | -------------------------------------------------------------------------------- /IVPNClient/Config/staging.template.xcconfig: -------------------------------------------------------------------------------- 1 | Environment = staging 2 | ApiHostName = 3 | TlsHostName = 4 | -------------------------------------------------------------------------------- /IVPNClient/Enums/ApiResults/Account.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Account.swift 3 | // IVPN iOS app 4 | // https://github.com/ivpn/ios-app 5 | // 6 | // Created by Juraj Hilje on 2020-05-18. 7 | // Copyright (c) 2023 IVPN Limited. 8 | // 9 | // This file is part of the IVPN iOS app. 10 | // 11 | // The IVPN iOS app is free software: you can redistribute it and/or 12 | // modify it under the terms of the GNU General Public License as published by the Free 13 | // Software Foundation, either version 3 of the License, or (at your option) any later version. 14 | // 15 | // The IVPN iOS app is distributed in the hope that it will be useful, 16 | // but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 17 | // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 18 | // details. 19 | // 20 | // You should have received a copy of the GNU General Public License 21 | // along with the IVPN iOS app. If not, see . 22 | // 23 | 24 | import Foundation 25 | 26 | struct Account: Decodable { 27 | let accountId: String 28 | } 29 | -------------------------------------------------------------------------------- /IVPNClient/Enums/NetworkType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NetworkType.swift 3 | // IVPN iOS app 4 | // https://github.com/ivpn/ios-app 5 | // 6 | // Created by Juraj Hilje on 2018-11-22. 7 | // Copyright (c) 2023 IVPN Limited. 8 | // 9 | // This file is part of the IVPN iOS app. 10 | // 11 | // The IVPN iOS app is free software: you can redistribute it and/or 12 | // modify it under the terms of the GNU General Public License as published by the Free 13 | // Software Foundation, either version 3 of the License, or (at your option) any later version. 14 | // 15 | // The IVPN iOS app is distributed in the hope that it will be useful, 16 | // but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 17 | // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 18 | // details. 19 | // 20 | // You should have received a copy of the GNU General Public License 21 | // along with the IVPN iOS app. If not, see . 22 | // 23 | 24 | import Foundation 25 | 26 | enum NetworkType: String { 27 | case wifi 28 | case cellular 29 | case none 30 | } 31 | -------------------------------------------------------------------------------- /IVPNClient/Enums/OpenVPNProtocol.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OpenVPNProtocol.swift 3 | // IVPN iOS app 4 | // https://github.com/ivpn/ios-app 5 | // 6 | // Created by Fedir Nepyyvoda on 2018-07-16. 7 | // Copyright (c) 2023 IVPN Limited. 8 | // 9 | // This file is part of the IVPN iOS app. 10 | // 11 | // The IVPN iOS app is free software: you can redistribute it and/or 12 | // modify it under the terms of the GNU General Public License as published by the Free 13 | // Software Foundation, either version 3 of the License, or (at your option) any later version. 14 | // 15 | // The IVPN iOS app is distributed in the hope that it will be useful, 16 | // but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 17 | // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 18 | // details. 19 | // 20 | // You should have received a copy of the GNU General Public License 21 | // along with the IVPN iOS app. If not, see . 22 | // 23 | 24 | enum OpenVPNProtocol { 25 | case tcp 26 | case udp 27 | } 28 | -------------------------------------------------------------------------------- /IVPNClient/Enums/TunnelType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TunnelType.swift 3 | // IVPN iOS app 4 | // https://github.com/ivpn/ios-app 5 | // 6 | // Created by Fedir Nepyyvoda on 2018-07-20. 7 | // Copyright (c) 2023 IVPN Limited. 8 | // 9 | // This file is part of the IVPN iOS app. 10 | // 11 | // The IVPN iOS app is free software: you can redistribute it and/or 12 | // modify it under the terms of the GNU General Public License as published by the Free 13 | // Software Foundation, either version 3 of the License, or (at your option) any later version. 14 | // 15 | // The IVPN iOS app is distributed in the hope that it will be useful, 16 | // but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 17 | // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 18 | // details. 19 | // 20 | // You should have received a copy of the GNU General Public License 21 | // along with the IVPN iOS app. If not, see . 22 | // 23 | 24 | enum TunnelType { 25 | case ipsec 26 | case openvpn 27 | case wireguard 28 | } 29 | -------------------------------------------------------------------------------- /IVPNClient/Enums/WireGuardProtocol.swift: -------------------------------------------------------------------------------- 1 | // 2 | // WireGuardProtocol.swift 3 | // IVPN iOS app 4 | // https://github.com/ivpn/ios-app 5 | // 6 | // Created by Juraj Hilje on 2018-10-19. 7 | // Copyright (c) 2023 IVPN Limited. 8 | // 9 | // This file is part of the IVPN iOS app. 10 | // 11 | // The IVPN iOS app is free software: you can redistribute it and/or 12 | // modify it under the terms of the GNU General Public License as published by the Free 13 | // Software Foundation, either version 3 of the License, or (at your option) any later version. 14 | // 15 | // The IVPN iOS app is distributed in the hope that it will be useful, 16 | // but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 17 | // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 18 | // details. 19 | // 20 | // You should have received a copy of the GNU General Public License 21 | // along with the IVPN iOS app. If not, see . 22 | // 23 | 24 | enum WireGuardProtocol { 25 | case udp 26 | } 27 | -------------------------------------------------------------------------------- /IVPNClient/IVPNClient-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #include "Utilities/Logging/ringlogger.h" 2 | #include "liboqs/include/oqs/oqs.h" 3 | -------------------------------------------------------------------------------- /IVPNClient/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyAccessedAPITypes 6 | 7 | 8 | NSPrivacyAccessedAPIType 9 | NSPrivacyAccessedAPICategoryFileTimestamp 10 | NSPrivacyAccessedAPITypeReasons 11 | 12 | C617.1 13 | 14 | 15 | 16 | NSPrivacyAccessedAPIType 17 | NSPrivacyAccessedAPICategorySystemBootTime 18 | NSPrivacyAccessedAPITypeReasons 19 | 20 | 35F9.1 21 | 22 | 23 | 24 | NSPrivacyAccessedAPIType 25 | NSPrivacyAccessedAPICategoryUserDefaults 26 | NSPrivacyAccessedAPITypeReasons 27 | 28 | CA92.1 29 | 1C8F.1 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /IVPNClient/Utilities/Extensions/Error+Ext.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Error+Ext.swift 3 | // IVPN iOS app 4 | // https://github.com/ivpn/ios-app 5 | // 6 | // Created by Juraj Hilje on 2019-03-19. 7 | // Copyright (c) 2023 IVPN Limited. 8 | // 9 | // This file is part of the IVPN iOS app. 10 | // 11 | // The IVPN iOS app is free software: you can redistribute it and/or 12 | // modify it under the terms of the GNU General Public License as published by the Free 13 | // Software Foundation, either version 3 of the License, or (at your option) any later version. 14 | // 15 | // The IVPN iOS app is distributed in the hope that it will be useful, 16 | // but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 17 | // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 18 | // details. 19 | // 20 | // You should have received a copy of the GNU General Public License 21 | // along with the IVPN iOS app. If not, see . 22 | // 23 | 24 | import Foundation 25 | 26 | extension Error { 27 | var code: Int { return (self as NSError).code } 28 | } 29 | -------------------------------------------------------------------------------- /IVPNClient/Utilities/Logging/ringlogger.h: -------------------------------------------------------------------------------- 1 | /* SPDX-License-Identifier: MIT 2 | * 3 | * Copyright © 2018-2020 WireGuard LLC. All Rights Reserved. 4 | */ 5 | 6 | #ifndef RINGLOGGER_H 7 | #define RINGLOGGER_H 8 | 9 | #include 10 | 11 | struct log; 12 | void write_msg_to_log(struct log *log, const char *tag, const char *msg); 13 | int write_log_to_file(const char *file_name, const struct log *input_log); 14 | uint32_t view_lines_from_cursor(const struct log *input_log, uint32_t cursor, void *ctx, void(*)(const char *, uint64_t, void *)); 15 | struct log *open_log(const char *file_name); 16 | void close_log(struct log *log); 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /IVPNClient/liboqs/include/oqs/oqs.h: -------------------------------------------------------------------------------- 1 | /** 2 | * \file oqs.h 3 | * \brief Overall header file for liboqs. 4 | * 5 | * C programs using liboqs can include just this one file, and it will include all 6 | * other necessary headers from liboqs. 7 | * 8 | * SPDX-License-Identifier: MIT 9 | */ 10 | 11 | #ifndef OQS_H 12 | #define OQS_H 13 | 14 | #include 15 | 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | 25 | #endif // OQS_H 26 | -------------------------------------------------------------------------------- /IVPNWidget/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /IVPNWidget/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /IVPNWidget/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /IVPNWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /IVPNWidget/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ApiHostName 6 | $(ApiHostName) 7 | NSExtension 8 | 9 | NSExtensionPointIdentifier 10 | com.apple.widgetkit-extension 11 | 12 | TlsHostName 13 | $(TlsHostName) 14 | 15 | 16 | -------------------------------------------------------------------------------- /IVPNWidget/PrivacyInfo-IVPNWidget.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyAccessedAPITypes 6 | 7 | 8 | NSPrivacyAccessedAPIType 9 | NSPrivacyAccessedAPICategoryUserDefaults 10 | NSPrivacyAccessedAPITypeReasons 11 | 12 | 1C8F.1 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /IVPNWidget/Scene/Status/Status.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Status.swift 3 | // IVPN iOS app 4 | // https://github.com/ivpn/ios-app 5 | // 6 | // Created by Juraj Hilje on 2023-04-09. 7 | // Copyright (c) 2023 IVPN Limited. 8 | // 9 | // This file is part of the IVPN iOS app. 10 | // 11 | // The IVPN iOS app is free software: you can redistribute it and/or 12 | // modify it under the terms of the GNU General Public License as published by the Free 13 | // Software Foundation, either version 3 of the License, or (at your option) any later version. 14 | // 15 | // The IVPN iOS app is distributed in the hope that it will be useful, 16 | // but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 17 | // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 18 | // details. 19 | // 20 | // You should have received a copy of the GNU General Public License 21 | // along with the IVPN iOS app. If not, see . 22 | // 23 | 24 | import NetworkExtension 25 | 26 | struct Status { 27 | var vpnStatus: NEVPNStatus 28 | var isLoggedIn: Bool 29 | } 30 | -------------------------------------------------------------------------------- /IVPNWidget/Widget-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | -------------------------------------------------------------------------------- /IVPNWidgetExtension.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.application-groups 6 | 7 | group.net.ivpn.clients.ios 8 | 9 | keychain-access-groups 10 | 11 | $(AppIdentifierPrefix)net.ivpn.IVPN-Client 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /UITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 3 21 | 22 | 23 | -------------------------------------------------------------------------------- /UnitTests/Extensions/UIDeviceTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIDeviceTests.swift 3 | // IVPN iOS app 4 | // https://github.com/ivpn/ios-app 5 | // 6 | // Created by Juraj Hilje on 2020-02-11. 7 | // Copyright (c) 2023 IVPN Limited. 8 | // 9 | // This file is part of the IVPN iOS app. 10 | // 11 | // The IVPN iOS app is free software: you can redistribute it and/or 12 | // modify it under the terms of the GNU General Public License as published by the Free 13 | // Software Foundation, either version 3 of the License, or (at your option) any later version. 14 | // 15 | // The IVPN iOS app is distributed in the hope that it will be useful, 16 | // but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 17 | // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 18 | // details. 19 | // 20 | // You should have received a copy of the GNU General Public License 21 | // along with the IVPN iOS app. If not, see . 22 | // 23 | 24 | import XCTest 25 | 26 | @testable import IVPNClient 27 | 28 | class UIDeviceTests: XCTestCase { 29 | 30 | } 31 | -------------------------------------------------------------------------------- /UnitTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 3 21 | 22 | 23 | -------------------------------------------------------------------------------- /build-v2ray.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | echo "=> Get gomobile.." 6 | cd V2RayControl 7 | PATH=$PATH:~/go/bin 8 | go get golang.org/x/mobile/cmd/gomobile 9 | 10 | echo "=> Build iOS library.." 11 | OUT_XCFRAMEWORK=../Frameworks/V2RayControl.xcframework 12 | gomobile bind -trimpath -ldflags "-s -w" --target=ios -o ${OUT_XCFRAMEWORK} 13 | echo "=> iOS build completed (out: ${OUT_XCFRAMEWORK})" 14 | echo " !!!!!!!!!!!!!!!! " 15 | echo " NOTE! The iOS project required the 'libresolv.tbd' library to be added to the project when using ${OUT_XCFRAMEWORK}" 16 | echo " (Project->Build Phases->Link Binary With Libraries->Add Other->/usr/lib/libresolv.tbd)" 17 | echo " !!!!!!!!!!!!!!!! " -------------------------------------------------------------------------------- /fastlane/Appfile.template: -------------------------------------------------------------------------------- 1 | app_identifier("net.ivpn.clients.ios") # The bundle identifier of your app 2 | apple_id("") # Your Apple email address 3 | itc_team_id("") # App Store Connect Team ID 4 | team_id("") # Developer Portal Team ID 5 | -------------------------------------------------------------------------------- /openvpn-tunnel-provider/OpenVPNNetworkExtension-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include "../IVPNClient/liboqs/include/oqs/oqs.h" 5 | -------------------------------------------------------------------------------- /openvpn-tunnel-provider/PrivacyInfo-openvpn-tunnel-provider.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyAccessedAPITypes 6 | 7 | 8 | NSPrivacyAccessedAPIType 9 | NSPrivacyAccessedAPICategoryUserDefaults 10 | NSPrivacyAccessedAPITypeReasons 11 | 12 | 1C8F.1 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /openvpn-tunnel-provider/openvpn_tunnel_provider.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.networking.networkextension 6 | 7 | packet-tunnel-provider 8 | 9 | com.apple.developer.networking.vpn.api 10 | 11 | allow-vpn 12 | 13 | com.apple.security.application-groups 14 | 15 | group.net.ivpn.clients.ios 16 | 17 | keychain-access-groups 18 | 19 | $(AppIdentifierPrefix)net.ivpn.IVPN-Client 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /wireguard-tunnel-provider/PrivacyInfo-wireguard-tunnel-provider.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyAccessedAPITypes 6 | 7 | 8 | NSPrivacyAccessedAPIType 9 | NSPrivacyAccessedAPICategoryFileTimestamp 10 | NSPrivacyAccessedAPITypeReasons 11 | 12 | C617.1 13 | 14 | 15 | 16 | NSPrivacyAccessedAPIType 17 | NSPrivacyAccessedAPICategoryUserDefaults 18 | NSPrivacyAccessedAPITypeReasons 19 | 20 | 1C8F.1 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /wireguard-tunnel-provider/WireGuard/WireGuardNetworkExtension-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #include "../WireGuardKitC/WireGuardKitC.h" 2 | #include "../WireGuardKitGo/wireguard.h" 3 | #include "ringlogger.h" 4 | #include "../../IVPNClient/liboqs/include/oqs/oqs.h" 5 | -------------------------------------------------------------------------------- /wireguard-tunnel-provider/wireguard_tunnel_provider.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.networking.networkextension 6 | 7 | packet-tunnel-provider 8 | 9 | com.apple.developer.networking.vpn.api 10 | 11 | allow-vpn 12 | 13 | com.apple.security.application-groups 14 | 15 | group.net.ivpn.clients.ios 16 | 17 | keychain-access-groups 18 | 19 | $(AppIdentifierPrefix)net.ivpn.IVPN-Client 20 | 21 | 22 | 23 | --------------------------------------------------------------------------------