package com.l7tech.server.policy.bundle;

import com.l7tech.common.io.XmlUtil;
import com.l7tech.policy.bundle.BundleInfo;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.IOUtils;
import com.l7tech.util.MissingRequiredElementException;
import com.l7tech.util.Pair;
import com.l7tech.util.TooManyChildElementsException;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.net.JarURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.logging.Logger;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;

public class BundleUtils {
   public static final String NS_BUNDLE;
   public static final String L7_NS_POLICY;
   public static final String L7_NS_GW_MGMT;
   private static final Logger a;
   private static final String[] b;

   @NotNull
   public static List<Pair<BundleInfo, String>> getBundleInfos(@NotNull Class var0, @NotNull String var1) throws BundleResolver.InvalidBundleException {
      try {
         if (var0 == null) {
            a(0);
         }
      } catch (IOException var6) {
         throw a(var6);
      }

      try {
         if (var1 == null) {
            a(1);
         }
      } catch (IOException var7) {
         throw a(var7);
      }

      ArrayList var2 = new ArrayList();

      try {
         JarFile var3 = a(var0, var1);
         var2.addAll(getBundleInfos(var0, var1, var3));
      } catch (IOException var5) {
         throw new BundleResolver.InvalidBundleException(var5);
      }

      try {
         if (var2 == null) {
            a(2);
         }

         return var2;
      } catch (IOException var4) {
         throw a(var4);
      }
   }

   @NotNull
   public static List<Pair<BundleInfo, String>> getBundleInfos(@NotNull Class var0, @NotNull String var1, @Nullable JarFile var2) throws BundleResolver.InvalidBundleException {
      try {
         if (var0 == null) {
            a(3);
         }
      } catch (SAXException var18) {
         throw a(var18);
      }

      try {
         if (var1 == null) {
            a(4);
         }
      } catch (SAXException var20) {
         throw a(var20);
      }

      ArrayList var3 = new ArrayList();

      try {
         if (var2 != null) {
            List var4 = a(var2, var1);
            List var5 = getBundleInfosFromJar(var4, var0);
            var3.addAll(var5);
         } else {
            URL var21 = var0.getResource(var1);
            File var22 = new File(var21.getFile());
            if (!var22.isDirectory()) {
               throw new BundleResolver.InvalidBundleException(b[27]);
            }

            File[] var6 = var22.listFiles();
            if (var6 != null) {
               for (File var10 : var6) {
                  if (var10.isDirectory()) {
                     String[] var15 = b;
                     File var11 = new File(var10, var15[38]);
                     byte[] var12 = IOUtils.slurpFile(var11);

                     Document var13;
                     try {
                        var13 = XmlUtil.parse(new ByteArrayInputStream(var12));
                     } catch (SAXException var17) {
                        throw new BundleResolver.InvalidBundleException(var17);
                     }

                     BundleInfo var14 = getBundleInfo(var13);
                     var3.add(new Pair(var14, var1 + "/" + var10.getName()));
                  }
               }
            }
         }
      } catch (IOException var19) {
         throw new BundleResolver.InvalidBundleException(var19);
      }

      try {
         if (var3 == null) {
            a(5);
         }

         return var3;
      } catch (SAXException var16) {
         throw a(var16);
      }
   }

