package com.l7tech.gateway.common.licensing;

import com.l7tech.common.io.CertUtils;
import com.l7tech.common.io.XmlUtil;
import com.l7tech.gateway.common.InvalidLicenseException;
import com.l7tech.security.prov.JceProvider;
import com.l7tech.security.xml.DsigUtil;
import com.l7tech.security.xml.DsigValidity;
import com.l7tech.security.xml.SimpleSecurityTokenResolver;
import com.l7tech.security.xml.SignatureValidityContext.Builder;
import com.l7tech.util.DateUtils;
import com.l7tech.util.DomUtils;
import com.l7tech.util.InvalidDocumentFormatException;
import com.l7tech.util.TooManyChildElementsException;
import java.security.Provider;
import java.security.PublicKey;
import java.security.SignatureException;
import java.security.cert.CertificateEncodingException;
import java.security.cert.X509Certificate;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.xml.crypto.KeySelectorException;
import javax.xml.crypto.MarshalException;
import javax.xml.crypto.dsig.Reference;
import org.jetbrains.annotations.NotNull;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;

public class LicenseUtils {
   public static final String LICENSE_NAMESPACE;
   public static final String DOCUMENT_ELEMENT_LOCAL_NAME;
   public static final String ID_ATTRIBUTE;
   public static final String START_DATE_ELEMENT;
   public static final String EXPIRY_DATE_ELEMENT;
   public static final String DESCRIPTION_ELEMENT;
   public static final String LICENSE_ATTRIBUTES_ELEMENT;
   public static final String ATTRIBUTE_ELEMENT;
   public static final String HOST_ELEMENT;
   public static final String NAME_ATTRIBUTE;
   public static final String PRODUCT_ELEMENT;
   public static final String VERSION_ELEMENT;
   public static final String MAJOR_ATTRIBUTE;
   public static final String MINOR_ATTRIBUTE;
   public static final String ADDRESS_ATTRIBUTE;
   public static final String IP_ELEMENT;
   public static final String FEATURE_LABEL_ELEMENT;
   public static final String LICENSEE_ELEMENT;
   public static final String CONTACT_EMAIL_ATTRIBUTE;
   public static final String FEATURESET_ELEMENT;
   public static final String SIGNATURE_ELEMENT;
   public static final String EULATEXT_ELEMENT;
   public static final String LICENSE_XML_INVALID_ERROR_MSG;
   public static final String START_DATE_PARSING_ERROR_MSG;
   public static final String EXPIRY_DATE_PARSING_ERROR_MSG;
   public static final String ID_FORMAT_ERROR_MSG;
   public static final String ID_NON_POSITIVE_ERROR_MSG;
   public static final String LICENSE_EMPTY_ERROR_MSG;
   public static final String EULA_PARSING_ERROR_MSG;
   public static final String MISSING_REQUIRED_INFORMATION_ERROR_MSG;
   public static final String SIGNER_NOT_RECOGNIZED_ERROR_MSG;
   public static final String SIGNATURE_VALIDATION_ERROR_MSG;
   public static final String ISSUER_CERTIFICATE_ENCODING_ERROR_MSG;
   public static final String ASTERISK = "*";
   private static final String[] a;

   public static String getLicenseeEmail(Document var0) throws TooManyChildElementsException {
      String[] var2 = a;
      String var1 = parseWildcardStringAttribute(var0, var2[93], var2[55]);

      try {
         if ("*".equals(var1)) {
            return null;
         }
      } catch (TooManyChildElementsException var3) {
         throw a(var3);
      }

      return var1;
   }

   public static String getLicenseeName(Document var0) throws TooManyChildElementsException, InvalidLicenseException {
      String[] var2 = a;
      String var1 = parseWildcardStringAttribute(var0, var2[8], var2[36]);
      requireValue(var1);
      return var1;
   }

   public static String getProductName(Document var0) throws TooManyChildElementsException {
      String[] var1 = a;
      return parseWildcardStringAttribute(var0, var1[89], var1[45]);
   }

   public static String getIpAddress(Document var0) throws TooManyChildElementsException {
      String[] var1 = a;
      return parseWildcardStringAttribute(var0, var1[56], var1[44]);
   }

   public static String getHostname(Document var0) throws TooManyChildElementsException {
      String[] var1 = a;
      return parseWildcardStringAttribute(var0, var1[19], var1[45]);
   }

   public static String getMinorVersionNumber(Document var0) throws TooManyChildElementsException {
      String[] var1 = a;
      return parseWildcardStringAttribute(var0, var1[80], var1[9], var1[90]);
   }

   public static String getMajorVersionNumber(Document var0) throws TooManyChildElementsException {
      String[] var1 = a;
      return parseWildcardStringAttribute(var0, var1[89], var1[97], var1[35]);
   }

   public static String getFeatureLabel(Document var0) throws TooManyChildElementsException {
      return parseSimpleText(var0, a[92]);
   }

   public static Set<String> getAttributes(Document var0) throws TooManyChildElementsException {
      HashSet var1 = new HashSet();
      Element var2 = var0.getDocumentElement();
      String var10001 = var2.getNamespaceURI();
      String[] var7 = a;
      Element var3 = DomUtils.findOnlyOneChildElementByName(var2, var10001, var7[50]);

      try {
         if (var3 == null) {
            return var1;
         }
      } catch (TooManyChildElementsException var9) {
         throw a(var9);
      }

      for (Element var6 : DomUtils.findChildElementsByName(var3, var3.getNamespaceURI(), a[4])) {
         try {
            if (var6 != null) {
               var1.add(DomUtils.getTextValue(var6));
            }
         } catch (TooManyChildElementsException var8) {
            throw a(var8);
         }
      }

      return var1;
   }

   public static String getDescription(Document var0) throws TooManyChildElementsException {
      String var1 = parseWildcardStringElement(var0, a[83]);

      try {
         if ("*".equals(var1)) {
            return null;
         }
      } catch (TooManyChildElementsException var2) {
         throw a(var2);
      }

      return var1;
   }

   public static Date getStartDate(Document var0) throws TooManyChildElementsException, InvalidLicenseException {
      try {
         String[] var2 = a;
         return parseDateElement(var0, var2[51]);
      } catch (ParseException var3) {
         throw new InvalidLicenseException(a[69], var3);
      }
   }

   public static Date getExpiryDate(Document var0) throws TooManyChildElementsException, InvalidLicenseException {
      try {
         String[] var2 = a;
         return parseDateElement(var0, var2[58]);
      } catch (ParseException var3) {
         throw new InvalidLicenseException(a[98], var3);
      }
   }

   public static long getId(Document var0) throws InvalidLicenseException {
      long var1;
      try {
         Element var10000 = var0.getDocumentElement();
         String[] var7 = a;
         var1 = Long.parseLong(var10000.getAttribute(var7[66]));
      } catch (NumberFormatException var6) {
         String[] var4 = a;
         throw new InvalidLicenseException(var4[15]);
      }

      try {
         if (var1 < 1L) {
            throw new InvalidLicenseException(a[22]);
         } else {
            return var1;
         }
      } catch (NumberFormatException var5) {
         throw a(var5);
      }
   }

