package com.l7tech.security.prov;

import com.l7tech.security.cert.BouncyCastleCertUtils;
import com.l7tech.security.prov.bc.BouncyCastleRsaSignerEngine;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.JceUtil;
import com.l7tech.util.Option;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.PrivateKey;
import java.security.Provider;
import java.security.SecureRandom;
import java.security.Security;
import java.security.Signature;
import java.security.SignatureException;
import java.security.cert.X509Certificate;
import java.security.spec.AlgorithmParameterSpec;
import java.security.spec.ECGenParameterSpec;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import java.util.logging.Logger;
import javax.crypto.Cipher;
import javax.crypto.NoSuchPaddingException;
import org.jetbrains.annotations.NotNull;

public abstract class JceProvider {
   private static final Logger a;
   public static final String ENGINE_PROPERTY;
   public static final String ENGINE_OVERRIDE_PROPERTY;
   public static final String DISABLE_FALLBACK_PROPERTY;
   public static final String ENGINE_CACHING_PROPERTY;
   public static final boolean DEFAULT_ENGINE_CACHING_PROPERTY = true;
   public static final int DEFAULT_RSA_KEYSIZE;
   public static final String DEFAULT_CSR_SIG_ALG;
   public static final String BC_ENGINE;
   public static final String SUN_ENGINE;
   public static final String PKCS11_ENGINE;
   public static final String LUNA_ENGINE;
   public static final String NCIPHER_ENGINE;
   public static final String GENERIC_ENGINE;
   public static final String BCFIPS_ENGINE;
   public static final String DEFAULT_ENGINE;
   public static final String SERVICE_SECURERANDOM_DEFAULT;
   public static final String SERVICE_PBE_WITH_SHA1_AND_DESEDE;
   public static final String SERVICE_CERTIFICATE_GENERATOR;
   public static final String SERVICE_CSR_SIGNING;
   public static final String SERVICE_SIGNATURE_RSA_PRIVATE_KEY;
   public static final String SERVICE_LICENSE_SIGNATURE_VERIFICATION;
   public static final String SERVICE_SIGNATURE_ECDSA;
   public static final String SERVICE_KEYSTORE_PKCS12;
   public static final String SERVICE_TLS10;
   public static final String SERVICE_TLS12;
   public static final String SERVICE_TLS13;
   public static final String SERVICE_DIFFIE_HELLMAN_SOFTWARE;
   public static final String SERVICE_KEY_PAIR_GENERATOR_RSA;
   public static final String SERVICE_CIPHER_RSA_NONE_PKCS1PADDING;
   public static final String SERVICE_CIPHER_RSA_NONE_OAEPPADDING;
   public static final String SERVICE_SIGNATURE_RSASSAPSS_SHA256;
   public static final String SERVICE_SIGNATURE_RSASSAPSS_SHA384;
   public static final String SERVICE_SIGNATURE_RSASSAPSS_SHA512;
   private static final String b;
   private static final Map<String, String> c;
   private static final Map<String, String> d;
   private final AtomicReference<SecureRandom> e = new AtomicReference<>();
   private static final String[] m;

   static String a(String 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:
      // 00: aload 0
      // 01: ifnull 16
      // 04: aload 0
      // 05: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 08: invokevirtual java/lang/String.length ()I
      // 0b: bipush 1
      // 0c: if_icmpge 21
      // 0f: goto 16
      // 12: invokestatic com/l7tech/security/prov/JceProvider.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 15: athrow
      // 16: getstatic com/l7tech/security/prov/JceProvider.m [Ljava/lang/String;
      // 19: bipush 25
      // 1b: aaload
      // 1c: areturn
      // 1d: invokestatic com/l7tech/security/prov/JceProvider.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 20: athrow
      // 21: getstatic com/l7tech/security/prov/JceProvider.c Ljava/util/Map;
      // 24: aload 0
      // 25: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 2a: checkcast java/lang/String
      // 2d: astore 1
      // 2e: aload 1
      // 2f: ifnonnull 34
      // 32: aload 0
      // 33: astore 1
      // 34: aload 1
      // 35: areturn
      // try (0 -> 7): 8 java/lang/RuntimeException
      // try (2 -> 14): 14 java/lang/RuntimeException
   }

   public static void init() {
      getInstance();
   }

   public static String getEngineClass() {
      return getInstance().getClass().getName();
   }

   public static JceProvider getInstance() {
      boolean var0 = ConfigFactory.getBooleanProperty(m[57], true);

      try {
         if (var0) {
            return com.l7tech.security.prov.a.d();
         }
      } catch (RuntimeException var1) {
         throw a(var1);
      }

      return com.l7tech.security.prov.a.b();
   }

