package com.l7tech.security.xml.processor;

import com.l7tech.security.token.ParsedElement;
import com.l7tech.xml.InvalidXpathException;
import com.l7tech.xml.xpath.DomCompiledXpath;
import com.l7tech.xml.xpath.XpathVariableFinder;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.logging.Logger;
import org.w3c.dom.Document;
import org.w3c.dom.Node;

public class ProcessorResultUtil {
   public static final int NO_ERROR = 0;
   public static final int FALSIFIED = 1;
   public static final int SERVER_ERROR = 2;
   private static final String[] a;

   public static ProcessorResultUtil.SearchResult searchInResult(
      Logger param0, Document param1, DomCompiledXpath param2, XpathVariableFinder param3, boolean param4, ParsedElement[] param5, String param6
   ) throws ProcessorException {
      // $VF: Couldn't be decompiled
      // 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!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 2
      // 001: aload 1
      // 002: aload 3
      // 003: invokevirtual com/l7tech/xml/xpath/DomCompiledXpath.rawSelectElements (Lorg/w3c/dom/Document;Lcom/l7tech/xml/xpath/XpathVariableFinder;)Ljava/util/List;
      // 006: astore 7
      // 008: goto 017
      // 00b: astore 8
      // 00d: new com/l7tech/security/xml/processor/ProcessorException
      // 010: dup
      // 011: aload 8
      // 013: invokespecial com/l7tech/security/xml/processor/ProcessorException.<init> (Ljava/lang/Throwable;)V
      // 016: athrow
      // 017: aload 7
      // 019: invokeinterface java/util/List.isEmpty ()Z 1
      // 01e: ifeq 049
      // 021: aload 0
      // 022: aload 2
      // 023: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 026: getstatic com/l7tech/security/xml/processor/ProcessorResultUtil.a [Ljava/lang/String;
      // 029: bipush 8
      // 02b: aaload
      // 02c: swap
      // 02d: getstatic com/l7tech/security/xml/processor/ProcessorResultUtil.a [Ljava/lang/String;
      // 030: bipush 6
      // 032: aaload
      // 033: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 038: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // 03b: new com/l7tech/security/xml/processor/ProcessorResultUtil$SearchResult
      // 03e: dup
      // 03f: bipush 1
      // 040: bipush 0
      // 041: invokespecial com/l7tech/security/xml/processor/ProcessorResultUtil$SearchResult.<init> (IZ)V
      // 044: areturn
      // 045: invokestatic com/l7tech/security/xml/processor/ProcessorResultUtil.a (Lcom/l7tech/xml/InvalidXpathException;)Lcom/l7tech/xml/InvalidXpathException;
      // 048: athrow
      // 049: new java/util/ArrayList
      // 04c: dup
      // 04d: invokespecial java/util/ArrayList.<init> ()V
      // 050: astore 8
      // 052: bipush 0
      // 053: istore 9
      // 055: aload 7
      // 057: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 05c: astore 10
      // 05e: aload 10
      // 060: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 065: ifeq 158
      // 068: aload 10
      // 06a: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 06f: astore 11
      // 071: aload 11
      // 073: instanceof org/w3c/dom/Node
      // 076: ifne 09f
      // 079: aload 0
      // 07a: aload 11
      // 07c: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 07f: invokevirtual java/lang/Class.getName ()Ljava/lang/String;
      // 082: getstatic com/l7tech/security/xml/processor/ProcessorResultUtil.a [Ljava/lang/String;
      // 085: bipush 11
      // 087: aaload
      // 088: swap
      // 089: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 08e: invokevirtual java/util/logging/Logger.severe (Ljava/lang/String;)V
      // 091: new com/l7tech/security/xml/processor/ProcessorResultUtil$SearchResult
      // 094: dup
      // 095: bipush 2
      // 096: bipush 0
      // 097: invokespecial com/l7tech/security/xml/processor/ProcessorResultUtil$SearchResult.<init> (IZ)V
      // 09a: areturn
      // 09b: invokestatic com/l7tech/security/xml/processor/ProcessorResultUtil.a (Lcom/l7tech/xml/InvalidXpathException;)Lcom/l7tech/xml/InvalidXpathException;
      // 09e: athrow
      // 09f: aload 11
      // 0a1: checkcast org/w3c/dom/Node
      // 0a4: astore 12
      // 0a6: iload 4
      // 0a8: ifeq 0e0
      // 0ab: aload 12
      // 0ad: invokestatic com/l7tech/util/DomUtils.elementIsEmpty (Lorg/w3c/dom/Node;)Z
      // 0b0: ifeq 0e0
      // 0b3: goto 0ba
      // 0b6: invokestatic com/l7tech/security/xml/processor/ProcessorResultUtil.a (Lcom/l7tech/xml/InvalidXpathException;)Lcom/l7tech/xml/InvalidXpathException;
      // 0b9: athrow
      // 0ba: aload 0
      // 0bb: aload 2
      // 0bc: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 0bf: aload 6
      // 0c1: getstatic com/l7tech/security/xml/processor/ProcessorResultUtil.a [Ljava/lang/String;
      // 0c4: bipush 9
      // 0c6: aaload
      // 0c7: dup_x2
      // 0c8: pop
      // 0c9: getstatic com/l7tech/security/xml/processor/ProcessorResultUtil.a [Ljava/lang/String;
      // 0cc: bipush 5
      // 0cd: aaload
      // 0ce: swap
      // 0cf: ldc "."
      // 0d1: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001" ]
      // 0d6: invokevirtual java/util/logging/Logger.finer (Ljava/lang/String;)V
      // 0d9: goto 05e
      // 0dc: invokestatic com/l7tech/security/xml/processor/ProcessorResultUtil.a (Lcom/l7tech/xml/InvalidXpathException;)Lcom/l7tech/xml/InvalidXpathException;
      // 0df: athrow
      // 0e0: bipush 1
      // 0e1: istore 9
      // 0e3: aload 12
      // 0e5: aload 5
      // 0e7: invokestatic com/l7tech/security/xml/processor/ProcessorResultUtil.getParsedElementsForNode (Lorg/w3c/dom/Node;[Lcom/l7tech/security/token/ParsedElement;)Ljava/util/Collection;
      // 0ea: astore 13
      // 0ec: aload 13
      // 0ee: invokeinterface java/util/Collection.isEmpty ()Z 1
      // 0f3: ifne 126
      // 0f6: aload 0
      // 0f7: aload 2
      // 0f8: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 0fb: aload 6
      // 0fd: getstatic com/l7tech/security/xml/processor/ProcessorResultUtil.a [Ljava/lang/String;
      // 100: bipush 7
      // 102: aaload
      // 103: dup_x2
      // 104: pop
      // 105: getstatic com/l7tech/security/xml/processor/ProcessorResultUtil.a [Ljava/lang/String;
      // 108: bipush 0
      // 109: aaload
      // 10a: swap
      // 10b: ldc "."
      // 10d: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001" ]
      // 112: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 115: aload 8
      // 117: aload 13
      // 119: invokeinterface java/util/List.addAll (Ljava/util/Collection;)Z 2
      // 11e: pop
      // 11f: goto 155
      // 122: invokestatic com/l7tech/security/xml/processor/ProcessorResultUtil.a (Lcom/l7tech/xml/InvalidXpathException;)Lcom/l7tech/xml/InvalidXpathException;
      // 125: athrow
      // 126: aload 0
      // 127: aload 2
      // 128: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 12b: aload 6
      // 12d: getstatic com/l7tech/security/xml/processor/ProcessorResultUtil.a [Ljava/lang/String;
      // 130: astore 14
      // 132: aload 14
      // 134: bipush 10
      // 136: aaload
      // 137: dup_x2
      // 138: pop
      // 139: aload 14
      // 13b: bipush 12
      // 13d: aaload
      // 13e: swap
      // 13f: aload 14
      // 141: bipush 1
      // 142: aaload
      // 143: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001" ]
      // 148: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 14b: new com/l7tech/security/xml/processor/ProcessorResultUtil$SearchResult
      // 14e: dup
      // 14f: bipush 1
      // 150: bipush 1
      // 151: invokespecial com/l7tech/security/xml/processor/ProcessorResultUtil$SearchResult.<init> (IZ)V
      // 154: areturn
      // 155: goto 05e
      // 158: iload 9
      // 15a: ifeq 17a
      // 15d: aload 0
      // 15e: aload 6
      // 160: getstatic com/l7tech/security/xml/processor/ProcessorResultUtil.a [Ljava/lang/String;
      // 163: bipush 3
      // 164: aaload
      // 165: swap
      // 166: getstatic com/l7tech/security/xml/processor/ProcessorResultUtil.a [Ljava/lang/String;
      // 169: bipush 2
      // 16a: aaload
      // 16b: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 170: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // 173: goto 183
      // 176: invokestatic com/l7tech/security/xml/processor/ProcessorResultUtil.a (Lcom/l7tech/xml/InvalidXpathException;)Lcom/l7tech/xml/InvalidXpathException;
      // 179: athrow
      // 17a: aload 0
      // 17b: getstatic com/l7tech/security/xml/processor/ProcessorResultUtil.a [Ljava/lang/String;
      // 17e: bipush 4
      // 17f: aaload
      // 180: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // 183: new com/l7tech/security/xml/processor/ProcessorResultUtil$SearchResult
      // 186: dup
      // 187: bipush 0
      // 188: bipush 0
      // 189: aload 8
      // 18b: invokespecial com/l7tech/security/xml/processor/ProcessorResultUtil$SearchResult.<init> (IZLjava/util/Collection;)V
      // 18e: areturn
      // try (0 -> 5): 6 com/l7tech/xml/InvalidXpathException
      // try (12 -> 33): 33 com/l7tech/xml/InvalidXpathException
      // try (50 -> 69): 69 com/l7tech/xml/InvalidXpathException
      // try (74 -> 79): 80 com/l7tech/xml/InvalidXpathException
      // try (76 -> 99): 99 com/l7tech/xml/InvalidXpathException
      // try (107 -> 131): 131 com/l7tech/xml/InvalidXpathException
      // try (160 -> 174): 174 com/l7tech/xml/InvalidXpathException
   }

