package com.l7tech.server.identity.ldap;

import com.l7tech.identity.BadCredentialsException;
import com.l7tech.identity.ldap.LdapUrlBasedIdentityProviderConfig;
import com.l7tech.objectmodel.Goid;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import java.util.Collections;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Pattern;
import javax.naming.CompositeName;
import javax.naming.InvalidNameException;
import javax.naming.Name;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public final class LdapUtils {
   public static final Pattern LDAP_URL_QUERY_PATTERN;
   public static final boolean LDAP_USES_UNSYNC_NAMING;
   public static final boolean LDAP_PARSE_NAMES;
   public static final String LDAP_ENV_PREFIX;
   public static final Map<String, String> LDAP_ENV_OVERRIDES;
   public static final String LDAPS_SCHEME;
   public static final String ENV_PROP_LDAP_VERSION;
   public static final String ENV_PROP_LDAP_CONNECT_POOL;
   public static final String ENV_PROP_LDAP_CONNECT_TIMEOUT;
   public static final String ENV_PROP_LDAP_READ_TIMEOUT;
   public static final String ENV_PROP_LDAP_FACTORY_SOCKET;
   public static final String ENV_VALUE_INITIAL_CONTEXT_FACTORY;
   public static final String ENV_VALUE_LDAP_VERSION = "3";
   public static final String ENV_VALUE_REFERRAL;
   public static final String ENV_VALUE_SECURITY_PROTOCOL;
   private static final int a;
   private static final String b;
   static final String c;
   static final String d;
   static final String e;
   private static final Logger f;
   private static final String[] g;

   private LdapUtils() {
   }

   public static Name name(String var0) throws InvalidNameException {
      try {
         if (LDAP_PARSE_NAMES) {
            return new CompositeName(var0);
         }
      } catch (InvalidNameException var1) {
         throw a(var1);
      }

      return new CompositeName().add(var0);
   }

   static boolean a(Attribute param0, 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: ifnull 14
      // 04: ldc ""
      // 06: aload 1
      // 07: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0a: ifeq 1a
      // 0d: goto 14
      // 10: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 13: athrow
      // 14: bipush 1
      // 15: ireturn
      // 16: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 19: athrow
      // 1a: aload 0
      // 1b: ifnonnull 24
      // 1e: bipush 0
      // 1f: ireturn
      // 20: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 23: athrow
      // 24: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 27: bipush 17
      // 29: aaload
      // 2a: bipush 1
      // 2b: invokestatic com/l7tech/util/ConfigFactory.getBooleanProperty (Ljava/lang/String;Z)Z
      // 2e: istore 2
      // 2f: bipush 0
      // 30: istore 3
      // 31: iload 3
      // 32: aload 0
      // 33: invokeinterface javax/naming/directory/Attribute.size ()I 1
      // 38: if_icmpge 82
      // 3b: aload 0
      // 3c: iload 3
      // 3d: invokeinterface javax/naming/directory/Attribute.get (I)Ljava/lang/Object; 2
      // 42: astore 4
      // 44: aload 4
      // 46: ifnonnull 4c
      // 49: goto 7c
      // 4c: iload 2
      // 4d: ifeq 65
      // 50: aload 1
      // 51: aload 4
      // 53: invokevirtual java/lang/Object.toString ()Ljava/lang/String;
      // 56: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 59: ifeq 77
      // 5c: goto 63
      // 5f: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 62: athrow
      // 63: bipush 1
      // 64: ireturn
      // 65: aload 1
      // 66: aload 4
      // 68: invokevirtual java/lang/Object.toString ()Ljava/lang/String;
      // 6b: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 6e: ifeq 77
      // 71: bipush 1
      // 72: ireturn
      // 73: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 76: athrow
      // 77: goto 7c
      // 7a: astore 4
      // 7c: iinc 3 1
      // 7f: goto 31
      // 82: bipush 0
      // 83: ireturn
      // try (13 -> 17): 17 javax/naming/NamingException
      // try (2 -> 11): 11 javax/naming/NamingException
      // try (0 -> 6): 7 javax/naming/NamingException
      // try (31 -> 37): 60 javax/naming/NamingException
      // try (38 -> 45): 46 javax/naming/NamingException
      // try (38 -> 49): 60 javax/naming/NamingException
      // try (50 -> 56): 60 javax/naming/NamingException
      // try (50 -> 57): 57 java/lang/SecurityException
   }

   static Object a(Attributes param0, String param1) throws NamingException {
      // $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: aload 1
      // 02: invokeinterface javax/naming/directory/Attributes.get (Ljava/lang/String;)Ljavax/naming/directory/Attribute; 2
      // 07: astore 2
      // 08: aload 2
      // 09: ifnull 28
      // 0c: aload 2
      // 0d: invokeinterface javax/naming/directory/Attribute.size ()I 1
      // 12: ifle 28
      // 15: goto 1c
      // 18: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1b: athrow
      // 1c: aload 2
      // 1d: bipush 0
      // 1e: invokeinterface javax/naming/directory/Attribute.get (I)Ljava/lang/Object; 2
      // 23: areturn
      // 24: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 27: athrow
      // 28: aconst_null
      // 29: areturn
      // try (4 -> 9): 10 javax/naming/NamingException
      // try (6 -> 16): 16 javax/naming/NamingException
   }

   public static String filterEscape(String var0) {
      String var1 = var0;
      if (var0 != null) {
         StringBuilder var2 = new StringBuilder((int)(var0.length() * 1.3));

         for (char var6 : var0.toCharArray()) {
            label38: {
               label37: {
                  label36: {
                     label35: {
                        try {
                           switch (var6) {
                              case '\u0000':
                                 var2.append(g[56]);
                                 continue;
                              case '(':
                                 break label38;
                              case ')':
                                 break label37;
                              case '*':
                                 break label36;
                              case '\\':
                                 break label35;
                           }
                        } catch (SecurityException var8) {
                           throw a(var8);
                        }

                        var2.append(var6);
                        continue;
                     }

                     var2.append(g[6]);
                     continue;
                  }

                  String[] var7 = g;
                  var2.append(var7[32]);
                  continue;
               }

               String[] var9 = g;
               var2.append(var9[46]);
               continue;
            }

            String[] var10 = g;
            var2.append(var10[12]);
         }

         var1 = var2.toString();
      }

      return var1;
   }

   public static String filterMatchEscape(String var0) {
      String var1 = var0;
      if (var0 != null) {
         StringBuilder var2 = new StringBuilder((int)(var0.length() * 1.3));

         for (char var6 : var0.toCharArray()) {
            label34: {
               label33: {
                  label32: {
                     try {
                        switch (var6) {
                           case '\u0000':
                              var2.append(g[47]);
                              continue;
                           case '(':
                              break label34;
                           case ')':
                              break label33;
                           case '\\':
                              break label32;
                        }
                     } catch (SecurityException var8) {
                        throw a(var8);
                     }

                     var2.append(var6);
                     continue;
                  }

                  var2.append(g[18]);
                  continue;
               }

               String[] var7 = g;
               var2.append(var7[28]);
               continue;
            }

            String[] var9 = g;
            var2.append(var9[58]);
         }

         var1 = var2.toString();
      }

      return var1;
   }

   public static Properties newEnvironment() {
      try {
         if (LDAP_USES_UNSYNC_NAMING) {
            return new UnsynchronizedNamingProperties();
         }
      } catch (SecurityException var0) {
         throw a(var0);
      }

      return new Properties();
   }

   public static void lock(Hashtable var0) {
      if (var0 instanceof UnsynchronizedNamingProperties var1) {
         var1.lock();
      }
   }

   public static DirContext getLdapContext(String var0, String var1, String var2, long var3, long var5) throws NamingException {
      return getLdapContext(var0, true, null, null, var1, var2, var3, var5, null, true);
   }

   public static DirContext getLdapContext(
      String param0,
      boolean param1,
      @Nullable Goid param2,
      @Nullable String param3,
      String param4,
      String param5,
      long param6,
      long param8,
      @Nullable String param10,
      boolean param11
   ) throws NamingException {
      // $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: invokestatic java/lang/Thread.currentThread ()Ljava/lang/Thread;
      // 003: invokevirtual java/lang/Thread.getContextClassLoader ()Ljava/lang/ClassLoader;
      // 006: astore 12
      // 008: invokestatic java/lang/Thread.currentThread ()Ljava/lang/Thread;
      // 00b: invokestatic com/l7tech/server/identity/ldap/LdapSslCustomizerSupport.getSSLSocketFactoryClassLoader ()Ljava/lang/ClassLoader;
      // 00e: invokevirtual java/lang/Thread.setContextClassLoader (Ljava/lang/ClassLoader;)V
      // 011: new java/net/URI
      // 014: dup
      // 015: aload 0
      // 016: invokespecial java/net/URI.<init> (Ljava/lang/String;)V
      // 019: invokevirtual java/net/URI.getScheme ()Ljava/lang/String;
      // 01c: astore 13
      // 01e: invokestatic com/l7tech/server/identity/ldap/LdapUtils.newEnvironment ()Ljava/util/Properties;
      // 021: astore 14
      // 023: aload 14
      // 025: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 028: bipush 55
      // 02a: aaload
      // 02b: ldc "3"
      // 02d: invokevirtual java/util/Hashtable.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 030: pop
      // 031: aload 14
      // 033: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 036: bipush 7
      // 038: aaload
      // 039: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 03c: bipush 35
      // 03e: aaload
      // 03f: invokevirtual java/util/Hashtable.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 042: pop
      // 043: aload 14
      // 045: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 048: bipush 15
      // 04a: aaload
      // 04b: aload 0
      // 04c: invokevirtual java/util/Hashtable.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 04f: pop
      // 050: iload 11
      // 052: ifeq 06e
      // 055: aload 14
      // 057: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 05a: bipush 63
      // 05c: aaload
      // 05d: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 060: bipush 57
      // 062: aaload
      // 063: invokevirtual java/util/Hashtable.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 066: pop
      // 067: goto 06e
      // 06a: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 06d: athrow
      // 06e: aload 14
      // 070: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 073: astore 17
      // 075: aload 17
      // 077: bipush 40
      // 079: aaload
      // 07a: lload 6
      // 07c: invokestatic java/lang/Long.toString (J)Ljava/lang/String;
      // 07f: invokevirtual java/util/Hashtable.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 082: pop
      // 083: aload 14
      // 085: aload 17
      // 087: bipush 9
      // 089: aaload
      // 08a: lload 8
      // 08c: invokestatic java/lang/Long.toString (J)Ljava/lang/String;
      // 08f: invokevirtual java/util/Hashtable.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 092: pop
      // 093: aconst_null
      // 094: aload 10
      // 096: if_acmpne 0a7
      // 099: aload 17
      // 09b: bipush 20
      // 09d: aaload
      // 09e: aload 17
      // 0a0: bipush 0
      // 0a1: aaload
      // 0a2: invokestatic com/l7tech/util/ConfigFactory.getProperty (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
      // 0a5: astore 10
      // 0a7: aload 14
      // 0a9: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 0ac: bipush 29
      // 0ae: aaload
      // 0af: aload 10
      // 0b1: invokevirtual java/util/Hashtable.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 0b4: pop
      // 0b5: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 0b8: bipush 36
      // 0ba: aaload
      // 0bb: aload 13
      // 0bd: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 0c0: ifeq 0ee
      // 0c3: aload 14
      // 0c5: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 0c8: bipush 45
      // 0ca: aaload
      // 0cb: iload 1
      // 0cc: aload 2
      // 0cd: aload 3
      // 0ce: invokestatic com/l7tech/server/identity/ldap/LdapSslCustomizerSupport.getSSLSocketFactoryClassname (ZLcom/l7tech/objectmodel/Goid;Ljava/lang/String;)Ljava/lang/String;
      // 0d1: invokevirtual java/util/Hashtable.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 0d4: pop
      // 0d5: aload 14
      // 0d7: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 0da: bipush 16
      // 0dc: aaload
      // 0dd: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 0e0: bipush 34
      // 0e2: aaload
      // 0e3: invokevirtual java/util/Hashtable.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 0e6: pop
      // 0e7: goto 0ee
      // 0ea: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ed: athrow
      // 0ee: aload 4
      // 0f0: ifnull 137
      // 0f3: aload 4
      // 0f5: invokevirtual java/lang/String.length ()I
      // 0f8: ifle 137
      // 0fb: goto 102
      // 0fe: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 101: athrow
      // 102: aload 14
      // 104: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 107: bipush 59
      // 109: aaload
      // 10a: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 10d: bipush 42
      // 10f: aaload
      // 110: invokevirtual java/util/Hashtable.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 113: pop
      // 114: aload 14
      // 116: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 119: bipush 22
      // 11b: aaload
      // 11c: aload 4
      // 11e: invokevirtual java/util/Hashtable.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 121: pop
      // 122: aload 14
      // 124: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 127: bipush 61
      // 129: aaload
      // 12a: aload 5
      // 12c: invokevirtual java/util/Hashtable.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      // 12f: pop
      // 130: goto 137
      // 133: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 136: athrow
      // 137: aload 14
      // 139: getstatic com/l7tech/server/identity/ldap/LdapUtils.LDAP_ENV_OVERRIDES Ljava/util/Map;
      // 13c: invokevirtual java/util/Hashtable.putAll (Ljava/util/Map;)V
      // 13f: aload 14
      // 141: invokestatic com/l7tech/server/identity/ldap/LdapUtils.lock (Ljava/util/Hashtable;)V
      // 144: new javax/naming/directory/InitialDirContext
      // 147: dup
      // 148: aload 14
      // 14a: invokespecial javax/naming/directory/InitialDirContext.<init> (Ljava/util/Hashtable;)V
      // 14d: astore 15
      // 14f: invokestatic java/lang/Thread.currentThread ()Ljava/lang/Thread;
      // 152: aload 12
      // 154: invokevirtual java/lang/Thread.setContextClassLoader (Ljava/lang/ClassLoader;)V
      // 157: aload 15
      // 159: areturn
      // 15a: astore 13
      // 15c: new javax/naming/NamingException
      // 15f: dup
      // 160: aload 0
      // 161: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 164: bipush 27
      // 166: aaload
      // 167: swap
      // 168: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 16d: invokespecial javax/naming/NamingException.<init> (Ljava/lang/String;)V
      // 170: astore 14
      // 172: aload 14
      // 174: aload 13
      // 176: invokevirtual javax/naming/NamingException.setRootCause (Ljava/lang/Throwable;)V
      // 179: aload 14
      // 17b: athrow
      // 17c: astore 16
      // 17e: invokestatic java/lang/Thread.currentThread ()Ljava/lang/Thread;
      // 181: aload 12
      // 183: invokevirtual java/lang/Thread.setContextClassLoader (Ljava/lang/ClassLoader;)V
      // 186: aload 16
      // 188: athrow
      // try (117 -> 146): 147 java/net/URISyntaxException
      // try (115 -> 120): 121 java/net/URISyntaxException
      // try (80 -> 112): 113 java/net/URISyntaxException
      // try (14 -> 48): 49 java/net/URISyntaxException
      // try (3 -> 159): 164 java/net/URISyntaxException
      // try (3 -> 159): 180 null
      // try (164 -> 181): 180 null
   }

   public static boolean authenticateBasic(
      LdapUrlProvider param0, LdapUrlBasedIdentityProviderConfig param1, LdapRuntimeConfig param2, Logger param3, String param4, String param5
   ) throws BadCredentialsException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 5
      // 002: ifnull 015
      // 005: aload 5
      // 007: invokevirtual java/lang/String.length ()I
      // 00a: bipush 1
      // 00b: if_icmpge 033
      // 00e: goto 015
      // 011: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 014: athrow
      // 015: aload 3
      // 016: aload 4
      // 018: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 01b: bipush 19
      // 01d: aaload
      // 01e: swap
      // 01f: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 022: bipush 33
      // 024: aaload
      // 025: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 02a: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 02d: bipush 0
      // 02e: ireturn
      // 02f: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 032: athrow
      // 033: aload 0
      // 034: invokeinterface com/l7tech/server/identity/ldap/LdapUrlProvider.getLastWorkingLdapUrl ()Ljava/lang/String; 1
      // 039: astore 6
      // 03b: aload 6
      // 03d: ifnonnull 049
      // 040: aload 0
      // 041: aconst_null
      // 042: invokeinterface com/l7tech/server/identity/ldap/LdapUrlProvider.markCurrentUrlFailureAndGetFirstAvailableOne (Ljava/lang/String;)Ljava/lang/String; 2
      // 047: astore 6
      // 049: aload 6
      // 04b: ifnull 14b
      // 04e: aconst_null
      // 04f: astore 7
      // 051: aload 1
      // 052: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.isClientAuthEnabled ()Z
      // 055: istore 8
      // 057: aload 1
      // 058: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.getKeystoreId ()Lcom/l7tech/objectmodel/Goid;
      // 05b: astore 9
      // 05d: aload 1
      // 05e: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.getKeyAlias ()Ljava/lang/String;
      // 061: astore 10
      // 063: aload 6
      // 065: iload 8
      // 067: aload 9
      // 069: aload 10
      // 06b: aload 4
      // 06d: aload 5
      // 06f: aload 2
      // 070: invokevirtual com/l7tech/server/identity/ldap/LdapRuntimeConfig.getLdapConnectionTimeout ()J
      // 073: aload 2
      // 074: invokevirtual com/l7tech/server/identity/ldap/LdapRuntimeConfig.getLdapReadTimeout ()J
      // 077: aconst_null
      // 078: bipush 0
      // 079: invokestatic com/l7tech/server/identity/ldap/LdapUtils.getLdapContext (Ljava/lang/String;ZLcom/l7tech/objectmodel/Goid;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JJLjava/lang/String;Z)Ljavax/naming/directory/DirContext;
      // 07c: astore 7
      // 07e: aload 3
      // 07f: aload 4
      // 081: aload 1
      // 082: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.getName ()Ljava/lang/String;
      // 085: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 088: astore 13
      // 08a: aload 13
      // 08c: bipush 53
      // 08e: aaload
      // 08f: dup_x2
      // 090: pop
      // 091: aload 13
      // 093: bipush 31
      // 095: aaload
      // 096: swap
      // 097: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001" ]
      // 09c: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 09f: bipush 1
      // 0a0: istore 11
      // 0a2: aload 7
      // 0a4: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljavax/naming/Context;)V
      // 0a7: iload 11
      // 0a9: ireturn
      // 0aa: astore 8
      // 0ac: aload 3
      // 0ad: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
      // 0b0: aload 6
      // 0b2: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 0b5: astore 13
      // 0b7: aload 13
      // 0b9: bipush 44
      // 0bb: aaload
      // 0bc: swap
      // 0bd: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 0c2: aload 8
      // 0c4: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 0c7: aload 0
      // 0c8: aload 6
      // 0ca: invokeinterface com/l7tech/server/identity/ldap/LdapUrlProvider.markCurrentUrlFailureAndGetFirstAvailableOne (Ljava/lang/String;)Ljava/lang/String; 2
      // 0cf: astore 6
      // 0d1: aload 7
      // 0d3: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljavax/naming/Context;)V
      // 0d6: goto 148
      // 0d9: astore 8
      // 0db: aload 3
      // 0dc: aload 4
      // 0de: aload 1
      // 0df: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.getName ()Ljava/lang/String;
      // 0e2: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 0e5: astore 13
      // 0e7: aload 13
      // 0e9: bipush 38
      // 0eb: aaload
      // 0ec: dup_x2
      // 0ed: pop
      // 0ee: aload 13
      // 0f0: bipush 43
      // 0f2: aaload
      // 0f3: swap
      // 0f4: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001" ]
      // 0f9: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 0fc: new com/l7tech/identity/BadCredentialsException
      // 0ff: dup
      // 100: aload 8
      // 102: invokevirtual javax/naming/AuthenticationException.getMessage ()Ljava/lang/String;
      // 105: invokespecial com/l7tech/identity/BadCredentialsException.<init> (Ljava/lang/String;)V
      // 108: athrow
      // 109: astore 8
      // 10b: aload 3
      // 10c: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 10f: aload 4
      // 111: aload 1
      // 112: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.getName ()Ljava/lang/String;
      // 115: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 118: astore 13
      // 11a: aload 13
      // 11c: bipush 3
      // 11d: aaload
      // 11e: dup_x2
      // 11f: pop
      // 120: aload 13
      // 122: bipush 39
      // 124: aaload
      // 125: swap
      // 126: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001" ]
      // 12b: aload 8
      // 12d: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 130: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 133: bipush 0
      // 134: istore 9
      // 136: aload 7
      // 138: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljavax/naming/Context;)V
      // 13b: iload 9
      // 13d: ireturn
      // 13e: astore 12
      // 140: aload 7
      // 142: invokestatic com/l7tech/util/ResourceUtils.closeQuietly (Ljavax/naming/Context;)V
      // 145: aload 12
      // 147: athrow
      // 148: goto 049
      // 14b: aload 3
      // 14c: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 14f: bipush 51
      // 151: aaload
      // 152: invokevirtual java/util/logging/Logger.warning (Ljava/lang/String;)V
      // 155: bipush 0
      // 156: ireturn
      // try (2 -> 22): 22 javax/naming/CommunicationException
      // try (0 -> 6): 7 javax/naming/CommunicationException
      // try (37 -> 79): 83 javax/naming/CommunicationException
      // try (37 -> 79): 103 javax/naming/AuthenticationException
      // try (37 -> 79): 127 javax/naming/NamingException
      // try (37 -> 79): 154 null
      // try (83 -> 100): 154 null
      // try (103 -> 150): 154 null
      // try (154 -> 155): 154 null
   }

   public static void handlePartialResultException(@NotNull NamingException param0) throws NamingException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: ifnonnull 0f
      // 04: bipush 0
      // 05: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (I)V
      // 08: goto 0f
      // 0b: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0e: athrow
      // 0f: aload 0
      // 10: instanceof javax/naming/PartialResultException
      // 13: ifeq 34
      // 16: invokestatic com/l7tech/server/identity/ldap/LdapUtils.isIgnorePartialResultException ()Z
      // 19: ifeq 34
      // 1c: goto 23
      // 1f: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 22: athrow
      // 23: getstatic com/l7tech/server/identity/ldap/LdapUtils.f Ljava/util/logging/Logger;
      // 26: getstatic com/l7tech/server/identity/ldap/LdapUtils.g [Ljava/lang/String;
      // 29: bipush 13
      // 2b: aaload
      // 2c: invokevirtual java/util/logging/Logger.fine (Ljava/lang/String;)V
      // 2f: return
      // 30: invokestatic com/l7tech/server/identity/ldap/LdapUtils.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 33: athrow
      // 34: aload 0
      // 35: athrow
      // try (0 -> 4): 5 javax/naming/NamingException
      // try (7 -> 12): 13 javax/naming/NamingException
      // try (10 -> 21): 21 javax/naming/NamingException
   }

   public static boolean isIgnorePartialResultException() {
      return ConfigFactory.getBooleanProperty(g[5], true);
   }

   private static Map<String, String> a() {
      HashMap var0 = new HashMap();

      try {
         Properties var1 = System.getProperties();

         for (String var3 : var1.stringPropertyNames()) {
            try {
               if (var3.startsWith(g[23])) {
                  var0.put(var3.substring(g[11].length()), var1.getProperty(var3));
               }
            } catch (SecurityException var5) {
               throw a(var5);
            }
         }
      } catch (SecurityException var7) {
         String[] var4 = g;
         f.log(Level.WARNING, var4[48], ExceptionUtils.getDebugException(var7));
      }

      try {
         if (!var0.isEmpty()) {
            f.config(g[37] + var0);
         }
      } catch (SecurityException var6) {
         throw a(var6);
      }

      return Collections.unmodifiableMap(var0);
   }

   static {
      String[] var5 = new String[66];
      int var3 = 0;
      String var2 = "\u0015_Z5Fv\u001e\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwJn\u001c\u001dUU-\u0007q\u001d\u001c\\!\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwJn\u001c\u001dUU-\u0007u\u001b\u001eUY,]!4UX<[`\u001eS^W4@o\u0015SVW0Et\u0000\u0016\u0010P6[!\u0007\u0000UDc\t)\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001e[8QS\u0013\u001dWS\u0010]d\u0000\u0012D_6Gr \u001fTW)`f\u001c\u001cBS\tHs\u0006\u001aQZ\u000bLr\u0007\u001fDs!Jd\u0002\u0007YY7\u0003/\u0005U\u001b\u0019Q@8\u0007o\u0013\u001eYX>\u0007g\u0013\u0010DY+P/\u001b\u001dYB0Hm#\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001eC7Zx\u001c\u0010~W4@o\u0015\u001e\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFw[d\u0013\u0017\u001eB0Dd\u001d\u0006D!\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001eF8[r\u0017=Q[<Z\u001b\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001eS7_/\u0003/\u0002\u000e3:WX6[h\u001c\u0014\u0010f8[u\u001b\u0012\\d<Zt\u001e\u0007uN:Lq\u0006\u001a_Xy\u0001h\u0015\u001d_D<M!\u0000\u0016VS+[`\u001eL\u0019)\u0010_[vE6\u0006\u0016S^vZd\u0000\u0005UDv@e\u0017\u001dD_-P.\u001e\u0017QFvee\u0013\u0003eB0Er\u0018\u0019Q@8\u0007o\u0013\u001eYX>\u0007q\u0000\u001cF_=Ls\\\u0006BZ\u001d\u0019Q@8\u0007o\u0013\u001eYX>\u0007r\u0017\u0010ED0]x\\\u0003BY-Fb\u001d\u001f\u001d\u001fTW)j`\u0001\u0016yX*Lo\u0001\u001aD_/LB\u001d\u001e@W+@r\u001d\u001d\u0003/\u0005U\u0006&CS+\u0013!\f\u001fTW){d\u0014\u0016BD8E\u0005\u001fTW)Z\u001e\u0019Q@8\u0007o\u0013\u001eYX>\u0007r\u0017\u0010ED0]x\\\u0003B_7Jh\u0002\u0012\\\u001b\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001eS7_/\u0003\u0000CZ\u001e\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFw[d\u0013\u0017\u001eB0Dd\u001d\u0006D\u001f\u0019Q@8\u0007o\u0013\u001eYX>\u0007m\u0016\u0012@\u0018?Hb\u0006\u001cBOwZn\u0011\u0018UB\u00120QX7FuR\u0003QD*L!\u0007\u0001\\\fy\u0003/\u0002\u000f\u0014\u0019Q@8\u0007o\u0013\u001eYX>\u0007s\u0017\u0015UD+Hm \u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwee\u0013\u0003sB!o`\u0011\u0007_D (SQC-Ad\u001c\u0007YU8]d\u0016SCC:Jd\u0001\u0000VC5ExR\u001a^\u0016)[n\u0004\u001aTS+\t\u0003/\u0002W8SBS?\\r\u0017\u0017\u0010W,]i\u0017\u001dD_:Hu\u001b\u001c^\u0016;Lb\u0013\u0006CSyLl\u0002\u0007I\u0016)Hr\u0001\u0004_D=\tq\u0000\u001cF_=Le\\\u0003\u0000CZ \u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwee\u0013\u0003sB!o`\u0011\u0007_D \u0005\u001fTW)Z$?_W=LeR?tw\t\td\u001c\u0005YD6Gl\u0017\u001dD\u00166_d\u0000\u0001YR<Z!HS\u001d&CS+\tg\u0013\u001a\\S=\tu\u001dSQC-Ad\u001c\u0007YU8]dHS\rSYXyYs\u001d\u0005YR<[!!\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwJn\u001c\u001dUU-\u0007u\u001b\u001eUY,]\u0007HBW7NdO\u0006\u0000Y[)Ed\rSYXyYs\u001d\u0005YR<[!+0_C5M!\u001c\u001cD\u0016<Zu\u0013\u0011\\_*A!\u0011\u001c^B<QuR\u0006C_7N!>7qfy|S>S\u001f\u0019Q@8\u0007o\u0013\u001eYX>\u0007m\u0016\u0012@\u0018?Hb\u0006\u001cBOwZn\u0011\u0018UB\u0003/\u0002\u000f\u0003/\u0000\u0006:#UD4@r\u0001\u001a_XyMd\u001c\u001aURy^i\u0017\u001d\u0010Z6He\u001b\u001dW\u0016\u0015m@\"SUX/@s\u001d\u001d]S7]!\u001d\u0005UD+@e\u0017\u0000\u001e\u0016\u0006CS+jd\u0000\u0007YP0J`\u0006\u0016\u000bT0G`\u0000\n\u0012\u0006CS+hb\u0011\u001cEX-jn\u001c\u0007BY540_C5M!\u001c\u001cD\u0016<Zu\u0013\u0011\\_*A!\u0011\u001c^B<QuR\u001c^\u00168GxR\u001cV\u0016-AdR\u001fTW)\tt\u0000\u001fC\u0018\u0006\u0015_Z5Fv\u0006&CS+\u0013!\u000e\u0012SU6\\o\u00066HF0[d\u0001\u0018\u0019Q@8\u0007o\u0013\u001eYX>\u0007m\u0016\u0012@\u0018/Ls\u0001\u001a_X\u0003/\u0000\u0006\u0004\u0007BC<\u0003/\u0002\u000e#\u0019Q@8\u0007o\u0013\u001eYX>\u0007r\u0017\u0010ED0]x\\\u0012EB1Lo\u0006\u001aSW-@n\u001c\u001c\u001bQX=Ed\"\u0012BB0Hm \u0016CC5]D\n\u0010UF-@n\u001c \u0019Q@8\u0007o\u0013\u001eYX>\u0007r\u0017\u0010ED0]x\\\u0010BS=Lo\u0006\u001aQZ*\u000e-l\tqr_.Lm\u001dp\u0007+V\u001e\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwJn\u001c\u001dUU-\u0007q\u001d\u001c\\";
      int var4 = "\u0015_Z5Fv\u001e\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwJn\u001c\u001dUU-\u0007q\u001d\u001c\\!\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwJn\u001c\u001dUU-\u0007u\u001b\u001eUY,]!4UX<[`\u001eS^W4@o\u0015SVW0Et\u0000\u0016\u0010P6[!\u0007\u0000UDc\t)\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001e[8QS\u0013\u001dWS\u0010]d\u0000\u0012D_6Gr \u001fTW)`f\u001c\u001cBS\tHs\u0006\u001aQZ\u000bLr\u0007\u001fDs!Jd\u0002\u0007YY7\u0003/\u0005U\u001b\u0019Q@8\u0007o\u0013\u001eYX>\u0007g\u0013\u0010DY+P/\u001b\u001dYB0Hm#\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001eC7Zx\u001c\u0010~W4@o\u0015\u001e\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFw[d\u0013\u0017\u001eB0Dd\u001d\u0006D!\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001eF8[r\u0017=Q[<Z\u001b\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001eS7_/\u0003/\u0002\u000e3:WX6[h\u001c\u0014\u0010f8[u\u001b\u0012\\d<Zt\u001e\u0007uN:Lq\u0006\u001a_Xy\u0001h\u0015\u001d_D<M!\u0000\u0016VS+[`\u001eL\u0019)\u0010_[vE6\u0006\u0016S^vZd\u0000\u0005UDv@e\u0017\u001dD_-P.\u001e\u0017QFvee\u0013\u0003eB0Er\u0018\u0019Q@8\u0007o\u0013\u001eYX>\u0007q\u0000\u001cF_=Ls\\\u0006BZ\u001d\u0019Q@8\u0007o\u0013\u001eYX>\u0007r\u0017\u0010ED0]x\\\u0003BY-Fb\u001d\u001f\u001d\u001fTW)j`\u0001\u0016yX*Lo\u0001\u001aD_/LB\u001d\u001e@W+@r\u001d\u001d\u0003/\u0005U\u0006&CS+\u0013!\f\u001fTW){d\u0014\u0016BD8E\u0005\u001fTW)Z\u001e\u0019Q@8\u0007o\u0013\u001eYX>\u0007r\u0017\u0010ED0]x\\\u0003B_7Jh\u0002\u0012\\\u001b\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001eS7_/\u0003\u0000CZ\u001e\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFw[d\u0013\u0017\u001eB0Dd\u001d\u0006D\u001f\u0019Q@8\u0007o\u0013\u001eYX>\u0007m\u0016\u0012@\u0018?Hb\u0006\u001cBOwZn\u0011\u0018UB\u00120QX7FuR\u0003QD*L!\u0007\u0001\\\fy\u0003/\u0002\u000f\u0014\u0019Q@8\u0007o\u0013\u001eYX>\u0007s\u0017\u0015UD+Hm \u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwee\u0013\u0003sB!o`\u0011\u0007_D (SQC-Ad\u001c\u0007YU8]d\u0016SCC:Jd\u0001\u0000VC5ExR\u001a^\u0016)[n\u0004\u001aTS+\t\u0003/\u0002W8SBS?\\r\u0017\u0017\u0010W,]i\u0017\u001dD_:Hu\u001b\u001c^\u0016;Lb\u0013\u0006CSyLl\u0002\u0007I\u0016)Hr\u0001\u0004_D=\tq\u0000\u001cF_=Le\\\u0003\u0000CZ \u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwee\u0013\u0003sB!o`\u0011\u0007_D \u0005\u001fTW)Z$?_W=LeR?tw\t\td\u001c\u0005YD6Gl\u0017\u001dD\u00166_d\u0000\u0001YR<Z!HS\u001d&CS+\tg\u0013\u001a\\S=\tu\u001dSQC-Ad\u001c\u0007YU8]dHS\rSYXyYs\u001d\u0005YR<[!!\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwJn\u001c\u001dUU-\u0007u\u001b\u001eUY,]\u0007HBW7NdO\u0006\u0000Y[)Ed\rSYXyYs\u001d\u0005YR<[!+0_C5M!\u001c\u001cD\u0016<Zu\u0013\u0011\\_*A!\u0011\u001c^B<QuR\u0006C_7N!>7qfy|S>S\u001f\u0019Q@8\u0007o\u0013\u001eYX>\u0007m\u0016\u0012@\u0018?Hb\u0006\u001cBOwZn\u0011\u0018UB\u0003/\u0002\u000f\u0003/\u0000\u0006:#UD4@r\u0001\u001a_XyMd\u001c\u001aURy^i\u0017\u001d\u0010Z6He\u001b\u001dW\u0016\u0015m@\"SUX/@s\u001d\u001d]S7]!\u001d\u0005UD+@e\u0017\u0000\u001e\u0016\u0006CS+jd\u0000\u0007YP0J`\u0006\u0016\u000bT0G`\u0000\n\u0012\u0006CS+hb\u0011\u001cEX-jn\u001c\u0007BY540_C5M!\u001c\u001cD\u0016<Zu\u0013\u0011\\_*A!\u0011\u001c^B<QuR\u001c^\u00168GxR\u001cV\u0016-AdR\u001fTW)\tt\u0000\u001fC\u0018\u0006\u0015_Z5Fv\u0006&CS+\u0013!\u000e\u0012SU6\\o\u00066HF0[d\u0001\u0018\u0019Q@8\u0007o\u0013\u001eYX>\u0007m\u0016\u0012@\u0018/Ls\u0001\u001a_X\u0003/\u0000\u0006\u0004\u0007BC<\u0003/\u0002\u000e#\u0019Q@8\u0007o\u0013\u001eYX>\u0007r\u0017\u0010ED0]x\\\u0012EB1Lo\u0006\u001aSW-@n\u001c\u001c\u001bQX=Ed\"\u0012BB0Hm \u0016CC5]D\n\u0010UF-@n\u001c \u0019Q@8\u0007o\u0013\u001eYX>\u0007r\u0017\u0010ED0]x\\\u0010BS=Lo\u0006\u001aQZ*\u000e-l\tqr_.Lm\u001dp\u0007+V\u001e\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwJn\u001c\u001dUU-\u0007q\u001d\u001c\\"
         .length();
      char var1 = 6;
      int var7 = -1;

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

         while (true) {
            String var9 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     g = var5;
                     String[] var10 = g;
                     ENV_PROP_LDAP_VERSION = g[65];
                     ENV_PROP_LDAP_FACTORY_SOCKET = var10[26];
                     ENV_PROP_LDAP_CONNECT_TIMEOUT = var10[2];
                     d = var10[54];
                     e = var10[49];
                     LDAP_ENV_PREFIX = var10[11];
                     ENV_VALUE_INITIAL_CONTEXT_FACTORY = var10[30];
                     c = var10[50];
                     LDAPS_SCHEME = var10[21];
                     ENV_VALUE_SECURITY_PROTOCOL = var10[24];
                     ENV_PROP_LDAP_READ_TIMEOUT = var10[25];
                     ENV_VALUE_REFERRAL = var10[52];
                     b = var10[41];
                     ENV_PROP_LDAP_CONNECT_POOL = var10[1];
                     String[] var8 = g;
                     LDAP_URL_QUERY_PATTERN = Pattern.compile(var8[62]);
                     LDAP_USES_UNSYNC_NAMING = ConfigFactory.getBooleanProperty(var8[8], false);
                     LDAP_PARSE_NAMES = ConfigFactory.getBooleanProperty(var8[10], false);
                     a = ConfigFactory.getIntProperty(var8[4], 1000);
                     f = Logger.getLogger(LdapUtils.class.getName());
                     LDAP_ENV_OVERRIDES = a();
                     return;
                  }

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

                  var2 = "\u0019iz\u0007oO7,;{\u001dp\n\u0019\u0016ti<wF5xk|\u0000cG<,~oR%\u000f*\u007f;r\u0014\"\u000f*v>nRo_*,;s\u001dv\n;=;s\u0007nF\u00182zk\u0013,D85rs\u0015,F=9k3\u0004gX*1ts";
                  var4 = "\u0019iz\u0007oO7,;{\u001dp\n\u0019\u0016ti<wF5xk|\u0000cG<,~oR%\u000f*\u007f;r\u0014\"\u000f*v>nRo_*,;s\u001dv\n;=;s\u0007nF\u00182zk\u0013,D85rs\u0015,F=9k3\u0004gX*1ts"
                     .length();
                  var1 = '>';
                  var7 = -1;
            }

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

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

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

      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 -> 68;
            case 1 -> 7;
            case 2 -> 1;
            case 3 -> 110;
            case 4 -> 30;
            case 5 -> 54;
            default -> 69;
         });
      }

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