   public static Document parseLicenseDocument(String var0) throws InvalidLicenseException {
      try {
         if (var0.isEmpty()) {
            throw new InvalidLicenseException(a[33]);
         }
      } catch (SAXException var7) {
         throw a(var7);
      }

      Document var1;
      try {
         var1 = XmlUtil.stringToDocument(var0);
         DomUtils.stripWhitespace(var1.getDocumentElement());
      } catch (SAXException var5) {
         String[] var3 = a;
         throw new InvalidLicenseException(var3[41], var5);
      }

      Element var2 = var1.getDocumentElement();

      try {
         if (!a[65].equals(var2.getNamespaceURI())) {
            throw new InvalidLicenseException(a[1], new InvalidDocumentFormatException(a[53]));
         }
      } catch (SAXException var6) {
         throw a(var6);
      }

      try {
         if (!a[68].equals(var2.getLocalName())) {
            throw new InvalidLicenseException(a[1], new InvalidDocumentFormatException(a[73]));
         } else {
            return var1;
         }
      } catch (SAXException var4) {
         throw a(var4);
      }
   }

   public static String parseEulaText(Document param0) throws TooManyChildElementsException, InvalidLicenseException {
      // $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: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 04: astore 3
      // 05: aload 3
      // 06: bipush 13
      // 08: aaload
      // 09: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.parseWildcardStringElement (Lorg/w3c/dom/Document;Ljava/lang/String;)Ljava/lang/String;
      // 0c: astore 1
      // 0d: ldc "*"
      // 0f: aload 1
      // 10: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 13: ifeq 1c
      // 16: aconst_null
      // 17: areturn
      // 18: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1b: athrow
      // 1c: aload 1
      // 1d: ifnull 5a
      // 20: aload 1
      // 21: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 24: invokevirtual java/lang/String.length ()I
      // 27: ifle 5a
      // 2a: goto 31
      // 2d: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 30: athrow
      // 31: new java/lang/String
      // 34: dup
      // 35: aload 1
      // 36: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 39: bipush 1
      // 3a: invokestatic com/l7tech/util/HexUtils.decodeBase64 (Ljava/lang/String;Z)[B
      // 3d: invokestatic com/l7tech/util/IOUtils.uncompressGzip ([B)[B
      // 40: getstatic com/l7tech/util/Charsets.UTF8 Ljava/nio/charset/Charset;
      // 43: invokespecial java/lang/String.<init> ([BLjava/nio/charset/Charset;)V
      // 46: astore 1
      // 47: goto 5a
      // 4a: astore 2
      // 4b: new com/l7tech/gateway/common/InvalidLicenseException
      // 4e: dup
      // 4f: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 52: bipush 14
      // 54: aaload
      // 55: aload 2
      // 56: invokespecial com/l7tech/gateway/common/InvalidLicenseException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 59: athrow
      // 5a: aload 1
      // 5b: ifnull 74
      // 5e: aload 1
      // 5f: invokevirtual java/lang/String.length ()I
      // 62: ifle 74
      // 65: goto 6c
      // 68: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6b: athrow
      // 6c: aload 1
      // 6d: goto 75
      // 70: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 73: athrow
      // 74: aconst_null
      // 75: areturn
      // try (16 -> 22): 23 java/io/IOException
      // try (8 -> 14): 14 java/io/IOException
      // try (25 -> 35): 36 java/io/IOException
      // try (45 -> 50): 51 java/io/IOException
      // try (47 -> 55): 55 java/io/IOException
   }

   public static String parseSimpleText(Document param0, String param1) throws TooManyChildElementsException {
      // $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: invokeinterface org/w3c/dom/Document.getDocumentElement ()Lorg/w3c/dom/Element; 1
      // 06: astore 2
      // 07: aload 2
      // 08: aload 2
      // 09: invokeinterface org/w3c/dom/Element.getNamespaceURI ()Ljava/lang/String; 1
      // 0e: aload 1
      // 0f: invokestatic com/l7tech/util/DomUtils.findOnlyOneChildElementByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 12: astore 3
      // 13: aload 3
      // 14: ifnonnull 1d
      // 17: aconst_null
      // 18: areturn
      // 19: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1c: athrow
      // 1d: aload 3
      // 1e: invokestatic com/l7tech/util/DomUtils.getTextValue (Lorg/w3c/dom/Element;)Ljava/lang/String;
      // 21: astore 4
      // 23: aload 4
      // 25: ifnull 38
      // 28: aload 4
      // 2a: invokevirtual java/lang/String.length ()I
      // 2d: bipush 1
      // 2e: if_icmpge 3e
      // 31: goto 38
      // 34: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 37: athrow
      // 38: aconst_null
      // 39: areturn
      // 3a: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3d: athrow
      // 3e: aload 4
      // 40: areturn
      // try (9 -> 13): 13 com/l7tech/util/TooManyChildElementsException
      // try (18 -> 24): 25 com/l7tech/util/TooManyChildElementsException
      // try (20 -> 29): 29 com/l7tech/util/TooManyChildElementsException
   }