   public static Collection<ParsedElement> getParsedElementsForNode(Node var0, ParsedElement[] var1) {
      ArrayList var2 = new ArrayList(5);

      for (ParsedElement var6 : var1) {
         if (var6.asElement() == var0) {
            var2.add(var6);
         }
      }

      return var2;
   }

   public static boolean nodeIsPresent(Node var0, ParsedElement[] var1) {
      return !getParsedElementsForNode(var0, var1).isEmpty();
   }

   private static InvalidXpathException a(InvalidXpathException var0) {
      return var0;
   }

   static {
      String[] var5 = new String[13];
      int var3 = 0;
      String var2 = "s\u0014,vuFf&\r)%<N)'\u000b$vuMl \u0010,b0\f)2\r)%\"Azs\u0013?j%E{?\u001am\u001chC,v&E{'\n\"kuTa6\u0011(c:Rls\u0005,l9S'\u001fhC,v&E{'\n\"kuTa6\u0011(c:Rls\u00108f6El7\u0010c4\u0012\u000f!%8A}0\u000b$k2\u0000l?\u0006 `;Tzs\u0014(w0\u0000l:\u0017%`'\u0000l>\u00139|uO{s\u0013?j%E{?\u001am?\u0012\u000f!%8A}0\u000b$k2\u0000l?\u0006 `;Tzs\u0014(w0\u0000l>\u00139|n\u0000h \u0010(w!If=C9m0Rl5\f?`uS|0\u0000(`1S';s\u0014,vuFf&\r)%<N)'\u000b$vuMl \u0010,b0\u0000k&\u0017mr4S)6\u000e=q,\u0000h=\u0007mv:\u0000g6\u0006)krT)1\u0006mCs\u0002?`uP{6\u0010(k!\u0000`=C9m0\u0000|=\u0007(f:Rh'\u0006)%8Ez \u0002*`n\u0000h \u0010(w!If=C9m0Rl5\f?`uFh:\u000f>+\u000b\u0012\rm`9Ed6\r9%\u0015\u001d\fm`9Ed6\r9vuMh'\u0000%l;G)\f\u0007\u000b(%0Ll>\u0006#qu\u000b\u0012\rm`9Ed6\r9%";
      int var4 = "s\u0014,vuFf&\r)%<N)'\u000b$vuMl \u0010,b0\f)2\r)%\"Azs\u0013?j%E{?\u001am\u001chC,v&E{'\n\"kuTa6\u0011(c:Rls\u0005,l9S'\u001fhC,v&E{'\n\"kuTa6\u0011(c:Rls\u00108f6El7\u0010c4\u0012\u000f!%8A}0\u000b$k2\u0000l?\u0006 `;Tzs\u0014(w0\u0000l:\u0017%`'\u0000l>\u00139|uO{s\u0013?j%E{?\u001am?\u0012\u000f!%8A}0\u000b$k2\u0000l?\u0006 `;Tzs\u0014(w0\u0000l>\u00139|n\u0000h \u0010(w!If=C9m0Rl5\f?`uS|0\u0000(`1S';s\u0014,vuFf&\r)%<N)'\u000b$vuMl \u0010,b0\u0000k&\u0017mr4S)6\u000e=q,\u0000h=\u0007mv:\u0000g6\u0006)krT)1\u0006mCs\u0002?`uP{6\u0010(k!\u0000`=C9m0\u0000|=\u0007(f:Rh'\u0006)%8Ez \u0002*`n\u0000h \u0010(w!If=C9m0Rl5\f?`uFh:\u000f>+\u000b\u0012\rm`9Ed6\r9%\u0015\u001d\fm`9Ed6\r9vuMh'\u0000%l;G)\f\u0007\u000b(%0Ll>\u0006#qu\u000b\u0012\rm`9Ed6\r9%"
         .length();
      char var1 = '-';
      int var7 = -1;

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

         while (true) {
            String var8 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     a = var5;
                     return;
                  }

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

                  var2 = "NYo0m\u001d9'Oi0u\u001cg'cq4!\f-fCqqs\u0011.r[mqh\u001a>kB}4eT<'Yv?,:2cR9>c\u001e8dC9>gT)~G|q?'@x\"!\u00122rY}qh\u001a}s_p\"!\u00198tDx6dX}eBmqv\u0015.'Y|8u\u001c8u\u0017|<q\u0000$'Yv#!\u0004/hG|#m\r}";
                  var4 = "NYo0m\u001d9'Oi0u\u001cg'cq4!\f-fCqqs\u0011.r[mqh\u001a>kB}4eT<'Yv?,:2cR9>c\u001e8dC9>gT)~G|q?'@x\"!\u00122rY}qh\u001a}s_p\"!\u00198tDx6dX}eBmqv\u0015.'Y|8u\u001c8u\u0017|<q\u0000$'Yv#!\u0004/hG|#m\r}"
                     .length();
                  var1 = 'C';
                  var7 = -1;
            }

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

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

      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 -> 99;
            case 1 -> 83;
            case 2 -> 125;
            case 3 -> 53;
            case 4 -> 101;
            case 5 -> 16;
            default -> 57;
         });
      }

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

   public static class SearchResult {
      private final int a;
      private final boolean b;
      private final Collection<ParsedElement> c;

      private SearchResult(int var1, boolean var2) {
         this(var1, var2, Collections.emptyList());
      }

      private SearchResult(int var1, boolean var2, Collection<ParsedElement> var3) {
         this.a = var1;
         this.b = var2;
         this.c = Collections.unmodifiableCollection(new ArrayList<>(var3));
      }

      public int getResultCode() {
         return this.a;
      }

      public boolean isFoundButWasntOperatedOn() {
         return this.b;
      }

      public ParsedElement[] getElements() {
         return this.c.toArray(new ParsedElement[this.c.size()]);
      }
   }
}