   public abstract String getDisplayName();

   public boolean isFips140ModeEnabled() {
      return false;
   }

   public RsaSignerEngine createRsaSignerEngine(PrivateKey var1, X509Certificate[] var2) {
      return new BouncyCastleRsaSignerEngine(var1, var2[0], this.getProviderFor(m[41]));
   }

   public KeyPair generateRsaKeyPair() {
      return this.generateRsaKeyPair(DEFAULT_RSA_KEYSIZE);
   }

   public KeyPair generateRsaKeyPair(int var1) {
      try {
         String[] var3 = m;
         KeyPairGenerator var2 = this.getKeyPairGenerator(var3[52]);
         var2.initialize(var1);
         return var2.generateKeyPair();
      } catch (NoSuchAlgorithmException var4) {
         throw new RuntimeException(m[12] + var4.getMessage(), var4);
      }
   }

   public KeyPair generateEcKeyPair(String var1, SecureRandom var2) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException {
      try {
         return this.tryGenerateEcKeyPair(var1, var2);
      } catch (InvalidAlgorithmParameterException var9) {
         for (String var6 : JceUtil.getCurveNameSynonyms(var1, false)) {
            try {
               return this.tryGenerateEcKeyPair(var6, var2);
            } catch (InvalidAlgorithmParameterException var8) {
            }
         }

         throw var9;
      }
   }

   protected KeyPair tryGenerateEcKeyPair(String var1, SecureRandom var2) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException {
      String[] var5 = m;
      KeyPairGenerator var3 = getKeyPairGenerator(var5[23], this.getProviderFor(var5[38]));
      ECGenParameterSpec var4 = new ECGenParameterSpec(var1);

      try {
         if (var2 != null) {
            var3.initialize(var4, var2);
            return var3.generateKeyPair();
         }
      } catch (NoSuchAlgorithmException var6) {
         throw a(var6);
      }

      var3.initialize(var4);
      return var3.generateKeyPair();
   }

   public CertificateRequest makeCsr(String var1, KeyPair var2) throws SignatureException, InvalidKeyException {
      return BouncyCastleCertUtils.makeCertificateRequest(var1, var2, this.getProviderFor(m[49]));
   }

   public Cipher getRsaNoPaddingCipher() throws NoSuchProviderException, NoSuchAlgorithmException, NoSuchPaddingException {
      return getCipher(this.getRsaNoPaddingCipherName(), this.getProviderFor(m[67]));
   }

   public String getRsaNoPaddingCipherName() {
      return m[21];
   }

   public Cipher getRsaOaepPaddingCipher() throws NoSuchProviderException, NoSuchAlgorithmException, NoSuchPaddingException {
      return getCipher(this.getRsaOaepPaddingCipherName(), this.getProviderFor(m[47] + this.getRsaOaepPaddingCipherName()));
   }

   protected String getRsaOaepPaddingCipherName() {
      return m[44];
   }

   public Cipher getRsaPkcs1PaddingCipher() throws NoSuchProviderException, NoSuchAlgorithmException, NoSuchPaddingException {
      return getCipher(this.getRsaPkcs1PaddingCipherName(), this.getProviderFor(m[60] + this.getRsaOaepPaddingCipherName()));
   }

   protected String getRsaPkcs1PaddingCipherName() {
      return m[56];
   }

   public GcmCipher getAesGcmCipherWrapper() throws NoSuchProviderException, NoSuchAlgorithmException, NoSuchPaddingException {
      return new DefaultGcmCipher(this.getAesGcmCipher());
   }

   public Cipher getAesGcmCipher() throws NoSuchProviderException, NoSuchAlgorithmException, NoSuchPaddingException {
      return getCipher(this.getAesGcmCipherName(), this.getProviderFor(m[55]));
   }

   public String getAesGcmCipherName() {
      return m[58];
   }

   public AlgorithmParameterSpec generateAesGcmParameterSpec(int var1, @NotNull byte[] var2) throws InvalidAlgorithmParameterException, NoSuchAlgorithmException {
      try {
         if (var2 == null) {
            a(0);
         }
      } catch (Exception var6) {
         throw a(var6);
      }

      try {
         String[] var4 = m;
         return (AlgorithmParameterSpec)Class.forName(var4[0]).getConstructor(int.class, byte[].class).newInstance(var1 * 8, var2);
      } catch (Exception var5) {
         throw new NoSuchAlgorithmException(m[11]);
      }
   }