   public static Set<String> getFeatureSets(Document param0) throws InvalidLicenseException, TooManyChildElementsException {
      // $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: new java/util/HashSet
      // 03: dup
      // 04: invokespecial java/util/HashSet.<init> ()V
      // 07: astore 1
      // 08: aload 0
      // 09: invokeinterface org/w3c/dom/Document.getDocumentElement ()Lorg/w3c/dom/Element; 1
      // 0e: astore 2
      // 0f: aload 2
      // 10: aload 2
      // 11: invokeinterface org/w3c/dom/Element.getNamespaceURI ()Ljava/lang/String; 1
      // 16: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 19: astore 8
      // 1b: aload 8
      // 1d: bipush 89
      // 1f: aaload
      // 20: invokestatic com/l7tech/util/DomUtils.findOnlyOneChildElementByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 23: astore 3
      // 24: aload 3
      // 25: ifnonnull 38
      // 28: new com/l7tech/gateway/common/InvalidLicenseException
      // 2b: dup
      // 2c: aload 8
      // 2e: bipush 1
      // 2f: aaload
      // 30: invokespecial com/l7tech/gateway/common/InvalidLicenseException.<init> (Ljava/lang/String;)V
      // 33: athrow
      // 34: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 37: athrow
      // 38: aload 3
      // 39: aload 2
      // 3a: invokeinterface org/w3c/dom/Element.getNamespaceURI ()Ljava/lang/String; 1
      // 3f: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 42: astore 8
      // 44: aload 8
      // 46: bipush 26
      // 48: aaload
      // 49: invokestatic com/l7tech/util/DomUtils.findChildElementsByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
      // 4c: astore 4
      // 4e: aload 4
      // 50: ifnull 64
      // 53: aload 4
      // 55: invokeinterface java/util/List.isEmpty ()Z 1
      // 5a: ifeq 76
      // 5d: goto 64
      // 60: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 63: athrow
      // 64: new com/l7tech/gateway/common/InvalidLicenseException
      // 67: dup
      // 68: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 6b: bipush 72
      // 6d: aaload
      // 6e: invokespecial com/l7tech/gateway/common/InvalidLicenseException.<init> (Ljava/lang/String;)V
      // 71: athrow
      // 72: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 75: athrow
      // 76: aload 4
      // 78: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 7d: astore 5
      // 7f: aload 5
      // 81: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 86: ifeq dd
      // 89: aload 5
      // 8b: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 90: checkcast org/w3c/dom/Element
      // 93: astore 6
      // 95: aload 6
      // 97: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 9a: astore 8
      // 9c: aload 8
      // 9e: bipush 45
      // a0: aaload
      // a1: invokeinterface org/w3c/dom/Element.getAttribute (Ljava/lang/String;)Ljava/lang/String; 2
      // a6: astore 7
      // a8: aload 7
      // aa: ifnull c0
      // ad: aload 7
      // af: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // b2: invokevirtual java/lang/String.length ()I
      // b5: bipush 1
      // b6: if_icmpge d1
      // b9: goto c0
      // bc: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // bf: athrow
      // c0: new com/l7tech/gateway/common/InvalidLicenseException
      // c3: dup
      // c4: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // c7: bipush 1
      // c8: aaload
      // c9: invokespecial com/l7tech/gateway/common/InvalidLicenseException.<init> (Ljava/lang/String;)V
      // cc: athrow
      // cd: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // d0: athrow
      // d1: aload 1
      // d2: aload 7
      // d4: invokeinterface java/util/Set.add (Ljava/lang/Object;)Z 2
      // d9: pop
      // da: goto 7f
      // dd: aload 1
      // de: areturn
      // try (17 -> 26): 26 com/l7tech/gateway/common/InvalidLicenseException
      // try (38 -> 43): 44 com/l7tech/gateway/common/InvalidLicenseException
      // try (40 -> 53): 53 com/l7tech/gateway/common/InvalidLicenseException
      // try (73 -> 80): 81 com/l7tech/gateway/common/InvalidLicenseException
      // try (75 -> 90): 90 com/l7tech/gateway/common/InvalidLicenseException
   }

   public static void requireValue(String param0) throws InvalidLicenseException {
      // $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: ifnull 23
      // 04: aload 0
      // 05: invokevirtual java/lang/String.length ()I
      // 08: bipush 1
      // 09: if_icmplt 23
      // 0c: goto 13
      // 0f: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 12: athrow
      // 13: ldc "*"
      // 15: aload 0
      // 16: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 19: ifeq 34
      // 1c: goto 23
      // 1f: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 22: athrow
      // 23: new com/l7tech/gateway/common/InvalidLicenseException
      // 26: dup
      // 27: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 2a: bipush 3
      // 2b: aaload
      // 2c: invokespecial com/l7tech/gateway/common/InvalidLicenseException.<init> (Ljava/lang/String;)V
      // 2f: athrow
      // 30: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 33: athrow
      // 34: return
      // try (0 -> 6): 7 com/l7tech/gateway/common/InvalidLicenseException
      // try (2 -> 13): 14 com/l7tech/gateway/common/InvalidLicenseException
      // try (9 -> 23): 23 com/l7tech/gateway/common/InvalidLicenseException
   }

   public static String parseWildcardStringElement(Document param0, String param1) throws TooManyChildElementsException {
      // $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: invokeinterface org/w3c/dom/Document.getDocumentElement ()Lorg/w3c/dom/Element; 1
      // 06: astore 2
      // 07: aload 2
      // 08: aload 2
      // 09: invokeinterface org/w3c/dom/Element.getNamespaceURI ()Ljava/lang/String; 1
      // 0e: aload 1
      // 0f: invokestatic com/l7tech/util/DomUtils.findOnlyOneChildElementByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 12: astore 3
      // 13: aload 3
      // 14: ifnonnull 1e
      // 17: ldc "*"
      // 19: areturn
      // 1a: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1d: athrow
      // 1e: aload 3
      // 1f: invokestatic com/l7tech/util/DomUtils.getTextValue (Lorg/w3c/dom/Element;)Ljava/lang/String;
      // 22: astore 4
      // 24: aload 4
      // 26: ifnull 39
      // 29: aload 4
      // 2b: invokevirtual java/lang/String.length ()I
      // 2e: bipush 1
      // 2f: if_icmpge 40
      // 32: goto 39
      // 35: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 38: athrow
      // 39: ldc "*"
      // 3b: areturn
      // 3c: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3f: athrow
      // 40: aload 4
      // 42: areturn
      // try (9 -> 13): 13 com/l7tech/util/TooManyChildElementsException
      // try (18 -> 24): 25 com/l7tech/util/TooManyChildElementsException
      // try (20 -> 29): 29 com/l7tech/util/TooManyChildElementsException
   }

   public static String parseWildcardStringAttribute(Document param0, String param1, String param2) throws TooManyChildElementsException {
      // $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: invokeinterface org/w3c/dom/Document.getDocumentElement ()Lorg/w3c/dom/Element; 1
      // 06: astore 3
      // 07: aload 3
      // 08: aload 3
      // 09: invokeinterface org/w3c/dom/Element.getNamespaceURI ()Ljava/lang/String; 1
      // 0e: aload 1
      // 0f: invokestatic com/l7tech/util/DomUtils.findOnlyOneChildElementByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 12: astore 4
      // 14: aload 4
      // 16: ifnonnull 20
      // 19: ldc "*"
      // 1b: areturn
      // 1c: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1f: athrow
      // 20: aload 4
      // 22: aload 2
      // 23: invokeinterface org/w3c/dom/Element.getAttribute (Ljava/lang/String;)Ljava/lang/String; 2
      // 28: astore 5
      // 2a: aload 5
      // 2c: ifnull 3f
      // 2f: aload 5
      // 31: invokevirtual java/lang/String.length ()I
      // 34: bipush 1
      // 35: if_icmpge 46
      // 38: goto 3f
      // 3b: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3e: athrow
      // 3f: ldc "*"
      // 41: areturn
      // 42: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 45: athrow
      // 46: aload 5
      // 48: areturn
      // try (9 -> 13): 13 com/l7tech/util/TooManyChildElementsException
      // try (19 -> 25): 26 com/l7tech/util/TooManyChildElementsException
      // try (21 -> 30): 30 com/l7tech/util/TooManyChildElementsException
   }