   public static BundleInfo getBundleInfo(Document param0) throws BundleResolver.InvalidBundleException {
      // $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 0
      // 001: invokeinterface org/w3c/dom/Document.getDocumentElement ()Lorg/w3c/dom/Element; 1
      // 006: invokeinterface org/w3c/dom/Element.getNamespaceURI ()Ljava/lang/String; 1
      // 00b: astore 1
      // 00c: getstatic com/l7tech/server/policy/bundle/BundleUtils.b [Ljava/lang/String;
      // 00f: bipush 4
      // 010: aaload
      // 011: aload 1
      // 012: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 015: ifne 031
      // 018: new com/l7tech/server/policy/bundle/BundleResolver$InvalidBundleException
      // 01b: dup
      // 01c: aload 1
      // 01d: getstatic com/l7tech/server/policy/bundle/BundleUtils.b [Ljava/lang/String;
      // 020: bipush 17
      // 022: aaload
      // 023: swap
      // 024: 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" ]
      // 029: invokespecial com/l7tech/server/policy/bundle/BundleResolver$InvalidBundleException.<init> (Ljava/lang/String;)V
      // 02c: athrow
      // 02d: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 030: athrow
      // 031: aload 0
      // 032: invokeinterface org/w3c/dom/Document.getDocumentElement ()Lorg/w3c/dom/Element; 1
      // 037: getstatic com/l7tech/server/policy/bundle/BundleUtils.b [Ljava/lang/String;
      // 03a: astore 13
      // 03c: aload 13
      // 03e: bipush 5
      // 03f: aaload
      // 040: aload 13
      // 042: bipush 1
      // 043: aaload
      // 044: invokestatic com/l7tech/common/io/XmlUtil.findExactlyOneChildElementByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 047: astore 2
      // 048: aload 0
      // 049: invokeinterface org/w3c/dom/Document.getDocumentElement ()Lorg/w3c/dom/Element; 1
      // 04e: aload 13
      // 050: bipush 5
      // 051: aaload
      // 052: aload 13
      // 054: bipush 9
      // 056: aaload
      // 057: invokestatic com/l7tech/common/io/XmlUtil.findExactlyOneChildElementByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 05a: astore 3
      // 05b: aload 0
      // 05c: invokeinterface org/w3c/dom/Document.getDocumentElement ()Lorg/w3c/dom/Element; 1
      // 061: aload 13
      // 063: bipush 5
      // 064: aaload
      // 065: aload 13
      // 067: bipush 13
      // 069: aaload
      // 06a: invokestatic com/l7tech/common/io/XmlUtil.findExactlyOneChildElementByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 06d: astore 4
      // 06f: aload 0
      // 070: invokeinterface org/w3c/dom/Document.getDocumentElement ()Lorg/w3c/dom/Element; 1
      // 075: aload 13
      // 077: bipush 5
      // 078: aaload
      // 079: aload 13
      // 07b: bipush 0
      // 07c: aaload
      // 07d: invokestatic com/l7tech/common/io/XmlUtil.findExactlyOneChildElementByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 080: astore 5
      // 082: goto 091
      // 085: astore 6
      // 087: new com/l7tech/server/policy/bundle/BundleResolver$InvalidBundleException
      // 08a: dup
      // 08b: aload 6
      // 08d: invokespecial com/l7tech/server/policy/bundle/BundleResolver$InvalidBundleException.<init> (Ljava/lang/Throwable;)V
      // 090: athrow
      // 091: aload 2
      // 092: bipush 1
      // 093: invokestatic com/l7tech/util/DomUtils.getTextValue (Lorg/w3c/dom/Element;Z)Ljava/lang/String;
      // 096: astore 6
      // 098: aload 3
      // 099: bipush 1
      // 09a: invokestatic com/l7tech/util/DomUtils.getTextValue (Lorg/w3c/dom/Element;Z)Ljava/lang/String;
      // 09d: astore 7
      // 09f: aload 4
      // 0a1: bipush 1
      // 0a2: invokestatic com/l7tech/util/DomUtils.getTextValue (Lorg/w3c/dom/Element;Z)Ljava/lang/String;
      // 0a5: astore 8
      // 0a7: aload 5
      // 0a9: bipush 1
      // 0aa: invokestatic com/l7tech/util/DomUtils.getTextValue (Lorg/w3c/dom/Element;Z)Ljava/lang/String;
      // 0ad: astore 9
      // 0af: aload 6
      // 0b1: invokevirtual java/lang/String.isEmpty ()Z
      // 0b4: ifne 0d5
      // 0b7: aload 8
      // 0b9: invokevirtual java/lang/String.isEmpty ()Z
      // 0bc: ifne 0d5
      // 0bf: goto 0c6
      // 0c2: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0c5: athrow
      // 0c6: aload 9
      // 0c8: invokevirtual java/lang/String.isEmpty ()Z
      // 0cb: ifeq 0e7
      // 0ce: goto 0d5
      // 0d1: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0d4: athrow
      // 0d5: new com/l7tech/server/policy/bundle/BundleResolver$InvalidBundleException
      // 0d8: dup
      // 0d9: getstatic com/l7tech/server/policy/bundle/BundleUtils.b [Ljava/lang/String;
      // 0dc: bipush 7
      // 0de: aaload
      // 0df: invokespecial com/l7tech/server/policy/bundle/BundleResolver$InvalidBundleException.<init> (Ljava/lang/String;)V
      // 0e2: athrow
      // 0e3: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0e6: athrow
      // 0e7: ldc ""
      // 0e9: astore 11
      // 0eb: aload 0
      // 0ec: invokeinterface org/w3c/dom/Document.getDocumentElement ()Lorg/w3c/dom/Element; 1
      // 0f1: getstatic com/l7tech/server/policy/bundle/BundleUtils.b [Ljava/lang/String;
      // 0f4: astore 13
      // 0f6: aload 13
      // 0f8: bipush 5
      // 0f9: aaload
      // 0fa: aload 13
      // 0fc: bipush 2
      // 0fd: aaload
      // 0fe: invokestatic com/l7tech/common/io/XmlUtil.findExactlyOneChildElementByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 101: astore 10
      // 103: aload 10
      // 105: bipush 1
      // 106: invokestatic com/l7tech/util/DomUtils.getTextValue (Lorg/w3c/dom/Element;Z)Ljava/lang/String;
      // 109: astore 11
      // 10b: goto 12b
      // 10e: astore 12
      // 110: getstatic com/l7tech/server/policy/bundle/BundleUtils.a Ljava/util/logging/Logger;
      // 113: getstatic com/l7tech/server/policy/bundle/BundleUtils.b [Ljava/lang/String;
      // 116: bipush 8
      // 118: aaload
      // 119: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // 11c: goto 12b
      // 11f: astore 12
      // 121: new com/l7tech/server/policy/bundle/BundleResolver$InvalidBundleException
      // 124: dup
      // 125: aload 12
      // 127: invokespecial com/l7tech/server/policy/bundle/BundleResolver$InvalidBundleException.<init> (Ljava/lang/Throwable;)V
      // 12a: athrow
      // 12b: new com/l7tech/policy/bundle/BundleInfo
      // 12e: dup
      // 12f: aload 6
      // 131: aload 7
      // 133: aload 8
      // 135: aload 9
      // 137: aload 11
      // 139: invokespecial com/l7tech/policy/bundle/BundleInfo.<init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
      // 13c: areturn
      // try (4 -> 20): 20 com/l7tech/util/TooManyChildElementsException
      // try (22 -> 64): 65 com/l7tech/util/TooManyChildElementsException
      // try (22 -> 64): 65 com/l7tech/util/MissingRequiredElementException
      // try (96 -> 109): 109 com/l7tech/util/TooManyChildElementsException
      // try (90 -> 99): 100 com/l7tech/util/TooManyChildElementsException
      // try (87 -> 93): 94 com/l7tech/util/TooManyChildElementsException
      // try (113 -> 129): 130 com/l7tech/util/MissingRequiredElementException
      // try (113 -> 129): 137 com/l7tech/util/TooManyChildElementsException
   }