   public MessageDigest getMessageDigest(String var1) throws NoSuchAlgorithmException {
      return getMessageDigest(var1, this.getProviderFor(m[53] + var1));
   }

   public Signature getSignature(String var1) throws NoSuchAlgorithmException {
      return getSignature(var1, this.getProviderFor(m[2] + var1));
   }

   public KeyPairGenerator getKeyPairGenerator(String var1) throws NoSuchAlgorithmException {
      return getKeyPairGenerator(var1, this.getProviderFor(m[29] + var1));
   }

   public KeyFactory getKeyFactory(String var1) throws NoSuchAlgorithmException {
      return getKeyFactory(var1, this.getProviderFor(m[4] + var1));
   }

   public KeyStore getKeyStore(String var1) throws KeyStoreException {
      return a(var1, this.getProviderFor(m[1] + var1));
   }

   public SecureRandom getSecureRandom() {
      SecureRandom var1 = this.e.get();
      if (var1 == null) {
         this.e.compareAndSet(null, this.newSecureRandom());
         var1 = this.e.get();
      }

      try {
         if (var1 != null) {
            return var1;
         }
      } catch (RuntimeException var2) {
         throw a(var2);
      }

      return this.newSecureRandom();
   }

   public SecureRandom newSecureRandom() {
      return new SecureRandom();
   }

   public Provider getBlockCipherProvider() {
      return this.getProviderFor(m[30]);
   }

   public Provider getProviderFor(String var1) {
      try {
         return m[10].equalsIgnoreCase(var1) ? JsseProviderSupplier.getProvider() : null;
      } catch (RuntimeException var2) {
         throw a(var2);
      }
   }

   public Provider getPreferredProvider(String var1) {
      Provider var2 = this.getProviderFor(var1);

      try {
         if (var2 != null) {
            return var2;
         }
      } catch (RuntimeException var3) {
         throw a(var3);
      }

      return (Provider)Option.first(Security.getProviders(var1)).toNull();
   }

   public static MessageDigest getMessageDigest(String var0, Provider var1) throws NoSuchAlgorithmException {
      try {
         if (var1 == null) {
            return MessageDigest.getInstance(var0);
         }
      } catch (NoSuchAlgorithmException var2) {
         throw a(var2);
      }

      return MessageDigest.getInstance(var0, var1);
   }

   public static Cipher getCipher(String var0, Provider var1) throws NoSuchAlgorithmException, NoSuchPaddingException {
      try {
         if (var1 == null) {
            return Cipher.getInstance(var0);
         }
      } catch (NoSuchAlgorithmException var2) {
         throw a(var2);
      }

      return Cipher.getInstance(var0, var1);
   }

   public static KeyFactory getKeyFactory(String var0, Provider var1) throws NoSuchAlgorithmException {
      try {
         if (var1 == null) {
            return KeyFactory.getInstance(var0);
         }
      } catch (NoSuchAlgorithmException var2) {
         throw a(var2);
      }

      return KeyFactory.getInstance(var0, var1);
   }

   public static Signature getSignature(String var0, Provider var1) throws NoSuchAlgorithmException {
      try {
         if (var1 == null) {
            return Signature.getInstance(var0);
         }
      } catch (NoSuchAlgorithmException var2) {
         throw a(var2);
      }

      return Signature.getInstance(var0, var1);
   }

   public static KeyPairGenerator getKeyPairGenerator(String var0, Provider var1) throws NoSuchAlgorithmException {
      try {
         if (var1 == null) {
            return KeyPairGenerator.getInstance(var0);
         }
      } catch (NoSuchAlgorithmException var2) {
         throw a(var2);
      }

      return KeyPairGenerator.getInstance(var0, var1);
   }

   private static KeyStore a(String var0, Provider var1) throws KeyStoreException {
      try {
         if (var1 == null) {
            return KeyStore.getInstance(var0);
         }
      } catch (KeyStoreException var2) {
         throw a(var2);
      }

      return KeyStore.getInstance(var0, var1);
   }