   public static String parseWildcardStringAttribute(Document param0, String param1, String param2, String param3) throws TooManyChildElementsException {
      // $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: invokeinterface org/w3c/dom/Document.getDocumentElement ()Lorg/w3c/dom/Element; 1
      // 06: astore 4
      // 08: aload 4
      // 0a: aload 4
      // 0c: invokeinterface org/w3c/dom/Element.getNamespaceURI ()Ljava/lang/String; 1
      // 11: aload 1
      // 12: invokestatic com/l7tech/util/DomUtils.findOnlyOneChildElementByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 15: astore 5
      // 17: aload 5
      // 19: ifnonnull 23
      // 1c: ldc "*"
      // 1e: areturn
      // 1f: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 22: athrow
      // 23: aload 5
      // 25: aload 4
      // 27: invokeinterface org/w3c/dom/Element.getNamespaceURI ()Ljava/lang/String; 1
      // 2c: aload 2
      // 2d: invokestatic com/l7tech/util/DomUtils.findOnlyOneChildElementByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 30: astore 6
      // 32: aload 6
      // 34: ifnonnull 3e
      // 37: ldc "*"
      // 39: areturn
      // 3a: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3d: athrow
      // 3e: aload 6
      // 40: aload 3
      // 41: invokeinterface org/w3c/dom/Element.getAttribute (Ljava/lang/String;)Ljava/lang/String; 2
      // 46: astore 7
      // 48: aload 7
      // 4a: ifnull 5d
      // 4d: aload 7
      // 4f: invokevirtual java/lang/String.length ()I
      // 52: bipush 1
      // 53: if_icmpge 64
      // 56: goto 5d
      // 59: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 5c: athrow
      // 5d: ldc "*"
      // 5f: areturn
      // 60: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 63: athrow
      // 64: aload 7
      // 66: areturn
      // try (9 -> 13): 13 com/l7tech/util/TooManyChildElementsException
      // try (21 -> 25): 25 com/l7tech/util/TooManyChildElementsException
      // try (31 -> 37): 38 com/l7tech/util/TooManyChildElementsException
      // try (33 -> 42): 42 com/l7tech/util/TooManyChildElementsException
   }

   public static Date parseDateElement(Document var0, String var1) throws ParseException, TooManyChildElementsException {
      Element var2 = var0.getDocumentElement();
      Element var3 = DomUtils.findOnlyOneChildElementByName(var2, var2.getNamespaceURI(), var1);

      try {
         if (var3 == null) {
            return null;
         }
      } catch (ParseException var4) {
         throw a(var4);
      }

      return new SimpleDateFormat(DateUtils.ISO8601_PATTERN).parse(DomUtils.getTextValue(var3));
   }

   public static X509Certificate getTrustedIssuer(@NotNull Document var0, @NotNull X509Certificate[] var1) throws TooManyChildElementsException, InvalidLicenseException {
      try {
         if (var0 == null) {
            a(0);
         }
      } catch (MarshalException var11) {
         throw a(var11);
      }

      try {
         if (var1 == null) {
            a(1);
         }
      } catch (MarshalException var22) {
         throw a(var22);
      }

      Element var10000 = var0.getDocumentElement();
      String[] var9 = a;
      Element var2 = DomUtils.findOnlyOneChildElementByName(var10000, DsigUtil.DIGSIG_URI, var9[87]);

      try {
         if (var2 == null) {
            return null;
         }
      } catch (MarshalException var21) {
         throw a(var21);
      }

      X509Certificate var3;
      try {
         Element var4 = DsigUtil.searchForKeyInfo(var2);

         try {
            if (var4 == null) {
               throw new SignatureException(a[75]);
            }
         } catch (MarshalException var15) {
            throw a(var15);
         }

         X509Certificate var5;
         try {
            var9 = a;
            List var7 = DomUtils.findChildElementsByName(var4, var9[47], var9[10]);
            X509Certificate var6;
            if (var7.size() > 0) {
               var6 = new SimpleSecurityTokenResolver(var1).lookupByKeyName(CertUtils.formatDN(((Element)var7.get(0)).getTextContent()));
            } else {
               var6 = (X509Certificate)DsigUtil.getCertificatesFromKeyInfo(var4).get(0);
            }

            try {
               if (var6 == null) {
                  throw new SignatureException(a[64]);
               }
            } catch (MarshalException var13) {
               throw a(var13);
            }

            var5 = var6;
         } catch (MarshalException | KeySelectorException var14) {
            throw new SignatureException(var14);
         }

         PublicKey var25 = var5.getPublicKey();

         try {
            if (var25 == null) {
               throw new SignatureException(a[94]);
            }
         } catch (MarshalException var16) {
            throw a(var16);
         }

         Builder var27 = new Builder(var2, var25);

         try {
            if (a[6].equalsIgnoreCase(var25.getAlgorithm())) {
               getRSASignatureProvider(JceProvider.getInstance(), var27);
            }
         } catch (MarshalException var17) {
            throw a(var17);
         }

         DsigValidity var8 = var27.build().verify();

         try {
            if (!var8.getCoreValidity()) {
               throw new SignatureException(var8.getInvalidSignatureMessage());
            }
         } catch (MarshalException var10) {
            throw a(var10);
         }

         try {
            if (!a(var2, var8)) {
               throw new SignatureException(a[54]);
            }
         } catch (MarshalException var18) {
            throw a(var18);
         }

         var3 = var5;
      } catch (CertificateEncodingException var19) {
         var9 = a;
         throw new InvalidLicenseException(var9[59], var19);
      } catch (SignatureException var20) {
         var9 = a;
         throw new InvalidLicenseException(var9[12], var20);
      }

      for (X509Certificate var28 : var1) {
         try {
            if (CertUtils.certsAreEqual(var28, var3)) {
               return var28;
            }
         } catch (MarshalException var12) {
            throw a(var12);
         }
      }

      throw new InvalidLicenseException(a[62]);
   }

   public static void getRSASignatureProvider(@NotNull JceProvider var0, @NotNull Builder var1) {
      try {
         if (var0 == null) {
            a(2);
         }
      } catch (NumberFormatException var4) {
         throw a(var4);
      }

      try {
         if (var1 == null) {
            a(3);
         }
      } catch (NumberFormatException var5) {
         throw a(var5);
      }

      Provider var2 = var0.getProviderFor(JceProvider.SERVICE_LICENSE_SIGNATURE_VERIFICATION);

      try {
         if (var2 != null) {
            var1.useSignatureProvider(var2);
         }
      } catch (NumberFormatException var3) {
         throw a(var3);
      }
   }