   public static List<Pair<BundleInfo, String>> getBundleInfosFromJar(@NotNull List<JarEntry> var0, @NotNull Class var1) throws BundleResolver.InvalidBundleException {
      try {
         if (var0 == null) {
            a(6);
         }
      } catch (IOException var14) {
         throw a(var14);
      }

      try {
         if (var1 == null) {
            a(7);
         }
      } catch (IOException var15) {
         throw a(var15);
      }

      ArrayList var2 = new ArrayList();

      for (JarEntry var4 : var0) {
         String var5 = "/" + var4.getName();
         String[] var11 = b;
         String var6 = var5 + var11[36];
         URL var7 = var1.getResource(var6);

         byte[] var8;
         try {
            var8 = IOUtils.slurpUrl(var7);
         } catch (IOException var13) {
            var11 = b;
            throw new BundleResolver.InvalidBundleException(var11[30] + var5, var13);
         }

         Document var9;
         try {
            var9 = XmlUtil.parse(new ByteArrayInputStream(var8));
         } catch (IOException | SAXException var12) {
            throw new BundleResolver.InvalidBundleException(b[31] + var5, var12);
         }

         BundleInfo var10 = getBundleInfo(var9);
         var2.add(new Pair(var10, var5));
      }

      return var2;
   }

   public static void findReferences(BundleInfo var0, BundleResolver var1) throws BundleResolver.BundleResolverException, BundleResolver.UnknownBundleException, BundleResolver.InvalidBundleException {
      String var2 = var0.getId();
      Document var3 = var1.getBundleItem(var2, BundleResolver.BundleItem.POLICY, true);
      if (var3 != null) {
         Element var10000 = var3.getDocumentElement();
         String[] var12 = b;

         for (Element var6 : GatewayManagementDocumentUtilities.getEntityElements(var10000, var12[16])) {
            var12 = b;
            Element var7 = GatewayManagementDocumentUtilities.getPolicyResourceElement(var6, var12[34], b(var6));
            if (var7 != null) {
               for (String var10 : searchForJdbcReferences(var7, var12[34], b(var6))) {
                  var0.addJdbcReference(var10);
               }
            }
         }
      }

      Document var13 = var1.getBundleItem(var2, BundleResolver.BundleItem.SERVICE, true);
      if (var13 != null) {
         Element var23 = var13.getDocumentElement();
         String[] var21 = b;

         for (Element var16 : GatewayManagementDocumentUtilities.getEntityElements(var23, var21[15])) {
            var21 = b;
            Element var17 = GatewayManagementDocumentUtilities.getPolicyResourceElement(var16, var21[20], a(var16));
            if (var17 != null) {
               for (String var11 : searchForJdbcReferences(var17, var21[20], a(var16))) {
                  var0.addJdbcReference(var11);
               }
            }
         }
      }
   }

   public static Set<String> searchForJdbcReferences(Element var0, String var1, String var2) throws BundleResolver.InvalidBundleException {
      HashSet var3 = new HashSet();
      if (var0 != null) {
         Document var4 = GatewayManagementDocumentUtilities.getPolicyDocumentFromResource(var0, var1, var2);

         for (Element var7 : PolicyUtils.findJdbcReferences(var4.getDocumentElement())) {
            try {
               String[] var10 = b;
               Element var8 = XmlUtil.findExactlyOneChildElementByName(var7, var10[19], var10[12]);
               String var9 = var8.getAttribute(var10[25]).trim();
               var3.add(var9);
            } catch (TooManyChildElementsException | MissingRequiredElementException var11) {
               throw new BundleResolver.InvalidBundleException(b[6] + ExceptionUtils.getMessage(var11));
            }
         }
      }

      return var3;
   }

