package com.l7tech.server.wsdm.faults;

import java.util.HashMap;
import org.w3c.dom.Node;

public class InvalidWsAddressingHeaderFault extends WsAddressingFault {
   private InvalidWsAddressingHeaderFault.FaultCode faultCode = InvalidWsAddressingHeaderFault.FaultCode.INVALID_ADDRESSING_HEADER;
   static final long serialVersionUID = -8413115771662794129L;
   private static final String[] c;

   public InvalidWsAddressingHeaderFault(final String var1, Node var2) {
      super(var1);
      this.addWsaFaultDetail(WsAddressingFault.WsaFaultDetailType.PROBLEM_HEADER_QNAME, new HashMap<String, String>() {
         static final long serialVersionUID = 4887386173986948052L;
         private static final String a;

         {
            this.put(a, var1);
         }

         static {
            String var10002 = a(6, a("h+\u007fCLS"));
            byte var10001 = -1;
            a = var10002;
         }

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

            return var10000;
         }

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

            for (int var2x = 0; var10000 > var2x; var2x++) {
               var10001[var2x] = (char)(var10001[var2x] ^ var10002 ^ switch (var2x % 7) {
                  case 0 -> 11;
                  case 1 -> 95;
                  case 2 -> 11;
                  case 3 -> 8;
                  case 4 -> 57;
                  case 5 -> 50;
                  default -> 1;
               });
            }

            return new String(var10001).intern();
         }
      }, var2.getLocalName());
   }

   public InvalidWsAddressingHeaderFault(String var1, InvalidWsAddressingHeaderFault.FaultCode var2, Node var3) {
      this(var1, var3);
      this.faultCode = var2;
   }

   @Override
   protected String getFaultString() {
      return c[0];
   }

   @Override
   protected String getFaultCode() {
      return this.getNamespacePrefix(c[1]) + ":" + this.faultCode;
   }

   static {
      String[] var5 = new String[2];
      int var3 = 0;
      String var2 = "\u0005Q\u0004,Q\u001f\u00116Q\u001e,@\t\u00117\u0014\u0002=Y\u0015\u0013d\u0010L\u0004U\b\u0007%\u0016\tiq\u001f\u00106\u0014\u001f:Y\u0015\u0013d!\u001e&@\u001e\u00060\bL C[\u001a+\u0005L?Q\u0017\u001d Q\r'T[\u0000,\u0014L$U\b\u0007%\u0016\tiS\u001a\u001a*\u001e\u0018iR\u001eT4\u0003\u0003*U\b\u0007!\u0015$,\u0005\u00189\nT[3\u0006\u001bgGHZ+\u0003\u000bf\u0002KDq^\\q\u001f\u001a\u0010 \u0003\t:C\u0012\u001a#";
      int var4 = "\u0005Q\u0004,Q\u001f\u00116Q\u001e,@\t\u00117\u0014\u0002=Y\u0015\u0013d\u0010L\u0004U\b\u0007%\u0016\tiq\u001f\u00106\u0014\u001f:Y\u0015\u0013d!\u001e&@\u001e\u00060\bL C[\u001a+\u0005L?Q\u0017\u001d Q\r'T[\u0000,\u0014L$U\b\u0007%\u0016\tiS\u001a\u001a*\u001e\u0018iR\u001eT4\u0003\u0003*U\b\u0007!\u0015$,\u0005\u00189\nT[3\u0006\u001bgGHZ+\u0003\u000bf\u0002KDq^\\q\u001f\u001a\u0010 \u0003\t:C\u0012\u001a#"
         .length();
      char var1 = 'd';
      int var0 = -1;

      while (true) {
         String var10002 = c(8, c(var2.substring(++var0, var0 + var1)));
         byte var10001 = -1;
         var5[var3++] = var10002;
         if ((var0 += var1) >= var4) {
            c = var5;
            return;
         }

         var1 = var2.charAt(var0);
      }
   }

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

      return var10000;
   }

   private static String c(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 76;
            case 1 -> 121;
            case 2 -> 100;
            case 3 -> 65;
            case 4 -> 56;
            case 5 -> 115;
            default -> 124;
         });
      }

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

   public enum FaultCode {
      INVALID_ADDRESSING_HEADER,
      INVALID_ADDRESS,
      INVALID_EPR,
      INVALID_CARDINALITY,
      MISSING_ADDRESS_IN_EPR,
      DUPLICATE_MESSAGE_ID,
      ACTION_MISMATCH,
      ONLY_ANNONYMOUS_ADDRESS_SUPPORTED,
      ONLY_NON_ANNONYMOUS_ADDRESS_SUPPORTED;

      private final String elementName;

      FaultCode(String var3) {
         this.elementName = var3;
      }

      @Override
      public String toString() {
         return this.elementName;
      }

      // $VF: Failed to inline enum fields
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      static {
         String[] var0 = new String[18];
         int var4 = 0;
         String var3 = "[36[*\u0013sM80H\n[\u0013\u0016{\n3SW-2\u000eS\u001e\u0014s\t4z{\u000e\r{\u00129_\u0017[\u0013\u0016{\n3SS\u0019\u0004h\u0003)D{\u0013\u0007R\u0003;Sw\u000f ]\u0013\fc(5YS\u0013\u000ft\u001f7Xg\u000e!~\u0002(Ra\u000e3o\u0016*X`\t\u0005~\u001d]\u0013\fc'4X|\u0004\ru\u0013)vv\u0019\u0012\u007f\u0015)dg\r\u0010u\u0014.Rv\u0013[36[*\u0013sM>!H\"\u0013yS1)N?\u0014V(0V/\u0019vF8?W#\tdS:%E/\u001e%]3,C9\u0014x\\\"!T(\u0015yK0/O5\u0005vV92_5\thA(0J)\bcW9\u000f[36[*\u0013sM<$^4\u001fdA\u0013_\u0014\u0013i\u000f4PS\u0019\u0004h\u0003)D[\u0013%J4\u000e[\u0013\u0016{\n3SS\u0019\u0004h\u0003)D\u0012[\u0013\u0016{\n3SQ\u001c\u0012~\u000f4V~\u0014\u0014c\u0016_43I/\u0014pM<$^4\u001fdA\")T9\u001fg@\u000fS>4S)\u0014h_43W'\u000etZ!]3,C9\u001by\\2.C+\u0015bA\"!^\"\brA.?I3\ng]/4_\"";
         int var5 = "[36[*\u0013sM80H\n[\u0013\u0016{\n3SW-2\u000eS\u001e\u0014s\t4z{\u000e\r{\u00129_\u0017[\u0013\u0016{\n3SS\u0019\u0004h\u0003)D{\u0013\u0007R\u0003;Sw\u000f ]\u0013\fc(5YS\u0013\u000ft\u001f7Xg\u000e!~\u0002(Ra\u000e3o\u0016*X`\t\u0005~\u001d]\u0013\fc'4X|\u0004\ru\u0013)vv\u0019\u0012\u007f\u0015)dg\r\u0010u\u0014.Rv\u0013[36[*\u0013sM>!H\"\u0013yS1)N?\u0014V(0V/\u0019vF8?W#\tdS:%E/\u001e%]3,C9\u0014x\\\"!T(\u0015yK0/O5\u0005vV92_5\thA(0J)\bcW9\u000f[36[*\u0013sM<$^4\u001fdA\u0013_\u0014\u0013i\u000f4PS\u0019\u0004h\u0003)D[\u0013%J4\u000e[\u0013\u0016{\n3SS\u0019\u0004h\u0003)D\u0012[\u0013\u0016{\n3SQ\u001c\u0012~\u000f4V~\u0014\u0014c\u0016_43I/\u0014pM<$^4\u001fdA\")T9\u001fg@\u000fS>4S)\u0014h_43W'\u000etZ!]3,C9\u001by\\2.C+\u0015bA\"!^\"\brA.?I3\ng]/4_\""
            .length();
         char var2 = 11;
         int var7 = -1;

         label25:
         while (true) {
            byte var10000 = 62;
            String var10001 = var3.substring(++var7, var7 + var2);
            byte var10002 = -1;

            while (true) {
               String var8 = a(var10000, a(var10001));
               switch (var10002) {
                  case 0:
                     var0[var4++] = var8;
                     if ((var7 += var2) >= var5) {
                        INVALID_ADDRESSING_HEADER = new InvalidWsAddressingHeaderFault.FaultCode(var0[3]);
                        INVALID_ADDRESS = new InvalidWsAddressingHeaderFault.FaultCode(var0[11]);
                        INVALID_EPR = new InvalidWsAddressingHeaderFault.FaultCode(var0[1]);
                        INVALID_CARDINALITY = new InvalidWsAddressingHeaderFault.FaultCode(var0[12]);
                        MISSING_ADDRESS_IN_EPR = new InvalidWsAddressingHeaderFault.FaultCode(var0[10]);
                        DUPLICATE_MESSAGE_ID = new InvalidWsAddressingHeaderFault.FaultCode(var0[16]);
                        ACTION_MISMATCH = new InvalidWsAddressingHeaderFault.FaultCode(var0[2]);
                        ONLY_ANNONYMOUS_ADDRESS_SUPPORTED = new InvalidWsAddressingHeaderFault.FaultCode(var0[5]);
                        ONLY_NON_ANNONYMOUS_ADDRESS_SUPPORTED = new InvalidWsAddressingHeaderFault.FaultCode(var0[4]);
                        return;
                     }

                     var2 = var3.charAt(var7);
                     break;
                  default:
                     var0[var4++] = var8;
                     if ((var7 += var2) < var5) {
                        var2 = var3.charAt(var7);
                        continue label25;
                     }

                     var3 = "?ay\u001ffP?\u000fqD\u0016|@?\u001cq@7\u00192Z_2Cz\u001a$UM7]v\r(]G4P{\u001b:PL!";
                     var5 = "?ay\u001ffP?\u000fqD\u0016|@?\u001cq@7\u00192Z_2Cz\u001a$UM7]v\r(]G4P{\u001b:PL!".length();
                     var2 = 18;
                     var7 = -1;
               }

               var10000 = 87;
               var10001 = var3.substring(++var7, var7 + var2);
               var10002 = 0;
            }
         }
      }

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

         return var10000;
      }

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

         for (int var2 = 0; var10000 > var2; var2++) {
            var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
               case 0 -> 44;
               case 1 -> 67;
               case 2 -> 94;
               case 3 -> 36;
               case 4 -> 88;
               case 5 -> 100;
               default -> 9;
            });
         }

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