   public static String getGrantsAsEnglish(FeatureLicense param0) {
      // $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: new java/lang/StringBuffer
      // 003: dup
      // 004: invokespecial java/lang/StringBuffer.<init> ()V
      // 007: astore 1
      // 008: ldc "*"
      // 00a: aload 0
      // 00b: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getIp ()Ljava/lang/String;
      // 00e: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 011: istore 2
      // 012: ldc "*"
      // 014: aload 0
      // 015: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getHostname ()Ljava/lang/String;
      // 018: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 01b: istore 3
      // 01c: ldc "*"
      // 01e: aload 0
      // 01f: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getMajorVersion ()Ljava/lang/String;
      // 022: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 025: istore 4
      // 027: ldc "*"
      // 029: aload 0
      // 02a: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getMinorVersion ()Ljava/lang/String;
      // 02d: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 030: istore 5
      // 032: aload 1
      // 033: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 036: bipush 25
      // 038: aaload
      // 039: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 03c: pop
      // 03d: aload 1
      // 03e: iload 4
      // 040: ifeq 05c
      // 043: iload 5
      // 045: ifeq 05c
      // 048: goto 04f
      // 04b: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 04e: athrow
      // 04f: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 052: bipush 39
      // 054: aaload
      // 055: goto 05e
      // 058: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 05b: athrow
      // 05c: ldc ""
      // 05e: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 061: pop
      // 062: ldc "*"
      // 064: aload 0
      // 065: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getProductName ()Ljava/lang/String;
      // 068: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 06b: ifeq 080
      // 06e: aload 1
      // 06f: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 072: bipush 63
      // 074: aaload
      // 075: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 078: pop
      // 079: goto 0f5
      // 07c: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 07f: athrow
      // 080: aload 1
      // 081: aload 0
      // 082: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getProductName ()Ljava/lang/String;
      // 085: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 088: pop
      // 089: iload 4
      // 08b: iload 5
      // 08d: if_icmpne 0c1
      // 090: iload 4
      // 092: ifne 0f5
      // 095: goto 09c
      // 098: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 09b: athrow
      // 09c: aload 1
      // 09d: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 0a0: bipush 48
      // 0a2: aaload
      // 0a3: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 0a6: aload 0
      // 0a7: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getMajorVersion ()Ljava/lang/String;
      // 0aa: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 0ad: ldc "."
      // 0af: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 0b2: aload 0
      // 0b3: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getMinorVersion ()Ljava/lang/String;
      // 0b6: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 0b9: pop
      // 0ba: goto 0f5
      // 0bd: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0c0: athrow
      // 0c1: iload 5
      // 0c3: ifne 0df
      // 0c6: aload 1
      // 0c7: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 0ca: bipush 43
      // 0cc: aaload
      // 0cd: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 0d0: aload 0
      // 0d1: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getMinorVersion ()Ljava/lang/String;
      // 0d4: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 0d7: pop
      // 0d8: goto 0f5
      // 0db: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0de: athrow
      // 0df: aload 1
      // 0e0: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 0e3: astore 6
      // 0e5: aload 6
      // 0e7: bipush 21
      // 0e9: aaload
      // 0ea: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 0ed: aload 0
      // 0ee: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getMajorVersion ()Ljava/lang/String;
      // 0f1: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 0f4: pop
      // 0f5: iload 2
      // 0f6: ifne 111
      // 0f9: aload 1
      // 0fa: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 0fd: bipush 2
      // 0fe: aaload
      // 0ff: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 102: aload 0
      // 103: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getIp ()Ljava/lang/String;
      // 106: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 109: pop
      // 10a: goto 111
      // 10d: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 110: athrow
      // 111: iload 3
      // 112: ifne 150
      // 115: aload 1
      // 116: iload 2
      // 117: ifeq 12e
      // 11a: goto 121
      // 11d: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 120: athrow
      // 121: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 124: bipush 24
      // 126: aaload
      // 127: goto 138
      // 12a: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 12d: athrow
      // 12e: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 131: astore 6
      // 133: aload 6
      // 135: bipush 95
      // 137: aaload
      // 138: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 13b: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 13e: astore 6
      // 140: aload 6
      // 142: bipush 27
      // 144: aaload
      // 145: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 148: aload 0
      // 149: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getHostname ()Ljava/lang/String;
      // 14c: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 14f: pop
      // 150: aload 1
      // 151: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 154: bipush 49
      // 156: aaload
      // 157: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 15a: pop
      // 15b: aload 0
      // 15c: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getFeatureLabel ()Ljava/lang/String;
      // 15f: ifnull 172
      // 162: aload 1
      // 163: aload 0
      // 164: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getFeatureLabel ()Ljava/lang/String;
      // 167: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 16a: pop
      // 16b: goto 177
      // 16e: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 171: athrow
      // 172: aload 0
      // 173: aload 1
      // 174: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Lcom/l7tech/gateway/common/licensing/FeatureLicense;Ljava/lang/StringBuffer;)V
      // 177: aload 1
      // 178: invokevirtual java/lang/StringBuffer.toString ()Ljava/lang/String;
      // 17b: areturn
      // try (24 -> 35): 36 java/lang/NumberFormatException
      // try (33 -> 42): 42 java/lang/NumberFormatException
      // try (45 -> 59): 59 java/lang/NumberFormatException
      // try (61 -> 71): 72 java/lang/NumberFormatException
      // try (69 -> 89): 89 java/lang/NumberFormatException
      // try (91 -> 103): 103 java/lang/NumberFormatException
      // try (116 -> 127): 128 java/lang/NumberFormatException
      // try (130 -> 135): 136 java/lang/NumberFormatException
      // try (132 -> 142): 142 java/lang/NumberFormatException
      // try (160 -> 175): 175 java/lang/NumberFormatException
   }