   public static Boolean hasActiveVersionMigrationBundleFile(BundleInfo var0, BundleResolver var1) throws BundleResolver.BundleResolverException, BundleResolver.UnknownBundleException, BundleResolver.InvalidBundleException {
      var0.getPrerequisiteFolders();
      BundleResolver.BundleItem var2 = BundleResolver.BundleItem.MIGRATION_BUNDLE;
      var2.setVersion(var0.getVersion());

      for (String var6 : var0.getPrerequisiteFolders()) {
         try {
            if (var1.getBundleItem(var0.getId(), var6, var2, true) != null) {
               return true;
            }
         } catch (BundleResolver.BundleResolverException var8) {
            throw a(var8);
         }
      }

      try {
         if (var1.getBundleItem(var0.getId(), var2, true) != null) {
            return true;
         }
      } catch (BundleResolver.BundleResolverException var7) {
         throw a(var7);
      }

      return false;
   }

   public static Boolean hasWsmanFile(BundleInfo param0, BundleResolver param1) throws BundleResolver.BundleResolverException, BundleResolver.UnknownBundleException, BundleResolver.InvalidBundleException {
      // $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:
      // 00: aload 0
      // 01: invokevirtual com/l7tech/policy/bundle/BundleInfo.getPrerequisiteFolders ()[Ljava/lang/String;
      // 04: astore 2
      // 05: aload 2
      // 06: arraylength
      // 07: istore 3
      // 08: bipush 0
      // 09: istore 4
      // 0b: iload 4
      // 0d: iload 3
      // 0e: if_icmpge 53
      // 11: aload 2
      // 12: iload 4
      // 14: aaload
      // 15: astore 5
      // 17: aload 1
      // 18: aload 0
      // 19: invokevirtual com/l7tech/policy/bundle/BundleInfo.getId ()Ljava/lang/String;
      // 1c: aload 5
      // 1e: getstatic com/l7tech/server/policy/bundle/BundleResolver$BundleItem.POLICY Lcom/l7tech/server/policy/bundle/BundleResolver$BundleItem;
      // 21: bipush 1
      // 22: invokeinterface com/l7tech/server/policy/bundle/BundleResolver.getBundleItem (Ljava/lang/String;Ljava/lang/String;Lcom/l7tech/server/policy/bundle/BundleResolver$BundleItem;Z)Lorg/w3c/dom/Document; 5
      // 27: ifnonnull 44
      // 2a: aload 1
      // 2b: aload 0
      // 2c: invokevirtual com/l7tech/policy/bundle/BundleInfo.getId ()Ljava/lang/String;
      // 2f: aload 5
      // 31: getstatic com/l7tech/server/policy/bundle/BundleResolver$BundleItem.ENCAPSULATED_ASSERTION Lcom/l7tech/server/policy/bundle/BundleResolver$BundleItem;
      // 34: bipush 1
      // 35: invokeinterface com/l7tech/server/policy/bundle/BundleResolver.getBundleItem (Ljava/lang/String;Ljava/lang/String;Lcom/l7tech/server/policy/bundle/BundleResolver$BundleItem;Z)Lorg/w3c/dom/Document; 5
      // 3a: ifnull 4d
      // 3d: goto 44
      // 40: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 43: athrow
      // 44: bipush 1
      // 45: invokestatic java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
      // 48: areturn
      // 49: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4c: athrow
      // 4d: iinc 4 1
      // 50: goto 0b
      // 53: aload 1
      // 54: aload 0
      // 55: invokevirtual com/l7tech/policy/bundle/BundleInfo.getId ()Ljava/lang/String;
      // 58: getstatic com/l7tech/server/policy/bundle/BundleResolver$BundleItem.FOLDER Lcom/l7tech/server/policy/bundle/BundleResolver$BundleItem;
      // 5b: bipush 1
      // 5c: invokeinterface com/l7tech/server/policy/bundle/BundleResolver.getBundleItem (Ljava/lang/String;Lcom/l7tech/server/policy/bundle/BundleResolver$BundleItem;Z)Lorg/w3c/dom/Document; 4
      // 61: ifnonnull c4
      // 64: aload 1
      // 65: aload 0
      // 66: invokevirtual com/l7tech/policy/bundle/BundleInfo.getId ()Ljava/lang/String;
      // 69: getstatic com/l7tech/server/policy/bundle/BundleResolver$BundleItem.POLICY Lcom/l7tech/server/policy/bundle/BundleResolver$BundleItem;
      // 6c: bipush 1
      // 6d: invokeinterface com/l7tech/server/policy/bundle/BundleResolver.getBundleItem (Ljava/lang/String;Lcom/l7tech/server/policy/bundle/BundleResolver$BundleItem;Z)Lorg/w3c/dom/Document; 4
      // 72: ifnonnull c4
      // 75: goto 7c
      // 78: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 7b: athrow
      // 7c: aload 1
      // 7d: aload 0
      // 7e: invokevirtual com/l7tech/policy/bundle/BundleInfo.getId ()Ljava/lang/String;
      // 81: getstatic com/l7tech/server/policy/bundle/BundleResolver$BundleItem.ENCAPSULATED_ASSERTION Lcom/l7tech/server/policy/bundle/BundleResolver$BundleItem;
      // 84: bipush 1
      // 85: invokeinterface com/l7tech/server/policy/bundle/BundleResolver.getBundleItem (Ljava/lang/String;Lcom/l7tech/server/policy/bundle/BundleResolver$BundleItem;Z)Lorg/w3c/dom/Document; 4
      // 8a: ifnonnull c4
      // 8d: goto 94
      // 90: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 93: athrow
      // 94: aload 1
      // 95: aload 0
      // 96: invokevirtual com/l7tech/policy/bundle/BundleInfo.getId ()Ljava/lang/String;
      // 99: getstatic com/l7tech/server/policy/bundle/BundleResolver$BundleItem.SERVICE Lcom/l7tech/server/policy/bundle/BundleResolver$BundleItem;
      // 9c: bipush 1
      // 9d: invokeinterface com/l7tech/server/policy/bundle/BundleResolver.getBundleItem (Ljava/lang/String;Lcom/l7tech/server/policy/bundle/BundleResolver$BundleItem;Z)Lorg/w3c/dom/Document; 4
      // a2: ifnonnull c4
      // a5: goto ac
      // a8: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // ab: athrow
      // ac: aload 1
      // ad: aload 0
      // ae: invokevirtual com/l7tech/policy/bundle/BundleInfo.getId ()Ljava/lang/String;
      // b1: getstatic com/l7tech/server/policy/bundle/BundleResolver$BundleItem.ASSERTION Lcom/l7tech/server/policy/bundle/BundleResolver$BundleItem;
      // b4: bipush 1
      // b5: invokeinterface com/l7tech/server/policy/bundle/BundleResolver.getBundleItem (Ljava/lang/String;Lcom/l7tech/server/policy/bundle/BundleResolver$BundleItem;Z)Lorg/w3c/dom/Document; 4
      // ba: ifnull cc
      // bd: goto c4
      // c0: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // c3: athrow
      // c4: bipush 1
      // c5: goto cd
      // c8: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // cb: athrow
      // cc: bipush 0
      // cd: invokestatic java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
      // d0: areturn
      // try (15 -> 31): 32 com/l7tech/server/policy/bundle/BundleResolver$BundleResolverException
      // try (23 -> 37): 37 com/l7tech/server/policy/bundle/BundleResolver$BundleResolverException
      // try (41 -> 55): 56 com/l7tech/server/policy/bundle/BundleResolver$BundleResolverException
      // try (48 -> 65): 66 com/l7tech/server/policy/bundle/BundleResolver$BundleResolverException
      // try (58 -> 75): 76 com/l7tech/server/policy/bundle/BundleResolver$BundleResolverException
      // try (68 -> 85): 86 com/l7tech/server/policy/bundle/BundleResolver$BundleResolverException
      // try (78 -> 90): 90 com/l7tech/server/policy/bundle/BundleResolver$BundleResolverException
   }