   public void setDebugOptions(Map<String, String> 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 1
      // 01: getstatic com/l7tech/security/prov/JceProvider.m [Ljava/lang/String;
      // 04: astore 3
      // 05: aload 3
      // 06: bipush 40
      // 08: aaload
      // 09: invokeinterface java/util/Map.containsKey (Ljava/lang/Object;)Z 2
      // 0e: ifeq 52
      // 11: aload 1
      // 12: aload 3
      // 13: bipush 8
      // 15: aaload
      // 16: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 1b: checkcast java/lang/String
      // 1e: astore 2
      // 1f: aload 2
      // 20: ifnull 38
      // 23: aload 2
      // 24: invokevirtual java/lang/String.toLowerCase ()Ljava/lang/String;
      // 27: aload 3
      // 28: bipush 6
      // 2a: aaload
      // 2b: invokevirtual java/lang/String.contains (Ljava/lang/CharSequence;)Z
      // 2e: ifeq 48
      // 31: goto 38
      // 34: invokestatic com/l7tech/security/prov/JceProvider.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 37: athrow
      // 38: getstatic com/l7tech/security/prov/JceProvider.m [Ljava/lang/String;
      // 3b: bipush 14
      // 3d: aaload
      // 3e: invokestatic com/l7tech/util/SyspropUtil.clearProperty (Ljava/lang/String;)V
      // 41: goto 52
      // 44: invokestatic com/l7tech/security/prov/JceProvider.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 47: athrow
      // 48: getstatic com/l7tech/security/prov/JceProvider.m [Ljava/lang/String;
      // 4b: bipush 66
      // 4d: aaload
      // 4e: aload 2
      // 4f: invokestatic com/l7tech/util/SyspropUtil.setProperty (Ljava/lang/String;Ljava/lang/String;)V
      // 52: return
      // try (15 -> 24): 25 java/lang/RuntimeException
      // try (17 -> 32): 32 java/lang/RuntimeException
   }