   private static void a(FeatureLicense param0, StringBuffer param1) {
      // $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/gateway/common/licensing/FeatureLicense.getFeatureSets ()Ljava/util/Set;
      // 04: aload 0
      // 05: invokevirtual com/l7tech/gateway/common/licensing/FeatureLicense.getFeatureSets ()Ljava/util/Set;
      // 08: invokeinterface java/util/Set.size ()I 1
      // 0d: anewarray 423
      // 10: invokeinterface java/util/Set.toArray ([Ljava/lang/Object;)[Ljava/lang/Object; 2
      // 15: checkcast [Ljava/lang/String;
      // 18: astore 2
      // 19: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 1c: astore 7
      // 1e: aload 7
      // 20: bipush 76
      // 22: aaload
      // 23: astore 3
      // 24: aload 3
      // 25: invokevirtual java/lang/String.length ()I
      // 28: istore 4
      // 2a: bipush 0
      // 2b: istore 5
      // 2d: iload 5
      // 2f: aload 2
      // 30: arraylength
      // 31: if_icmpge fb
      // 34: aload 2
      // 35: iload 5
      // 37: aaload
      // 38: astore 6
      // 3a: iload 5
      // 3c: ifle 70
      // 3f: iload 5
      // 41: aload 2
      // 42: arraylength
      // 43: bipush 1
      // 44: isub
      // 45: if_icmpne 61
      // 48: goto 4f
      // 4b: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4e: athrow
      // 4f: aload 1
      // 50: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 53: bipush 32
      // 55: aaload
      // 56: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 59: pop
      // 5a: goto 70
      // 5d: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 60: athrow
      // 61: aload 1
      // 62: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 65: astore 7
      // 67: aload 7
      // 69: bipush 74
      // 6b: aaload
      // 6c: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // 6f: pop
      // 70: aload 6
      // 72: aload 3
      // 73: invokevirtual java/lang/String.startsWith (Ljava/lang/String;)Z
      // 76: ifeq ee
      // 79: aload 6
      // 7b: invokevirtual java/lang/String.length ()I
      // 7e: iload 4
      // 80: if_icmple ee
      // 83: goto 8a
      // 86: invokestatic com/l7tech/gateway/common/licensing/LicenseUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 89: athrow
      // 8a: aload 6
      // 8c: iload 4
      // 8e: invokevirtual java/lang/String.substring (I)Ljava/lang/String;
      // 91: astore 6
      // 93: aload 6
      // 95: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // 98: astore 7
      // 9a: aload 7
      // 9c: bipush 23
      // 9e: aaload
      // 9f: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // a2: ifeq af
      // a5: aload 7
      // a7: bipush 20
      // a9: aaload
      // aa: astore 6
      // ac: goto e4
      // af: aload 6
      // b1: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // b4: astore 7
      // b6: aload 7
      // b8: bipush 91
      // ba: aaload
      // bb: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // be: ifeq cb
      // c1: aload 7
      // c3: bipush 78
      // c5: aaload
      // c6: astore 6
      // c8: goto e4
      // cb: aload 6
      // cd: getstatic com/l7tech/gateway/common/licensing/LicenseUtils.a [Ljava/lang/String;
      // d0: astore 7
      // d2: aload 7
      // d4: bipush 11
      // d6: aaload
      // d7: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // da: ifeq e4
      // dd: aload 7
      // df: bipush 34
      // e1: aaload
      // e2: astore 6
      // e4: aload 1
      // e5: aload 6
      // e7: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // ea: pop
      // eb: goto f5
      // ee: aload 1
      // ef: aload 6
      // f1: invokevirtual java/lang/StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
      // f4: pop
      // f5: iinc 5 1
      // f8: goto 2d
      // fb: return
      // try (28 -> 36): 37 java/lang/NumberFormatException
      // try (30 -> 46): 46 java/lang/NumberFormatException
      // try (56 -> 64): 65 java/lang/NumberFormatException
   }

   private static boolean a(Element var0, DsigValidity var1) {
      int var2 = var1.getNumberOfReferences();

      for (int var3 = 0; var3 < var2; var3++) {
         String var4 = ((Reference)var1.getReferences().get(var3)).getURI();
         if (var4.charAt(0) == '#') {
            var4 = var4.substring(1);
         }

         try {
            if (var4.equals(var0.getOwnerDocument().getDocumentElement().getAttribute(a[88]))) {
               return true;
            }
         } catch (NumberFormatException var5) {
            throw a(var5);
         }
      }

      return false;
   }

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