   private static String a(Element var0) {
      return var0.getAttribute(b[37]);
   }

   @NotNull
   private static String b(Element var0) {
      try {
         String var10000 = var0.getAttribute(b[14]);
         if (var10000 == null) {
            a(8);
         }

         return var10000;
      } catch (IllegalArgumentException var1) {
         throw a(var1);
      }
   }

   @Nullable
   private static JarFile a(Class var0, String var1) throws IOException {
      JarFile var2 = null;
      URL var3 = var0.getResource(var1);
      if (var3 != null) {
         URLConnection var4 = var3.openConnection();
         if (var4 instanceof JarURLConnection) {
            JarURLConnection var5 = (JarURLConnection)var3.openConnection();
            var2 = var5.getJarFile();
         }
      }

      return var2;
   }

   @NotNull
   private static List<JarEntry> a(@NotNull JarFile param0, @NotNull String param1) throws BundleResolver.InvalidBundleException {
      // $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:
      // 00: aload 0
      // 01: ifnonnull 10
      // 04: bipush 9
      // 06: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (I)V
      // 09: goto 10
      // 0c: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f: athrow
      // 10: aload 1
      // 11: ifnonnull 20
      // 14: bipush 10
      // 16: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (I)V
      // 19: goto 20
      // 1c: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1f: athrow
      // 20: new java/util/ArrayList
      // 23: dup
      // 24: invokespecial java/util/ArrayList.<init> ()V
      // 27: astore 2
      // 28: aload 0
      // 29: invokevirtual java/util/jar/JarFile.entries ()Ljava/util/Enumeration;
      // 2c: astore 3
      // 2d: aload 3
      // 2e: invokeinterface java/util/Enumeration.hasMoreElements ()Z 1
      // 33: ifeq ae
      // 36: aload 3
      // 37: invokeinterface java/util/Enumeration.nextElement ()Ljava/lang/Object; 1
      // 3c: checkcast java/util/jar/JarEntry
      // 3f: astore 4
      // 41: aload 4
      // 43: invokevirtual java/util/jar/JarEntry.getName ()Ljava/lang/String;
      // 46: astore 5
      // 48: aload 1
      // 49: bipush 1
      // 4a: invokevirtual java/lang/String.substring (I)Ljava/lang/String;
      // 4d: astore 6
      // 4f: aload 5
      // 51: aload 6
      // 53: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 56: ifeq ab
      // 59: aload 4
      // 5b: invokevirtual java/util/jar/JarEntry.isDirectory ()Z
      // 5e: ifeq ab
      // 61: goto 68
      // 64: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 67: athrow
      // 68: aload 5
      // 6a: ldc "/"
      // 6c: aload 6
      // 6e: invokevirtual java/lang/String.length ()I
      // 71: bipush 1
      // 72: iadd
      // 73: invokevirtual java/lang/String.indexOf (Ljava/lang/String;I)I
      // 76: aload 5
      // 78: invokevirtual java/lang/String.length ()I
      // 7b: bipush 1
      // 7c: isub
      // 7d: if_icmpne ab
      // 80: goto 87
      // 83: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 86: athrow
      // 87: getstatic com/l7tech/server/policy/bundle/BundleUtils.a Ljava/util/logging/Logger;
      // 8a: aload 5
      // 8c: getstatic com/l7tech/server/policy/bundle/BundleUtils.b [Ljava/lang/String;
      // 8f: bipush 29
      // 91: aaload
      // 92: swap
      // 93: 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" ]
      // 98: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // 9b: aload 2
      // 9c: aload 4
      // 9e: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // a3: pop
      // a4: goto ab
      // a7: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // aa: athrow
      // ab: goto 2d
      // ae: aload 2
      // af: dup
      // b0: ifnonnull bf
      // b3: bipush 11
      // b5: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (I)V
      // b8: goto bf
      // bb: invokestatic com/l7tech/server/policy/bundle/BundleUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // be: athrow
      // bf: areturn
      // try (0 -> 4): 5 com/l7tech/server/policy/bundle/BundleResolver$InvalidBundleException
      // try (7 -> 11): 12 com/l7tech/server/policy/bundle/BundleResolver$InvalidBundleException
      // try (35 -> 42): 43 com/l7tech/server/policy/bundle/BundleResolver$InvalidBundleException
      // try (39 -> 57): 58 com/l7tech/server/policy/bundle/BundleResolver$InvalidBundleException
      // try (45 -> 72): 73 com/l7tech/server/policy/bundle/BundleResolver$InvalidBundleException
      // try (76 -> 81): 82 com/l7tech/server/policy/bundle/BundleResolver$InvalidBundleException
   }

