package com.l7tech.gateway.pm2.graphql.helper;

import com.l7tech.common.ftp.FtpCommand;
import com.l7tech.gateway.common.transport.ftp.FtpAdmin;
import com.l7tech.gateway.common.transport.ftp.FtpSecurity;
import com.l7tech.gateway.common.transport.ftp.FtpTestException;
import com.l7tech.gateway.pm2.graphql.beans.entity.FTPConnectionInfo;
import com.l7tech.gateway.pm2.graphql.beans.entity.FTPServerConfigDTO;
import com.l7tech.objectmodel.Goid;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class FTPConnectionHelper {
   public static final FTPConnectionHelper INSTANCE;
   private static final String a;
   private static final String b;
   private static final String c;
   private static final String d;
   private static final String e;
   private static final String f;
   private static final String[] g;

   public void validateFTPConnection(FtpAdmin var1, FTPConnectionInfo var2) throws FtpTestException {
      FtpAdmin var10000;
      boolean var10001;
      boolean var10002;
      boolean var10003;
      String var10004;
      int var10005;
      String var10006;
      String var10007;
      Goid var10008;
      label28: {
         try {
            var10000 = var1;
            var10001 = var2.isFtps();
            var10002 = var2.isExplicit();
            var10003 = var2.isVerifyServerCert();
            var10004 = var2.getHostName();
            var10005 = var2.getPort();
            var10006 = var2.getUserName();
            var10007 = var2.getPassword();
            if (var2.getPasswordGoid() != null) {
               var10008 = new Goid(var2.getPasswordGoid());
               break label28;
            }
         } catch (FtpTestException var4) {
            throw var4;
         }

         var10008 = null;
      }

      boolean var10009;
      Goid var10010;
      label21: {
         try {
            var10009 = var2.isUseClientCert();
            if (var2.getClientCertKeystoreId() != null) {
               var10010 = new Goid(var2.getClientCertKeystoreId());
               break label21;
            }
         } catch (FtpTestException var3) {
            throw var3;
         }

         var10010 = null;
      }

      var10000.testConnection(
         var10001,
         var10002,
         var10003,
         var10004,
         var10005,
         var10006,
         var10007,
         var10008,
         var10009,
         var10010,
         var2.getClientCertKeyAlias(),
         var2.getDirectory(),
         var2.getTimeout()
      );
   }

   public List<FTPServerConfigDTO.FTPCommand> getCommands() {
      return Arrays.stream(FtpCommand.values())
         .map(var0 -> new FTPServerConfigDTO.FTPCommand(var0.name(), var0.getDescription(), var0.isArgumentRequired(), var0.isArgumentAccepted()))
         .toList();
   }

   public List<FTPServerConfigDTO.FTPProtocol> getProtocols() {
      ArrayList var1 = new ArrayList();
      String var10003 = FtpSecurity.FTP_UNSECURED.getWspName();
      String[] var2 = g;
      var1.add(new FTPServerConfigDTO.FTPProtocol(var10003, var2[1]));
      var1.add(new FTPServerConfigDTO.FTPProtocol(FtpSecurity.FTPS_IMPLICIT.getWspName(), var2[10]));
      var1.add(new FTPServerConfigDTO.FTPProtocol(FtpSecurity.FTPS_EXPLICIT.getWspName(), var2[0]));
      return var1;
   }

   public List<FTPServerConfigDTO.FTPOutcome> getOutcomes() {
      ArrayList var1 = new ArrayList();
      String[] var2 = g;
      var1.add(new FTPServerConfigDTO.FTPOutcome(0, var2[9]));
      var1.add(new FTPServerConfigDTO.FTPOutcome(1, var2[7]));
      var1.add(new FTPServerConfigDTO.FTPOutcome(2, var2[11]));
      return var1;
   }

   static {
      String[] var5 = new String[12];
      int var3 = 0;
      String var2 = "\u00161\u0019dr\b}$\rir*\u000fx9\u0006 Cr,G\u001cEav\u0007+\\p1\u0005d},G\u001cL\u000f\u00161\u0019\u0017z\nz#\u0000*B \u001apy%\u00161\u0019dr\b}$\rir*\u000fx9\u0006 Cr,G\u001cEav\u0007+\\p1\u0005d},G\u001cL\u0016\u00161\u0019dr\b}$\ri~?\u000fx9\u0006 Cr,G\u001c\u000f\u00161\u0019\u0017z\nz#\u0000*B \u001apyE\u0016\u0004 [r\u0010zp1;V<\f}5\u000b=\u0017=\r4\u0000\u0000;Z3\u0011q>\u0011iy7\u0018u$\f?Rr<{=\u0015%R&\u0016{>E;R\"\u0013mp\u0006&S7_<nX}\u0007bV8\u0016\u0004 [r\u0010zp5,E?\u001ez5\u000b=\u0017\u001c\u001as1\u0011 A7_W?\b9[7\u000b}?\u000biE7\u000fx)E*X6\u001a4x[t\u0002bO=8\u0016\u0004 [r\u0010zp5,E?\u001ez5\u000b=\u0017\u001c\u001as1\u0011 A7_W?\b9[7\u000b}?\u000biE7\u000fx)E*X6\u001a4x[t\u0002bO=$\u001e\u0000?R _r1\f%\u00173\f4<\n'Pr\u001egp\u0011(E5\u001a`p\u0017,G>\u0016q#E\u0016\u0004 [r\u0010zp1;V<\f}5\u000b=\u0017=\r4\u0000\u0000;Z3\u0011q>\u0011iy7\u0018u$\f?Rr<{=\u0015%R&\u0016{>E;R\"\u0013mp\u0006&S7_<nX}\u0007bV";
      int var4 = "\u00161\u0019dr\b}$\rir*\u000fx9\u0006 Cr,G\u001cEav\u0007+\\p1\u0005d},G\u001cL\u000f\u00161\u0019\u0017z\nz#\u0000*B \u001apy%\u00161\u0019dr\b}$\rir*\u000fx9\u0006 Cr,G\u001cEav\u0007+\\p1\u0005d},G\u001cL\u0016\u00161\u0019dr\b}$\ri~?\u000fx9\u0006 Cr,G\u001c\u000f\u00161\u0019\u0017z\nz#\u0000*B \u001apyE\u0016\u0004 [r\u0010zp1;V<\f}5\u000b=\u0017=\r4\u0000\u0000;Z3\u0011q>\u0011iy7\u0018u$\f?Rr<{=\u0015%R&\u0016{>E;R\"\u0013mp\u0006&S7_<nX}\u0007bV8\u0016\u0004 [r\u0010zp5,E?\u001ez5\u000b=\u0017\u001c\u001as1\u0011 A7_W?\b9[7\u000b}?\u000biE7\u000fx)E*X6\u001a4x[t\u0002bO=8\u0016\u0004 [r\u0010zp5,E?\u001ez5\u000b=\u0017\u001c\u001as1\u0011 A7_W?\b9[7\u000b}?\u000biE7\u000fx)E*X6\u001a4x[t\u0002bO=$\u001e\u0000?R _r1\f%\u00173\f4<\n'Pr\u001egp\u0011(E5\u001a`p\u0017,G>\u0016q#E\u0016\u0004 [r\u0010zp1;V<\f}5\u000b=\u0017=\r4\u0000\u0000;Z3\u0011q>\u0011iy7\u0018u$\f?Rr<{=\u0015%R&\u0016{>E;R\"\u0013mp\u0006&S7_<nX}\u0007bV"
         .length();
      char var1 = '%';
      int var7 = -1;

      label24:
      while (true) {
         String var10000 = var2.substring(++var7, var7 + var1);
         byte var10001 = -1;

         while (true) {
            String var13 = a(a(var10000));
            switch (var10001) {
               case 0:
                  var5[var3++] = var13;
                  if ((var7 += var1) >= var4) {
                     g = var5;
                     String[] var9 = g;
                     c = g[3];
                     b = var9[2];
                     f = var9[8];
                     a = var9[4];
                     e = var9[6];
                     d = var9[5];
                     INSTANCE = new FTPConnectionHelper();
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var13;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = "\u00161\u0019dr\b}$\ri~?\u000fx9\u0006 Cr,G\u001c$\u001e\u0000?R _r1\f%\u00173\f4<\n'Pr\u001egp\u0011(E5\u001a`p\u0017,G>\u0016q#";
                  var4 = "\u00161\u0019dr\b}$\ri~?\u000fx9\u0006 Cr,G\u001c$\u001e\u0000?R _r1\f%\u00173\f4<\n'Pr\u001egp\u0011(E5\u001a`p\u0017,G>\u0016q#"
                     .length();
                  var1 = 22;
                  var7 = -1;
            }

            var10000 = var2.substring(++var7, var7 + var1);
            var10001 = 0;
         }
      }
   }

   private static char[] a(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 20);
      }

      return var10000;
   }

   private static String a(char[] var0) {
      int var10002 = var0.length;
      char[] var10001 = var0;
      int var10000 = var10002;

      for (int var1 = 0; var10000 > var1; var1++) {
         var10001[var1] = (char)(var10001[var1] ^ switch (var1 % 7) {
            case 0 -> 80;
            case 1 -> 101;
            case 2 -> 73;
            case 3 -> 55;
            case 4 -> 82;
            case 5 -> 127;
            default -> 20;
         });
      }

      return new String(var10001).intern();
   }
}