   static {
      String[] var5 = new String[103];
      int var3 = 0;
      String var2 = "\rLdy\u0002wf8\u001eec\u001d2H\u0002QwB\u001a~dlNb~\u000e\u007fm8[q,H7{k\u001eljO7{b\u001bp,\u0002g{8\u001emc\u001b2j)\u001emy\u0003~\u0014\u0000W`i\u0001amlfN@O{f:_oe\u000b<\u0016`\u001ete\u001bz(8Vf,&B(-Zg~\na{l(\u0000W`i\u0001amlWp,\u0002{{?WmkO`m=Kj~\nv(%Pec\u001d\u007fi8WlbA\t-Jw~\u0006p}8[\u0019$Jw|U=' \twi\fz&/Qn#\u0003{k)Ppi\u0003\u001emB\n*[bx\u001a`m?[w\b W`i\u0001am)\u0007:[q\u007f\u0006}f\u0007\u0007[zB\u000e\u007fm\u0016\u001cQoe\fkA\"Jfk\u001ds|%Qm\\\u0000{f8!\u001fWdb\u000ef}>[#o\u0000gd(\u001emc\u001b2j)\u001eum\u0003{l-JfhA\b)Kom\u001bwp8\u0019\u0019Pbn\u0003w(8Q#~\nsll{V@.2|)Fw\"%\u0000W`i\u0001amlwg,\u0006a(!Wp\u007f\u0006|olQq,\u0001}faPva\n`a/\u0010\u000b([po\u001d{x8Wlb\t\u001fWdb\u000ef}>[\u0004$Qpx\u0004$Qpx\f\r]`i\u0003wz-Jjc\u0001\u000flSbf\u0000`(:[q\u007f\u0006}fl\u001b\u0000W`i\u0001amlwg,\u0006a(\"Qm!\u001f}{%Jjz\n<\u0005\r]`i\u0003\u0006`\u001ete\u001bz\u0007\u0019Mf,\u0000t(\n*[bx\u001a`m?[w\u000flJkiOzg?J#b\u000e\u007fml!\u001fWdb\u000ef}>[#o\u0000gd(\u001emc\u001b2j)\u001eum\u0003{l-JfhA$\u000fQv`\u000b2f#J#|\u000e`{)\u001eoe\fwf?[#i\u0017ba>G#h\u000efmb\f/Qmx\u000eq|\tSbe\u0003\u0007.Kj`\u000bwz\u0005l_mhO\u0011\u0000W`i\u0001amlWp,\n\u007fx8G-\u0018\u001cQoe\fk(\u0005Pwi\b`i8WlbOBg%Pw\u0005!_ic\u001d\u0004\"_ni\u0019\u0019Pbn\u0003w(8Q#~\nsll{V@.2|)Fw\"\b)Kom\u001bwp8\u000f-Pz,\u0019wz?WlbO}nlA\u0018Vf,\u0003{k)PpiOaa+Pf~O{{lPlxO`m/Qdb\u0006hm(\u001eb\u007fOs(8Lv\u007f\u001bwllRjo\n|{)\u001ej\u007f\u001cgm>\u0010\u0014\u0000W`i\u0001amlfN@O{f:_oe\u000b<\f*[bx\u001a`m\u0000_ai\u0003\u000flSjb\u0000`(:[q\u007f\u0006}fl\u0007-Zg~\na{\u0004\"_ni\u0003(Q`\"$Jw|U=';It\"\u0018!&#Ld#]\"8|\u001135@je Zpe\b1\tlHf~\u001c{g\"\u001e\u000blXfm\u001bgz%Pd,\u0011 W`i\u0001am\rJw~\u0006p}8[p\u0005:_oe\u000b#\u000fQv`\u000b2f#J#|\u000e`{)\u001eoe\fwf?[#\u007f\u001bsz8\u001egm\u001bw&C\u0000W`i\u0001amlZlo\u001a\u007fm\"J#i\u0003we)Pw,\u0001}|lWm,\u0001se)Msm\fw($Jw|U=' \twi\fz&/Qn#\u0003{k)Ppi6\u0018Vj\u007fOaa+Pbx\u001a`mlZjhO|g8\u001e`c\u0019wzlJkiO`g#J#c\t2|$[#h\u0000q}![mxA\f/Qmx\u000eq|\tSbe\u0003\u0002%N%\u0000W`i\u0001amlwg,\u0006a(!Wp\u007f\u0006|olQq,\u0001}faPva\n`a/\u0010\u0007)Fse\u001dw{,\u0019Pbn\u0003w(8Q#i\u0001qg([#x\u001dg{8[g,\u0006a{9[q,\fwz8Wee\fs|)\u0010\u0007 W`i\u0001am\u0005!Wmc\u001dA\u0018Vf,\u0003{k)PpiOaa+Pf~O{{lPlxO`m/Qdb\u0006hm(\u001eb\u007fOs(8Lv\u007f\u001bwllRjo\n|{)\u001ej\u007f\u001cgm>\u0010%-Pz,\u001f`g(K`xOf`-J#m\fqm<Jp,\u001bza?\u001eoe\fwf?[\u001b\u000fQv`\u000b2f#J#j\u0006|ll]f~\u001b{n%]bx\n<\u0019$Jw|U=' \twi\fz&/Qn#\u0003{k)Ppi\u0002\u0005Z\u0007-Zg~\na{\u0007 W`i\u0001am#\u000fQv`\u000b2f#J#|\u000e`{)\u001eoe\fwf?[#\u007f\u001bsz8\u001egm\u001bw&,\u0019Pbn\u0003w(8Q#i\u0001qg([#x\u001dg{8[g,\u0006a{9[q,\fwz8Wee\fs|)\u0010\u000e8Lv\u007f\u001bwl\u0005Mpy\n`{(\u0000W`i\u0001amlWp,\u0002{{?WmkO`m=Kj~\nv(%Pec\u001d\u007fi8WlbA#\u0000W`i\u0001amlRlo\u000e~(\"_niO{{lPlxO0d%]fb\u001cw*\u0002`\u001e\u001d\u0002Q#G\nkA\"Xl,\t}}\"Z#e\u00012{%Ymm\u001bgz)\f?[w6?`g*WoiU0/Qn#\u0003%|)]k#\bs|)Ibu@qg!Slb@~a/[m\u007f\u0006|ocrjo\n|{)kwe\u0003a\u0007\u0014sO,&B[\u0005!_ic\u001d\u0007<Llh\u001aq|\u0010+[wX\u001dg{8[gE\u001ca})L\u0002%N\u000b([po\u001d{x8Wlb\u0005:_oe\u000b\u0011\u0000W`i\u0001amlWp,\n\u007fx8G-\u0017+[w^<S[%Ymm\u001bgz)nqc\u0019{l)L\t\u001fWdb\u000ef}>[\u0002\u0005Z\u0007<Llh\u001aq|\u0005!Wmc\u001d\u0003\u0005nP\f*[bx\u001a`m\u0000_ai\u0003\b W`i\u0001am)\u001a\u0019Pbn\u0003w(8Q#j\u0006|llMjk\u0001{f+\u001ehi\u0016\u0004l_mh\u0007)Fse\u001dw{\u0007:[q\u007f\u0006}f$\u000fQv`\u000b2f#J#|\u000e`{)\u001eoe\fwf?[#i\u0017ba>G#h\u000efmb\b<Llz\u0006vm>\u001b\u0000W`i\u0001amlwg,\u0006a(\"Qm!\u001f}{%Jjz\n<";
      int var4 = "\rLdy\u0002wf8\u001eec\u001d2H\u0002QwB\u001a~dlNb~\u000e\u007fm8[q,H7{k\u001eljO7{b\u001bp,\u0002g{8\u001emc\u001b2j)\u001emy\u0003~\u0014\u0000W`i\u0001amlfN@O{f:_oe\u000b<\u0016`\u001ete\u001bz(8Vf,&B(-Zg~\na{l(\u0000W`i\u0001amlWp,\u0002{{?WmkO`m=Kj~\nv(%Pec\u001d\u007fi8WlbA\t-Jw~\u0006p}8[\u0019$Jw|U=' \twi\fz&/Qn#\u0003{k)Ppi\u0003\u001emB\n*[bx\u001a`m?[w\b W`i\u0001am)\u0007:[q\u007f\u0006}f\u0007\u0007[zB\u000e\u007fm\u0016\u001cQoe\fkA\"Jfk\u001ds|%Qm\\\u0000{f8!\u001fWdb\u000ef}>[#o\u0000gd(\u001emc\u001b2j)\u001eum\u0003{l-JfhA\b)Kom\u001bwp8\u0019\u0019Pbn\u0003w(8Q#~\nsll{V@.2|)Fw\"%\u0000W`i\u0001amlwg,\u0006a(!Wp\u007f\u0006|olQq,\u0001}faPva\n`a/\u0010\u000b([po\u001d{x8Wlb\t\u001fWdb\u000ef}>[\u0004$Qpx\u0004$Qpx\f\r]`i\u0003wz-Jjc\u0001\u000flSbf\u0000`(:[q\u007f\u0006}fl\u001b\u0000W`i\u0001amlwg,\u0006a(\"Qm!\u001f}{%Jjz\n<\u0005\r]`i\u0003\u0006`\u001ete\u001bz\u0007\u0019Mf,\u0000t(\n*[bx\u001a`m?[w\u000flJkiOzg?J#b\u000e\u007fml!\u001fWdb\u000ef}>[#o\u0000gd(\u001emc\u001b2j)\u001eum\u0003{l-JfhA$\u000fQv`\u000b2f#J#|\u000e`{)\u001eoe\fwf?[#i\u0017ba>G#h\u000efmb\f/Qmx\u000eq|\tSbe\u0003\u0007.Kj`\u000bwz\u0005l_mhO\u0011\u0000W`i\u0001amlWp,\n\u007fx8G-\u0018\u001cQoe\fk(\u0005Pwi\b`i8WlbOBg%Pw\u0005!_ic\u001d\u0004\"_ni\u0019\u0019Pbn\u0003w(8Q#~\nsll{V@.2|)Fw\"\b)Kom\u001bwp8\u000f-Pz,\u0019wz?WlbO}nlA\u0018Vf,\u0003{k)PpiOaa+Pf~O{{lPlxO`m/Qdb\u0006hm(\u001eb\u007fOs(8Lv\u007f\u001bwllRjo\n|{)\u001ej\u007f\u001cgm>\u0010\u0014\u0000W`i\u0001amlfN@O{f:_oe\u000b<\f*[bx\u001a`m\u0000_ai\u0003\u000flSjb\u0000`(:[q\u007f\u0006}fl\u0007-Zg~\na{\u0004\"_ni\u0003(Q`\"$Jw|U=';It\"\u0018!&#Ld#]\"8|\u001135@je Zpe\b1\tlHf~\u001c{g\"\u001e\u000blXfm\u001bgz%Pd,\u0011 W`i\u0001am\rJw~\u0006p}8[p\u0005:_oe\u000b#\u000fQv`\u000b2f#J#|\u000e`{)\u001eoe\fwf?[#\u007f\u001bsz8\u001egm\u001bw&C\u0000W`i\u0001amlZlo\u001a\u007fm\"J#i\u0003we)Pw,\u0001}|lWm,\u0001se)Msm\fw($Jw|U=' \twi\fz&/Qn#\u0003{k)Ppi6\u0018Vj\u007fOaa+Pbx\u001a`mlZjhO|g8\u001e`c\u0019wzlJkiO`g#J#c\t2|$[#h\u0000q}![mxA\f/Qmx\u000eq|\tSbe\u0003\u0002%N%\u0000W`i\u0001amlwg,\u0006a(!Wp\u007f\u0006|olQq,\u0001}faPva\n`a/\u0010\u0007)Fse\u001dw{,\u0019Pbn\u0003w(8Q#i\u0001qg([#x\u001dg{8[g,\u0006a{9[q,\fwz8Wee\fs|)\u0010\u0007 W`i\u0001am\u0005!Wmc\u001dA\u0018Vf,\u0003{k)PpiOaa+Pf~O{{lPlxO`m/Qdb\u0006hm(\u001eb\u007fOs(8Lv\u007f\u001bwllRjo\n|{)\u001ej\u007f\u001cgm>\u0010%-Pz,\u001f`g(K`xOf`-J#m\fqm<Jp,\u001bza?\u001eoe\fwf?[\u001b\u000fQv`\u000b2f#J#j\u0006|ll]f~\u001b{n%]bx\n<\u0019$Jw|U=' \twi\fz&/Qn#\u0003{k)Ppi\u0002\u0005Z\u0007-Zg~\na{\u0007 W`i\u0001am#\u000fQv`\u000b2f#J#|\u000e`{)\u001eoe\fwf?[#\u007f\u001bsz8\u001egm\u001bw&,\u0019Pbn\u0003w(8Q#i\u0001qg([#x\u001dg{8[g,\u0006a{9[q,\fwz8Wee\fs|)\u0010\u000e8Lv\u007f\u001bwl\u0005Mpy\n`{(\u0000W`i\u0001amlWp,\u0002{{?WmkO`m=Kj~\nv(%Pec\u001d\u007fi8WlbA#\u0000W`i\u0001amlRlo\u000e~(\"_niO{{lPlxO0d%]fb\u001cw*\u0002`\u001e\u001d\u0002Q#G\nkA\"Xl,\t}}\"Z#e\u00012{%Ymm\u001bgz)\f?[w6?`g*WoiU0/Qn#\u0003%|)]k#\bs|)Ibu@qg!Slb@~a/[m\u007f\u0006|ocrjo\n|{)kwe\u0003a\u0007\u0014sO,&B[\u0005!_ic\u001d\u0007<Llh\u001aq|\u0010+[wX\u001dg{8[gE\u001ca})L\u0002%N\u000b([po\u001d{x8Wlb\u0005:_oe\u000b\u0011\u0000W`i\u0001amlWp,\n\u007fx8G-\u0017+[w^<S[%Ymm\u001bgz)nqc\u0019{l)L\t\u001fWdb\u000ef}>[\u0002\u0005Z\u0007<Llh\u001aq|\u0005!Wmc\u001d\u0003\u0005nP\f*[bx\u001a`m\u0000_ai\u0003\b W`i\u0001am)\u001a\u0019Pbn\u0003w(8Q#j\u0006|llMjk\u0001{f+\u001ehi\u0016\u0004l_mh\u0007)Fse\u001dw{\u0007:[q\u007f\u0006}f$\u000fQv`\u000b2f#J#|\u000e`{)\u001eoe\fwf?[#i\u0017ba>G#h\u000efmb\b<Llz\u0006vm>\u001b\u0000W`i\u0001amlwg,\u0006a(\"Qm!\u001f}{%Jjz\n<"
         .length();
      char var1 = '>';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 15;
         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;
                     String[] var9 = a;
                     EXPIRY_DATE_ELEMENT = a[96];
                     ATTRIBUTE_ELEMENT = var9[101];
                     EULA_PARSING_ERROR_MSG = var9[37];
                     LICENSE_XML_INVALID_ERROR_MSG = var9[1];
                     ID_ATTRIBUTE = var9[88];
                     FEATURE_LABEL_ELEMENT = var9[42];
                     HOST_ELEMENT = var9[18];
                     ISSUER_CERTIFICATE_ENCODING_ERROR_MSG = var9[70];
                     LICENSEE_ELEMENT = var9[93];
                     VERSION_ELEMENT = var9[97];
                     ADDRESS_ATTRIBUTE = var9[67];
                     START_DATE_PARSING_ERROR_MSG = var9[52];
                     CONTACT_EMAIL_ATTRIBUTE = var9[30];
                     LICENSE_EMPTY_ERROR_MSG = var9[85];
                     ID_FORMAT_ERROR_MSG = var9[57];
                     SIGNER_NOT_RECOGNIZED_ERROR_MSG = var9[40];
                     SIGNATURE_VALIDATION_ERROR_MSG = var9[28];
                     DOCUMENT_ELEMENT_LOCAL_NAME = var9[60];
                     FEATURESET_ELEMENT = var9[7];
                     EXPIRY_DATE_PARSING_ERROR_MSG = var9[29];
                     NAME_ATTRIBUTE = var9[45];
                     PRODUCT_ELEMENT = var9[89];
                     START_DATE_ELEMENT = var9[84];
                     ID_NON_POSITIVE_ERROR_MSG = var9[100];
                     LICENSE_ATTRIBUTES_ELEMENT = var9[102];
                     IP_ELEMENT = var9[82];
                     MISSING_REQUIRED_INFORMATION_ERROR_MSG = var9[3];
                     EULATEXT_ELEMENT = var9[38];
                     LICENSE_NAMESPACE = var9[5];
                     MINOR_ATTRIBUTE = var9[61];
                     SIGNATURE_ELEMENT = var9[17];
                     DESCRIPTION_ELEMENT = var9[16];
                     MAJOR_ATTRIBUTE = var9[79];
                     return;
                  }

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

                  var2 = "=Zgn\u0016`m(K\u00110Gpy\u0011q}\u001dZgn\u0016`m(K`";
                  var4 = "=Zgn\u0016`m(K\u00110Gpy\u0011q}\u001dZgn\u0016`m(K`".length();
                  var1 = '\t';
                  var7 = -1;
            }

            var10000 = 31;
            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] ^ 7);
      }

      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 -> 49;
            case 2 -> 12;
            case 3 -> 3;
            case 4 -> 96;
            case 5 -> 29;
            default -> 7;
         });
      }

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