   static {
      String[] var5 = new String[42];
      int var3 = 0;
      String var2 = "\u0015\u001e\u001fR\u001f }%\u0012\u0003_\u0002\u0018\u001f\u0014\u0001\t\tC\b8x8\b\u0005E\b\u0016K>\u0017\bT\u001f:*\u00115\u0003E#<a=[\u0001T\u0019!b5[IBCl~q\u0016\u0019B\u0019ic>\u000fLC\b=x#\u0015L_\u0018%a*9\u000f\u0018AWf\"?\bB]Z=h2\u0013BR\u0002$\"cK]\u0003By4~\u000b\u0003]\u0004*t|\u0019\u0019_\t%h*9\u000f\u0018AWf\"?\bB]Z=h2\u0013BR\u0002$\"cK]\u0003By4~\u000b\u0003]\u0004*t|\u0019\u0019_\t%h \u0012\u0014\u0019]\tic>\u000fLW\u0004'iq\u0011\bS\u000ei\u007f4\u001d\tC\b'n4\bV\u0011J\u0018\u0015\u001aP\u0001 iq\u0019\u0019_\t%hq\u001f\tR\u0001(\u007f0\u000f\u0005^\u0003g-\u0018\u001f@\u0011#(`4[\r_\tiI4\b\u000fC\u00049y8\u0014\u0002\u0011\u0000<~%[\r]\u0001io4[\u0002^\u0003ih<\u000b\u0018H-\u0013\u000e\u0002U\u0001,D?\u001d\u0003\u0011=;h#\u001e\u001dD\u0004:d%\u001e3w\u0002%i4\t\u001f\u0011\u0019(jq\u0012\u001f\u0011\b$}%\u0002B\u0007\u0007\u001e\u001eB\u0004&c\u00156\u001e\u0018s\u0018'i=\u001e%_\u000b&~\u0017\t\u0003\\'(\u007f>\u0010\t\u000bD\u0000,c%[\n^\u001fiM\u001f\u0014\u0018\u007f\u0018%aq\u000b\rC\f$h%\u001e\u001e\u0011Jl~v[\u0003WMl~\u007f^\u001f\u0011\u0000<~%[\u0002^\u0019io4[\u0002D\u0001%\u000e\u0012\u0014\u0002_\b*y8\u0014\u0002\u007f\f$h\u0004\u001f\u001a\u0001T\u00046\u000e\u0005U\u0007\u0002\u001e\u001eG\u0004*h\u0006\u0001\u0014\u0000X\u000e0$\u0004\u0015\u001fD\u001d9b#\u000f\tUM\u000bx?\u001f\u0000T$'k>U\u0014\\\u0001i{4\t\u001fX\u0002'7q\f2\u001a\u0000]\u0004'j\u0012\u0017\rB\u001e#9\u000f\u0018AWf\"&\f\u001b\u001f\u0001(t4\t[E\b*e\u007f\u0018\u0003\\B>~~\u000b\u0003]\u0004*t\u0007\u0002\u001e\u001eG\u0004*h#9\u000f\u0018AWf\"&\f\u001b\u001f\u0001(t4\t[E\b*e\u007f\u0018\u0003\\B>~~\u000b\u0003]\u0004*t\u00143\u000e\u0002U\u0001,G0\t(X\u001f,n%\u0014\u001eX\b:/9\u000f\u0018AWf\"?\bB]Z=h2\u0013BR\u0002$\"cK]\u0001By9~\u001c\rE\b>l(V\u0001P\u0003(j4\u0016\t_\u0019+2\u0014\u0001\u001e\u0001~y4\u0018\u0004\u001e\u001e,\u007f'\u001e\u001e\u001e\u001d&a8\u0018\u0015\u001e\u000f<c5\u0017\t\u001e/<c5\u0017\td\u0019 a\"\u000b\"\u000f\u001eX\u0003.[0\u0017\u0019T\u00147\u0012\u0002U,%a\u0013\u000e\u0002U\u0001,H?\u000f\u001eX\b:*\u0012\u0014\u0019]\tic>\u000fLP\u000e*h\"\bLW\u0004%hq\t\tB\u0002<\u007f2\u001e\u001f\u0011\u000b&\u007fq\u0019\u0019_\t%h\u00163\u000e\u0002U\u0001,_4\b\u0003D\u001f*h\u0013\u001a\u001fT#(`4\u0015\u0017\u0014\u0019_\tio$\u0015\b]\bik>\u0017\bT\u001fs-*\u0004\u0015\rS\u0001,-%\u0014LC\b(iq9\u0019_\t%h\u0018\u0015\n^C1`=[\nC\u0002$-3\u000e\u0002U\u0001,-+\u0004\u0015\rS\u0001,-%\u0014LA\f;~4[.D\u0003-a42\u0002W\u0002gu<\u0017LW\u001f&`q\u0019\u0019_\t%hq+2\u0014\u0001\u001e\u0001~y4\u0018\u0004\u001e\u001e,\u007f'\u001e\u001e\u001e\u001d&a8\u0018\u0015\u001e\u000f<c5\u0017\t\u001e/<c5\u0017\td\u0019 a\"\u000e6\u001e\u0018s\u0018'i=\u001e%_\u000b&~\u0006\u0001\u0014\u0000X\u000e0\u00147\u0012\u0002U,%a\u0013\u000e\u0002U\u0001,H?\u000f\u001eX\b:\u000e\u0013\u000e\u0002U\u0001,D?\u001d\u0003\u001f\u0015$a\u00028\u001f\u000e\u0013\u000e\u0002U\u0001,D?\u001d\u0003\u001f\u0015$a\r6\u001e\u0018a\u0002%d2\u0002+D\u0004-";
      int var4 = "\u0015\u001e\u001fR\u001f }%\u0012\u0003_\u0002\u0018\u001f\u0014\u0001\t\tC\b8x8\b\u0005E\b\u0016K>\u0017\bT\u001f:*\u00115\u0003E#<a=[\u0001T\u0019!b5[IBCl~q\u0016\u0019B\u0019ic>\u000fLC\b=x#\u0015L_\u0018%a*9\u000f\u0018AWf\"?\bB]Z=h2\u0013BR\u0002$\"cK]\u0003By4~\u000b\u0003]\u0004*t|\u0019\u0019_\t%h*9\u000f\u0018AWf\"?\bB]Z=h2\u0013BR\u0002$\"cK]\u0003By4~\u000b\u0003]\u0004*t|\u0019\u0019_\t%h \u0012\u0014\u0019]\tic>\u000fLW\u0004'iq\u0011\bS\u000ei\u007f4\u001d\tC\b'n4\bV\u0011J\u0018\u0015\u001aP\u0001 iq\u0019\u0019_\t%hq\u001f\tR\u0001(\u007f0\u000f\u0005^\u0003g-\u0018\u001f@\u0011#(`4[\r_\tiI4\b\u000fC\u00049y8\u0014\u0002\u0011\u0000<~%[\r]\u0001io4[\u0002^\u0003ih<\u000b\u0018H-\u0013\u000e\u0002U\u0001,D?\u001d\u0003\u0011=;h#\u001e\u001dD\u0004:d%\u001e3w\u0002%i4\t\u001f\u0011\u0019(jq\u0012\u001f\u0011\b$}%\u0002B\u0007\u0007\u001e\u001eB\u0004&c\u00156\u001e\u0018s\u0018'i=\u001e%_\u000b&~\u0017\t\u0003\\'(\u007f>\u0010\t\u000bD\u0000,c%[\n^\u001fiM\u001f\u0014\u0018\u007f\u0018%aq\u000b\rC\f$h%\u001e\u001e\u0011Jl~v[\u0003WMl~\u007f^\u001f\u0011\u0000<~%[\u0002^\u0019io4[\u0002D\u0001%\u000e\u0012\u0014\u0002_\b*y8\u0014\u0002\u007f\f$h\u0004\u001f\u001a\u0001T\u00046\u000e\u0005U\u0007\u0002\u001e\u001eG\u0004*h\u0006\u0001\u0014\u0000X\u000e0$\u0004\u0015\u001fD\u001d9b#\u000f\tUM\u000bx?\u001f\u0000T$'k>U\u0014\\\u0001i{4\t\u001fX\u0002'7q\f2\u001a\u0000]\u0004'j\u0012\u0017\rB\u001e#9\u000f\u0018AWf\"&\f\u001b\u001f\u0001(t4\t[E\b*e\u007f\u0018\u0003\\B>~~\u000b\u0003]\u0004*t\u0007\u0002\u001e\u001eG\u0004*h#9\u000f\u0018AWf\"&\f\u001b\u001f\u0001(t4\t[E\b*e\u007f\u0018\u0003\\B>~~\u000b\u0003]\u0004*t\u00143\u000e\u0002U\u0001,G0\t(X\u001f,n%\u0014\u001eX\b:/9\u000f\u0018AWf\"?\bB]Z=h2\u0013BR\u0002$\"cK]\u0001By9~\u001c\rE\b>l(V\u0001P\u0003(j4\u0016\t_\u0019+2\u0014\u0001\u001e\u0001~y4\u0018\u0004\u001e\u001e,\u007f'\u001e\u001e\u001e\u001d&a8\u0018\u0015\u001e\u000f<c5\u0017\t\u001e/<c5\u0017\td\u0019 a\"\u000b\"\u000f\u001eX\u0003.[0\u0017\u0019T\u00147\u0012\u0002U,%a\u0013\u000e\u0002U\u0001,H?\u000f\u001eX\b:*\u0012\u0014\u0019]\tic>\u000fLP\u000e*h\"\bLW\u0004%hq\t\tB\u0002<\u007f2\u001e\u001f\u0011\u000b&\u007fq\u0019\u0019_\t%h\u00163\u000e\u0002U\u0001,_4\b\u0003D\u001f*h\u0013\u001a\u001fT#(`4\u0015\u0017\u0014\u0019_\tio$\u0015\b]\bik>\u0017\bT\u001fs-*\u0004\u0015\rS\u0001,-%\u0014LC\b(iq9\u0019_\t%h\u0018\u0015\n^C1`=[\nC\u0002$-3\u000e\u0002U\u0001,-+\u0004\u0015\rS\u0001,-%\u0014LA\f;~4[.D\u0003-a42\u0002W\u0002gu<\u0017LW\u001f&`q\u0019\u0019_\t%hq+2\u0014\u0001\u001e\u0001~y4\u0018\u0004\u001e\u001e,\u007f'\u001e\u001e\u001e\u001d&a8\u0018\u0015\u001e\u000f<c5\u0017\t\u001e/<c5\u0017\td\u0019 a\"\u000e6\u001e\u0018s\u0018'i=\u001e%_\u000b&~\u0006\u0001\u0014\u0000X\u000e0\u00147\u0012\u0002U,%a\u0013\u000e\u0002U\u0001,H?\u000f\u001eX\b:\u000e\u0013\u000e\u0002U\u0001,D?\u001d\u0003\u001f\u0015$a\u00028\u001f\u000e\u0013\u000e\u0002U\u0001,D?\u001d\u0003\u001f\u0015$a\r6\u001e\u0018a\u0002%d2\u0002+D\u0004-"
         .length();
      char var1 = 11;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 18;
         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) {
                     b = var5;
                     String[] var9 = b;
                     L7_NS_GW_MGMT = b[23];
                     L7_NS_POLICY = var9[21];
                     NS_BUNDLE = var9[5];
                     a = Logger.getLogger(BundleUtils.class.getName());
                     return;
                  }

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

                  var2 = "(\t\rd\u00176{\u000e%\r\u000b`\u000b4z.\r6L\u00185m";
                  var4 = "(\t\rd\u00176{\u000e%\r\u000b`\u000b4z.\r6L\u00185m".length();
                  var1 = 7;
                  var7 = -1;
            }

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

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

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

      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 -> 67;
            case 1 -> 105;
            case 2 -> 126;
            case 3 -> 35;
            case 4 -> 127;
            case 5 -> 91;
            default -> 31;
         });
      }

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