   static {
      String[] var5 = new String[68];
      int var3 = 0;
      String var2 = "a4\u001flh\u0006|y,\u0019y\u007f\u0006l{0\n#WkR[4\u001bl}Mkn':}uK\t@0\u0010^dGmn{\nX<\u000ecq\\jy0G\u0002b#\u000b@0\u0010KqKkd'\u0010#\u001bX<\u000ecq\\jy0G^Xi*:g\u001edd@MX\u0014F]C{\u0004c0\u0005}\u0012X\u0006%N\u007fFkn-\u001d#DdL}dG>\u0003x&\u0005$h:\u0004\"|\u001fkn6\u0001\"cM|~'\u0000yi\u0007oy:\u001f\"ZKz['\u0006{yLzy\u0012X\u0006%N\u007fFkn-\u001d#DdL}dG><J\u0010: WkR+;\u0006y0[j{%\u0006\u007fdM{+\"\u0001h~\bjx<\u0007j0\\wnu\nxbZze!InbQo\u007f:I}bGib1\f\u007f>E:IFuQOj<\u001bJuFzy4\u001dbb\u0006MX\u0014IlfIvg4\u000bau\u0013?g<\u0002h|Q?ju\u0004dcKpe3\u0000jeZ~\u007f<\u0006c*\b\u001cH<\u0019euZ1Y\u0006(\"^gQNz9FS{.[4\riyFx\u000fa4\u001flh\u0006qn!GiuJjl\u001bX<\u000ecq\\jy0G^Xi->c\u001edd@MX\u0014F]C{*h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#tMyj \u0005yB[~@0\u0010^yRz*X<\u000ecq\\jy0GO\u007f]qh,*lc\\sn\u0016\f\u007fdAyb6\byuoze0\u001bldGm\u000bX\u001d(<gAkc\u0007:L0h:\u0004#|\u001fkn6\u0001#sGrf:\u0007#cM|~'\u0000yi\u0006uh09\u007f\u007f^vo0\u001bH~Ove0'l}M5h:\u0004#|\u001fkn6\u0001#sGrf:\u0007#cM|~'\u0000yi\u0006uh09\u007f\u007f^vo0\u001b#sI|c<\u0007jUF~i9\fi\u0012Y\u0006(\"^gQNz'b@I{o<\u0007j,h:\u0004#|\u001fkn6\u0001#sGrf:\u0007#cM|~'\u0000yi\u0006uh09\u007f\u007f^vo0\u001bH~Ove0\u0002N\u0016)h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#tMyj \u0005yS[mX<\u000eL|O=h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#tMyj \u0005y`Zp}{-hvIjg!#nuxmd#\u0000iuZZe2\u0000cu\u0014@0\u0010]qAmL0\u0007hbIkd'G_Ci=h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#tMyj \u0005y`Zp}{-hvIjg!#nuxmd#\u0000iuZZe2\u0000cu X<\u000ecq\\jy0GC_fZ|<\u001deB{^%%\u001bdfIkn\u001e\ft\u0011@0\u0010]qAmL0\u0007hbIkd'G\nH<\u0019euZ1J\u0010:7h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#`C|xdX#@C|xdXGsMOy:\u001fdtMmN;\u000ed~M3h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#|]qj{%x~IUh09\u007f\u007f^vo0\u001bH~Ove0Ah:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#rKyb%\u001a#RGje6\u0010Nq[kg0/d`[Uh09\u007f\u007f^vo0\u001bH~Ove09h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#rK1I:\u001ccsQ\\j&\u001daub|n\u0005\u001bbfA{n',cwAqn\u0017X<\u000ecq\\jy0GC_fZ|<\u001deUk[X\u0014\u001bl0\u0007hbIkn\u0014\f~WKr[4\u001bl}Mkn':}uK9h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#wMqn'\u0000n>oze0\u001bdsb|n\u0005\u001bbfA{n',cwAqn\u0013@0\u0010]qAmL0\u0007hbIkd'GHS\u001bH<\u0019euZ1[\u0017,Zy\\wX\u001d(<QF{O\u0010:htM\u0003x&\u0005*X<\u000ecq\\jy0GO\u007f]qh,*lc\\sn\u0016\f\u007fdAyb6\byuoze0\u001bldGm&@0\u0010]qAmL0\u0007hbIkd'GIyNyb0!h|Drj;:bv\\hj'\f\u0014X0\nxbMMj;\rb}\u0006[N\u0013(X\\|\u0014Y\u0006(\"^gQNz&LUxOj1\rd~O>J'\u000ex}Mq\u007fu\u000fbb\b_E:\u001dCeDs+%\b\u007fqEz\u007f0\u001b-7\rl,u\u0006k0\rl%p\u001a-}]l\u007fu\u0007bd\b}nu\u0007x|D\u000f@0\u0010^dGmn{9FS{.9\u0007H<\u0019euZ11h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#c]q%\u0006\u001ccZKz['\u0006{yLzy\u0010\u0007jyFz\u001fX<\u000ecq\\jy0GO\u007f]qh,*lc\\sn\u0016\u001a\u007fCAxe0\u001b9h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#~Kv{=\f\u007f>f|b%\u0001hbb|n\u0005\u001bbfA{n',cwAqn\u0010X\u0006%N\u007fFkn-\u001d#DdL}d\u0003Y\u0006(\u000eF0\u001a~qOzO<\u000ehc\\1\u001bH<\u0019euZ1Y\u0006(\"^gQNz&LUxOj1\rd~O\nH<\u0019euZ1J\u0010:\u0015Y\u0006(\"^gQNz9FS{.[4\riyFx5h:\u0004#|\u001fkn6\u0001#sGrf:\u0007#cM|~'\u0000yi\u0006uh09\u007f\u007f^vo0\u001b#sI|c<\u0007jUF~i9\fi\u0011J\u0010:\"WkR$\u001b\u0006]qL{b;\u000eAh:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#rKyb%\u001a#RGje6\u0010Nq[kg0/d`[Uh09\u007f\u007f^vo0\u001bH~Ove0\u0007H<\u0019euZ1\u001fX<\u000ecq\\jy0GO\u007f]qh,*lc\\sn\u0016\u001a\u007fCAxe0\u001b\u0012X\u0006%N\u007fFkn-\u001d#DdL}dG?5h:\u0004#|\u001fkn6\u0001#sGrf:\u0007#cM|~'\u0000yi\u0006{b&\bo|MUh09\u007f\u007f^vo0\u001bKqDsi4\nf\u001eX<\u000ecq\\jy0G{uZvm<\nldApe{\u0005dsMqx0\u001bX<\u000ecq\\jy0G^Xi,3a\u001edd@MX\u0014F]C{";
      int var4 = "a4\u001flh\u0006|y,\u0019y\u007f\u0006l{0\n#WkR[4\u001bl}Mkn':}uK\t@0\u0010^dGmn{\nX<\u000ecq\\jy0G\u0002b#\u000b@0\u0010KqKkd'\u0010#\u001bX<\u000ecq\\jy0G^Xi*:g\u001edd@MX\u0014F]C{\u0004c0\u0005}\u0012X\u0006%N\u007fFkn-\u001d#DdL}dG>\u0003x&\u0005$h:\u0004\"|\u001fkn6\u0001\"cM|~'\u0000yi\u0007oy:\u001f\"ZKz['\u0006{yLzy\u0012X\u0006%N\u007fFkn-\u001d#DdL}dG><J\u0010: WkR+;\u0006y0[j{%\u0006\u007fdM{+\"\u0001h~\bjx<\u0007j0\\wnu\nxbZze!InbQo\u007f:I}bGib1\f\u007f>E:IFuQOj<\u001bJuFzy4\u001dbb\u0006MX\u0014IlfIvg4\u000bau\u0013?g<\u0002h|Q?ju\u0004dcKpe3\u0000jeZ~\u007f<\u0006c*\b\u001cH<\u0019euZ1Y\u0006(\"^gQNz9FS{.[4\riyFx\u000fa4\u001flh\u0006qn!GiuJjl\u001bX<\u000ecq\\jy0G^Xi->c\u001edd@MX\u0014F]C{*h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#tMyj \u0005yB[~@0\u0010^yRz*X<\u000ecq\\jy0GO\u007f]qh,*lc\\sn\u0016\f\u007fdAyb6\byuoze0\u001bldGm\u000bX\u001d(<gAkc\u0007:L0h:\u0004#|\u001fkn6\u0001#sGrf:\u0007#cM|~'\u0000yi\u0006uh09\u007f\u007f^vo0\u001bH~Ove0'l}M5h:\u0004#|\u001fkn6\u0001#sGrf:\u0007#cM|~'\u0000yi\u0006uh09\u007f\u007f^vo0\u001b#sI|c<\u0007jUF~i9\fi\u0012Y\u0006(\"^gQNz'b@I{o<\u0007j,h:\u0004#|\u001fkn6\u0001#sGrf:\u0007#cM|~'\u0000yi\u0006uh09\u007f\u007f^vo0\u001bH~Ove0\u0002N\u0016)h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#tMyj \u0005yS[mX<\u000eL|O=h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#tMyj \u0005y`Zp}{-hvIjg!#nuxmd#\u0000iuZZe2\u0000cu\u0014@0\u0010]qAmL0\u0007hbIkd'G_Ci=h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#tMyj \u0005y`Zp}{-hvIjg!#nuxmd#\u0000iuZZe2\u0000cu X<\u000ecq\\jy0GC_fZ|<\u001deB{^%%\u001bdfIkn\u001e\ft\u0011@0\u0010]qAmL0\u0007hbIkd'G\nH<\u0019euZ1J\u0010:7h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#`C|xdX#@C|xdXGsMOy:\u001fdtMmN;\u000ed~M3h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#|]qj{%x~IUh09\u007f\u007f^vo0\u001bH~Ove0Ah:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#rKyb%\u001a#RGje6\u0010Nq[kg0/d`[Uh09\u007f\u007f^vo0\u001bH~Ove09h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#rK1I:\u001ccsQ\\j&\u001daub|n\u0005\u001bbfA{n',cwAqn\u0017X<\u000ecq\\jy0GC_fZ|<\u001deUk[X\u0014\u001bl0\u0007hbIkn\u0014\f~WKr[4\u001bl}Mkn':}uK9h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#wMqn'\u0000n>oze0\u001bdsb|n\u0005\u001bbfA{n',cwAqn\u0013@0\u0010]qAmL0\u0007hbIkd'GHS\u001bH<\u0019euZ1[\u0017,Zy\\wX\u001d(<QF{O\u0010:htM\u0003x&\u0005*X<\u000ecq\\jy0GO\u007f]qh,*lc\\sn\u0016\f\u007fdAyb6\byuoze0\u001bldGm&@0\u0010]qAmL0\u0007hbIkd'GIyNyb0!h|Drj;:bv\\hj'\f\u0014X0\nxbMMj;\rb}\u0006[N\u0013(X\\|\u0014Y\u0006(\"^gQNz&LUxOj1\rd~O>J'\u000ex}Mq\u007fu\u000fbb\b_E:\u001dCeDs+%\b\u007fqEz\u007f0\u001b-7\rl,u\u0006k0\rl%p\u001a-}]l\u007fu\u0007bd\b}nu\u0007x|D\u000f@0\u0010^dGmn{9FS{.9\u0007H<\u0019euZ11h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#c]q%\u0006\u001ccZKz['\u0006{yLzy\u0010\u0007jyFz\u001fX<\u000ecq\\jy0GO\u007f]qh,*lc\\sn\u0016\u001a\u007fCAxe0\u001b9h:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#~Kv{=\f\u007f>f|b%\u0001hbb|n\u0005\u001bbfA{n',cwAqn\u0010X\u0006%N\u007fFkn-\u001d#DdL}d\u0003Y\u0006(\u000eF0\u001a~qOzO<\u000ehc\\1\u001bH<\u0019euZ1Y\u0006(\"^gQNz&LUxOj1\rd~O\nH<\u0019euZ1J\u0010:\u0015Y\u0006(\"^gQNz9FS{.[4\riyFx5h:\u0004#|\u001fkn6\u0001#sGrf:\u0007#cM|~'\u0000yi\u0006uh09\u007f\u007f^vo0\u001b#sI|c<\u0007jUF~i9\fi\u0011J\u0010:\"WkR$\u001b\u0006]qL{b;\u000eAh:\u0004#|\u001fkn6\u0001#cM|~'\u0000yi\u0006oy:\u001f#rKyb%\u001a#RGje6\u0010Nq[kg0/d`[Uh09\u007f\u007f^vo0\u001bH~Ove0\u0007H<\u0019euZ1\u001fX<\u000ecq\\jy0GO\u007f]qh,*lc\\sn\u0016\u001a\u007fCAxe0\u001b\u0012X\u0006%N\u007fFkn-\u001d#DdL}dG?5h:\u0004#|\u001fkn6\u0001#sGrf:\u0007#cM|~'\u0000yi\u0006{b&\bo|MUh09\u007f\u007f^vo0\u001bKqDsi4\nf\u001eX<\u000ecq\\jy0G{uZvm<\nldApe{\u0005dsMqx0\u001bX<\u000ecq\\jy0G^Xi,3a\u001edd@MX\u0014F]C{"
         .length();
      char var1 = '"';
      int var7 = -1;

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

         while (true) {
            String var9 = a(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     m = var5;
                     String[] var10 = m;
                     SERVICE_CIPHER_RSA_NONE_OAEPPADDING = m[54];
                     SERVICE_SIGNATURE_RSASSAPSS_SHA256 = var10[15];
                     SERVICE_TLS12 = var10[62];
                     BCFIPS_ENGINE = var10[33];
                     ENGINE_OVERRIDE_PROPERTY = var10[19];
                     LUNA_ENGINE = var10[32];
                     GENERIC_ENGINE = var10[37];
                     SERVICE_KEYSTORE_PKCS12 = var10[46];
                     BC_ENGINE = var10[34];
                     SERVICE_SECURERANDOM_DEFAULT = var10[43];
                     DEFAULT_ENGINE = var10[25];
                     SERVICE_CIPHER_RSA_NONE_PKCS1PADDING = var10[13];
                     SUN_ENGINE = var10[48];
                     SERVICE_LICENSE_SIGNATURE_VERIFICATION = var10[64];
                     ENGINE_CACHING_PROPERTY = var10[20];
                     SERVICE_DIFFIE_HELLMAN_SOFTWARE = var10[42];
                     SERVICE_CSR_SIGNING = var10[61];
                     DISABLE_FALLBACK_PROPERTY = var10[63];
                     SERVICE_SIGNATURE_RSASSAPSS_SHA512 = var10[5];
                     SERVICE_TLS10 = var10[51];
                     PKCS11_ENGINE = var10[31];
                     SERVICE_SIGNATURE_RSA_PRIVATE_KEY = var10[28];
                     SERVICE_TLS13 = var10[7];
                     SERVICE_SIGNATURE_RSASSAPSS_SHA384 = var10[65];
                     SERVICE_SIGNATURE_ECDSA = var10[35];
                     SERVICE_KEY_PAIR_GENERATOR_RSA = var10[26];
                     ENGINE_PROPERTY = var10[22];
                     NCIPHER_ENGINE = var10[50];
                     SERVICE_PBE_WITH_SHA1_AND_DESEDE = var10[39];
                     b = var10[66];
                     SERVICE_CERTIFICATE_GENERATOR = var10[17];
                     a = Logger.getLogger(JceProvider.class.getName());
                     String[] var8 = m;
                     DEFAULT_RSA_KEYSIZE = ConfigFactory.getIntProperty(var8[16], 2048);
                     DEFAULT_CSR_SIG_ALG = ConfigFactory.getProperty(var8[24], var8[18]);
                     c = Map.of(var8[59], var8[27]);
                     d = new HashMap<String, String>() {
                        static final long serialVersionUID = -2308499217674684791L;
                        private static final String[] a;

                        {
                           String[] var1x = a;
                           this.put(var1x[3], var1x[8]);
                           this.put(var1x[2], var1x[0]);
                           this.put(var1x[5], var1x[9]);
                           this.put(var1x[7], var1x[10]);
                           this.put(var1x[6], var1x[11]);
                           this.put(var1x[4], var1x[1]);
                        }

                        static {
                           String[] var5 = new String[12];
                           int var3 = 0;
                           String var2 = "_Y\f\u0016=s8YU\t\u0016\"!/ID\bL(j<NY\u0017\u00163'b~Y\u0014V2=\u000f]E\u0015T4\u000e/Yf\u0013W'-(YD$V6-\"Y=_Y\f\u0016=s8YU\t\u0016\"!/ID\bL(j<NY\u0017\u00165!*]C\rL!6#J\u0018%]7%9PB+[4\u0014>S@\b\\46\tRQ\bV4\u0002^U\u0007XS\u0007Y$(8\u0006^U\u0007Q!7\u0004PC\u000fY\u0007[S\u000f]#-/\u0007RU\bH9!>=_Y\f\u0016=s8YU\t\u0016\"!/ID\bL(j<NY\u0017\u00165!*]C\rL!6#J\u0018%]7%9PB+[4\u0014>S@\b\\46\tRQ\bV43_Y\f\u0016=s8YU\t\u0016\"!/ID\bL(j<NY\u0017\u0016=1\"]\u0018-M?%\u0006_S1J>2%XS\u0013}?#%RS";
                           int var4 = "_Y\f\u0016=s8YU\t\u0016\"!/ID\bL(j<NY\u0017\u00163'b~Y\u0014V2=\u000f]E\u0015T4\u000e/Yf\u0013W'-(YD$V6-\"Y=_Y\f\u0016=s8YU\t\u0016\"!/ID\bL(j<NY\u0017\u00165!*]C\rL!6#J\u0018%]7%9PB+[4\u0014>S@\b\\46\tRQ\bV4\u0002^U\u0007XS\u0007Y$(8\u0006^U\u0007Q!7\u0004PC\u000fY\u0007[S\u000f]#-/\u0007RU\bH9!>=_Y\f\u0016=s8YU\t\u0016\"!/ID\bL(j<NY\u0017\u00165!*]C\rL!6#J\u0018%]7%9PB+[4\u0014>S@\b\\46\tRQ\bV43_Y\f\u0016=s8YU\t\u0016\"!/ID\bL(j<NY\u0017\u0016=1\"]\u0018-M?%\u0006_S1J>2%XS\u0013}?#%RS"
                              .length();
                           char var1 = '9';
                           int var7 = -1;

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

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

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

                                       var2 = "\u0013\u0015@Zq?t\u0015\u0019EZnmc\u0005\bD\u0000d&p\u0002\u0015[Zski\u0000\u0012H\u00063Fc\u0019\nE\u0011oBc\u0015*_\u001bkad\u0015\bh\u001azan\u00159\u0013\u0015@Zq?t\u0015\u0019EZnmc\u0005\bD\u0000d&p\u0002\u0015[Zzmn\u0015\bD\u00173Oe\u001e\u001f_\u001d~Bc\u0015*_\u001bkad\u0015\bh\u001azan\u0015";
                                       var4 = "\u0013\u0015@Zq?t\u0015\u0019EZnmc\u0005\bD\u0000d&p\u0002\u0015[Zski\u0000\u0012H\u00063Fc\u0019\nE\u0011oBc\u0015*_\u001bkad\u0015\bh\u001azan\u00159\u0013\u0015@Zq?t\u0015\u0019EZnmc\u0005\bD\u0000d&p\u0002\u0015[Zzmn\u0015\bD\u00173Oe\u001e\u001f_\u001d~Bc\u0015*_\u001bkad\u0015\bh\u001azan\u0015"
                                          .length();
                                       var1 = '9';
                                       var7 = -1;
                                 }

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

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

                           return var10000x;
                        }

                        private static String a(int var0, char[] var1x) {
                           int var10003 = var1x.length;
                           int var10002x = var0;
                           char[] var10001x = var1x;
                           int var10000x = var10003;

                           for (int var2x = 0; var10000x > var2x; var2x++) {
                              var10001x[var2x] = (char)(var10001x[var2x] ^ var10002x ^ switch (var2x % 7) {
                                 case 0 -> 90;
                                 case 1 -> 80;
                                 case 2 -> 7;
                                 case 3 -> 94;
                                 case 4 -> 55;
                                 case 5 -> 34;
                                 default -> 42;
                              });
                           }

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

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

                  var2 = ")|W$ N9&i\u000f!=\u0002\"$\n\u0000tQ-=\u0012y\u0011N`";
                  var4 = ")|W$ N9&i\u000f!=\u0002\"$\n\u0000tQ-=\u0012y\u0011N`".length();
                  var1 = 15;
                  var7 = -1;
            }

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

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

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

      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 -> 16;
            case 1 -> 78;
            case 2 -> 114;
            case 3 -> 22;
            case 4 -> 11;
            case 5 -> 51;
            default -> 4;
         });
      }

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