public final class com.sun.jndi.ldap.LdapCtx extends com.sun.jndi.toolkit.ctx.ComponentDirContext implements javax.naming.event.EventDirContext, javax.naming.ldap.LdapContext
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.sun.jndi.ldap.LdapCtx
  super_class: com.sun.jndi.toolkit.ctx.ComponentDirContext
{
  private static final boolean debug;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final boolean HARD_CLOSE;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final boolean SOFT_CLOSE;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int DEFAULT_PORT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 389

  public static final int DEFAULT_SSL_PORT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 636

  public static final java.lang.String DEFAULT_HOST;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "localhost"

  private static final boolean DEFAULT_DELETE_RDN;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final boolean DEFAULT_TYPES_ONLY;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int DEFAULT_DEREF_ALIASES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int DEFAULT_LDAP_VERSION;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private static final int DEFAULT_BATCH_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int DEFAULT_REFERRAL_MODE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final char DEFAULT_REF_SEPARATOR;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 35

  static final java.lang.String DEFAULT_SSL_FACTORY;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.net.ssl.SSLSocketFactory"

  private static final int DEFAULT_REFERRAL_LIMIT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  private static final java.lang.String STARTTLS_REQ_OID;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "1.3.6.1.4.1.1466.20037"

  private static final java.lang.String[] SCHEMA_ATTRIBUTES;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String VERSION;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.version"

  private static final java.lang.String BINARY_ATTRIBUTES;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.attributes.binary"

  private static final java.lang.String DELETE_RDN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.deleteRDN"

  private static final java.lang.String DEREF_ALIASES;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.derefAliases"

  private static final java.lang.String TYPES_ONLY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.typesOnly"

  private static final java.lang.String REF_SEPARATOR;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.ref.separator"

  private static final java.lang.String SOCKET_FACTORY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.factory.socket"

  static final java.lang.String BIND_CONTROLS;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.control.connect"

  private static final java.lang.String REFERRAL_LIMIT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.referral.limit"

  private static final java.lang.String TRACE_BER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.trace.ber"

  private static final java.lang.String NETSCAPE_SCHEMA_BUG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.netscape.schemaBugs"

  private static final java.lang.String OLD_NETSCAPE_SCHEMA_BUG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.naming.netscape.schemaBugs"

  private static final java.lang.String CONNECT_TIMEOUT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.connect.timeout"

  private static final java.lang.String READ_TIMEOUT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.read.timeout"

  private static final java.lang.String ENABLE_POOL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.connect.pool"

  private static final java.lang.String DOMAIN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.domainname"

  private static final java.lang.String WAIT_FOR_REPLY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.search.waitForReply"

  private static final java.lang.String REPLY_QUEUE_SIZE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.search.replyQueueSize"

  private static final javax.naming.NameParser parser;
    descriptor: Ljavax/naming/NameParser;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final javax.naming.ldap.ControlFactory myResponseControlFactory;
    descriptor: Ljavax/naming/ldap/ControlFactory;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final javax.naming.ldap.Control manageReferralControl;
    descriptor: Ljavax/naming/ldap/Control;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.sun.jndi.toolkit.dir.HierMemDirCtx EMPTY_SCHEMA;
    descriptor: Lcom/sun/jndi/toolkit/dir/HierMemDirCtx;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  int port_number;
    descriptor: I
    flags: (0x0000) 

  java.lang.String hostname;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  com.sun.jndi.ldap.LdapClient clnt;
    descriptor: Lcom/sun/jndi/ldap/LdapClient;
    flags: (0x0000) 

  java.util.Hashtable<java.lang.String, java.lang.Object> envprops;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0000) 
    Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Object;>;

  int handleReferrals;
    descriptor: I
    flags: (0x0000) 

  boolean hasLdapsScheme;
    descriptor: Z
    flags: (0x0000) 

  java.lang.String currentDN;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  javax.naming.Name currentParsedDN;
    descriptor: Ljavax/naming/Name;
    flags: (0x0000) 

  java.util.Vector<javax.naming.ldap.Control> respCtls;
    descriptor: Ljava/util/Vector;
    flags: (0x0000) 
    Signature: Ljava/util/Vector<Ljavax/naming/ldap/Control;>;

  javax.naming.ldap.Control[] reqCtls;
    descriptor: [Ljavax/naming/ldap/Control;
    flags: (0x0000) 

  private java.io.OutputStream trace;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0002) ACC_PRIVATE

  private boolean netscapeSchemaBug;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private javax.naming.ldap.Control[] bindCtls;
    descriptor: [Ljavax/naming/ldap/Control;
    flags: (0x0002) ACC_PRIVATE

  private int referralHopLimit;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.util.Hashtable<java.lang.String, javax.naming.directory.DirContext> schemaTrees;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljavax/naming/directory/DirContext;>;

  private int batchSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean deleteRDN;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean typesOnly;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int derefAliases;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private char addrEncodingSeparator;
    descriptor: C
    flags: (0x0002) ACC_PRIVATE

  private java.util.Hashtable<java.lang.String, java.lang.Boolean> binaryAttrs;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Boolean;>;

  private int connectTimeout;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int readTimeout;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean waitForReply;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int replyQueueSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean useSsl;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean useDefaultPortNumber;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean parentIsLdapCtx;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int hopCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String url;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.jndi.ldap.EventSupport eventSupport;
    descriptor: Lcom/sun/jndi/ldap/EventSupport;
    flags: (0x0002) ACC_PRIVATE

  private boolean unsolicited;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean sharable;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int enumCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean closeRequested;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 139
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
            ldc "objectClasses"
            aastore
            dup
            iconst_1
            ldc "attributeTypes"
            aastore
            dup
            iconst_2
            ldc "matchingRules"
            aastore
            dup
            iconst_3
            ldc "ldapSyntaxes"
            aastore
         1: .line 138
            putstatic com.sun.jndi.ldap.LdapCtx.SCHEMA_ATTRIBUTES:[Ljava/lang/String;
         2: .line 204
            new com.sun.jndi.ldap.LdapNameParser
            dup
            invokespecial com.sun.jndi.ldap.LdapNameParser.<init>:()V
            putstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
         3: .line 208
            new com.sun.jndi.ldap.DefaultResponseControlFactory
            dup
            invokespecial com.sun.jndi.ldap.DefaultResponseControlFactory.<init>:()V
         4: .line 207
            putstatic com.sun.jndi.ldap.LdapCtx.myResponseControlFactory:Ljavax/naming/ldap/ControlFactory;
         5: .line 210
            new com.sun.jndi.ldap.ManageReferralControl
            dup
            iconst_0
            invokespecial com.sun.jndi.ldap.ManageReferralControl.<init>:(Z)V
         6: .line 209
            putstatic com.sun.jndi.ldap.LdapCtx.manageReferralControl:Ljavax/naming/ldap/Control;
         7: .line 212
            new com.sun.jndi.toolkit.dir.HierMemDirCtx
            dup
            invokespecial com.sun.jndi.toolkit.dir.HierMemDirCtx.<init>:()V
            putstatic com.sun.jndi.ldap.LdapCtx.EMPTY_SCHEMA:Lcom/sun/jndi/toolkit/dir/HierMemDirCtx;
         8: .line 214
            getstatic com.sun.jndi.ldap.LdapCtx.EMPTY_SCHEMA:Lcom/sun/jndi/toolkit/dir/HierMemDirCtx;
         9: .line 215
            new javax.naming.directory.SchemaViolationException
            dup
            ldc "Cannot update schema object"
            invokespecial javax.naming.directory.SchemaViolationException.<init>:(Ljava/lang/String;)V
        10: .line 214
            invokevirtual com.sun.jndi.toolkit.dir.HierMemDirCtx.setReadOnly:(Ljavax/naming/NamingException;)V
        11: .line 216
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, java.lang.String, int, java.util.Hashtable<?, ?>, );
    descriptor: (Ljava/lang/String;Ljava/lang/String;ILjava/util/Hashtable;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String dn
        start local 2 // java.lang.String host
        start local 3 // int port_number
        start local 4 // java.util.Hashtable props
        start local 5 // boolean useSsl
         0: .line 277
            aload 0 /* this */
            invokespecial com.sun.jndi.toolkit.ctx.ComponentDirContext.<init>:()V
         1: .line 224
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
         2: .line 226
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
         3: .line 227
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
         4: .line 228
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
         5: .line 229
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
         6: .line 236
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         7: .line 237
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
         8: .line 244
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
         9: .line 245
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
        10: .line 246
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
        11: .line 247
            aload 0 /* this */
            bipush 10
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
        12: .line 248
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
        13: .line 249
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
        14: .line 250
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
        15: .line 251
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
        16: .line 252
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        17: .line 253
            aload 0 /* this */
            bipush 35
            putfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
        18: .line 255
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
        19: .line 256
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
        20: .line 257
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
        21: .line 258
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.waitForReply:Z
        22: .line 259
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.replyQueueSize:I
        23: .line 260
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        24: .line 261
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
        25: .line 266
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.parentIsLdapCtx:Z
        26: .line 268
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.hopCount:I
        27: .line 269
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
        28: .line 271
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
        29: .line 272
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        30: .line 2862
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.enumCount:I
        31: .line 2863
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.closeRequested:Z
        32: .line 281
            aload 0 /* this */
            aload 0 /* this */
            iload 5 /* useSsl */
            dup_x1
            putfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        33: .line 283
            aload 4 /* props */
            ifnull 41
        34: .line 284
            aload 0 /* this */
            aload 4 /* props */
            invokevirtual java.util.Hashtable.clone:()Ljava/lang/Object;
            checkcast java.util.Hashtable
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        35: .line 287
            ldc "ssl"
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.security.protocol"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 37
        36: .line 288
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        37: .line 293
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.String int java.util.Hashtable int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.trace.ber"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.io.OutputStream
            putfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
        38: .line 295
            aload 4 /* props */
            ldc "com.sun.jndi.ldap.netscape.schemaBugs"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 40
        39: .line 296
            aload 4 /* props */
            ldc "com.sun.naming.netscape.schemaBugs"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 41
        40: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
        41: .line 301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* dn */
            ifnull 42
            aload 1 /* dn */
            goto 43
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
        42: ldc ""
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.String int java.util.Hashtable int
      StackMap stack: com.sun.jndi.ldap.LdapCtx java.lang.String
        43: putfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
        44: .line 302
            aload 0 /* this */
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            putfield com.sun.jndi.ldap.LdapCtx.currentParsedDN:Ljavax/naming/Name;
        45: .line 304
            aload 0 /* this */
            aload 2 /* host */
            ifnull 46
            aload 2 /* host */
            invokevirtual java.lang.String.length:()I
            ifle 46
            aload 2 /* host */
            goto 47
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
        46: ldc "localhost"
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.String int java.util.Hashtable int
      StackMap stack: com.sun.jndi.ldap.LdapCtx java.lang.String
        47: putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        48: .line 305
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 50
        49: .line 306
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            iconst_1
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        50: .line 309
      StackMap locals:
      StackMap stack:
            iload 3 /* port_number */
            ifle 53
        51: .line 310
            aload 0 /* this */
            iload 3 /* port_number */
            putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        52: .line 311
            goto 57
        53: .line 312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
            ifeq 54
            sipush 636
            goto 55
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
        54: sipush 389
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.String int java.util.Hashtable int
      StackMap stack: com.sun.jndi.ldap.LdapCtx int
        55: putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        56: .line 313
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
        57: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.Hashtable
            dup
            bipush 11
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
        58: .line 317
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.initEnv:()V
        59: .line 319
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.connect:(Z)V
        60: .line 320
            goto 66
      StackMap locals:
      StackMap stack: javax.naming.NamingException
        61: astore 6 /* e */
        start local 6 // javax.naming.NamingException e
        62: .line 322
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.close:()V
        63: .line 323
            goto 65
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.String int java.util.Hashtable int javax.naming.NamingException
      StackMap stack: java.lang.Exception
        64: pop
        65: .line 326
      StackMap locals:
      StackMap stack:
            aload 6 /* e */
            athrow
        end local 6 // javax.naming.NamingException e
        66: .line 328
      StackMap locals:
      StackMap stack:
            return
        end local 5 // boolean useSsl
        end local 4 // java.util.Hashtable props
        end local 3 // int port_number
        end local 2 // java.lang.String host
        end local 1 // java.lang.String dn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   67     0         this  Lcom/sun/jndi/ldap/LdapCtx;
            0   67     1           dn  Ljava/lang/String;
            0   67     2         host  Ljava/lang/String;
            0   67     3  port_number  I
            0   67     4        props  Ljava/util/Hashtable<**>;
            0   67     5       useSsl  Z
           62   66     6            e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
          59    60      61  Class javax.naming.NamingException
          62    63      64  Class java.lang.Exception
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljava/lang/String;Ljava/lang/String;ILjava/util/Hashtable<**>;Z)V
    MethodParameters:
             Name  Flags
      dn           
      host         
      port_number  
      props        
      useSsl       

  void <init>(com.sun.jndi.ldap.LdapCtx, java.lang.String);
    descriptor: (Lcom/sun/jndi/ldap/LdapCtx;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // com.sun.jndi.ldap.LdapCtx existing
        start local 2 // java.lang.String newDN
         0: .line 330
            aload 0 /* this */
            invokespecial com.sun.jndi.toolkit.ctx.ComponentDirContext.<init>:()V
         1: .line 224
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
         2: .line 226
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
         3: .line 227
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
         4: .line 228
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
         5: .line 229
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
         6: .line 236
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         7: .line 237
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
         8: .line 244
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
         9: .line 245
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
        10: .line 246
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
        11: .line 247
            aload 0 /* this */
            bipush 10
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
        12: .line 248
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
        13: .line 249
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
        14: .line 250
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
        15: .line 251
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
        16: .line 252
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        17: .line 253
            aload 0 /* this */
            bipush 35
            putfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
        18: .line 255
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
        19: .line 256
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
        20: .line 257
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
        21: .line 258
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.waitForReply:Z
        22: .line 259
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.replyQueueSize:I
        23: .line 260
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        24: .line 261
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
        25: .line 266
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.parentIsLdapCtx:Z
        26: .line 268
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.hopCount:I
        27: .line 269
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
        28: .line 271
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
        29: .line 272
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        30: .line 2862
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.enumCount:I
        31: .line 2863
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.closeRequested:Z
        32: .line 331
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        33: .line 332
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
            putfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
        34: .line 333
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
            putfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
        35: .line 335
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        36: .line 336
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.port_number:I
            putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        37: .line 337
            aload 0 /* this */
            aload 2 /* newDN */
            putfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
        38: .line 338
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            if_acmpne 41
        39: .line 339
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.currentParsedDN:Ljavax/naming/Name;
            putfield com.sun.jndi.ldap.LdapCtx.currentParsedDN:Ljavax/naming/Name;
        40: .line 340
            goto 42
        41: .line 341
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapCtx java.lang.String
      StackMap stack:
            aload 0 /* this */
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            putfield com.sun.jndi.ldap.LdapCtx.currentParsedDN:Ljavax/naming/Name;
        42: .line 344
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        43: .line 345
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
        44: .line 347
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            putfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
        45: .line 348
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            invokevirtual com.sun.jndi.ldap.LdapClient.incRefCount:()V
        46: .line 350
            aload 0 /* this */
            aload 2 /* newDN */
            ifnull 47
            aload 2 /* newDN */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 48
        47: .line 351
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.parentIsLdapCtx:Z
            goto 49
        48: .line 352
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
            iconst_1
        49: .line 350
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapCtx java.lang.String
      StackMap stack: com.sun.jndi.ldap.LdapCtx int
            putfield com.sun.jndi.ldap.LdapCtx.parentIsLdapCtx:Z
        50: .line 355
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
            putfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
        51: .line 356
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
            putfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
        52: .line 358
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.initEnv:()V
        53: .line 359
            return
        end local 2 // java.lang.String newDN
        end local 1 // com.sun.jndi.ldap.LdapCtx existing
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   54     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   54     1  existing  Lcom/sun/jndi/ldap/LdapCtx;
            0   54     2     newDN  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      existing  
      newDN     

  public javax.naming.ldap.LdapContext newInstance(javax.naming.ldap.Control[]);
    descriptor: ([Ljavax/naming/ldap/Control;)Ljavax/naming/ldap/LdapContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.ldap.Control[] reqCtls
         0: .line 363
            new com.sun.jndi.ldap.LdapCtx
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokespecial com.sun.jndi.ldap.LdapCtx.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Ljava/lang/String;)V
            astore 2 /* clone */
        start local 2 // javax.naming.ldap.LdapContext clone
         1: .line 369
            aload 2 /* clone */
            aload 1 /* reqCtls */
            invokeinterface javax.naming.ldap.LdapContext.setRequestControls:([Ljavax/naming/ldap/Control;)V
         2: .line 370
            aload 2 /* clone */
            areturn
        end local 2 // javax.naming.ldap.LdapContext clone
        end local 1 // javax.naming.ldap.Control[] reqCtls
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/sun/jndi/ldap/LdapCtx;
            0    3     1  reqCtls  [Ljavax/naming/ldap/Control;
            1    3     2    clone  Ljavax/naming/ldap/LdapContext;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      reqCtls  

  protected void c_bind(javax.naming.Name, java.lang.Object, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/Object;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.Object obj
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 380
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* obj */
            aconst_null
            aload 3 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_bind:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
         1: .line 381
            return
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // java.lang.Object obj
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1  name  Ljavax/naming/Name;
            0    2     2   obj  Ljava/lang/Object;
            0    2     3  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      obj   
      cont  

  protected void c_bind(javax.naming.Name, java.lang.Object, javax.naming.directory.Attributes, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=10, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.Object obj
        start local 3 // javax.naming.directory.Attributes attrs
        start local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 399
            aload 4 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 401
            aload 3 /* attrs */
            astore 5 /* inputAttrs */
        start local 5 // javax.naming.directory.Attributes inputAttrs
         2: .line 403
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         3: .line 405
            aload 2 /* obj */
            ifnonnull 8
         4: .line 406
            aload 3 /* attrs */
            ifnonnull 11
         5: .line 407
            new java.lang.IllegalArgumentException
            dup
         6: .line 408
            ldc "cannot bind null object with no attributes"
         7: .line 407
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 411
      StackMap locals: javax.naming.directory.Attributes
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
            aload 2 /* obj */
            aload 3 /* attrs */
         9: .line 412
            iconst_0
            aload 1 /* name */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        10: .line 411
            invokestatic com.sun.jndi.ldap.Obj.determineBindAttrs:(CLjava/lang/Object;Ljavax/naming/directory/Attributes;ZLjavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable;)Ljavax/naming/directory/Attributes;
            astore 3 /* attrs */
        11: .line 415
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 6 /* newDN */
        start local 6 // java.lang.String newDN
        12: .line 416
            aload 6 /* newDN */
            aload 3 /* attrs */
            aload 5 /* inputAttrs */
            aload 3 /* attrs */
            if_acmpeq 13
            iconst_1
            goto 14
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes java.lang.String
      StackMap stack: java.lang.String javax.naming.directory.Attributes
        13: iconst_0
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes java.lang.String
      StackMap stack: java.lang.String javax.naming.directory.Attributes int
        14: invokestatic com.sun.jndi.ldap.LdapCtx.addRdnAttributes:(Ljava/lang/String;Ljavax/naming/directory/Attributes;Z)Ljavax/naming/directory/Attributes;
            astore 3 /* attrs */
        15: .line 417
            new com.sun.jndi.ldap.LdapEntry
            dup
            aload 6 /* newDN */
            aload 3 /* attrs */
            invokespecial com.sun.jndi.ldap.LdapEntry.<init>:(Ljava/lang/String;Ljavax/naming/directory/Attributes;)V
            astore 7 /* entry */
        start local 7 // com.sun.jndi.ldap.LdapEntry entry
        16: .line 419
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 7 /* entry */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.add:(Lcom/sun/jndi/ldap/LdapEntry;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 8 /* answer */
        start local 8 // com.sun.jndi.ldap.LdapResult answer
        17: .line 420
            aload 0 /* this */
            aload 8 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        18: .line 422
            aload 8 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 42
        19: .line 423
            aload 0 /* this */
            aload 8 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 8 // com.sun.jndi.ldap.LdapResult answer
        end local 7 // com.sun.jndi.ldap.LdapEntry entry
        end local 6 // java.lang.String newDN
        20: .line 426
            goto 42
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
        21: astore 6 /* e */
        start local 6 // com.sun.jndi.ldap.LdapReferralException e
        22: .line 427
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 24
        23: .line 428
            aload 4 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        24: .line 434
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 6 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        25: .line 433
            astore 7 /* refCtx */
        start local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        26: .line 439
            aload 7 /* refCtx */
            aload 1 /* name */
            aload 2 /* obj */
            aload 5 /* inputAttrs */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.bind:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;)V
        27: .line 448
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        28: .line 440
            return
        29: .line 442
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 8 /* re */
        start local 8 // com.sun.jndi.ldap.LdapReferralException re
        30: .line 443
            aload 8 /* re */
            astore 6 /* e */
        31: .line 448
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        32: .line 444
            goto 24
        end local 8 // com.sun.jndi.ldap.LdapReferralException re
        33: .line 446
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        34: .line 448
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        35: .line 449
            aload 9
            athrow
        end local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 6 // com.sun.jndi.ldap.LdapReferralException e
        36: .line 452
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
        37: .line 453
            new javax.naming.CommunicationException
            dup
            aload 6 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 7 /* e2 */
        start local 7 // javax.naming.NamingException e2
        38: .line 454
            aload 7 /* e2 */
            aload 6 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        39: .line 455
            aload 4 /* cont */
            aload 7 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 7 // javax.naming.NamingException e2
        end local 6 // java.io.IOException e
        40: .line 457
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 6 /* e */
        start local 6 // javax.naming.NamingException e
        41: .line 458
            aload 4 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e
        42: .line 460
      StackMap locals:
      StackMap stack:
            return
        end local 5 // javax.naming.directory.Attributes inputAttrs
        end local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 3 // javax.naming.directory.Attributes attrs
        end local 2 // java.lang.Object obj
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   43     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0   43     1        name  Ljavax/naming/Name;
            0   43     2         obj  Ljava/lang/Object;
            0   43     3       attrs  Ljavax/naming/directory/Attributes;
            0   43     4        cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            2   43     5  inputAttrs  Ljavax/naming/directory/Attributes;
           12   20     6       newDN  Ljava/lang/String;
           16   20     7       entry  Lcom/sun/jndi/ldap/LdapEntry;
           17   20     8      answer  Lcom/sun/jndi/ldap/LdapResult;
           22   36     6           e  Lcom/sun/jndi/ldap/LdapReferralException;
           26   36     7      refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           30   33     8          re  Lcom/sun/jndi/ldap/LdapReferralException;
           37   40     6           e  Ljava/io/IOException;
           38   40     7          e2  Ljavax/naming/NamingException;
           41   42     6           e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2    20      21  Class com.sun.jndi.ldap.LdapReferralException
          26    27      29  Class com.sun.jndi.ldap.LdapReferralException
          26    27      33  any
          29    31      33  any
           2    20      36  Class java.io.IOException
           2    20      40  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      name   
      obj    
      attrs  
      cont   

  protected void c_rebind(javax.naming.Name, java.lang.Object, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/Object;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.Object obj
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 464
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* obj */
            aconst_null
            aload 3 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_rebind:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
         1: .line 465
            return
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // java.lang.Object obj
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1  name  Ljavax/naming/Name;
            0    2     2   obj  Ljava/lang/Object;
            0    2     3  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      obj   
      cont  

  protected void c_rebind(javax.naming.Name, java.lang.Object, javax.naming.directory.Attributes, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=12, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.Object obj
        start local 3 // javax.naming.directory.Attributes attrs
        start local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 486
            aload 4 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 488
            aload 3 /* attrs */
            astore 5 /* inputAttrs */
        start local 5 // javax.naming.directory.Attributes inputAttrs
         2: .line 491
            aconst_null
            astore 6 /* origAttrs */
        start local 6 // javax.naming.directory.Attributes origAttrs
         3: .line 495
            aload 0 /* this */
            aload 1 /* name */
            aconst_null
            aload 4 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_getAttributes:(Ljavax/naming/Name;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/Attributes;
            astore 6 /* origAttrs */
         4: .line 496
            goto 6
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes javax.naming.directory.Attributes
      StackMap stack: javax.naming.NameNotFoundException
         5: pop
         6: .line 499
      StackMap locals:
      StackMap stack:
            aload 6 /* origAttrs */
            ifnonnull 9
         7: .line 500
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* obj */
            aload 3 /* attrs */
            aload 4 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_bind:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
         8: .line 501
            return
         9: .line 507
      StackMap locals:
      StackMap stack:
            aload 3 /* attrs */
            ifnonnull 11
            aload 2 /* obj */
            instanceof javax.naming.directory.DirContext
            ifeq 11
        10: .line 508
            aload 2 /* obj */
            checkcast javax.naming.directory.DirContext
            ldc ""
            invokeinterface javax.naming.directory.DirContext.getAttributes:(Ljava/lang/String;)Ljavax/naming/directory/Attributes;
            astore 3 /* attrs */
        11: .line 510
      StackMap locals:
      StackMap stack:
            aload 6 /* origAttrs */
            invokeinterface javax.naming.directory.Attributes.clone:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attributes
            astore 7 /* keepAttrs */
        start local 7 // javax.naming.directory.Attributes keepAttrs
        12: .line 512
            aload 3 /* attrs */
            ifnonnull 30
        13: .line 517
            aload 6 /* origAttrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_0
            aaload
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
        14: .line 516
            astore 8 /* origObjectClass */
        start local 8 // javax.naming.directory.Attribute origObjectClass
        15: .line 519
            aload 8 /* origObjectClass */
            ifnull 24
        16: .line 521
            aload 8 /* origObjectClass */
            invokeinterface javax.naming.directory.Attribute.clone:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attribute
            astore 8 /* origObjectClass */
        17: .line 522
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        18: goto 22
        19: .line 523
      StackMap locals: javax.naming.directory.Attributes javax.naming.directory.Attribute int
      StackMap stack:
            aload 8 /* origObjectClass */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES_LOWER:[Ljava/lang/String;
            iload 9 /* i */
            aaload
            invokeinterface javax.naming.directory.Attribute.remove:(Ljava/lang/Object;)Z
            pop
        20: .line 524
            aload 8 /* origObjectClass */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            iload 9 /* i */
            aaload
            invokeinterface javax.naming.directory.Attribute.remove:(Ljava/lang/Object;)Z
            pop
        21: .line 522
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 9 /* i */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            arraylength
            if_icmplt 19
        end local 9 // int i
        23: .line 527
            aload 6 /* origAttrs */
            aload 8 /* origObjectClass */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        24: .line 531
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 9 /* i */
        start local 9 // int i
        25: goto 28
        26: .line 532
      StackMap locals: int
      StackMap stack:
            aload 6 /* origAttrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iload 9 /* i */
            aaload
            invokeinterface javax.naming.directory.Attributes.remove:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            pop
        27: .line 531
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 9 /* i */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            arraylength
            if_icmplt 26
        end local 9 // int i
        29: .line 535
            aload 6 /* origAttrs */
            astore 3 /* attrs */
        end local 8 // javax.naming.directory.Attribute origObjectClass
        30: .line 537
      StackMap locals:
      StackMap stack:
            aload 2 /* obj */
            ifnull 37
        31: .line 539
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
            aload 2 /* obj */
            aload 3 /* attrs */
        32: .line 540
            aload 5 /* inputAttrs */
            aload 3 /* attrs */
            if_acmpeq 33
            iconst_1
            goto 34
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes javax.naming.directory.Attributes javax.naming.directory.Attributes
      StackMap stack: int java.lang.Object javax.naming.directory.Attributes
        33: iconst_0
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes javax.naming.directory.Attributes javax.naming.directory.Attributes
      StackMap stack: int java.lang.Object javax.naming.directory.Attributes int
        34: aload 1 /* name */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        35: .line 539
            invokestatic com.sun.jndi.ldap.Obj.determineBindAttrs:(CLjava/lang/Object;Ljavax/naming/directory/Attributes;ZLjavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable;)Ljavax/naming/directory/Attributes;
        36: .line 538
            astore 3 /* attrs */
        37: .line 543
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 8 /* newDN */
        start local 8 // java.lang.String newDN
        38: .line 545
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 8 /* newDN */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.delete:(Ljava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 9 /* answer */
        start local 9 // com.sun.jndi.ldap.LdapResult answer
        39: .line 546
            aload 0 /* this */
            aload 9 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        40: .line 548
            aload 9 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 43
        41: .line 549
            aload 0 /* this */
            aload 9 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        42: .line 550
            return
        43: .line 553
      StackMap locals: java.lang.String com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aconst_null
            astore 10 /* addEx */
        start local 10 // java.lang.Exception addEx
        44: .line 555
            aload 8 /* newDN */
            aload 3 /* attrs */
            aload 5 /* inputAttrs */
            aload 3 /* attrs */
            if_acmpeq 45
            iconst_1
            goto 46
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes javax.naming.directory.Attributes javax.naming.directory.Attributes java.lang.String com.sun.jndi.ldap.LdapResult java.lang.Exception
      StackMap stack: java.lang.String javax.naming.directory.Attributes
        45: iconst_0
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes javax.naming.directory.Attributes javax.naming.directory.Attributes java.lang.String com.sun.jndi.ldap.LdapResult java.lang.Exception
      StackMap stack: java.lang.String javax.naming.directory.Attributes int
        46: invokestatic com.sun.jndi.ldap.LdapCtx.addRdnAttributes:(Ljava/lang/String;Ljavax/naming/directory/Attributes;Z)Ljavax/naming/directory/Attributes;
            astore 3 /* attrs */
        47: .line 558
            new com.sun.jndi.ldap.LdapEntry
            dup
            aload 8 /* newDN */
            aload 3 /* attrs */
            invokespecial com.sun.jndi.ldap.LdapEntry.<init>:(Ljava/lang/String;Ljavax/naming/directory/Attributes;)V
            astore 11 /* entry */
        start local 11 // com.sun.jndi.ldap.LdapEntry entry
        48: .line 559
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 11 /* entry */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.add:(Lcom/sun/jndi/ldap/LdapEntry;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 9 /* answer */
        49: .line 560
            aload 9 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            ifnull 54
        50: .line 561
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            aload 9 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            invokestatic com.sun.jndi.ldap.LdapCtx.appendVector:(Ljava/util/Vector;Ljava/util/Vector;)Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        end local 11 // com.sun.jndi.ldap.LdapEntry entry
        51: .line 563
            goto 54
      StackMap locals:
      StackMap stack: java.lang.Exception
        52: astore 11 /* ae */
        start local 11 // java.lang.Exception ae
        53: .line 564
            aload 11 /* ae */
            astore 10 /* addEx */
        end local 11 // java.lang.Exception ae
        54: .line 567
      StackMap locals:
      StackMap stack:
            aload 10 /* addEx */
            ifnull 55
            aload 10 /* addEx */
            instanceof com.sun.jndi.ldap.LdapReferralException
            ifeq 56
        55: .line 568
      StackMap locals:
      StackMap stack:
            aload 9 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 62
        56: .line 571
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            new com.sun.jndi.ldap.LdapEntry
            dup
            aload 8 /* newDN */
            aload 7 /* keepAttrs */
            invokespecial com.sun.jndi.ldap.LdapEntry.<init>:(Ljava/lang/String;Ljavax/naming/directory/Attributes;)V
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.add:(Lcom/sun/jndi/ldap/LdapEntry;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
        57: .line 570
            astore 11 /* answer2 */
        start local 11 // com.sun.jndi.ldap.LdapResult answer2
        58: .line 572
            aload 11 /* answer2 */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            ifnull 60
        59: .line 573
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            aload 11 /* answer2 */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            invokestatic com.sun.jndi.ldap.LdapCtx.appendVector:(Ljava/util/Vector;Ljava/util/Vector;)Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        60: .line 576
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 10 /* addEx */
            ifnonnull 62
        61: .line 577
            aload 0 /* this */
            aload 9 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 11 // com.sun.jndi.ldap.LdapResult answer2
        62: .line 582
      StackMap locals:
      StackMap stack:
            aload 10 /* addEx */
            instanceof javax.naming.NamingException
            ifeq 64
        63: .line 583
            aload 10 /* addEx */
            checkcast javax.naming.NamingException
            athrow
        64: .line 584
      StackMap locals:
      StackMap stack:
            aload 10 /* addEx */
            instanceof java.io.IOException
            ifeq 87
        65: .line 585
            aload 10 /* addEx */
            checkcast java.io.IOException
            athrow
        end local 10 // java.lang.Exception addEx
        end local 9 // com.sun.jndi.ldap.LdapResult answer
        end local 8 // java.lang.String newDN
        end local 7 // javax.naming.directory.Attributes keepAttrs
        end local 6 // javax.naming.directory.Attributes origAttrs
        66: .line 588
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 6 /* e */
        start local 6 // com.sun.jndi.ldap.LdapReferralException e
        67: .line 589
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 69
        68: .line 590
            aload 4 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        69: .line 596
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 6 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        70: .line 595
            astore 7 /* refCtx */
        start local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        71: .line 601
            aload 7 /* refCtx */
            aload 1 /* name */
            aload 2 /* obj */
            aload 5 /* inputAttrs */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.rebind:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;)V
        72: .line 610
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        73: .line 602
            return
        74: .line 604
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 8 /* re */
        start local 8 // com.sun.jndi.ldap.LdapReferralException re
        75: .line 605
            aload 8 /* re */
            astore 6 /* e */
        76: .line 610
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        77: .line 606
            goto 69
        end local 8 // com.sun.jndi.ldap.LdapReferralException re
        78: .line 608
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        79: .line 610
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        80: .line 611
            aload 9
            athrow
        end local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 6 // com.sun.jndi.ldap.LdapReferralException e
        81: .line 614
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
        82: .line 615
            new javax.naming.CommunicationException
            dup
            aload 6 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 7 /* e2 */
        start local 7 // javax.naming.NamingException e2
        83: .line 616
            aload 7 /* e2 */
            aload 6 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        84: .line 617
            aload 4 /* cont */
            aload 7 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 7 // javax.naming.NamingException e2
        end local 6 // java.io.IOException e
        85: .line 619
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 6 /* e */
        start local 6 // javax.naming.NamingException e
        86: .line 620
            aload 4 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e
        87: .line 622
      StackMap locals:
      StackMap stack:
            return
        end local 5 // javax.naming.directory.Attributes inputAttrs
        end local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 3 // javax.naming.directory.Attributes attrs
        end local 2 // java.lang.Object obj
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   88     0             this  Lcom/sun/jndi/ldap/LdapCtx;
            0   88     1             name  Ljavax/naming/Name;
            0   88     2              obj  Ljava/lang/Object;
            0   88     3            attrs  Ljavax/naming/directory/Attributes;
            0   88     4             cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            2   88     5       inputAttrs  Ljavax/naming/directory/Attributes;
            3   66     6        origAttrs  Ljavax/naming/directory/Attributes;
           12   66     7        keepAttrs  Ljavax/naming/directory/Attributes;
           15   30     8  origObjectClass  Ljavax/naming/directory/Attribute;
           18   23     9                i  I
           25   29     9                i  I
           38   66     8            newDN  Ljava/lang/String;
           39   66     9           answer  Lcom/sun/jndi/ldap/LdapResult;
           44   66    10            addEx  Ljava/lang/Exception;
           48   51    11            entry  Lcom/sun/jndi/ldap/LdapEntry;
           53   54    11               ae  Ljava/lang/Exception;
           58   62    11          answer2  Lcom/sun/jndi/ldap/LdapResult;
           67   81     6                e  Lcom/sun/jndi/ldap/LdapReferralException;
           71   81     7           refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           75   78     8               re  Lcom/sun/jndi/ldap/LdapReferralException;
           82   85     6                e  Ljava/io/IOException;
           83   85     7               e2  Ljavax/naming/NamingException;
           86   87     6                e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           3     4       5  Class javax.naming.NameNotFoundException
          44    51      52  Class javax.naming.NamingException
          44    51      52  Class java.io.IOException
           2     8      66  Class com.sun.jndi.ldap.LdapReferralException
           9    42      66  Class com.sun.jndi.ldap.LdapReferralException
          43    66      66  Class com.sun.jndi.ldap.LdapReferralException
          71    72      74  Class com.sun.jndi.ldap.LdapReferralException
          71    72      78  any
          74    76      78  any
           2     8      81  Class java.io.IOException
           9    42      81  Class java.io.IOException
          43    66      81  Class java.io.IOException
           2     8      85  Class javax.naming.NamingException
           9    42      85  Class javax.naming.NamingException
          43    66      85  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      name   
      obj    
      attrs  
      cont   

  protected void c_unbind(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 626
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 629
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         2: .line 631
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 3 /* fname */
        start local 3 // java.lang.String fname
         3: .line 632
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 3 /* fname */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.delete:(Ljava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 4 /* answer */
        start local 4 // com.sun.jndi.ldap.LdapResult answer
         4: .line 633
            aload 0 /* this */
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         5: .line 635
            aload 0 /* this */
            aload 3 /* fname */
            aload 4 /* answer */
            invokevirtual com.sun.jndi.ldap.LdapCtx.adjustDeleteStatus:(Ljava/lang/String;Lcom/sun/jndi/ldap/LdapResult;)V
         6: .line 637
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 30
         7: .line 638
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 4 // com.sun.jndi.ldap.LdapResult answer
        end local 3 // java.lang.String fname
         8: .line 641
            goto 30
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
         9: astore 3 /* e */
        start local 3 // com.sun.jndi.ldap.LdapReferralException e
        10: .line 642
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 12
        11: .line 643
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        12: .line 649
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 3 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        13: .line 648
            astore 4 /* refCtx */
        start local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        14: .line 654
            aload 4 /* refCtx */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.unbind:(Ljavax/naming/Name;)V
        15: .line 663
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        16: .line 655
            return
        17: .line 657
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* re */
        start local 5 // com.sun.jndi.ldap.LdapReferralException re
        18: .line 658
            aload 5 /* re */
            astore 3 /* e */
        19: .line 663
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        20: .line 659
            goto 12
        end local 5 // com.sun.jndi.ldap.LdapReferralException re
        21: .line 661
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        22: .line 663
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        23: .line 664
            aload 6
            athrow
        end local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 3 // com.sun.jndi.ldap.LdapReferralException e
        24: .line 667
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        25: .line 668
            new javax.naming.CommunicationException
            dup
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 4 /* e2 */
        start local 4 // javax.naming.NamingException e2
        26: .line 669
            aload 4 /* e2 */
            aload 3 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        27: .line 670
            aload 2 /* cont */
            aload 4 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 4 // javax.naming.NamingException e2
        end local 3 // java.io.IOException e
        28: .line 672
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 3 /* e */
        start local 3 // javax.naming.NamingException e
        29: .line 673
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 3 // javax.naming.NamingException e
        30: .line 675
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   31     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0   31     1    name  Ljavax/naming/Name;
            0   31     2    cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            3    8     3   fname  Ljava/lang/String;
            4    8     4  answer  Lcom/sun/jndi/ldap/LdapResult;
           10   24     3       e  Lcom/sun/jndi/ldap/LdapReferralException;
           14   24     4  refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           18   21     5      re  Lcom/sun/jndi/ldap/LdapReferralException;
           25   28     3       e  Ljava/io/IOException;
           26   28     4      e2  Ljavax/naming/NamingException;
           29   30     3       e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     8       9  Class com.sun.jndi.ldap.LdapReferralException
          14    15      17  Class com.sun.jndi.ldap.LdapReferralException
          14    15      21  any
          17    19      21  any
           1     8      24  Class java.io.IOException
           1     8      28  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected void c_rename(javax.naming.Name, javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=14, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name oldName
        start local 2 // javax.naming.Name newName
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 682
            aconst_null
            astore 8 /* newRDN */
        start local 8 // java.lang.String newRDN
         1: .line 683
            aconst_null
            astore 9 /* newSuperior */
        start local 9 // java.lang.String newSuperior
         2: .line 687
            aload 3 /* cont */
            aload 0 /* this */
            aload 1 /* oldName */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         3: .line 690
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         4: .line 693
            aload 1 /* oldName */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 7
         5: .line 694
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            ldc ""
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 6 /* oldParent */
        start local 6 // javax.naming.Name oldParent
         6: .line 695
            goto 9
        end local 6 // javax.naming.Name oldParent
         7: .line 696
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top top top top java.lang.String java.lang.String
      StackMap stack:
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 1 /* oldName */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 4 /* oldParsed */
        start local 4 // javax.naming.Name oldParsed
         8: .line 697
            aload 4 /* oldParsed */
            aload 4 /* oldParsed */
            invokeinterface javax.naming.Name.size:()I
            iconst_1
            isub
            invokeinterface javax.naming.Name.getPrefix:(I)Ljavax/naming/Name;
            astore 6 /* oldParent */
        end local 4 // javax.naming.Name oldParsed
        start local 6 // javax.naming.Name oldParent
         9: .line 700
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top top javax.naming.Name top java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* newName */
            instanceof javax.naming.CompositeName
            ifeq 12
        10: .line 701
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 2 /* newName */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 5 /* newParsed */
        start local 5 // javax.naming.Name newParsed
        11: .line 702
            goto 13
        end local 5 // javax.naming.Name newParsed
        12: .line 703
      StackMap locals:
      StackMap stack:
            aload 2 /* newName */
            astore 5 /* newParsed */
        start local 5 // javax.naming.Name newParsed
        13: .line 705
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top javax.naming.Name javax.naming.Name top java.lang.String java.lang.String
      StackMap stack:
            aload 5 /* newParsed */
            aload 5 /* newParsed */
            invokeinterface javax.naming.Name.size:()I
            iconst_1
            isub
            invokeinterface javax.naming.Name.getPrefix:(I)Ljavax/naming/Name;
            astore 7 /* newParent */
        start local 7 // javax.naming.Name newParent
        14: .line 707
            aload 6 /* oldParent */
            aload 7 /* newParent */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 20
        15: .line 708
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifne 19
        16: .line 709
            new javax.naming.InvalidNameException
            dup
        17: .line 710
            ldc "LDAPv2 doesn't support changing the parent as a result of a rename"
        18: .line 709
            invokespecial javax.naming.InvalidNameException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 713
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top javax.naming.Name javax.naming.Name javax.naming.Name java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 7 /* newParent */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* newSuperior */
        20: .line 717
      StackMap locals:
      StackMap stack:
            aload 5 /* newParsed */
            aload 5 /* newParsed */
            invokeinterface javax.naming.Name.size:()I
            iconst_1
            isub
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            astore 8 /* newRDN */
        21: .line 719
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 0 /* this */
            aload 1 /* oldName */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
        22: .line 720
            aload 8 /* newRDN */
        23: .line 721
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
        24: .line 722
            aload 9 /* newSuperior */
        25: .line 723
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        26: .line 719
            invokevirtual com.sun.jndi.ldap.LdapClient.moddn:(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 10 /* answer */
        start local 10 // com.sun.jndi.ldap.LdapResult answer
        27: .line 724
            aload 0 /* this */
            aload 10 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        28: .line 726
            aload 10 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 61
        29: .line 727
            aload 0 /* this */
            aload 10 /* answer */
            aload 1 /* oldName */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 10 // com.sun.jndi.ldap.LdapResult answer
        30: .line 730
            goto 61
        end local 7 // javax.naming.Name newParent
        end local 6 // javax.naming.Name oldParent
        end local 5 // javax.naming.Name newParsed
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top top top top java.lang.String java.lang.String
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
        31: astore 10 /* e */
        start local 10 // com.sun.jndi.ldap.LdapReferralException e
        32: .line 733
            aload 10 /* e */
            aload 8 /* newRDN */
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setNewRdn:(Ljava/lang/String;)V
        33: .line 738
            aload 9 /* newSuperior */
            ifnull 41
        34: .line 739
            new javax.naming.PartialResultException
            dup
        35: .line 740
            new java.lang.StringBuilder
            dup
            ldc "Cannot continue referral processing when newSuperior is nonempty: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        36: .line 741
            aload 9 /* newSuperior */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        37: .line 740
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        38: .line 739
            invokespecial javax.naming.PartialResultException.<init>:(Ljava/lang/String;)V
            astore 11 /* pre */
        start local 11 // javax.naming.PartialResultException pre
        39: .line 742
            aload 11 /* pre */
            aload 3 /* cont */
            aload 10 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            invokevirtual javax.naming.PartialResultException.setRootCause:(Ljava/lang/Throwable;)V
        40: .line 743
            aload 3 /* cont */
            aload 11 /* pre */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 11 // javax.naming.PartialResultException pre
        41: .line 746
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 43
        42: .line 747
            aload 3 /* cont */
            aload 10 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        43: .line 753
      StackMap locals:
      StackMap stack:
            aload 10 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        44: .line 752
            astore 11 /* refCtx */
        start local 11 // com.sun.jndi.ldap.LdapReferralContext refCtx
        45: .line 758
            aload 11 /* refCtx */
            aload 1 /* oldName */
            aload 2 /* newName */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.rename:(Ljavax/naming/Name;Ljavax/naming/Name;)V
        46: .line 767
            aload 11 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        47: .line 759
            return
        48: .line 761
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top top top top java.lang.String java.lang.String com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 12 /* re */
        start local 12 // com.sun.jndi.ldap.LdapReferralException re
        49: .line 762
            aload 12 /* re */
            astore 10 /* e */
        50: .line 767
            aload 11 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        51: .line 763
            goto 43
        end local 12 // com.sun.jndi.ldap.LdapReferralException re
        52: .line 765
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 13
        53: .line 767
            aload 11 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        54: .line 768
            aload 13
            athrow
        end local 11 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 10 // com.sun.jndi.ldap.LdapReferralException e
        55: .line 771
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top top top top java.lang.String java.lang.String
      StackMap stack: java.io.IOException
            astore 10 /* e */
        start local 10 // java.io.IOException e
        56: .line 772
            new javax.naming.CommunicationException
            dup
            aload 10 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 11 /* e2 */
        start local 11 // javax.naming.NamingException e2
        57: .line 773
            aload 11 /* e2 */
            aload 10 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        58: .line 774
            aload 3 /* cont */
            aload 11 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 11 // javax.naming.NamingException e2
        end local 10 // java.io.IOException e
        59: .line 776
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 10 /* e */
        start local 10 // javax.naming.NamingException e
        60: .line 777
            aload 3 /* cont */
            aload 10 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 10 // javax.naming.NamingException e
        start local 5 // javax.naming.Name newParsed
        start local 6 // javax.naming.Name oldParent
        start local 7 // javax.naming.Name newParent
        61: .line 779
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top javax.naming.Name javax.naming.Name javax.naming.Name java.lang.String java.lang.String
      StackMap stack:
            return
        end local 9 // java.lang.String newSuperior
        end local 8 // java.lang.String newRDN
        end local 7 // javax.naming.Name newParent
        end local 6 // javax.naming.Name oldParent
        end local 5 // javax.naming.Name newParsed
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // javax.naming.Name newName
        end local 1 // javax.naming.Name oldName
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   62     0         this  Lcom/sun/jndi/ldap/LdapCtx;
            0   62     1      oldName  Ljavax/naming/Name;
            0   62     2      newName  Ljavax/naming/Name;
            0   62     3         cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            8    9     4    oldParsed  Ljavax/naming/Name;
           11   12     5    newParsed  Ljavax/naming/Name;
           13   31     5    newParsed  Ljavax/naming/Name;
           61   62     5    newParsed  Ljavax/naming/Name;
            6    7     6    oldParent  Ljavax/naming/Name;
            9   31     6    oldParent  Ljavax/naming/Name;
           61   62     6    oldParent  Ljavax/naming/Name;
           14   31     7    newParent  Ljavax/naming/Name;
           61   62     7    newParent  Ljavax/naming/Name;
            1   62     8       newRDN  Ljava/lang/String;
            2   62     9  newSuperior  Ljava/lang/String;
           27   30    10       answer  Lcom/sun/jndi/ldap/LdapResult;
           32   55    10            e  Lcom/sun/jndi/ldap/LdapReferralException;
           39   41    11          pre  Ljavax/naming/PartialResultException;
           45   55    11       refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           49   52    12           re  Lcom/sun/jndi/ldap/LdapReferralException;
           56   59    10            e  Ljava/io/IOException;
           57   59    11           e2  Ljavax/naming/NamingException;
           60   61    10            e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           3    30      31  Class com.sun.jndi.ldap.LdapReferralException
          45    46      48  Class com.sun.jndi.ldap.LdapReferralException
          45    46      52  any
          48    50      52  any
           3    30      55  Class java.io.IOException
           3    30      59  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      oldName  
      newName  
      cont     

  protected javax.naming.Context c_createSubcontext(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/Context;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 783
            aload 0 /* this */
            aload 1 /* name */
            aconst_null
            aload 2 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_createSubcontext:(Ljavax/naming/Name;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/DirContext;
            areturn
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    1     1  name  Ljavax/naming/Name;
            0    1     2  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected javax.naming.directory.DirContext c_createSubcontext(javax.naming.Name, javax.naming.directory.Attributes, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/DirContext;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // javax.naming.directory.Attributes attrs
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 789
            aload 3 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 791
            aload 2 /* attrs */
            astore 4 /* inputAttrs */
        start local 4 // javax.naming.directory.Attributes inputAttrs
         2: .line 793
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         3: .line 794
            aload 2 /* attrs */
            ifnonnull 11
         4: .line 796
            new javax.naming.directory.BasicAttribute
            dup
         5: .line 797
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_0
            aaload
         6: .line 798
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            iconst_0
            aaload
         7: .line 796
            invokespecial javax.naming.directory.BasicAttribute.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            astore 5 /* oc */
        start local 5 // javax.naming.directory.Attribute oc
         8: .line 799
            aload 5 /* oc */
            ldc "top"
            invokeinterface javax.naming.directory.Attribute.add:(Ljava/lang/Object;)Z
            pop
         9: .line 800
            new javax.naming.directory.BasicAttributes
            dup
            iconst_1
            invokespecial javax.naming.directory.BasicAttributes.<init>:(Z)V
            astore 2 /* attrs */
        10: .line 801
            aload 2 /* attrs */
            aload 5 /* oc */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        end local 5 // javax.naming.directory.Attribute oc
        11: .line 803
      StackMap locals: javax.naming.directory.Attributes
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 5 /* newDN */
        start local 5 // java.lang.String newDN
        12: .line 804
            aload 5 /* newDN */
            aload 2 /* attrs */
            aload 4 /* inputAttrs */
            aload 2 /* attrs */
            if_acmpeq 13
            iconst_1
            goto 14
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes java.lang.String
      StackMap stack: java.lang.String javax.naming.directory.Attributes
        13: iconst_0
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes java.lang.String
      StackMap stack: java.lang.String javax.naming.directory.Attributes int
        14: invokestatic com.sun.jndi.ldap.LdapCtx.addRdnAttributes:(Ljava/lang/String;Ljavax/naming/directory/Attributes;Z)Ljavax/naming/directory/Attributes;
            astore 2 /* attrs */
        15: .line 806
            new com.sun.jndi.ldap.LdapEntry
            dup
            aload 5 /* newDN */
            aload 2 /* attrs */
            invokespecial com.sun.jndi.ldap.LdapEntry.<init>:(Ljava/lang/String;Ljavax/naming/directory/Attributes;)V
            astore 6 /* entry */
        start local 6 // com.sun.jndi.ldap.LdapEntry entry
        16: .line 808
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 6 /* entry */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.add:(Lcom/sun/jndi/ldap/LdapEntry;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 7 /* answer */
        start local 7 // com.sun.jndi.ldap.LdapResult answer
        17: .line 809
            aload 0 /* this */
            aload 7 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        18: .line 811
            aload 7 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 21
        19: .line 812
            aload 0 /* this */
            aload 7 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        20: .line 813
            aconst_null
            areturn
        21: .line 817
      StackMap locals: com.sun.jndi.ldap.LdapEntry com.sun.jndi.ldap.LdapResult
      StackMap stack:
            new com.sun.jndi.ldap.LdapCtx
            dup
            aload 0 /* this */
            aload 5 /* newDN */
            invokespecial com.sun.jndi.ldap.LdapCtx.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Ljava/lang/String;)V
        22: areturn
        end local 7 // com.sun.jndi.ldap.LdapResult answer
        end local 6 // com.sun.jndi.ldap.LdapEntry entry
        end local 5 // java.lang.String newDN
        23: .line 819
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* e */
        start local 5 // com.sun.jndi.ldap.LdapReferralException e
        24: .line 820
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 26
        25: .line 821
            aload 3 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        26: .line 827
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 5 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        27: .line 826
            astore 6 /* refCtx */
        start local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        28: .line 832
            aload 6 /* refCtx */
            aload 1 /* name */
            aload 4 /* inputAttrs */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.createSubcontext:(Ljavax/naming/Name;Ljavax/naming/directory/Attributes;)Ljavax/naming/directory/DirContext;
            astore 9
        29: .line 840
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        30: .line 832
            aload 9
            areturn
        31: .line 834
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 7 /* re */
        start local 7 // com.sun.jndi.ldap.LdapReferralException re
        32: .line 835
            aload 7 /* re */
            astore 5 /* e */
        33: .line 840
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        34: .line 836
            goto 26
        end local 7 // com.sun.jndi.ldap.LdapReferralException re
        35: .line 838
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        36: .line 840
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        37: .line 841
            aload 8
            athrow
        end local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 5 // com.sun.jndi.ldap.LdapReferralException e
        38: .line 844
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        39: .line 845
            new javax.naming.CommunicationException
            dup
            aload 5 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 6 /* e2 */
        start local 6 // javax.naming.NamingException e2
        40: .line 846
            aload 6 /* e2 */
            aload 5 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        41: .line 847
            aload 3 /* cont */
            aload 6 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e2
        end local 5 // java.io.IOException e
        42: .line 849
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        43: .line 850
            aload 3 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        end local 4 // javax.naming.directory.Attributes inputAttrs
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // javax.naming.directory.Attributes attrs
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   44     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0   44     1        name  Ljavax/naming/Name;
            0   44     2       attrs  Ljavax/naming/directory/Attributes;
            0   44     3        cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            2   44     4  inputAttrs  Ljavax/naming/directory/Attributes;
            8   11     5          oc  Ljavax/naming/directory/Attribute;
           12   23     5       newDN  Ljava/lang/String;
           16   23     6       entry  Lcom/sun/jndi/ldap/LdapEntry;
           17   23     7      answer  Lcom/sun/jndi/ldap/LdapResult;
           24   38     5           e  Lcom/sun/jndi/ldap/LdapReferralException;
           28   38     6      refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           32   35     7          re  Lcom/sun/jndi/ldap/LdapReferralException;
           39   42     5           e  Ljava/io/IOException;
           40   42     6          e2  Ljavax/naming/NamingException;
           43   44     5           e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2    20      23  Class com.sun.jndi.ldap.LdapReferralException
          21    22      23  Class com.sun.jndi.ldap.LdapReferralException
          28    29      31  Class com.sun.jndi.ldap.LdapReferralException
          28    29      35  any
          31    33      35  any
           2    20      38  Class java.io.IOException
          21    22      38  Class java.io.IOException
           2    20      42  Class javax.naming.NamingException
          21    22      42  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      name   
      attrs  
      cont   

  protected void c_destroySubcontext(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 856
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 859
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         2: .line 861
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 3 /* fname */
        start local 3 // java.lang.String fname
         3: .line 862
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 3 /* fname */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.delete:(Ljava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 4 /* answer */
        start local 4 // com.sun.jndi.ldap.LdapResult answer
         4: .line 863
            aload 0 /* this */
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         5: .line 865
            aload 0 /* this */
            aload 3 /* fname */
            aload 4 /* answer */
            invokevirtual com.sun.jndi.ldap.LdapCtx.adjustDeleteStatus:(Ljava/lang/String;Lcom/sun/jndi/ldap/LdapResult;)V
         6: .line 867
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 30
         7: .line 868
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 4 // com.sun.jndi.ldap.LdapResult answer
        end local 3 // java.lang.String fname
         8: .line 871
            goto 30
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
         9: astore 3 /* e */
        start local 3 // com.sun.jndi.ldap.LdapReferralException e
        10: .line 872
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 12
        11: .line 873
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        12: .line 879
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 3 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        13: .line 878
            astore 4 /* refCtx */
        start local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        14: .line 884
            aload 4 /* refCtx */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.destroySubcontext:(Ljavax/naming/Name;)V
        15: .line 891
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        16: .line 885
            return
        17: .line 886
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* re */
        start local 5 // com.sun.jndi.ldap.LdapReferralException re
        18: .line 887
            aload 5 /* re */
            astore 3 /* e */
        19: .line 891
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        20: .line 888
            goto 12
        end local 5 // com.sun.jndi.ldap.LdapReferralException re
        21: .line 889
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        22: .line 891
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        23: .line 892
            aload 6
            athrow
        end local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 3 // com.sun.jndi.ldap.LdapReferralException e
        24: .line 894
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        25: .line 895
            new javax.naming.CommunicationException
            dup
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 4 /* e2 */
        start local 4 // javax.naming.NamingException e2
        26: .line 896
            aload 4 /* e2 */
            aload 3 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        27: .line 897
            aload 2 /* cont */
            aload 4 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 4 // javax.naming.NamingException e2
        end local 3 // java.io.IOException e
        28: .line 898
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 3 /* e */
        start local 3 // javax.naming.NamingException e
        29: .line 899
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 3 // javax.naming.NamingException e
        30: .line 901
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   31     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0   31     1    name  Ljavax/naming/Name;
            0   31     2    cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            3    8     3   fname  Ljava/lang/String;
            4    8     4  answer  Lcom/sun/jndi/ldap/LdapResult;
           10   24     3       e  Lcom/sun/jndi/ldap/LdapReferralException;
           14   24     4  refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           18   21     5      re  Lcom/sun/jndi/ldap/LdapReferralException;
           25   28     3       e  Ljava/io/IOException;
           26   28     4      e2  Ljavax/naming/NamingException;
           29   30     3       e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     8       9  Class com.sun.jndi.ldap.LdapReferralException
          14    15      17  Class com.sun.jndi.ldap.LdapReferralException
          14    15      21  any
          17    19      21  any
           1     8      24  Class java.io.IOException
           1     8      28  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  private static javax.naming.directory.Attributes addRdnAttributes(java.lang.String, javax.naming.directory.Attributes, boolean);
    descriptor: (Ljava/lang/String;Ljavax/naming/directory/Attributes;Z)Ljavax/naming/directory/Attributes;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // java.lang.String dn
        start local 1 // javax.naming.directory.Attributes attrs
        start local 2 // boolean directUpdate
         0: .line 917
            aload 0 /* dn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 918
            aload 1 /* attrs */
            areturn
         2: .line 922
      StackMap locals:
      StackMap stack:
            new javax.naming.ldap.LdapName
            dup
            aload 0 /* dn */
            invokespecial javax.naming.ldap.LdapName.<init>:(Ljava/lang/String;)V
            invokevirtual javax.naming.ldap.LdapName.getRdns:()Ljava/util/List;
            astore 3 /* rdnList */
        start local 3 // java.util.List rdnList
         3: .line 925
            aload 3 /* rdnList */
            aload 3 /* rdnList */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.naming.ldap.Rdn
            astore 4 /* rdn */
        start local 4 // javax.naming.ldap.Rdn rdn
         4: .line 926
            aload 4 /* rdn */
            invokevirtual javax.naming.ldap.Rdn.toAttributes:()Ljavax/naming/directory/Attributes;
            astore 5 /* nameAttrs */
        start local 5 // javax.naming.directory.Attributes nameAttrs
         5: .line 929
            aload 5 /* nameAttrs */
            invokeinterface javax.naming.directory.Attributes.getAll:()Ljavax/naming/NamingEnumeration;
            astore 6 /* enum_ */
        start local 6 // javax.naming.NamingEnumeration enum_
         6: .line 931
            goto 16
         7: .line 932
      StackMap locals: java.lang.String javax.naming.directory.Attributes int java.util.List javax.naming.ldap.Rdn javax.naming.directory.Attributes javax.naming.NamingEnumeration
      StackMap stack:
            aload 6 /* enum_ */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attribute
            astore 7 /* nameAttr */
        start local 7 // javax.naming.directory.Attribute nameAttr
         8: .line 935
            aload 1 /* attrs */
            aload 7 /* nameAttr */
            invokeinterface javax.naming.directory.Attribute.getID:()Ljava/lang/String;
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            ifnonnull 16
         9: .line 946
            aload 1 /* attrs */
            invokeinterface javax.naming.directory.Attributes.isCaseIgnored:()Z
            ifne 12
        10: .line 947
            aload 1 /* attrs */
            invokeinterface javax.naming.directory.Attributes.getIDs:()Ljavax/naming/NamingEnumeration;
            aload 7 /* nameAttr */
            invokeinterface javax.naming.directory.Attribute.getID:()Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapCtx.containsIgnoreCase:(Ljavax/naming/NamingEnumeration;Ljava/lang/String;)Z
            ifeq 12
        11: .line 948
            goto 16
        12: .line 951
      StackMap locals: javax.naming.directory.Attribute
      StackMap stack:
            iload 2 /* directUpdate */
            ifne 15
        13: .line 952
            aload 1 /* attrs */
            invokeinterface javax.naming.directory.Attributes.clone:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attributes
            astore 1 /* attrs */
        14: .line 953
            iconst_1
            istore 2 /* directUpdate */
        15: .line 955
      StackMap locals:
      StackMap stack:
            aload 1 /* attrs */
            aload 7 /* nameAttr */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        end local 7 // javax.naming.directory.Attribute nameAttr
        16: .line 931
      StackMap locals:
      StackMap stack:
            aload 6 /* enum_ */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 7
        17: .line 959
            aload 1 /* attrs */
            areturn
        end local 6 // javax.naming.NamingEnumeration enum_
        end local 5 // javax.naming.directory.Attributes nameAttrs
        end local 4 // javax.naming.ldap.Rdn rdn
        end local 3 // java.util.List rdnList
        end local 2 // boolean directUpdate
        end local 1 // javax.naming.directory.Attributes attrs
        end local 0 // java.lang.String dn
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0            dn  Ljava/lang/String;
            0   18     1         attrs  Ljavax/naming/directory/Attributes;
            0   18     2  directUpdate  Z
            3   18     3       rdnList  Ljava/util/List<Ljavax/naming/ldap/Rdn;>;
            4   18     4           rdn  Ljavax/naming/ldap/Rdn;
            5   18     5     nameAttrs  Ljavax/naming/directory/Attributes;
            6   18     6         enum_  Ljavax/naming/NamingEnumeration<+Ljavax/naming/directory/Attribute;>;
            8   16     7      nameAttr  Ljavax/naming/directory/Attribute;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
              Name  Flags
      dn            
      attrs         
      directUpdate  

  private static boolean containsIgnoreCase(javax.naming.NamingEnumeration<java.lang.String>, java.lang.String);
    descriptor: (Ljavax/naming/NamingEnumeration;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.naming.NamingEnumeration enumStr
        start local 1 // java.lang.String str
         0: .line 967
            goto 4
         1: .line 968
      StackMap locals:
      StackMap stack:
            aload 0 /* enumStr */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* strEntry */
        start local 2 // java.lang.String strEntry
         2: .line 969
            aload 2 /* strEntry */
            aload 1 /* str */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 970
            iconst_1
            ireturn
        end local 2 // java.lang.String strEntry
         4: .line 967
      StackMap locals:
      StackMap stack:
            aload 0 /* enumStr */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 1
         5: .line 973
            iconst_0
            ireturn
        end local 1 // java.lang.String str
        end local 0 // javax.naming.NamingEnumeration enumStr
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0   enumStr  Ljavax/naming/NamingEnumeration<Ljava/lang/String;>;
            0    6     1       str  Ljava/lang/String;
            2    4     2  strEntry  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljavax/naming/NamingEnumeration<Ljava/lang/String;>;Ljava/lang/String;)Z
    MethodParameters:
         Name  Flags
      enumStr  
      str      

  private void adjustDeleteStatus(java.lang.String, com.sun.jndi.ldap.LdapResult);
    descriptor: (Ljava/lang/String;Lcom/sun/jndi/ldap/LdapResult;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String fname
        start local 2 // com.sun.jndi.ldap.LdapResult answer
         0: .line 978
            aload 2 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            bipush 32
            if_icmpne 8
         1: .line 979
            aload 2 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.matchedDN:Ljava/lang/String;
            ifnull 8
         2: .line 983
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 1 /* fname */
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 3 /* orig */
        start local 3 // javax.naming.Name orig
         3: .line 984
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 2 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.matchedDN:Ljava/lang/String;
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 4 /* matched */
        start local 4 // javax.naming.Name matched
         4: .line 985
            aload 3 /* orig */
            invokeinterface javax.naming.Name.size:()I
            aload 4 /* matched */
            invokeinterface javax.naming.Name.size:()I
            isub
            iconst_1
            if_icmpne 8
         5: .line 986
            aload 2 /* answer */
            iconst_0
            putfield com.sun.jndi.ldap.LdapResult.status:I
        end local 4 // javax.naming.Name matched
        end local 3 // javax.naming.Name orig
         6: .line 987
            goto 8
      StackMap locals:
      StackMap stack: javax.naming.NamingException
         7: pop
         8: .line 989
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.sun.jndi.ldap.LdapResult answer
        end local 1 // java.lang.String fname
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lcom/sun/jndi/ldap/LdapCtx;
            0    9     1    fname  Ljava/lang/String;
            0    9     2   answer  Lcom/sun/jndi/ldap/LdapResult;
            3    6     3     orig  Ljavax/naming/Name;
            4    6     4  matched  Ljavax/naming/Name;
      Exception table:
        from    to  target  type
           2     6       7  Class javax.naming.NamingException
    MethodParameters:
        Name  Flags
      fname   
      answer  

  private static <T> java.util.Vector<T> appendVector(java.util.Vector<T>, java.util.Vector<T>);
    descriptor: (Ljava/util/Vector;Ljava/util/Vector;)Ljava/util/Vector;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.util.Vector v1
        start local 1 // java.util.Vector v2
         0: .line 996
            aload 0 /* v1 */
            ifnonnull 3
         1: .line 997
            aload 1 /* v2 */
            astore 0 /* v1 */
         2: .line 998
            goto 8
         3: .line 999
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 7
         5: .line 1000
      StackMap locals: int
      StackMap stack:
            aload 0 /* v1 */
            aload 1 /* v2 */
            iload 2 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         6: .line 999
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 1 /* v2 */
            invokevirtual java.util.Vector.size:()I
            if_icmplt 5
        end local 2 // int i
         8: .line 1003
      StackMap locals:
      StackMap stack:
            aload 0 /* v1 */
            areturn
        end local 1 // java.util.Vector v2
        end local 0 // java.util.Vector v1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0    v1  Ljava/util/Vector<TT;>;
            0    9     1    v2  Ljava/util/Vector<TT;>;
            4    8     2     i  I
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Vector<TT;>;Ljava/util/Vector<TT;>;)Ljava/util/Vector<TT;>;
    MethodParameters:
      Name  Flags
      v1    
      v2    

  protected java.lang.Object c_lookupLink(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1012
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_lookup:(Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljava/lang/Object;
            areturn
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    1     1  name  Ljavax/naming/Name;
            0    1     2  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected java.lang.Object c_lookup(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1017
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1018
            aconst_null
            astore 3 /* obj */
        start local 3 // java.lang.Object obj
         2: .line 1022
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 5 /* cons */
        start local 5 // javax.naming.directory.SearchControls cons
         3: .line 1023
            aload 5 /* cons */
            iconst_0
            invokevirtual javax.naming.directory.SearchControls.setSearchScope:(I)V
         4: .line 1024
            aload 5 /* cons */
            aconst_null
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
         5: .line 1025
            aload 5 /* cons */
            iconst_1
            invokevirtual javax.naming.directory.SearchControls.setReturningObjFlag:(Z)V
         6: .line 1027
            aload 0 /* this */
            aload 1 /* name */
            ldc "(objectClass=*)"
            aload 5 /* cons */
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearchOnce:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Z)Lcom/sun/jndi/ldap/LdapResult;
            astore 6 /* answer */
        start local 6 // com.sun.jndi.ldap.LdapResult answer
         7: .line 1028
            aload 0 /* this */
            aload 6 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         8: .line 1032
            aload 6 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 10
         9: .line 1033
            aload 0 /* this */
            aload 6 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        10: .line 1036
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object top javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 6 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            ifnull 11
            aload 6 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            iconst_1
            if_icmpeq 13
        11: .line 1038
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.BasicAttributes
            dup
            iconst_1
            invokespecial javax.naming.directory.BasicAttributes.<init>:(Z)V
            astore 4 /* attrs */
        start local 4 // javax.naming.directory.Attributes attrs
        12: .line 1039
            goto 18
        end local 4 // javax.naming.directory.Attributes attrs
        13: .line 1040
      StackMap locals:
      StackMap stack:
            aload 6 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast com.sun.jndi.ldap.LdapEntry
            astore 7 /* entry */
        start local 7 // com.sun.jndi.ldap.LdapEntry entry
        14: .line 1041
            aload 7 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.attributes:Ljavax/naming/directory/Attributes;
            astore 4 /* attrs */
        start local 4 // javax.naming.directory.Attributes attrs
        15: .line 1043
            aload 7 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.respCtls:Ljava/util/Vector;
            astore 8 /* entryCtls */
        start local 8 // java.util.Vector entryCtls
        16: .line 1044
            aload 8 /* entryCtls */
            ifnull 18
        17: .line 1045
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            aload 8 /* entryCtls */
            invokestatic com.sun.jndi.ldap.LdapCtx.appendVector:(Ljava/util/Vector;Ljava/util/Vector;)Ljava/util/Vector;
            pop
        end local 8 // java.util.Vector entryCtls
        end local 7 // com.sun.jndi.ldap.LdapEntry entry
        18: .line 1049
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object javax.naming.directory.Attributes javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 4 /* attrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_2
            aaload
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            ifnull 20
        19: .line 1051
            aload 4 /* attrs */
            invokestatic com.sun.jndi.ldap.Obj.decodeObject:(Ljavax/naming/directory/Attributes;)Ljava/lang/Object;
            astore 3 /* obj */
        20: .line 1053
      StackMap locals:
      StackMap stack:
            aload 3 /* obj */
            ifnonnull 40
        21: .line 1054
            new com.sun.jndi.ldap.LdapCtx
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            invokespecial com.sun.jndi.ldap.LdapCtx.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Ljava/lang/String;)V
            astore 3 /* obj */
        end local 6 // com.sun.jndi.ldap.LdapResult answer
        end local 5 // javax.naming.directory.SearchControls cons
        22: .line 1056
            goto 40
        end local 4 // javax.naming.directory.Attributes attrs
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
        23: astore 5 /* e */
        start local 5 // com.sun.jndi.ldap.LdapReferralException e
        24: .line 1057
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 26
        25: .line 1058
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        26: .line 1064
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object top com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 5 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        27: .line 1063
            astore 6 /* refCtx */
        start local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        28: .line 1068
            aload 6 /* refCtx */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.lookup:(Ljavax/naming/Name;)Ljava/lang/Object;
            astore 9
        29: .line 1076
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        30: .line 1068
            aload 9
            areturn
        31: .line 1070
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object top com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 7 /* re */
        start local 7 // com.sun.jndi.ldap.LdapReferralException re
        32: .line 1071
            aload 7 /* re */
            astore 5 /* e */
        33: .line 1076
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        34: .line 1072
            goto 26
        end local 7 // com.sun.jndi.ldap.LdapReferralException re
        35: .line 1074
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        36: .line 1076
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        37: .line 1077
            aload 8
            athrow
        end local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 5 // com.sun.jndi.ldap.LdapReferralException e
        38: .line 1080
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        39: .line 1081
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        start local 4 // javax.naming.directory.Attributes attrs
        40: .line 1085
      StackMap locals: javax.naming.directory.Attributes
      StackMap stack:
            aload 3 /* obj */
            aload 1 /* name */
        41: .line 1086
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 4 /* attrs */
        42: .line 1085
            invokestatic javax.naming.spi.DirectoryManager.getObjectInstance:(Ljava/lang/Object;Ljavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable;Ljavax/naming/directory/Attributes;)Ljava/lang/Object;
        43: areturn
        44: .line 1088
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        45: .line 1089
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        46: .line 1091
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 5 /* e */
        start local 5 // java.lang.Exception e
        47: .line 1092
            new javax.naming.NamingException
            dup
        48: .line 1093
            ldc "problem generating object using object factory"
        49: .line 1092
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 6 /* e2 */
        start local 6 // javax.naming.NamingException e2
        50: .line 1094
            aload 6 /* e2 */
            aload 5 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        51: .line 1095
            aload 2 /* cont */
            aload 6 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e2
        end local 5 // java.lang.Exception e
        end local 4 // javax.naming.directory.Attributes attrs
        end local 3 // java.lang.Object obj
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   52     0       this  Lcom/sun/jndi/ldap/LdapCtx;
            0   52     1       name  Ljavax/naming/Name;
            0   52     2       cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            2   52     3        obj  Ljava/lang/Object;
           12   13     4      attrs  Ljavax/naming/directory/Attributes;
           15   23     4      attrs  Ljavax/naming/directory/Attributes;
           40   52     4      attrs  Ljavax/naming/directory/Attributes;
            3   22     5       cons  Ljavax/naming/directory/SearchControls;
            7   22     6     answer  Lcom/sun/jndi/ldap/LdapResult;
           14   18     7      entry  Lcom/sun/jndi/ldap/LdapEntry;
           16   18     8  entryCtls  Ljava/util/Vector<Ljavax/naming/ldap/Control;>;
           24   38     5          e  Lcom/sun/jndi/ldap/LdapReferralException;
           28   38     6     refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           32   35     7         re  Lcom/sun/jndi/ldap/LdapReferralException;
           39   40     5          e  Ljavax/naming/NamingException;
           45   46     5          e  Ljavax/naming/NamingException;
           47   52     5          e  Ljava/lang/Exception;
           50   52     6         e2  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2    22      23  Class com.sun.jndi.ldap.LdapReferralException
          28    29      31  Class com.sun.jndi.ldap.LdapReferralException
          28    29      35  any
          31    33      35  any
           2    22      38  Class javax.naming.NamingException
          40    43      44  Class javax.naming.NamingException
          40    43      46  Class java.lang.Exception
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected javax.naming.NamingEnumeration<javax.naming.NameClassPair> c_list(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1101
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 3 /* cons */
        start local 3 // javax.naming.directory.SearchControls cons
         1: .line 1102
            iconst_2
            anewarray java.lang.String
            astore 4 /* classAttrs */
        start local 4 // java.lang.String[] classAttrs
         2: .line 1104
            aload 4 /* classAttrs */
            iconst_0
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_0
            aaload
            aastore
         3: .line 1105
            aload 4 /* classAttrs */
            iconst_1
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_2
            aaload
            aastore
         4: .line 1106
            aload 3 /* cons */
            aload 4 /* classAttrs */
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
         5: .line 1109
            aload 3 /* cons */
            iconst_1
            invokevirtual javax.naming.directory.SearchControls.setReturningObjFlag:(Z)V
         6: .line 1111
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         7: .line 1113
            aconst_null
            astore 5 /* answer */
        start local 5 // com.sun.jndi.ldap.LdapResult answer
         8: .line 1116
            aload 0 /* this */
            aload 1 /* name */
            ldc "(objectClass=*)"
            aload 3 /* cons */
            iconst_1
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearch:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZ)Lcom/sun/jndi/ldap/LdapResult;
            astore 5 /* answer */
         9: .line 1119
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifne 11
        10: .line 1120
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnull 12
        11: .line 1121
      StackMap locals: javax.naming.directory.SearchControls java.lang.String[] com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 0 /* this */
            aload 5 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        12: .line 1124
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapNamingEnumeration
            dup
            aload 0 /* this */
            aload 5 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapNamingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        13: areturn
        14: .line 1126
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 6 /* e */
        start local 6 // com.sun.jndi.ldap.LdapReferralException e
        15: .line 1127
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 17
        16: .line 1128
            aload 2 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        17: .line 1134
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 6 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        18: .line 1133
            astore 7 /* refCtx */
        start local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        19: .line 1139
            aload 7 /* refCtx */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.list:(Ljavax/naming/Name;)Ljavax/naming/NamingEnumeration;
            astore 10
        20: .line 1147
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        21: .line 1139
            aload 10
            areturn
        22: .line 1141
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls java.lang.String[] com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 8 /* re */
        start local 8 // com.sun.jndi.ldap.LdapReferralException re
        23: .line 1142
            aload 8 /* re */
            astore 6 /* e */
        24: .line 1147
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        25: .line 1143
            goto 17
        end local 8 // com.sun.jndi.ldap.LdapReferralException re
        26: .line 1145
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        27: .line 1147
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        28: .line 1148
            aload 9
            athrow
        end local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 6 // com.sun.jndi.ldap.LdapReferralException e
        29: .line 1151
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls java.lang.String[] com.sun.jndi.ldap.LdapResult
      StackMap stack: javax.naming.LimitExceededException
            astore 6 /* e */
        start local 6 // javax.naming.LimitExceededException e
        30: .line 1153
            new com.sun.jndi.ldap.LdapNamingEnumeration
            dup
            aload 0 /* this */
            aload 5 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapNamingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        31: .line 1152
            astore 7 /* res */
        start local 7 // com.sun.jndi.ldap.LdapNamingEnumeration res
        32: .line 1155
            aload 7 /* res */
        33: .line 1156
            aload 2 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            checkcast javax.naming.LimitExceededException
        34: .line 1155
            invokevirtual com.sun.jndi.ldap.LdapNamingEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        35: .line 1157
            aload 7 /* res */
            areturn
        end local 7 // com.sun.jndi.ldap.LdapNamingEnumeration res
        end local 6 // javax.naming.LimitExceededException e
        36: .line 1159
      StackMap locals:
      StackMap stack: javax.naming.PartialResultException
            astore 6 /* e */
        start local 6 // javax.naming.PartialResultException e
        37: .line 1161
            new com.sun.jndi.ldap.LdapNamingEnumeration
            dup
            aload 0 /* this */
            aload 5 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapNamingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        38: .line 1160
            astore 7 /* res */
        start local 7 // com.sun.jndi.ldap.LdapNamingEnumeration res
        39: .line 1163
            aload 7 /* res */
        40: .line 1164
            aload 2 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            checkcast javax.naming.PartialResultException
        41: .line 1163
            invokevirtual com.sun.jndi.ldap.LdapNamingEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        42: .line 1165
            aload 7 /* res */
            areturn
        end local 7 // com.sun.jndi.ldap.LdapNamingEnumeration res
        end local 6 // javax.naming.PartialResultException e
        43: .line 1167
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 6 /* e */
        start local 6 // javax.naming.NamingException e
        44: .line 1168
            aload 2 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e
        end local 5 // com.sun.jndi.ldap.LdapResult answer
        end local 4 // java.lang.String[] classAttrs
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   45     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0   45     1        name  Ljavax/naming/Name;
            0   45     2        cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            1   45     3        cons  Ljavax/naming/directory/SearchControls;
            2   45     4  classAttrs  [Ljava/lang/String;
            8   45     5      answer  Lcom/sun/jndi/ldap/LdapResult;
           15   29     6           e  Lcom/sun/jndi/ldap/LdapReferralException;
           19   29     7      refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           23   26     8          re  Lcom/sun/jndi/ldap/LdapReferralException;
           30   36     6           e  Ljavax/naming/LimitExceededException;
           32   36     7         res  Lcom/sun/jndi/ldap/LdapNamingEnumeration;
           37   43     6           e  Ljavax/naming/PartialResultException;
           39   43     7         res  Lcom/sun/jndi/ldap/LdapNamingEnumeration;
           44   45     6           e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           8    13      14  Class com.sun.jndi.ldap.LdapReferralException
          19    20      22  Class com.sun.jndi.ldap.LdapReferralException
          19    20      26  any
          22    24      26  any
           8    13      29  Class javax.naming.LimitExceededException
           8    13      36  Class javax.naming.PartialResultException
           8    13      43  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration<Ljavax/naming/NameClassPair;>;
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected javax.naming.NamingEnumeration<javax.naming.Binding> c_listBindings(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1175
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 3 /* cons */
        start local 3 // javax.naming.directory.SearchControls cons
         1: .line 1176
            aload 3 /* cons */
            aconst_null
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
         2: .line 1177
            aload 3 /* cons */
            iconst_1
            invokevirtual javax.naming.directory.SearchControls.setReturningObjFlag:(Z)V
         3: .line 1179
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         4: .line 1181
            aconst_null
            astore 4 /* answer */
        start local 4 // com.sun.jndi.ldap.LdapResult answer
         5: .line 1184
            aload 0 /* this */
            aload 1 /* name */
            ldc "(objectClass=*)"
            aload 3 /* cons */
            iconst_1
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearch:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZ)Lcom/sun/jndi/ldap/LdapResult;
            astore 4 /* answer */
         6: .line 1187
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifne 8
         7: .line 1188
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnull 9
         8: .line 1189
      StackMap locals: javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
         9: .line 1192
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapBindingEnumeration
            dup
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapBindingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        10: areturn
        11: .line 1194
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* e */
        start local 5 // com.sun.jndi.ldap.LdapReferralException e
        12: .line 1195
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 14
        13: .line 1196
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        14: .line 1202
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 5 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        15: .line 1201
            astore 6 /* refCtx */
        start local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        16: .line 1207
            aload 6 /* refCtx */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.listBindings:(Ljavax/naming/Name;)Ljavax/naming/NamingEnumeration;
            astore 9
        17: .line 1215
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        18: .line 1207
            aload 9
            areturn
        19: .line 1209
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 7 /* re */
        start local 7 // com.sun.jndi.ldap.LdapReferralException re
        20: .line 1210
            aload 7 /* re */
            astore 5 /* e */
        21: .line 1215
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        22: .line 1211
            goto 14
        end local 7 // com.sun.jndi.ldap.LdapReferralException re
        23: .line 1213
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        24: .line 1215
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        25: .line 1216
            aload 8
            athrow
        end local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 5 // com.sun.jndi.ldap.LdapReferralException e
        26: .line 1218
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult
      StackMap stack: javax.naming.LimitExceededException
            astore 5 /* e */
        start local 5 // javax.naming.LimitExceededException e
        27: .line 1220
            new com.sun.jndi.ldap.LdapBindingEnumeration
            dup
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapBindingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        28: .line 1219
            astore 6 /* res */
        start local 6 // com.sun.jndi.ldap.LdapBindingEnumeration res
        29: .line 1222
            aload 6 /* res */
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            invokevirtual com.sun.jndi.ldap.LdapBindingEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        30: .line 1223
            aload 6 /* res */
            areturn
        end local 6 // com.sun.jndi.ldap.LdapBindingEnumeration res
        end local 5 // javax.naming.LimitExceededException e
        31: .line 1225
      StackMap locals:
      StackMap stack: javax.naming.PartialResultException
            astore 5 /* e */
        start local 5 // javax.naming.PartialResultException e
        32: .line 1227
            new com.sun.jndi.ldap.LdapBindingEnumeration
            dup
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapBindingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        33: .line 1226
            astore 6 /* res */
        start local 6 // com.sun.jndi.ldap.LdapBindingEnumeration res
        34: .line 1229
            aload 6 /* res */
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            invokevirtual com.sun.jndi.ldap.LdapBindingEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        35: .line 1230
            aload 6 /* res */
            areturn
        end local 6 // com.sun.jndi.ldap.LdapBindingEnumeration res
        end local 5 // javax.naming.PartialResultException e
        36: .line 1232
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        37: .line 1233
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        end local 4 // com.sun.jndi.ldap.LdapResult answer
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   38     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0   38     1    name  Ljavax/naming/Name;
            0   38     2    cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            1   38     3    cons  Ljavax/naming/directory/SearchControls;
            5   38     4  answer  Lcom/sun/jndi/ldap/LdapResult;
           12   26     5       e  Lcom/sun/jndi/ldap/LdapReferralException;
           16   26     6  refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           20   23     7      re  Lcom/sun/jndi/ldap/LdapReferralException;
           27   31     5       e  Ljavax/naming/LimitExceededException;
           29   31     6     res  Lcom/sun/jndi/ldap/LdapBindingEnumeration;
           32   36     5       e  Ljavax/naming/PartialResultException;
           34   36     6     res  Lcom/sun/jndi/ldap/LdapBindingEnumeration;
           37   38     5       e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           5    10      11  Class com.sun.jndi.ldap.LdapReferralException
          16    17      19  Class com.sun.jndi.ldap.LdapReferralException
          16    17      23  any
          19    21      23  any
           5    10      26  Class javax.naming.LimitExceededException
           5    10      31  Class javax.naming.PartialResultException
           5    10      36  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration<Ljavax/naming/Binding;>;
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected javax.naming.NameParser c_getNameParser(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NameParser;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1244
            aload 2 /* cont */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setSuccess:()V
         1: .line 1245
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            areturn
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1  name  Ljavax/naming/Name;
            0    2     2  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  public java.lang.String getNameInNamespace();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 1249
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;

  public javax.naming.Name composeName(javax.naming.Name, javax.naming.Name);
    descriptor: (Ljavax/naming/Name;Ljavax/naming/Name;)Ljavax/naming/Name;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // javax.naming.Name prefix
         0: .line 1258
            aload 1 /* name */
            instanceof javax.naming.ldap.LdapName
            ifeq 4
            aload 2 /* prefix */
            instanceof javax.naming.ldap.LdapName
            ifeq 4
         1: .line 1259
            aload 2 /* prefix */
            invokeinterface javax.naming.Name.clone:()Ljava/lang/Object;
            checkcast javax.naming.Name
            astore 3 /* result */
        start local 3 // javax.naming.Name result
         2: .line 1260
            aload 3 /* result */
            aload 1 /* name */
            invokeinterface javax.naming.Name.addAll:(Ljavax/naming/Name;)Ljavax/naming/Name;
            pop
         3: .line 1261
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            aload 3 /* result */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual javax.naming.CompositeName.add:(Ljava/lang/String;)Ljavax/naming/Name;
            areturn
        end local 3 // javax.naming.Name result
         4: .line 1263
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            instanceof javax.naming.CompositeName
            ifne 6
         5: .line 1264
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            aload 1 /* name */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual javax.naming.CompositeName.add:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 1 /* name */
         6: .line 1266
      StackMap locals:
      StackMap stack:
            aload 2 /* prefix */
            instanceof javax.naming.CompositeName
            ifne 8
         7: .line 1267
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            aload 2 /* prefix */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual javax.naming.CompositeName.add:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 2 /* prefix */
         8: .line 1270
      StackMap locals:
      StackMap stack:
            aload 2 /* prefix */
            invokeinterface javax.naming.Name.size:()I
            iconst_1
            isub
            istore 4 /* prefixLast */
        start local 4 // int prefixLast
         9: .line 1272
            aload 1 /* name */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifne 11
            aload 2 /* prefix */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifne 11
        10: .line 1273
            aload 1 /* name */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 11
            aload 2 /* prefix */
            iload 4 /* prefixLast */
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 12
        11: .line 1274
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name top int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* prefix */
            invokespecial com.sun.jndi.toolkit.ctx.ComponentDirContext.composeName:(Ljavax/naming/Name;Ljavax/naming/Name;)Ljavax/naming/Name;
            areturn
        12: .line 1277
      StackMap locals:
      StackMap stack:
            aload 2 /* prefix */
            invokeinterface javax.naming.Name.clone:()Ljava/lang/Object;
            checkcast javax.naming.Name
            astore 3 /* result */
        start local 3 // javax.naming.Name result
        13: .line 1278
            aload 3 /* result */
            aload 1 /* name */
            invokeinterface javax.naming.Name.addAll:(Ljavax/naming/Name;)Ljavax/naming/Name;
            pop
        14: .line 1280
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.parentIsLdapCtx:Z
            ifeq 21
        15: .line 1281
            aload 3 /* result */
            iload 4 /* prefixLast */
            iconst_1
            iadd
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
        16: .line 1282
            aload 3 /* result */
            iload 4 /* prefixLast */
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
        17: .line 1281
            invokestatic com.sun.jndi.ldap.LdapCtx.concatNames:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* ldapComp */
        start local 5 // java.lang.String ldapComp
        18: .line 1283
            aload 3 /* result */
            iload 4 /* prefixLast */
            iconst_1
            iadd
            invokeinterface javax.naming.Name.remove:(I)Ljava/lang/Object;
            pop
        19: .line 1284
            aload 3 /* result */
            iload 4 /* prefixLast */
            invokeinterface javax.naming.Name.remove:(I)Ljava/lang/Object;
            pop
        20: .line 1285
            aload 3 /* result */
            iload 4 /* prefixLast */
            aload 5 /* ldapComp */
            invokeinterface javax.naming.Name.add:(ILjava/lang/String;)Ljavax/naming/Name;
            pop
        end local 5 // java.lang.String ldapComp
        21: .line 1287
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name javax.naming.Name int
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 4 // int prefixLast
        end local 3 // javax.naming.Name result
        end local 2 // javax.naming.Name prefix
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   22     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0   22     1        name  Ljavax/naming/Name;
            0   22     2      prefix  Ljavax/naming/Name;
            2    4     3      result  Ljavax/naming/Name;
           13   22     3      result  Ljavax/naming/Name;
            9   22     4  prefixLast  I
           18   21     5    ldapComp  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      name    
      prefix  

  private java.lang.String fullyQualifiedName(javax.naming.Name);
    descriptor: (Ljavax/naming/Name;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name rel
         0: .line 1291
            aload 1 /* rel */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 2
         1: .line 1292
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            goto 3
         2: .line 1293
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* rel */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljava/lang/String;)Ljava/lang/String;
         3: .line 1291
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 1 // javax.naming.Name rel
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    4     1   rel  Ljavax/naming/Name;
    MethodParameters:
      Name  Flags
      rel   

  private java.lang.String fullyQualifiedName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String rel
         0: .line 1297
            aload 1 /* rel */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapCtx.concatNames:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String rel
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    1     1   rel  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      rel   

  private static java.lang.String concatNames(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String lesser
        start local 1 // java.lang.String greater
         0: .line 1302
            aload 0 /* lesser */
            ifnull 1
            aload 0 /* lesser */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 1303
      StackMap locals:
      StackMap stack:
            aload 1 /* greater */
            areturn
         2: .line 1304
      StackMap locals:
      StackMap stack:
            aload 1 /* greater */
            ifnull 3
            aload 1 /* greater */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 4
         3: .line 1305
      StackMap locals:
      StackMap stack:
            aload 0 /* lesser */
            areturn
         4: .line 1307
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* lesser */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* greater */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.String greater
        end local 0 // java.lang.String lesser
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0   lesser  Ljava/lang/String;
            0    5     1  greater  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      lesser   
      greater  

  protected javax.naming.directory.Attributes c_getAttributes(javax.naming.Name, java.lang.String[], com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/Attributes;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String[] attrIds
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1317
            aload 3 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1319
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 4 /* cons */
        start local 4 // javax.naming.directory.SearchControls cons
         2: .line 1320
            aload 4 /* cons */
            iconst_0
            invokevirtual javax.naming.directory.SearchControls.setSearchScope:(I)V
         3: .line 1321
            aload 4 /* cons */
            aload 2 /* attrIds */
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
         4: .line 1325
            aload 0 /* this */
            aload 1 /* name */
            ldc "(objectClass=*)"
            aload 4 /* cons */
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearchOnce:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Z)Lcom/sun/jndi/ldap/LdapResult;
         5: .line 1324
            astore 5 /* answer */
        start local 5 // com.sun.jndi.ldap.LdapResult answer
         6: .line 1326
            aload 0 /* this */
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         7: .line 1328
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 9
         8: .line 1329
            aload 0 /* this */
            aload 5 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
         9: .line 1332
      StackMap locals: javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            ifnull 10
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            iconst_1
            if_icmpeq 12
        10: .line 1333
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.BasicAttributes
            dup
            iconst_1
            invokespecial javax.naming.directory.BasicAttributes.<init>:(Z)V
        11: areturn
        12: .line 1337
      StackMap locals:
      StackMap stack:
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast com.sun.jndi.ldap.LdapEntry
            astore 6 /* entry */
        start local 6 // com.sun.jndi.ldap.LdapEntry entry
        13: .line 1339
            aload 6 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.respCtls:Ljava/util/Vector;
            astore 7 /* entryCtls */
        start local 7 // java.util.Vector entryCtls
        14: .line 1340
            aload 7 /* entryCtls */
            ifnull 16
        15: .line 1341
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            aload 7 /* entryCtls */
            invokestatic com.sun.jndi.ldap.LdapCtx.appendVector:(Ljava/util/Vector;Ljava/util/Vector;)Ljava/util/Vector;
            pop
        16: .line 1345
      StackMap locals: com.sun.jndi.ldap.LdapEntry java.util.Vector
      StackMap stack:
            aload 0 /* this */
            aload 6 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.attributes:Ljavax/naming/directory/Attributes;
            aload 1 /* name */
            invokeinterface javax.naming.Name.clone:()Ljava/lang/Object;
            checkcast javax.naming.Name
            invokevirtual com.sun.jndi.ldap.LdapCtx.setParents:(Ljavax/naming/directory/Attributes;Ljavax/naming/Name;)V
        17: .line 1347
            aload 6 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.attributes:Ljavax/naming/directory/Attributes;
        18: areturn
        end local 7 // java.util.Vector entryCtls
        end local 6 // com.sun.jndi.ldap.LdapEntry entry
        end local 5 // com.sun.jndi.ldap.LdapResult answer
        19: .line 1349
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String[] com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* e */
        start local 5 // com.sun.jndi.ldap.LdapReferralException e
        20: .line 1350
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 22
        21: .line 1351
            aload 3 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        22: .line 1357
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 5 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        23: .line 1356
            astore 6 /* refCtx */
        start local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        24: .line 1362
            aload 6 /* refCtx */
            aload 1 /* name */
            aload 2 /* attrIds */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.getAttributes:(Ljavax/naming/Name;[Ljava/lang/String;)Ljavax/naming/directory/Attributes;
            astore 9
        25: .line 1370
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        26: .line 1362
            aload 9
            areturn
        27: .line 1364
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String[] com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 7 /* re */
        start local 7 // com.sun.jndi.ldap.LdapReferralException re
        28: .line 1365
            aload 7 /* re */
            astore 5 /* e */
        29: .line 1370
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        30: .line 1366
            goto 22
        end local 7 // com.sun.jndi.ldap.LdapReferralException re
        31: .line 1368
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        32: .line 1370
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        33: .line 1371
            aload 8
            athrow
        end local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 5 // com.sun.jndi.ldap.LdapReferralException e
        34: .line 1374
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String[] com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        35: .line 1375
            aload 3 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        end local 4 // javax.naming.directory.SearchControls cons
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // java.lang.String[] attrIds
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   36     0       this  Lcom/sun/jndi/ldap/LdapCtx;
            0   36     1       name  Ljavax/naming/Name;
            0   36     2    attrIds  [Ljava/lang/String;
            0   36     3       cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            2   36     4       cons  Ljavax/naming/directory/SearchControls;
            6   19     5     answer  Lcom/sun/jndi/ldap/LdapResult;
           13   19     6      entry  Lcom/sun/jndi/ldap/LdapEntry;
           14   19     7  entryCtls  Ljava/util/Vector<Ljavax/naming/ldap/Control;>;
           20   34     5          e  Lcom/sun/jndi/ldap/LdapReferralException;
           24   34     6     refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           28   31     7         re  Lcom/sun/jndi/ldap/LdapReferralException;
           35   36     5          e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           4    11      19  Class com.sun.jndi.ldap.LdapReferralException
          12    18      19  Class com.sun.jndi.ldap.LdapReferralException
          24    25      27  Class com.sun.jndi.ldap.LdapReferralException
          24    25      31  any
          27    29      31  any
           4    11      34  Class javax.naming.NamingException
          12    18      34  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      name     
      attrIds  
      cont     

  protected void c_modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;ILjavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=11, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // int mod_op
        start local 3 // javax.naming.directory.Attributes attrs
        start local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1383
            aload 4 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1386
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         2: .line 1388
            aload 3 /* attrs */
            ifnull 3
            aload 3 /* attrs */
            invokeinterface javax.naming.directory.Attributes.size:()I
            ifne 4
         3: .line 1389
      StackMap locals:
      StackMap stack:
            return
         4: .line 1391
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 5 /* newDN */
        start local 5 // java.lang.String newDN
         5: .line 1392
            iload 2 /* mod_op */
            invokestatic com.sun.jndi.ldap.LdapCtx.convertToLdapModCode:(I)I
            istore 6 /* jmod_op */
        start local 6 // int jmod_op
         6: .line 1395
            aload 3 /* attrs */
            invokeinterface javax.naming.directory.Attributes.size:()I
            newarray 10
            astore 7 /* jmods */
        start local 7 // int[] jmods
         7: .line 1396
            aload 3 /* attrs */
            invokeinterface javax.naming.directory.Attributes.size:()I
            anewarray javax.naming.directory.Attribute
            astore 8 /* jattrs */
        start local 8 // javax.naming.directory.Attribute[] jattrs
         8: .line 1398
            aload 3 /* attrs */
            invokeinterface javax.naming.directory.Attributes.getAll:()Ljavax/naming/NamingEnumeration;
            astore 9 /* ae */
        start local 9 // javax.naming.NamingEnumeration ae
         9: .line 1399
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        10: goto 14
        11: .line 1400
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation java.lang.String int int[] javax.naming.directory.Attribute[] javax.naming.NamingEnumeration int
      StackMap stack:
            aload 7 /* jmods */
            iload 10 /* i */
            iload 6 /* jmod_op */
            iastore
        12: .line 1401
            aload 8 /* jattrs */
            iload 10 /* i */
            aload 9 /* ae */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attribute
            aastore
        13: .line 1399
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 10 /* i */
            aload 7 /* jmods */
            arraylength
            if_icmpge 15
            aload 9 /* ae */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 11
        end local 10 // int i
        15: .line 1404
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 5 /* newDN */
            aload 7 /* jmods */
            aload 8 /* jattrs */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.modify:(Ljava/lang/String;[I[Ljavax/naming/directory/Attribute;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 10 /* answer */
        start local 10 // com.sun.jndi.ldap.LdapResult answer
        16: .line 1405
            aload 0 /* this */
            aload 10 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        17: .line 1407
            aload 10 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 41
        18: .line 1408
            aload 0 /* this */
            aload 10 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        19: .line 1409
            return
        end local 10 // com.sun.jndi.ldap.LdapResult answer
        end local 9 // javax.naming.NamingEnumeration ae
        end local 8 // javax.naming.directory.Attribute[] jattrs
        end local 7 // int[] jmods
        end local 6 // int jmod_op
        end local 5 // java.lang.String newDN
        20: .line 1412
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* e */
        start local 5 // com.sun.jndi.ldap.LdapReferralException e
        21: .line 1413
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 23
        22: .line 1414
            aload 4 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        23: .line 1420
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 5 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        24: .line 1419
            astore 6 /* refCtx */
        start local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        25: .line 1425
            aload 6 /* refCtx */
            aload 1 /* name */
            iload 2 /* mod_op */
            aload 3 /* attrs */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.modifyAttributes:(Ljavax/naming/Name;ILjavax/naming/directory/Attributes;)V
        26: .line 1434
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        27: .line 1426
            return
        28: .line 1428
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 7 /* re */
        start local 7 // com.sun.jndi.ldap.LdapReferralException re
        29: .line 1429
            aload 7 /* re */
            astore 5 /* e */
        30: .line 1434
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        31: .line 1430
            goto 23
        end local 7 // com.sun.jndi.ldap.LdapReferralException re
        32: .line 1432
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        33: .line 1434
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        34: .line 1435
            aload 8
            athrow
        end local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 5 // com.sun.jndi.ldap.LdapReferralException e
        35: .line 1438
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        36: .line 1439
            new javax.naming.CommunicationException
            dup
            aload 5 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 6 /* e2 */
        start local 6 // javax.naming.NamingException e2
        37: .line 1440
            aload 6 /* e2 */
            aload 5 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        38: .line 1441
            aload 4 /* cont */
            aload 6 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e2
        end local 5 // java.io.IOException e
        39: .line 1443
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        40: .line 1444
            aload 4 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        41: .line 1446
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 3 // javax.naming.directory.Attributes attrs
        end local 2 // int mod_op
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   42     0     this  Lcom/sun/jndi/ldap/LdapCtx;
            0   42     1     name  Ljavax/naming/Name;
            0   42     2   mod_op  I
            0   42     3    attrs  Ljavax/naming/directory/Attributes;
            0   42     4     cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            5   20     5    newDN  Ljava/lang/String;
            6   20     6  jmod_op  I
            7   20     7    jmods  [I
            8   20     8   jattrs  [Ljavax/naming/directory/Attribute;
            9   20     9       ae  Ljavax/naming/NamingEnumeration<+Ljavax/naming/directory/Attribute;>;
           10   15    10        i  I
           16   20    10   answer  Lcom/sun/jndi/ldap/LdapResult;
           21   35     5        e  Lcom/sun/jndi/ldap/LdapReferralException;
           25   35     6   refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           29   32     7       re  Lcom/sun/jndi/ldap/LdapReferralException;
           36   39     5        e  Ljava/io/IOException;
           37   39     6       e2  Ljavax/naming/NamingException;
           40   41     5        e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     3      20  Class com.sun.jndi.ldap.LdapReferralException
           4    19      20  Class com.sun.jndi.ldap.LdapReferralException
          25    26      28  Class com.sun.jndi.ldap.LdapReferralException
          25    26      32  any
          28    30      32  any
           1     3      35  Class java.io.IOException
           4    19      35  Class java.io.IOException
           1     3      39  Class javax.naming.NamingException
           4    19      39  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      name    
      mod_op  
      attrs   
      cont    

  protected void c_modifyAttributes(javax.naming.Name, javax.naming.directory.ModificationItem[], com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;[Ljavax/naming/directory/ModificationItem;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // javax.naming.directory.ModificationItem[] mods
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1451
            aload 3 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1454
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         2: .line 1456
            aload 2 /* mods */
            ifnull 3
            aload 2 /* mods */
            arraylength
            ifne 4
         3: .line 1457
      StackMap locals:
      StackMap stack:
            return
         4: .line 1459
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 4 /* newDN */
        start local 4 // java.lang.String newDN
         5: .line 1462
            aload 2 /* mods */
            arraylength
            newarray 10
            astore 5 /* jmods */
        start local 5 // int[] jmods
         6: .line 1463
            aload 2 /* mods */
            arraylength
            anewarray javax.naming.directory.Attribute
            astore 6 /* jattrs */
        start local 6 // javax.naming.directory.Attribute[] jattrs
         7: .line 1465
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         8: goto 13
         9: .line 1466
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.ModificationItem[] com.sun.jndi.toolkit.ctx.Continuation java.lang.String int[] javax.naming.directory.Attribute[] top int
      StackMap stack:
            aload 2 /* mods */
            iload 8 /* i */
            aaload
            astore 7 /* mod */
        start local 7 // javax.naming.directory.ModificationItem mod
        10: .line 1467
            aload 5 /* jmods */
            iload 8 /* i */
            aload 7 /* mod */
            invokevirtual javax.naming.directory.ModificationItem.getModificationOp:()I
            invokestatic com.sun.jndi.ldap.LdapCtx.convertToLdapModCode:(I)I
            iastore
        11: .line 1468
            aload 6 /* jattrs */
            iload 8 /* i */
            aload 7 /* mod */
            invokevirtual javax.naming.directory.ModificationItem.getAttribute:()Ljavax/naming/directory/Attribute;
            aastore
        12: .line 1465
            iinc 8 /* i */ 1
        end local 7 // javax.naming.directory.ModificationItem mod
      StackMap locals:
      StackMap stack:
        13: iload 8 /* i */
            aload 5 /* jmods */
            arraylength
            if_icmplt 9
        end local 8 // int i
        14: .line 1471
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 4 /* newDN */
            aload 5 /* jmods */
            aload 6 /* jattrs */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.modify:(Ljava/lang/String;[I[Ljavax/naming/directory/Attribute;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 8 /* answer */
        start local 8 // com.sun.jndi.ldap.LdapResult answer
        15: .line 1472
            aload 0 /* this */
            aload 8 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        16: .line 1474
            aload 8 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 40
        17: .line 1475
            aload 0 /* this */
            aload 8 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 8 // com.sun.jndi.ldap.LdapResult answer
        end local 6 // javax.naming.directory.Attribute[] jattrs
        end local 5 // int[] jmods
        end local 4 // java.lang.String newDN
        18: .line 1478
            goto 40
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.ModificationItem[] com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
        19: astore 4 /* e */
        start local 4 // com.sun.jndi.ldap.LdapReferralException e
        20: .line 1479
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 22
        21: .line 1480
            aload 3 /* cont */
            aload 4 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        22: .line 1486
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 4 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        23: .line 1485
            astore 5 /* refCtx */
        start local 5 // com.sun.jndi.ldap.LdapReferralContext refCtx
        24: .line 1491
            aload 5 /* refCtx */
            aload 1 /* name */
            aload 2 /* mods */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.modifyAttributes:(Ljavax/naming/Name;[Ljavax/naming/directory/ModificationItem;)V
        25: .line 1500
            aload 5 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        26: .line 1492
            return
        27: .line 1494
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.ModificationItem[] com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 6 /* re */
        start local 6 // com.sun.jndi.ldap.LdapReferralException re
        28: .line 1495
            aload 6 /* re */
            astore 4 /* e */
        29: .line 1500
            aload 5 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        30: .line 1496
            goto 22
        end local 6 // com.sun.jndi.ldap.LdapReferralException re
        31: .line 1498
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        32: .line 1500
            aload 5 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        33: .line 1501
            aload 7
            athrow
        end local 5 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 4 // com.sun.jndi.ldap.LdapReferralException e
        34: .line 1504
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.ModificationItem[] com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        35: .line 1505
            new javax.naming.CommunicationException
            dup
            aload 4 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 5 /* e2 */
        start local 5 // javax.naming.NamingException e2
        36: .line 1506
            aload 5 /* e2 */
            aload 4 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        37: .line 1507
            aload 3 /* cont */
            aload 5 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e2
        end local 4 // java.io.IOException e
        38: .line 1509
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 4 /* e */
        start local 4 // javax.naming.NamingException e
        39: .line 1510
            aload 3 /* cont */
            aload 4 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 4 // javax.naming.NamingException e
        40: .line 1512
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // javax.naming.directory.ModificationItem[] mods
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   41     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0   41     1    name  Ljavax/naming/Name;
            0   41     2    mods  [Ljavax/naming/directory/ModificationItem;
            0   41     3    cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            5   18     4   newDN  Ljava/lang/String;
            6   18     5   jmods  [I
            7   18     6  jattrs  [Ljavax/naming/directory/Attribute;
           10   13     7     mod  Ljavax/naming/directory/ModificationItem;
            8   14     8       i  I
           15   18     8  answer  Lcom/sun/jndi/ldap/LdapResult;
           20   34     4       e  Lcom/sun/jndi/ldap/LdapReferralException;
           24   34     5  refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           28   31     6      re  Lcom/sun/jndi/ldap/LdapReferralException;
           35   38     4       e  Ljava/io/IOException;
           36   38     5      e2  Ljavax/naming/NamingException;
           39   40     4       e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     3      19  Class com.sun.jndi.ldap.LdapReferralException
           4    18      19  Class com.sun.jndi.ldap.LdapReferralException
          24    25      27  Class com.sun.jndi.ldap.LdapReferralException
          24    25      31  any
          27    29      31  any
           1     3      34  Class java.io.IOException
           4    18      34  Class java.io.IOException
           1     3      38  Class javax.naming.NamingException
           4    18      38  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      mods  
      cont  

  private static int convertToLdapModCode(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int mod_op
         0: .line 1515
            iload 0 /* mod_op */
            tableswitch { // 1 - 3
                    1: 1
                    2: 2
                    3: 3
              default: 4
          }
         1: .line 1517
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 1520
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
         3: .line 1523
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 1526
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid modification code"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // int mod_op
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  mod_op  I
    MethodParameters:
        Name  Flags
      mod_op  

  protected javax.naming.directory.DirContext c_getSchema(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/DirContext;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1534
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1536
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.getSchemaTree:(Ljavax/naming/Name;)Ljavax/naming/directory/DirContext;
         2: areturn
         3: .line 1538
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 3 /* e */
        start local 3 // javax.naming.NamingException e
         4: .line 1539
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 3 // javax.naming.NamingException e
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  name  Ljavax/naming/Name;
            0    5     2  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            4    5     3     e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     2       3  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected javax.naming.directory.DirContext c_getSchemaClassDefinition(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/DirContext;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1546
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1550
            aload 0 /* this */
            aload 1 /* name */
         2: .line 1551
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "objectclass"
            aastore
            aload 2 /* cont */
         3: .line 1550
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_getAttributes:(Ljavax/naming/Name;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/Attributes;
         4: .line 1551
            ldc "objectclass"
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
         5: .line 1550
            astore 3 /* objectClassAttr */
        start local 3 // javax.naming.directory.Attribute objectClassAttr
         6: .line 1552
            aload 3 /* objectClassAttr */
            ifnull 7
            aload 3 /* objectClassAttr */
            invokeinterface javax.naming.directory.Attribute.size:()I
            ifne 9
         7: .line 1553
      StackMap locals: javax.naming.directory.Attribute
      StackMap stack:
            getstatic com.sun.jndi.ldap.LdapCtx.EMPTY_SCHEMA:Lcom/sun/jndi/toolkit/dir/HierMemDirCtx;
         8: areturn
         9: .line 1557
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_getSchema:(Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/DirContext;
        10: .line 1558
            ldc "ClassDefinition"
        11: .line 1557
            invokeinterface javax.naming.directory.DirContext.lookup:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.naming.Context
            astore 4 /* ocSchema */
        start local 4 // javax.naming.Context ocSchema
        12: .line 1562
            new com.sun.jndi.toolkit.dir.HierMemDirCtx
            dup
            invokespecial com.sun.jndi.toolkit.dir.HierMemDirCtx.<init>:()V
            astore 5 /* objectClassCtx */
        start local 5 // com.sun.jndi.toolkit.dir.HierMemDirCtx objectClassCtx
        13: .line 1565
            aload 3 /* objectClassAttr */
            invokeinterface javax.naming.directory.Attribute.getAll:()Ljavax/naming/NamingEnumeration;
            astore 8 /* objectClasses */
        start local 8 // java.util.Enumeration objectClasses
        14: .line 1566
            goto 18
        15: .line 1567
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attribute javax.naming.Context com.sun.jndi.toolkit.dir.HierMemDirCtx top top java.util.Enumeration
      StackMap stack:
            aload 8 /* objectClasses */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* objectClassName */
        start local 7 // java.lang.String objectClassName
        16: .line 1569
            aload 4 /* ocSchema */
            aload 7 /* objectClassName */
            invokeinterface javax.naming.Context.lookup:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.naming.directory.DirContext
            astore 6 /* objectClassDef */
        start local 6 // javax.naming.directory.DirContext objectClassDef
        17: .line 1570
            aload 5 /* objectClassCtx */
            aload 7 /* objectClassName */
            aload 6 /* objectClassDef */
            invokevirtual com.sun.jndi.toolkit.dir.HierMemDirCtx.bind:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 7 // java.lang.String objectClassName
        end local 6 // javax.naming.directory.DirContext objectClassDef
        18: .line 1566
      StackMap locals:
      StackMap stack:
            aload 8 /* objectClasses */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 15
        end local 8 // java.util.Enumeration objectClasses
        19: .line 1574
            aload 5 /* objectClassCtx */
        20: .line 1575
            new javax.naming.directory.SchemaViolationException
            dup
            ldc "Cannot update schema object"
            invokespecial javax.naming.directory.SchemaViolationException.<init>:(Ljava/lang/String;)V
        21: .line 1574
            invokevirtual com.sun.jndi.toolkit.dir.HierMemDirCtx.setReadOnly:(Ljavax/naming/NamingException;)V
        22: .line 1576
            aload 5 /* objectClassCtx */
        23: areturn
        end local 5 // com.sun.jndi.toolkit.dir.HierMemDirCtx objectClassCtx
        end local 4 // javax.naming.Context ocSchema
        end local 3 // javax.naming.directory.Attribute objectClassAttr
        24: .line 1578
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: javax.naming.NamingException
            astore 3 /* e */
        start local 3 // javax.naming.NamingException e
        25: .line 1579
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 3 // javax.naming.NamingException e
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   26     0             this  Lcom/sun/jndi/ldap/LdapCtx;
            0   26     1             name  Ljavax/naming/Name;
            0   26     2             cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            6   24     3  objectClassAttr  Ljavax/naming/directory/Attribute;
           12   24     4         ocSchema  Ljavax/naming/Context;
           13   24     5   objectClassCtx  Lcom/sun/jndi/toolkit/dir/HierMemDirCtx;
           17   18     6   objectClassDef  Ljavax/naming/directory/DirContext;
           16   18     7  objectClassName  Ljava/lang/String;
           14   19     8    objectClasses  Ljava/util/Enumeration<*>;
           25   26     3                e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     8      24  Class javax.naming.NamingException
           9    23      24  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  private javax.naming.directory.DirContext getSchemaTree(javax.naming.Name);
    descriptor: (Ljavax/naming/Name;)Ljavax/naming/directory/DirContext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
         0: .line 1589
            aload 0 /* this */
            aload 1 /* name */
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.getSchemaEntry:(Ljavax/naming/Name;Z)Ljava/lang/String;
            astore 2 /* subschemasubentry */
        start local 2 // java.lang.String subschemasubentry
         1: .line 1591
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
            aload 2 /* subschemasubentry */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.naming.directory.DirContext
            astore 3 /* schemaTree */
        start local 3 // javax.naming.directory.DirContext schemaTree
         2: .line 1593
            aload 3 /* schemaTree */
            ifnonnull 5
         3: .line 1595
            aload 0 /* this */
            aload 2 /* subschemasubentry */
            invokevirtual com.sun.jndi.ldap.LdapCtx.buildSchemaTree:(Ljava/lang/String;)Ljavax/naming/directory/DirContext;
            astore 3 /* schemaTree */
         4: .line 1596
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
            aload 2 /* subschemasubentry */
            aload 3 /* schemaTree */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 1599
      StackMap locals: java.lang.String javax.naming.directory.DirContext
      StackMap stack:
            aload 3 /* schemaTree */
            areturn
        end local 3 // javax.naming.directory.DirContext schemaTree
        end local 2 // java.lang.String subschemasubentry
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lcom/sun/jndi/ldap/LdapCtx;
            0    6     1               name  Ljavax/naming/Name;
            1    6     2  subschemasubentry  Ljava/lang/String;
            2    6     3         schemaTree  Ljavax/naming/directory/DirContext;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  

  private javax.naming.directory.DirContext buildSchemaTree(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/naming/directory/DirContext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=7, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String subschemasubentry
         0: .line 1614
            new javax.naming.directory.SearchControls
            dup
            iconst_0
         1: .line 1615
            lconst_0
            iconst_0
         2: .line 1616
            getstatic com.sun.jndi.ldap.LdapCtx.SCHEMA_ATTRIBUTES:[Ljava/lang/String;
         3: .line 1617
            iconst_1
         4: .line 1618
            iconst_0
         5: .line 1613
            invokespecial javax.naming.directory.SearchControls.<init>:(IJI[Ljava/lang/String;ZZ)V
            astore 2 /* constraints */
        start local 2 // javax.naming.directory.SearchControls constraints
         6: .line 1620
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            aload 1 /* subschemasubentry */
            invokevirtual javax.naming.CompositeName.add:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 3 /* sse */
        start local 3 // javax.naming.Name sse
         7: .line 1622
            aload 0 /* this */
            aload 3 /* sse */
            ldc "(objectClass=subschema)"
            aload 2 /* constraints */
         8: .line 1623
            iconst_0
            iconst_1
            new com.sun.jndi.toolkit.ctx.Continuation
            dup
            invokespecial com.sun.jndi.toolkit.ctx.Continuation.<init>:()V
         9: .line 1622
            invokevirtual com.sun.jndi.ldap.LdapCtx.searchAux:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZLcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
        10: .line 1621
            astore 4 /* results */
        start local 4 // javax.naming.NamingEnumeration results
        11: .line 1625
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 15
        12: .line 1626
            new javax.naming.OperationNotSupportedException
            dup
        13: .line 1627
            new java.lang.StringBuilder
            dup
            ldc "Cannot get read subschemasubentry: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* subschemasubentry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 1626
            invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 1629
      StackMap locals: javax.naming.directory.SearchControls javax.naming.Name javax.naming.NamingEnumeration
      StackMap stack:
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.SearchResult
            astore 5 /* result */
        start local 5 // javax.naming.directory.SearchResult result
        16: .line 1630
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.close:()V
        17: .line 1632
            aload 5 /* result */
            invokevirtual javax.naming.directory.SearchResult.getObject:()Ljava/lang/Object;
            astore 6 /* obj */
        start local 6 // java.lang.Object obj
        18: .line 1633
            aload 6 /* obj */
            instanceof com.sun.jndi.ldap.LdapCtx
            ifne 22
        19: .line 1634
            new javax.naming.NamingException
            dup
        20: .line 1635
            new java.lang.StringBuilder
            dup
            ldc "Cannot get schema object as DirContext: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* subschemasubentry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 1634
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 1638
      StackMap locals: javax.naming.directory.SearchResult java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 1 /* subschemasubentry */
        23: .line 1639
            aload 6 /* obj */
            checkcast com.sun.jndi.ldap.LdapCtx
        24: .line 1640
            aload 5 /* result */
            invokevirtual javax.naming.directory.SearchResult.getAttributes:()Ljavax/naming/directory/Attributes;
        25: .line 1641
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
        26: .line 1638
            invokestatic com.sun.jndi.ldap.LdapSchemaCtx.createSchemaTree:(Ljava/util/Hashtable;Ljava/lang/String;Lcom/sun/jndi/ldap/LdapCtx;Ljavax/naming/directory/Attributes;Z)Ljavax/naming/directory/DirContext;
            areturn
        end local 6 // java.lang.Object obj
        end local 5 // javax.naming.directory.SearchResult result
        end local 4 // javax.naming.NamingEnumeration results
        end local 3 // javax.naming.Name sse
        end local 2 // javax.naming.directory.SearchControls constraints
        end local 1 // java.lang.String subschemasubentry
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Lcom/sun/jndi/ldap/LdapCtx;
            0   27     1  subschemasubentry  Ljava/lang/String;
            6   27     2        constraints  Ljavax/naming/directory/SearchControls;
            7   27     3                sse  Ljavax/naming/Name;
           11   27     4            results  Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
           16   27     5             result  Ljavax/naming/directory/SearchResult;
           18   27     6                obj  Ljava/lang/Object;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
                   Name  Flags
      subschemasubentry  

  private java.lang.String getSchemaEntry(javax.naming.Name, boolean);
    descriptor: (Ljavax/naming/Name;Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=7, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // boolean relative
         0: .line 1668
            new javax.naming.directory.SearchControls
            dup
            iconst_0
         1: .line 1669
            lconst_0
            iconst_0
         2: .line 1670
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "subschemasubentry"
            aastore
         3: .line 1671
            iconst_0
         4: .line 1672
            iconst_0
         5: .line 1668
            invokespecial javax.naming.directory.SearchControls.<init>:(IJI[Ljava/lang/String;ZZ)V
            astore 3 /* constraints */
        start local 3 // javax.naming.directory.SearchControls constraints
         6: .line 1676
            aload 0 /* this */
            aload 1 /* name */
            ldc "objectclass=*"
            aload 3 /* constraints */
            iload 2 /* relative */
         7: .line 1677
            iconst_1
            new com.sun.jndi.toolkit.ctx.Continuation
            dup
            invokespecial com.sun.jndi.toolkit.ctx.Continuation.<init>:()V
         8: .line 1676
            invokevirtual com.sun.jndi.ldap.LdapCtx.searchAux:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZLcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
            astore 4 /* results */
        start local 4 // javax.naming.NamingEnumeration results
         9: .line 1679
            goto 16
        end local 4 // javax.naming.NamingEnumeration results
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.SearchControls
      StackMap stack: javax.naming.NamingException
        10: astore 5 /* ne */
        start local 5 // javax.naming.NamingException ne
        11: .line 1680
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifne 15
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifne 15
            aload 1 /* name */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 15
        12: .line 1683
            new javax.naming.OperationNotSupportedException
            dup
        13: .line 1684
            ldc "Cannot get schema information from server"
        14: .line 1683
            invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 1686
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.SearchControls top javax.naming.NamingException
      StackMap stack:
            aload 5 /* ne */
            athrow
        end local 5 // javax.naming.NamingException ne
        start local 4 // javax.naming.NamingEnumeration results
        16: .line 1690
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.SearchControls javax.naming.NamingEnumeration
      StackMap stack:
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.hasMoreElements:()Z
            ifne 20
        17: .line 1691
            new javax.naming.ConfigurationException
            dup
        18: .line 1692
            new java.lang.StringBuilder
            dup
            ldc "Requesting schema of nonexistent entry: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 1691
            invokespecial javax.naming.ConfigurationException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 1695
      StackMap locals:
      StackMap stack:
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.SearchResult
            astore 5 /* result */
        start local 5 // javax.naming.directory.SearchResult result
        21: .line 1696
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.close:()V
        22: .line 1699
            aload 5 /* result */
            invokevirtual javax.naming.directory.SearchResult.getAttributes:()Ljavax/naming/directory/Attributes;
            ldc "subschemasubentry"
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
        23: .line 1698
            astore 6 /* schemaEntryAttr */
        start local 6 // javax.naming.directory.Attribute schemaEntryAttr
        24: .line 1702
            aload 6 /* schemaEntryAttr */
            ifnull 25
            aload 6 /* schemaEntryAttr */
            invokeinterface javax.naming.directory.Attribute.size:()I
            ifge 30
        25: .line 1703
      StackMap locals: javax.naming.directory.SearchResult javax.naming.directory.Attribute
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifne 29
            aload 1 /* name */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 29
        26: .line 1706
            new javax.naming.OperationNotSupportedException
            dup
        27: .line 1707
            ldc "Cannot read subschemasubentry of root DSE"
        28: .line 1706
            invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
            athrow
        29: .line 1709
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.getSchemaEntry:(Ljavax/naming/Name;Z)Ljava/lang/String;
            areturn
        30: .line 1713
      StackMap locals:
      StackMap stack:
            aload 6 /* schemaEntryAttr */
            invokeinterface javax.naming.directory.Attribute.get:()Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 6 // javax.naming.directory.Attribute schemaEntryAttr
        end local 5 // javax.naming.directory.SearchResult result
        end local 4 // javax.naming.NamingEnumeration results
        end local 3 // javax.naming.directory.SearchControls constraints
        end local 2 // boolean relative
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   31     0             this  Lcom/sun/jndi/ldap/LdapCtx;
            0   31     1             name  Ljavax/naming/Name;
            0   31     2         relative  Z
            6   31     3      constraints  Ljavax/naming/directory/SearchControls;
            9   10     4          results  Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
           16   31     4          results  Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
           11   16     5               ne  Ljavax/naming/NamingException;
           21   31     5           result  Ljavax/naming/directory/SearchResult;
           24   31     6  schemaEntryAttr  Ljavax/naming/directory/Attribute;
      Exception table:
        from    to  target  type
           6     9      10  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      name      
      relative  

  void setParents(javax.naming.directory.Attributes, javax.naming.Name);
    descriptor: (Ljavax/naming/directory/Attributes;Ljavax/naming/Name;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.directory.Attributes attrs
        start local 2 // javax.naming.Name name
         0: .line 1720
            aload 1 /* attrs */
            invokeinterface javax.naming.directory.Attributes.getAll:()Ljavax/naming/NamingEnumeration;
            astore 3 /* ae */
        start local 3 // javax.naming.NamingEnumeration ae
         1: .line 1721
            goto 3
         2: .line 1722
      StackMap locals: javax.naming.NamingEnumeration
      StackMap stack:
            aload 3 /* ae */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast com.sun.jndi.ldap.LdapAttribute
            aload 0 /* this */
            aload 2 /* name */
            invokevirtual com.sun.jndi.ldap.LdapAttribute.setParent:(Ljavax/naming/directory/DirContext;Ljavax/naming/Name;)V
         3: .line 1721
      StackMap locals:
      StackMap stack:
            aload 3 /* ae */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 2
         4: .line 1724
            return
        end local 3 // javax.naming.NamingEnumeration ae
        end local 2 // javax.naming.Name name
        end local 1 // javax.naming.directory.Attributes attrs
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  attrs  Ljavax/naming/directory/Attributes;
            0    5     2   name  Ljavax/naming/Name;
            1    5     3     ae  Ljavax/naming/NamingEnumeration<+Ljavax/naming/directory/Attribute;>;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      attrs  
      name   

  java.lang.String getURL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 1731
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
            ifnonnull 4
         1: .line 1732
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.port_number:I
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
         2: .line 1733
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
         3: .line 1732
            invokestatic com.sun.jndi.ldap.LdapURL.toUrlString:(Ljava/lang/String;ILjava/lang/String;Z)Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
         4: .line 1736
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/jndi/ldap/LdapCtx;

  protected javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> c_search(javax.naming.Name, javax.naming.directory.Attributes, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // javax.naming.directory.Attributes matchingAttributes
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1744
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* matchingAttributes */
            aconst_null
            aload 3 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_search:(Ljavax/naming/Name;Ljavax/naming/directory/Attributes;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
            areturn
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // javax.naming.directory.Attributes matchingAttributes
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Lcom/sun/jndi/ldap/LdapCtx;
            0    1     1                name  Ljavax/naming/Name;
            0    1     2  matchingAttributes  Ljavax/naming/directory/Attributes;
            0    1     3                cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljavax/naming/Name;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
    MethodParameters:
                    Name  Flags
      name                
      matchingAttributes  
      cont                

  protected javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> c_search(javax.naming.Name, javax.naming.directory.Attributes, java.lang.String[], com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljavax/naming/directory/Attributes;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // javax.naming.directory.Attributes matchingAttributes
        start local 3 // java.lang.String[] attributesToReturn
        start local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1752
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 5 /* cons */
        start local 5 // javax.naming.directory.SearchControls cons
         1: .line 1753
            aload 5 /* cons */
            aload 3 /* attributesToReturn */
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
         2: .line 1756
            aload 2 /* matchingAttributes */
            invokestatic com.sun.jndi.toolkit.dir.SearchFilter.format:(Ljavax/naming/directory/Attributes;)Ljava/lang/String;
            astore 6 /* filter */
        start local 6 // java.lang.String filter
         3: .line 1757
            goto 7
        end local 6 // java.lang.String filter
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes java.lang.String[] com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls
      StackMap stack: javax.naming.NamingException
         4: astore 7 /* e */
        start local 7 // javax.naming.NamingException e
         5: .line 1758
            aload 4 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         6: .line 1759
            aload 4 /* cont */
            aload 7 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 7 // javax.naming.NamingException e
        start local 6 // java.lang.String filter
         7: .line 1761
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 6 /* filter */
            aload 5 /* cons */
            aload 4 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_search:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
            areturn
        end local 6 // java.lang.String filter
        end local 5 // javax.naming.directory.SearchControls cons
        end local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 3 // java.lang.String[] attributesToReturn
        end local 2 // javax.naming.directory.Attributes matchingAttributes
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    8     0                this  Lcom/sun/jndi/ldap/LdapCtx;
            0    8     1                name  Ljavax/naming/Name;
            0    8     2  matchingAttributes  Ljavax/naming/directory/Attributes;
            0    8     3  attributesToReturn  [Ljava/lang/String;
            0    8     4                cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            1    8     5                cons  Ljavax/naming/directory/SearchControls;
            3    4     6              filter  Ljava/lang/String;
            7    8     6              filter  Ljava/lang/String;
            5    7     7                   e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2     3       4  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljavax/naming/Name;Ljavax/naming/directory/Attributes;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
    MethodParameters:
                    Name  Flags
      name                
      matchingAttributes  
      attributesToReturn  
      cont                

  protected javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> c_search(javax.naming.Name, java.lang.String, javax.naming.directory.SearchControls, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls cons
        start local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1769
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* filter */
            aload 3 /* cons */
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneSearchControls:(Ljavax/naming/directory/SearchControls;)Ljavax/naming/directory/SearchControls;
            iconst_1
         1: .line 1770
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.waitForReply:Z
            aload 4 /* cont */
         2: .line 1769
            invokevirtual com.sun.jndi.ldap.LdapCtx.searchAux:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZLcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
            areturn
        end local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    3     1    name  Ljavax/naming/Name;
            0    3     2  filter  Ljava/lang/String;
            0    3     3    cons  Ljavax/naming/directory/SearchControls;
            0    3     4    cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
    MethodParameters:
        Name  Flags
      name    
      filter  
      cons    
      cont    

  protected javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> c_search(javax.naming.Name, java.lang.String, [], javax.naming.directory.SearchControls, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;[Ljava/lang/Object;Ljavax/naming/directory/SearchControls;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String filterExpr
        start local 3 // java.lang.Object[] filterArgs
        start local 4 // javax.naming.directory.SearchControls cons
        start local 5 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1781
            aload 2 /* filterExpr */
            aload 3 /* filterArgs */
            invokestatic com.sun.jndi.toolkit.dir.SearchFilter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 6 /* strfilter */
        start local 6 // java.lang.String strfilter
         1: .line 1782
            goto 5
        end local 6 // java.lang.String strfilter
      StackMap locals:
      StackMap stack: javax.naming.NamingException
         2: astore 7 /* e */
        start local 7 // javax.naming.NamingException e
         3: .line 1783
            aload 5 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         4: .line 1784
            aload 5 /* cont */
            aload 7 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 7 // javax.naming.NamingException e
        start local 6 // java.lang.String strfilter
         5: .line 1786
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 6 /* strfilter */
            aload 4 /* cons */
            aload 5 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_search:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
            areturn
        end local 6 // java.lang.String strfilter
        end local 5 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 4 // javax.naming.directory.SearchControls cons
        end local 3 // java.lang.Object[] filterArgs
        end local 2 // java.lang.String filterExpr
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0    6     1        name  Ljavax/naming/Name;
            0    6     2  filterExpr  Ljava/lang/String;
            0    6     3  filterArgs  [Ljava/lang/Object;
            0    6     4        cons  Ljavax/naming/directory/SearchControls;
            0    6     5        cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            1    2     6   strfilter  Ljava/lang/String;
            5    6     6   strfilter  Ljava/lang/String;
            3    5     7           e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           0     1       2  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljavax/naming/Name;Ljava/lang/String;[Ljava/lang/Object;Ljavax/naming/directory/SearchControls;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
    MethodParameters:
            Name  Flags
      name        
      filterExpr  
      filterArgs  
      cons        
      cont        

  javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> searchAux(javax.naming.Name, java.lang.String, javax.naming.directory.SearchControls, boolean, boolean, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZLcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0000) 
    Code:
      stack=7, locals=16, args_size=7
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls cons
        start local 4 // boolean relative
        start local 5 // boolean waitForReply
        start local 6 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1796
            aconst_null
            astore 7 /* answer */
        start local 7 // com.sun.jndi.ldap.LdapResult answer
         1: .line 1797
            iconst_2
            anewarray java.lang.String
            astore 8 /* tokens */
        start local 8 // java.lang.String[] tokens
         2: .line 1800
            aload 3 /* cons */
            ifnonnull 4
         3: .line 1801
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 3 /* cons */
         4: .line 1803
      StackMap locals: com.sun.jndi.ldap.LdapResult java.lang.String[]
      StackMap stack:
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningAttributes:()[Ljava/lang/String;
            astore 9 /* reqAttrs */
        start local 9 // java.lang.String[] reqAttrs
         5: .line 1807
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningObjFlag:()Z
            ifeq 25
         6: .line 1808
            aload 9 /* reqAttrs */
            ifnull 25
         7: .line 1811
            iconst_0
            istore 10 /* hasWildcard */
        start local 10 // boolean hasWildcard
         8: .line 1812
            aload 9 /* reqAttrs */
            arraylength
            iconst_1
            isub
            istore 11 /* i */
        start local 11 // int i
         9: goto 14
        10: .line 1813
      StackMap locals: java.lang.String[] int int
      StackMap stack:
            aload 9 /* reqAttrs */
            iload 11 /* i */
            aaload
            ldc "*"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 1814
            iconst_1
            istore 10 /* hasWildcard */
        12: .line 1815
            goto 15
        13: .line 1812
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ -1
      StackMap locals:
      StackMap stack:
        14: iload 11 /* i */
            ifge 10
        end local 11 // int i
        15: .line 1818
      StackMap locals:
      StackMap stack:
            iload 10 /* hasWildcard */
            ifne 25
        16: .line 1820
            aload 9 /* reqAttrs */
            arraylength
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            arraylength
            iadd
            anewarray java.lang.String
        17: .line 1819
            astore 11 /* totalAttrs */
        start local 11 // java.lang.String[] totalAttrs
        18: .line 1821
            aload 9 /* reqAttrs */
            iconst_0
            aload 11 /* totalAttrs */
            iconst_0
        19: .line 1822
            aload 9 /* reqAttrs */
            arraylength
        20: .line 1821
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        21: .line 1823
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_0
            aload 11 /* totalAttrs */
        22: .line 1824
            aload 9 /* reqAttrs */
            arraylength
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            arraylength
        23: .line 1823
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        24: .line 1826
            aload 3 /* cons */
            aload 11 /* totalAttrs */
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
        end local 11 // java.lang.String[] totalAttrs
        end local 10 // boolean hasWildcard
        25: .line 1832
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapCtx$SearchArgs
            dup
            aload 1 /* name */
            aload 2 /* filter */
            aload 3 /* cons */
            aload 9 /* reqAttrs */
            invokespecial com.sun.jndi.ldap.LdapCtx$SearchArgs.<init>:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;[Ljava/lang/String;)V
        26: .line 1831
            astore 10 /* args */
        start local 10 // com.sun.jndi.ldap.LdapCtx$SearchArgs args
        27: .line 1834
            aload 6 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
        28: .line 1837
            aload 2 /* filter */
            aload 3 /* cons */
            aload 8 /* tokens */
            invokestatic com.sun.jndi.ldap.LdapCtx.searchToCompare:(Ljava/lang/String;Ljavax/naming/directory/SearchControls;[Ljava/lang/String;)Z
            ifeq 33
        29: .line 1839
            aload 0 /* this */
            aload 1 /* name */
            aload 8 /* tokens */
            iconst_0
            aaload
            aload 8 /* tokens */
            iconst_1
            aaload
            invokevirtual com.sun.jndi.ldap.LdapCtx.compare:(Ljavax/naming/Name;Ljava/lang/String;Ljava/lang/String;)Lcom/sun/jndi/ldap/LdapResult;
            astore 7 /* answer */
        30: .line 1840
            aload 7 /* answer */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            invokevirtual com.sun.jndi.ldap.LdapResult.compareToSearchResult:(Ljava/lang/String;)Z
            ifne 35
        31: .line 1841
            aload 0 /* this */
            aload 7 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        32: .line 1843
            goto 35
        33: .line 1844
      StackMap locals: com.sun.jndi.ldap.LdapCtx$SearchArgs
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* filter */
            aload 3 /* cons */
            iload 4 /* relative */
            iload 5 /* waitForReply */
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearch:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZ)Lcom/sun/jndi/ldap/LdapResult;
            astore 7 /* answer */
        34: .line 1846
            aload 0 /* this */
            aload 7 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        35: .line 1848
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapSearchEnumeration
            dup
            aload 0 /* this */
            aload 7 /* answer */
        36: .line 1849
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
        37: .line 1850
            aload 10 /* args */
            aload 6 /* cont */
        38: .line 1848
            invokespecial com.sun.jndi.ldap.LdapSearchEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljava/lang/String;Lcom/sun/jndi/ldap/LdapCtx$SearchArgs;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        39: areturn
        40: .line 1852
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 11 /* e */
        start local 11 // com.sun.jndi.ldap.LdapReferralException e
        41: .line 1853
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 43
        42: .line 1854
            aload 6 /* cont */
            aload 11 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        43: .line 1861
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 11 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
        44: .line 1860
            checkcast com.sun.jndi.ldap.LdapReferralContext
            astore 12 /* refCtx */
        start local 12 // com.sun.jndi.ldap.LdapReferralContext refCtx
        45: .line 1866
            aload 12 /* refCtx */
            aload 1 /* name */
            aload 2 /* filter */
            aload 3 /* cons */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.search:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;)Ljavax/naming/NamingEnumeration;
            astore 15
        46: .line 1874
            aload 12 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        47: .line 1866
            aload 15
            areturn
        48: .line 1868
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String javax.naming.directory.SearchControls int int com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapResult java.lang.String[] java.lang.String[] com.sun.jndi.ldap.LdapCtx$SearchArgs com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 13 /* re */
        start local 13 // com.sun.jndi.ldap.LdapReferralException re
        49: .line 1869
            aload 13 /* re */
            astore 11 /* e */
        50: .line 1874
            aload 12 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        51: .line 1870
            goto 43
        end local 13 // com.sun.jndi.ldap.LdapReferralException re
        52: .line 1872
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 14
        53: .line 1874
            aload 12 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        54: .line 1875
            aload 14
            athrow
        end local 12 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 11 // com.sun.jndi.ldap.LdapReferralException e
        55: .line 1878
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String javax.naming.directory.SearchControls int int com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapResult java.lang.String[] java.lang.String[] com.sun.jndi.ldap.LdapCtx$SearchArgs
      StackMap stack: javax.naming.LimitExceededException
            astore 11 /* e */
        start local 11 // javax.naming.LimitExceededException e
        56: .line 1880
            new com.sun.jndi.ldap.LdapSearchEnumeration
            dup
            aload 0 /* this */
            aload 7 /* answer */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
        57: .line 1881
            aload 10 /* args */
            aload 6 /* cont */
        58: .line 1880
            invokespecial com.sun.jndi.ldap.LdapSearchEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljava/lang/String;Lcom/sun/jndi/ldap/LdapCtx$SearchArgs;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        59: .line 1879
            astore 12 /* res */
        start local 12 // com.sun.jndi.ldap.LdapSearchEnumeration res
        60: .line 1882
            aload 12 /* res */
            aload 11 /* e */
            invokevirtual com.sun.jndi.ldap.LdapSearchEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        61: .line 1883
            aload 12 /* res */
            areturn
        end local 12 // com.sun.jndi.ldap.LdapSearchEnumeration res
        end local 11 // javax.naming.LimitExceededException e
        62: .line 1885
      StackMap locals:
      StackMap stack: javax.naming.PartialResultException
            astore 11 /* e */
        start local 11 // javax.naming.PartialResultException e
        63: .line 1887
            new com.sun.jndi.ldap.LdapSearchEnumeration
            dup
            aload 0 /* this */
            aload 7 /* answer */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
        64: .line 1888
            aload 10 /* args */
            aload 6 /* cont */
        65: .line 1887
            invokespecial com.sun.jndi.ldap.LdapSearchEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljava/lang/String;Lcom/sun/jndi/ldap/LdapCtx$SearchArgs;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        66: .line 1886
            astore 12 /* res */
        start local 12 // com.sun.jndi.ldap.LdapSearchEnumeration res
        67: .line 1890
            aload 12 /* res */
            aload 11 /* e */
            invokevirtual com.sun.jndi.ldap.LdapSearchEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        68: .line 1891
            aload 12 /* res */
            areturn
        end local 12 // com.sun.jndi.ldap.LdapSearchEnumeration res
        end local 11 // javax.naming.PartialResultException e
        69: .line 1893
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 11 /* e */
        start local 11 // java.io.IOException e
        70: .line 1894
            new javax.naming.CommunicationException
            dup
            aload 11 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 12 /* e2 */
        start local 12 // javax.naming.NamingException e2
        71: .line 1895
            aload 12 /* e2 */
            aload 11 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        72: .line 1896
            aload 6 /* cont */
            aload 12 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 12 // javax.naming.NamingException e2
        end local 11 // java.io.IOException e
        73: .line 1898
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 11 /* e */
        start local 11 // javax.naming.NamingException e
        74: .line 1899
            aload 6 /* cont */
            aload 11 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 11 // javax.naming.NamingException e
        end local 10 // com.sun.jndi.ldap.LdapCtx$SearchArgs args
        end local 9 // java.lang.String[] reqAttrs
        end local 8 // java.lang.String[] tokens
        end local 7 // com.sun.jndi.ldap.LdapResult answer
        end local 6 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 5 // boolean waitForReply
        end local 4 // boolean relative
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   75     0          this  Lcom/sun/jndi/ldap/LdapCtx;
            0   75     1          name  Ljavax/naming/Name;
            0   75     2        filter  Ljava/lang/String;
            0   75     3          cons  Ljavax/naming/directory/SearchControls;
            0   75     4      relative  Z
            0   75     5  waitForReply  Z
            0   75     6          cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            1   75     7        answer  Lcom/sun/jndi/ldap/LdapResult;
            2   75     8        tokens  [Ljava/lang/String;
            5   75     9      reqAttrs  [Ljava/lang/String;
            8   25    10   hasWildcard  Z
            9   15    11             i  I
           18   25    11    totalAttrs  [Ljava/lang/String;
           27   75    10          args  Lcom/sun/jndi/ldap/LdapCtx$SearchArgs;
           41   55    11             e  Lcom/sun/jndi/ldap/LdapReferralException;
           45   55    12        refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           49   52    13            re  Lcom/sun/jndi/ldap/LdapReferralException;
           56   62    11             e  Ljavax/naming/LimitExceededException;
           60   62    12           res  Lcom/sun/jndi/ldap/LdapSearchEnumeration;
           63   69    11             e  Ljavax/naming/PartialResultException;
           67   69    12           res  Lcom/sun/jndi/ldap/LdapSearchEnumeration;
           70   73    11             e  Ljava/io/IOException;
           71   73    12            e2  Ljavax/naming/NamingException;
           74   75    11             e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
          28    39      40  Class com.sun.jndi.ldap.LdapReferralException
          45    46      48  Class com.sun.jndi.ldap.LdapReferralException
          45    46      52  any
          48    50      52  any
          28    39      55  Class javax.naming.LimitExceededException
          28    39      62  Class javax.naming.PartialResultException
          28    39      69  Class java.io.IOException
          28    39      73  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZLcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
    MethodParameters:
              Name  Flags
      name          
      filter        
      cons          
      relative      
      waitForReply  
      cont          

  com.sun.jndi.ldap.LdapResult getSearchReply(com.sun.jndi.ldap.LdapClient, com.sun.jndi.ldap.LdapResult);
    descriptor: (Lcom/sun/jndi/ldap/LdapClient;Lcom/sun/jndi/ldap/LdapResult;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // com.sun.jndi.ldap.LdapClient eClnt
        start local 2 // com.sun.jndi.ldap.LdapResult res
         0: .line 1912
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 1 /* eClnt */
            if_acmpeq 4
         1: .line 1913
            new javax.naming.CommunicationException
            dup
         2: .line 1914
            ldc "Context's connection changed; unable to continue enumeration"
         3: .line 1913
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1918
      StackMap locals:
      StackMap stack:
            aload 1 /* eClnt */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.batchSize:I
            aload 2 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
            invokevirtual com.sun.jndi.ldap.LdapClient.getSearchReply:(ILcom/sun/jndi/ldap/LdapResult;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapResult;
         5: areturn
         6: .line 1919
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
         7: .line 1920
            new javax.naming.CommunicationException
            dup
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 4 /* e2 */
        start local 4 // javax.naming.NamingException e2
         8: .line 1921
            aload 4 /* e2 */
            aload 3 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
         9: .line 1922
            aload 4 /* e2 */
            athrow
        end local 4 // javax.naming.NamingException e2
        end local 3 // java.io.IOException e
        end local 2 // com.sun.jndi.ldap.LdapResult res
        end local 1 // com.sun.jndi.ldap.LdapClient eClnt
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lcom/sun/jndi/ldap/LdapCtx;
            0   10     1  eClnt  Lcom/sun/jndi/ldap/LdapClient;
            0   10     2    res  Lcom/sun/jndi/ldap/LdapResult;
            7   10     3      e  Ljava/io/IOException;
            8   10     4     e2  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      eClnt  
      res    

  private com.sun.jndi.ldap.LdapResult doSearchOnce(javax.naming.Name, java.lang.String, javax.naming.directory.SearchControls, boolean);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Z)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls cons
        start local 4 // boolean relative
         0: .line 1930
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.batchSize:I
            istore 5 /* savedBatchSize */
        start local 5 // int savedBatchSize
         1: .line 1931
            aload 0 /* this */
            iconst_2
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
         2: .line 1933
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* filter */
            aload 3 /* cons */
            iload 4 /* relative */
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearch:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZ)Lcom/sun/jndi/ldap/LdapResult;
            astore 6 /* answer */
        start local 6 // com.sun.jndi.ldap.LdapResult answer
         3: .line 1935
            aload 0 /* this */
            iload 5 /* savedBatchSize */
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
         4: .line 1936
            aload 6 /* answer */
            areturn
        end local 6 // com.sun.jndi.ldap.LdapResult answer
        end local 5 // int savedBatchSize
        end local 4 // boolean relative
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1            name  Ljavax/naming/Name;
            0    5     2          filter  Ljava/lang/String;
            0    5     3            cons  Ljavax/naming/directory/SearchControls;
            0    5     4        relative  Z
            1    5     5  savedBatchSize  I
            3    5     6          answer  Lcom/sun/jndi/ldap/LdapResult;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      name      
      filter    
      cons      
      relative  

  private com.sun.jndi.ldap.LdapResult doSearch(javax.naming.Name, java.lang.String, javax.naming.directory.SearchControls, boolean, boolean);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZ)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=14, locals=12, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls cons
        start local 4 // boolean relative
        start local 5 // boolean waitForReply
         0: .line 1941
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         1: .line 1945
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getSearchScope:()I
            tableswitch { // 0 - 2
                    0: 2
                    1: 4
                    2: 6
              default: 4
          }
         2: .line 1947
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* scope */
        start local 6 // int scope
         3: .line 1948
            goto 7
        end local 6 // int scope
         4: .line 1951
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* scope */
        start local 6 // int scope
         5: .line 1952
            goto 7
        end local 6 // int scope
         6: .line 1954
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 6 /* scope */
        start local 6 // int scope
         7: .line 1961
      StackMap locals: int
      StackMap stack:
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningAttributes:()[Ljava/lang/String;
            astore 7 /* retattrs */
        start local 7 // java.lang.String[] retattrs
         8: .line 1962
            aload 7 /* retattrs */
            ifnull 11
            aload 7 /* retattrs */
            arraylength
            ifne 11
         9: .line 1965
            iconst_1
            anewarray java.lang.String
            astore 7 /* retattrs */
        10: .line 1966
            aload 7 /* retattrs */
            iconst_0
            ldc "1.1"
            aastore
        11: .line 1969
      StackMap locals: java.lang.String[]
      StackMap stack:
            iload 4 /* relative */
            ifeq 13
        12: .line 1970
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            goto 16
        13: .line 1971
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 15
        14: .line 1972
            ldc ""
            goto 16
        15: .line 1973
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
        16: .line 1969
      StackMap locals:
      StackMap stack: java.lang.String
            astore 8 /* nm */
        start local 8 // java.lang.String nm
        17: .line 1977
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getTimeLimit:()I
            istore 9 /* msecLimit */
        start local 9 // int msecLimit
        18: .line 1978
            iconst_0
            istore 10 /* secLimit */
        start local 10 // int secLimit
        19: .line 1980
            iload 9 /* msecLimit */
            ifle 21
        20: .line 1981
            iload 9 /* msecLimit */
            sipush 1000
            idiv
            iconst_1
            iadd
            istore 10 /* secLimit */
        21: .line 1985
      StackMap locals: java.lang.String int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 8 /* nm */
        22: .line 1986
            iload 6 /* scope */
        23: .line 1987
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        24: .line 1988
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getCountLimit:()J
            l2i
        25: .line 1989
            iload 10 /* secLimit */
        26: .line 1990
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningObjFlag:()Z
            ifeq 27
            iconst_0
            goto 28
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String javax.naming.directory.SearchControls int int int java.lang.String[] java.lang.String int int
      StackMap stack: com.sun.jndi.ldap.LdapClient java.lang.String int int int int
        27: aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
        28: .line 1991
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String javax.naming.directory.SearchControls int int int java.lang.String[] java.lang.String int int
      StackMap stack: com.sun.jndi.ldap.LdapClient java.lang.String int int int int int
            aload 7 /* retattrs */
        29: .line 1992
            aload 2 /* filter */
        30: .line 1993
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.batchSize:I
        31: .line 1994
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        32: .line 1995
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
        33: .line 1996
            iload 5 /* waitForReply */
        34: .line 1997
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.replyQueueSize:I
        35: .line 1985
            invokevirtual com.sun.jndi.ldap.LdapClient.search:(Ljava/lang/String;IIIIZ[Ljava/lang/String;Ljava/lang/String;I[Ljavax/naming/ldap/Control;Ljava/util/Hashtable;ZI)Lcom/sun/jndi/ldap/LdapResult;
        36: .line 1984
            astore 11 /* answer */
        start local 11 // com.sun.jndi.ldap.LdapResult answer
        37: .line 1998
            aload 0 /* this */
            aload 11 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        38: .line 1999
            aload 11 /* answer */
        39: areturn
        end local 11 // com.sun.jndi.ldap.LdapResult answer
        end local 10 // int secLimit
        end local 9 // int msecLimit
        end local 8 // java.lang.String nm
        end local 7 // java.lang.String[] retattrs
        end local 6 // int scope
        40: .line 2001
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String javax.naming.directory.SearchControls int int
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
        41: .line 2002
            new javax.naming.CommunicationException
            dup
            aload 6 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 7 /* e2 */
        start local 7 // javax.naming.NamingException e2
        42: .line 2003
            aload 7 /* e2 */
            aload 6 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        43: .line 2004
            aload 7 /* e2 */
            athrow
        end local 7 // javax.naming.NamingException e2
        end local 6 // java.io.IOException e
        end local 5 // boolean waitForReply
        end local 4 // boolean relative
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   44     0          this  Lcom/sun/jndi/ldap/LdapCtx;
            0   44     1          name  Ljavax/naming/Name;
            0   44     2        filter  Ljava/lang/String;
            0   44     3          cons  Ljavax/naming/directory/SearchControls;
            0   44     4      relative  Z
            0   44     5  waitForReply  Z
            3    4     6         scope  I
            5    6     6         scope  I
            7   40     6         scope  I
            8   40     7      retattrs  [Ljava/lang/String;
           17   40     8            nm  Ljava/lang/String;
           18   40     9     msecLimit  I
           19   40    10      secLimit  I
           37   40    11        answer  Lcom/sun/jndi/ldap/LdapResult;
           41   44     6             e  Ljava/io/IOException;
           42   44     7            e2  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1    39      40  Class java.io.IOException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
              Name  Flags
      name          
      filter        
      cons          
      relative      
      waitForReply  

  private static boolean searchToCompare(java.lang.String, javax.naming.directory.SearchControls, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljavax/naming/directory/SearchControls;[Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.lang.String filter
        start local 1 // javax.naming.directory.SearchControls cons
        start local 2 // java.lang.String[] tokens
         0: .line 2031
            aload 1 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getSearchScope:()I
            ifeq 2
         1: .line 2032
            iconst_0
            ireturn
         2: .line 2036
      StackMap locals:
      StackMap stack:
            aload 1 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningAttributes:()[Ljava/lang/String;
            astore 3 /* attrs */
        start local 3 // java.lang.String[] attrs
         3: .line 2037
            aload 3 /* attrs */
            ifnull 4
            aload 3 /* attrs */
            arraylength
            ifeq 5
         4: .line 2038
      StackMap locals: java.lang.String[]
      StackMap stack:
            iconst_0
            ireturn
         5: .line 2042
      StackMap locals:
      StackMap stack:
            aload 0 /* filter */
            aload 2 /* tokens */
            invokestatic com.sun.jndi.ldap.LdapCtx.filterToAssertion:(Ljava/lang/String;[Ljava/lang/String;)Z
            ifne 7
         6: .line 2043
            iconst_0
            ireturn
         7: .line 2047
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.lang.String[] attrs
        end local 2 // java.lang.String[] tokens
        end local 1 // javax.naming.directory.SearchControls cons
        end local 0 // java.lang.String filter
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  filter  Ljava/lang/String;
            0    8     1    cons  Ljavax/naming/directory/SearchControls;
            0    8     2  tokens  [Ljava/lang/String;
            3    8     3   attrs  [Ljava/lang/String;
    MethodParameters:
        Name  Flags
      filter  
      cons    
      tokens  

  private static boolean filterToAssertion(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // java.lang.String filter
        start local 1 // java.lang.String[] tokens
         0: .line 2059
            new java.util.StringTokenizer
            dup
            aload 0 /* filter */
            ldc "="
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 2 /* assertionTokenizer */
        start local 2 // java.util.StringTokenizer assertionTokenizer
         1: .line 2061
            aload 2 /* assertionTokenizer */
            invokevirtual java.util.StringTokenizer.countTokens:()I
            iconst_2
            if_icmpeq 3
         2: .line 2062
            iconst_0
            ireturn
         3: .line 2065
      StackMap locals: java.util.StringTokenizer
      StackMap stack:
            aload 1 /* tokens */
            iconst_0
            aload 2 /* assertionTokenizer */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            aastore
         4: .line 2066
            aload 1 /* tokens */
            iconst_1
            aload 2 /* assertionTokenizer */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            aastore
         5: .line 2069
            aload 1 /* tokens */
            iconst_1
            aaload
            bipush 42
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 7
         6: .line 2070
            iconst_0
            ireturn
         7: .line 2074
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* hasParens */
        start local 3 // boolean hasParens
         8: .line 2075
            aload 1 /* tokens */
            iconst_1
            aaload
            invokevirtual java.lang.String.length:()I
            istore 4 /* len */
        start local 4 // int len
         9: .line 2077
            aload 1 /* tokens */
            iconst_0
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 40
            if_icmpne 13
        10: .line 2078
            aload 1 /* tokens */
            iconst_1
            aaload
            iload 4 /* len */
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 13
        11: .line 2079
            iconst_1
            istore 3 /* hasParens */
        12: .line 2081
            goto 16
      StackMap locals: int int
      StackMap stack:
        13: aload 1 /* tokens */
            iconst_0
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 40
            if_icmpeq 15
        14: .line 2082
            aload 1 /* tokens */
            iconst_1
            aaload
            iload 4 /* len */
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 16
        15: .line 2083
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        16: .line 2088
      StackMap locals:
      StackMap stack:
            new java.util.StringTokenizer
            dup
            aload 1 /* tokens */
            iconst_0
            aaload
            ldc "()&|!=~><*"
            iconst_1
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;Z)V
        17: .line 2087
            astore 5 /* illegalCharsTokenizer */
        start local 5 // java.util.StringTokenizer illegalCharsTokenizer
        18: .line 2090
            aload 5 /* illegalCharsTokenizer */
            invokevirtual java.util.StringTokenizer.countTokens:()I
            iload 3 /* hasParens */
            ifeq 19
            iconst_2
            goto 20
      StackMap locals: java.lang.String java.lang.String[] java.util.StringTokenizer int int java.util.StringTokenizer
      StackMap stack: int
        19: iconst_1
      StackMap locals: java.lang.String java.lang.String[] java.util.StringTokenizer int int java.util.StringTokenizer
      StackMap stack: int int
        20: if_icmpeq 22
        21: .line 2091
            iconst_0
            ireturn
        22: .line 2095
      StackMap locals:
      StackMap stack:
            new java.util.StringTokenizer
            dup
            aload 1 /* tokens */
            iconst_1
            aaload
            ldc "()&|!=~><*"
            iconst_1
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;Z)V
        23: .line 2094
            astore 5 /* illegalCharsTokenizer */
        24: .line 2097
            aload 5 /* illegalCharsTokenizer */
            invokevirtual java.util.StringTokenizer.countTokens:()I
            iload 3 /* hasParens */
            ifeq 25
            iconst_2
            goto 26
      StackMap locals:
      StackMap stack: int
        25: iconst_1
      StackMap locals: java.lang.String java.lang.String[] java.util.StringTokenizer int int java.util.StringTokenizer
      StackMap stack: int int
        26: if_icmpeq 28
        27: .line 2098
            iconst_0
            ireturn
        28: .line 2102
      StackMap locals:
      StackMap stack:
            iload 3 /* hasParens */
            ifeq 31
        29: .line 2103
            aload 1 /* tokens */
            iconst_0
            aload 1 /* tokens */
            iconst_0
            aaload
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aastore
        30: .line 2104
            aload 1 /* tokens */
            iconst_1
            aload 1 /* tokens */
            iconst_1
            aaload
            iconst_0
            iload 4 /* len */
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aastore
        31: .line 2107
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // java.util.StringTokenizer illegalCharsTokenizer
        end local 4 // int len
        end local 3 // boolean hasParens
        end local 2 // java.util.StringTokenizer assertionTokenizer
        end local 1 // java.lang.String[] tokens
        end local 0 // java.lang.String filter
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   32     0                 filter  Ljava/lang/String;
            0   32     1                 tokens  [Ljava/lang/String;
            1   32     2     assertionTokenizer  Ljava/util/StringTokenizer;
            8   32     3              hasParens  Z
            9   32     4                    len  I
           18   32     5  illegalCharsTokenizer  Ljava/util/StringTokenizer;
    MethodParameters:
        Name  Flags
      filter  
      tokens  

  private com.sun.jndi.ldap.LdapResult compare(javax.naming.Name, java.lang.String, java.lang.String);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljava/lang/String;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String type
        start local 3 // java.lang.String value
         0: .line 2113
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         1: .line 2114
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 4 /* nm */
        start local 4 // java.lang.String nm
         2: .line 2116
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 4 /* nm */
            aload 2 /* type */
            aload 3 /* value */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.compare:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 5 /* answer */
        start local 5 // com.sun.jndi.ldap.LdapResult answer
         3: .line 2117
            aload 0 /* this */
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         4: .line 2119
            aload 5 /* answer */
            areturn
        end local 5 // com.sun.jndi.ldap.LdapResult answer
        end local 4 // java.lang.String nm
        end local 3 // java.lang.String value
        end local 2 // java.lang.String type
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1    name  Ljavax/naming/Name;
            0    5     2    type  Ljava/lang/String;
            0    5     3   value  Ljava/lang/String;
            2    5     4      nm  Ljava/lang/String;
            3    5     5  answer  Lcom/sun/jndi/ldap/LdapResult;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
       Name  Flags
      name   
      type   
      value  

  private static javax.naming.directory.SearchControls cloneSearchControls(javax.naming.directory.SearchControls);
    descriptor: (Ljavax/naming/directory/SearchControls;)Ljavax/naming/directory/SearchControls;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=3, args_size=1
        start local 0 // javax.naming.directory.SearchControls cons
         0: .line 2123
            aload 0 /* cons */
            ifnonnull 2
         1: .line 2124
            aconst_null
            areturn
         2: .line 2126
      StackMap locals:
      StackMap stack:
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningAttributes:()[Ljava/lang/String;
            astore 1 /* retAttrs */
        start local 1 // java.lang.String[] retAttrs
         3: .line 2127
            aload 1 /* retAttrs */
            ifnull 7
         4: .line 2128
            aload 1 /* retAttrs */
            arraylength
            anewarray java.lang.String
            astore 2 /* attrs */
        start local 2 // java.lang.String[] attrs
         5: .line 2129
            aload 1 /* retAttrs */
            iconst_0
            aload 2 /* attrs */
            iconst_0
            aload 1 /* retAttrs */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 2130
            aload 2 /* attrs */
            astore 1 /* retAttrs */
        end local 2 // java.lang.String[] attrs
         7: .line 2132
      StackMap locals: java.lang.String[]
      StackMap stack:
            new javax.naming.directory.SearchControls
            dup
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getSearchScope:()I
         8: .line 2133
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getCountLimit:()J
         9: .line 2134
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getTimeLimit:()I
        10: .line 2135
            aload 1 /* retAttrs */
        11: .line 2136
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningObjFlag:()Z
        12: .line 2137
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getDerefLinkFlag:()Z
        13: .line 2132
            invokespecial javax.naming.directory.SearchControls.<init>:(IJI[Ljava/lang/String;ZZ)V
            areturn
        end local 1 // java.lang.String[] retAttrs
        end local 0 // javax.naming.directory.SearchControls cons
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      cons  Ljavax/naming/directory/SearchControls;
            3   14     1  retAttrs  [Ljava/lang/String;
            5    7     2     attrs  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      cons  

  protected java.util.Hashtable<java.lang.String, java.lang.Object> p_getEnvironment();
    descriptor: ()Ljava/util/Hashtable;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2146
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Signature: ()Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Object;>;

  public java.util.Hashtable<java.lang.String, java.lang.Object> getEnvironment();
    descriptor: ()Ljava/util/Hashtable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2151
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnonnull 2
         1: .line 2152
            new java.util.Hashtable
            dup
            iconst_5
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            goto 3
         2: .line 2153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.clone:()Ljava/lang/Object;
            checkcast java.util.Hashtable
         3: .line 2151
      StackMap locals:
      StackMap stack: java.util.Hashtable
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException
    Signature: ()Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Object;>;

  public java.lang.Object removeFromEnvironment(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String propName
         0: .line 2161
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnull 1
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 1 /* propName */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 2
         1: .line 2162
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 2164
      StackMap locals:
      StackMap stack:
            aload 1 /* propName */
            dup
            astore 2
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 18
          -2125978773: 3
          -1907752796: 4
          -1793828884: 5
          -1690536287: 6
          -1273698008: 7
          -1264241948: 8
          -1012288104: 9
           -986853030: 10
           -597571529: 11
             51576954: 12
            520248524: 13
            523906937: 14
            704861003: 15
            778463863: 16
           1186209693: 17
           1514015564: 18
           1515176491: 19
           1859284381: 20
              default: 55
          }
      StackMap locals: java.lang.String
      StackMap stack:
         3: aload 2
            ldc "java.naming.ldap.version"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 52
            goto 55
      StackMap locals:
      StackMap stack:
         4: aload 2
            ldc "java.naming.ldap.deleteRDN"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 25
            goto 55
      StackMap locals:
      StackMap stack:
         5: aload 2
            ldc "java.naming.security.protocol"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 45
            goto 55
      StackMap locals:
      StackMap stack:
         6: aload 2
            ldc "java.naming.batchsize"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 29
            goto 55
      StackMap locals:
      StackMap stack:
         7: aload 2
            ldc "java.naming.security.credentials"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 54
            goto 55
      StackMap locals:
      StackMap stack:
         8: aload 2
            ldc "java.naming.ldap.factory.socket"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 52
            goto 55
      StackMap locals:
      StackMap stack:
         9: aload 2
            ldc "java.naming.ldap.typesOnly"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 23
            goto 55
      StackMap locals:
      StackMap stack:
        10: aload 2
            ldc "java.naming.security.principal"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 54
            goto 55
      StackMap locals:
      StackMap stack:
        11: aload 2
            ldc "java.naming.ldap.referral.limit"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 31
            goto 55
      StackMap locals:
      StackMap stack:
        12: aload 2
            ldc "com.sun.jndi.ldap.read.timeout"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 39
            goto 55
      StackMap locals:
      StackMap stack:
        13: aload 2
            ldc "java.naming.security.authentication"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 54
            goto 55
      StackMap locals:
      StackMap stack:
        14: aload 2
            ldc "java.naming.ldap.derefAliases"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 27
            goto 55
      StackMap locals:
      StackMap stack:
        15: aload 2
            ldc "java.naming.ldap.attributes.binary"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 35
            goto 55
      StackMap locals:
      StackMap stack:
        16: aload 2
            ldc "java.naming.referral"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 33
            goto 55
      StackMap locals:
      StackMap stack:
        17: aload 2
            ldc "java.naming.ldap.ref.separator"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 21
            goto 55
      StackMap locals:
      StackMap stack:
        18: aload 2
            ldc "com.sun.jndi.ldap.connect.timeout"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 37
            goto 55
      StackMap locals:
      StackMap stack:
        19: aload 2
            ldc "com.sun.jndi.ldap.search.waitForReply"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 41
            goto 55
      StackMap locals:
      StackMap stack:
        20: aload 2
            ldc "com.sun.jndi.ldap.search.replyQueueSize"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 43
            goto 55
        21: .line 2166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 35
            putfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
        22: .line 2167
            goto 55
        23: .line 2169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
        24: .line 2170
            goto 55
        25: .line 2172
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
        26: .line 2173
            goto 55
        27: .line 2175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        28: .line 2176
            goto 55
        29: .line 2178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
        30: .line 2179
            goto 55
        31: .line 2181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
        32: .line 2182
            goto 55
        33: .line 2184
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralMode:(Ljava/lang/String;Z)V
        34: .line 2185
            goto 55
        35: .line 2187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual com.sun.jndi.ldap.LdapCtx.setBinaryAttributes:(Ljava/lang/String;)V
        36: .line 2188
            goto 55
        37: .line 2190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
        38: .line 2191
            goto 55
        39: .line 2193
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
        40: .line 2194
            goto 55
        41: .line 2196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.waitForReply:Z
        42: .line 2197
            goto 55
        43: .line 2199
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.replyQueueSize:I
        44: .line 2200
            goto 55
        45: .line 2205
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        46: .line 2207
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
            ifeq 55
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
            ifne 55
        47: .line 2208
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        48: .line 2209
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
        49: .line 2210
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
            ifeq 55
        50: .line 2211
            aload 0 /* this */
            sipush 389
            putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        51: .line 2214
            goto 55
        52: .line 2217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        53: .line 2218
            goto 55
        54: .line 2222
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        55: .line 2227
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.clone:()Ljava/lang/Object;
            checkcast java.util.Hashtable
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        56: .line 2228
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 1 /* propName */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String propName
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   57     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   57     1  propName  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      propName  

  public java.lang.Object addToEnvironment(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String propName
        start local 2 // java.lang.Object propVal
         0: .line 2236
            aload 2 /* propVal */
            ifnonnull 2
         1: .line 2237
            aload 0 /* this */
            aload 1 /* propName */
            invokevirtual com.sun.jndi.ldap.LdapCtx.removeFromEnvironment:(Ljava/lang/String;)Ljava/lang/Object;
            areturn
         2: .line 2239
      StackMap locals:
      StackMap stack:
            aload 1 /* propName */
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 18
          -2125978773: 3
          -1907752796: 4
          -1793828884: 5
          -1690536287: 6
          -1273698008: 7
          -1264241948: 8
          -1012288104: 9
           -986853030: 10
           -597571529: 11
             51576954: 12
            520248524: 13
            523906937: 14
            704861003: 15
            778463863: 16
           1186209693: 17
           1514015564: 18
           1515176491: 19
           1859284381: 20
              default: 55
          }
      StackMap locals: java.lang.String
      StackMap stack:
         3: aload 3
            ldc "java.naming.ldap.version"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 52
            goto 55
      StackMap locals:
      StackMap stack:
         4: aload 3
            ldc "java.naming.ldap.deleteRDN"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 25
            goto 55
      StackMap locals:
      StackMap stack:
         5: aload 3
            ldc "java.naming.security.protocol"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 45
            goto 55
      StackMap locals:
      StackMap stack:
         6: aload 3
            ldc "java.naming.batchsize"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 29
            goto 55
      StackMap locals:
      StackMap stack:
         7: aload 3
            ldc "java.naming.security.credentials"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 54
            goto 55
      StackMap locals:
      StackMap stack:
         8: aload 3
            ldc "java.naming.ldap.factory.socket"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 52
            goto 55
      StackMap locals:
      StackMap stack:
         9: aload 3
            ldc "java.naming.ldap.typesOnly"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 23
            goto 55
      StackMap locals:
      StackMap stack:
        10: aload 3
            ldc "java.naming.security.principal"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 54
            goto 55
      StackMap locals:
      StackMap stack:
        11: aload 3
            ldc "java.naming.ldap.referral.limit"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 31
            goto 55
      StackMap locals:
      StackMap stack:
        12: aload 3
            ldc "com.sun.jndi.ldap.read.timeout"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 39
            goto 55
      StackMap locals:
      StackMap stack:
        13: aload 3
            ldc "java.naming.security.authentication"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 54
            goto 55
      StackMap locals:
      StackMap stack:
        14: aload 3
            ldc "java.naming.ldap.derefAliases"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 27
            goto 55
      StackMap locals:
      StackMap stack:
        15: aload 3
            ldc "java.naming.ldap.attributes.binary"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 35
            goto 55
      StackMap locals:
      StackMap stack:
        16: aload 3
            ldc "java.naming.referral"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 33
            goto 55
      StackMap locals:
      StackMap stack:
        17: aload 3
            ldc "java.naming.ldap.ref.separator"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 21
            goto 55
      StackMap locals:
      StackMap stack:
        18: aload 3
            ldc "com.sun.jndi.ldap.connect.timeout"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 37
            goto 55
      StackMap locals:
      StackMap stack:
        19: aload 3
            ldc "com.sun.jndi.ldap.search.waitForReply"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 41
            goto 55
      StackMap locals:
      StackMap stack:
        20: aload 3
            ldc "com.sun.jndi.ldap.search.replyQueueSize"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 43
            goto 55
        21: .line 2241
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setRefSeparator:(Ljava/lang/String;)V
        22: .line 2242
            goto 55
        23: .line 2244
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setTypesOnly:(Ljava/lang/String;)V
        24: .line 2245
            goto 55
        25: .line 2247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setDeleteRDN:(Ljava/lang/String;)V
        26: .line 2248
            goto 55
        27: .line 2250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setDerefAliases:(Ljava/lang/String;)V
        28: .line 2251
            goto 55
        29: .line 2253
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setBatchSize:(Ljava/lang/String;)V
        30: .line 2254
            goto 55
        31: .line 2256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralLimit:(Ljava/lang/String;)V
        32: .line 2257
            goto 55
        33: .line 2259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralMode:(Ljava/lang/String;Z)V
        34: .line 2260
            goto 55
        35: .line 2262
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setBinaryAttributes:(Ljava/lang/String;)V
        36: .line 2263
            goto 55
        37: .line 2265
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setConnectTimeout:(Ljava/lang/String;)V
        38: .line 2266
            goto 55
        39: .line 2268
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReadTimeout:(Ljava/lang/String;)V
        40: .line 2269
            goto 55
        41: .line 2271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setWaitForReply:(Ljava/lang/String;)V
        42: .line 2272
            goto 55
        43: .line 2274
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReplyQueueSize:(Ljava/lang/String;)V
        44: .line 2275
            goto 55
        45: .line 2280
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        46: .line 2282
            ldc "ssl"
            aload 2 /* propVal */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 55
        47: .line 2283
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        48: .line 2284
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
        49: .line 2285
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
            ifeq 55
        50: .line 2286
            aload 0 /* this */
            sipush 636
            putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        51: .line 2289
            goto 55
        52: .line 2292
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        53: .line 2293
            goto 55
        54: .line 2297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        55: .line 2302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnonnull 57
        56: .line 2303
            new java.util.Hashtable
            dup
            iconst_5
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            goto 58
        57: .line 2304
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.clone:()Ljava/lang/Object;
            checkcast java.util.Hashtable
        58: .line 2302
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.Object
      StackMap stack: com.sun.jndi.ldap.LdapCtx java.util.Hashtable
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        59: .line 2305
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 1 /* propName */
            aload 2 /* propVal */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object propVal
        end local 1 // java.lang.String propName
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   60     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   60     1  propName  Ljava/lang/String;
            0   60     2   propVal  Ljava/lang/Object;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      propName  
      propVal   

  void setProviderUrl(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String providerUrl
         0: .line 2313
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnull 2
         1: .line 2314
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.provider.url"
            aload 1 /* providerUrl */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 2316
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String providerUrl
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/sun/jndi/ldap/LdapCtx;
            0    3     1  providerUrl  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      providerUrl  

  void setDomainName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String domainName
         0: .line 2324
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnull 2
         1: .line 2325
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.domainname"
            aload 1 /* domainName */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 2327
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String domainName
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0    3     1  domainName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      domainName  

  private void initEnv();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2330
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnonnull 3
         1: .line 2332
            aload 0 /* this */
            aconst_null
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralMode:(Ljava/lang/String;Z)V
         2: .line 2333
            return
         3: .line 2337
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.batchsize"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setBatchSize:(Ljava/lang/String;)V
         4: .line 2340
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.ref.separator"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setRefSeparator:(Ljava/lang/String;)V
         5: .line 2343
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.deleteRDN"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setDeleteRDN:(Ljava/lang/String;)V
         6: .line 2346
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.typesOnly"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setTypesOnly:(Ljava/lang/String;)V
         7: .line 2349
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.derefAliases"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setDerefAliases:(Ljava/lang/String;)V
         8: .line 2352
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.referral.limit"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralLimit:(Ljava/lang/String;)V
         9: .line 2354
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.attributes.binary"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setBinaryAttributes:(Ljava/lang/String;)V
        10: .line 2356
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.control.connect"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.naming.ldap.Control[]
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneControls:([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            putfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
        11: .line 2359
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.referral"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralMode:(Ljava/lang/String;Z)V
        12: .line 2362
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.connect.timeout"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setConnectTimeout:(Ljava/lang/String;)V
        13: .line 2365
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.read.timeout"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReadTimeout:(Ljava/lang/String;)V
        14: .line 2369
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.search.waitForReply"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setWaitForReply:(Ljava/lang/String;)V
        15: .line 2372
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.search.replyQueueSize"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReplyQueueSize:(Ljava/lang/String;)V
        16: .line 2376
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  private void setDeleteRDN(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String deleteRDNProp
         0: .line 2379
            aload 1 /* deleteRDNProp */
            ifnull 4
         1: .line 2380
            aload 1 /* deleteRDNProp */
            ldc "false"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         2: .line 2381
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
         3: .line 2382
            goto 5
         4: .line 2383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
         5: .line 2385
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String deleteRDNProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/sun/jndi/ldap/LdapCtx;
            0    6     1  deleteRDNProp  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      deleteRDNProp  

  private void setTypesOnly(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String typesOnlyProp
         0: .line 2388
            aload 1 /* typesOnlyProp */
            ifnull 4
         1: .line 2389
            aload 1 /* typesOnlyProp */
            ldc "true"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         2: .line 2390
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
         3: .line 2391
            goto 5
         4: .line 2392
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
         5: .line 2394
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String typesOnlyProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/sun/jndi/ldap/LdapCtx;
            0    6     1  typesOnlyProp  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      typesOnlyProp  

  private void setBatchSize(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String batchSizeProp
         0: .line 2401
            aload 1 /* batchSizeProp */
            ifnull 3
         1: .line 2402
            aload 0 /* this */
            aload 1 /* batchSizeProp */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
         2: .line 2403
            goto 4
         3: .line 2404
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
         4: .line 2406
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String batchSizeProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  batchSizeProp  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      batchSizeProp  

  private void setReferralMode(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String ref
        start local 2 // boolean update
         0: .line 2414
            aload 1 /* ref */
            ifnull 18
         1: .line 2415
            aload 1 /* ref */
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 4
          -1268958287: 2
          -1190396462: 3
           -412873919: 4
            110339814: 5
              default: 14
          }
      StackMap locals: java.lang.String
      StackMap stack:
         2: aload 3
            ldc "follow"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 14
      StackMap locals:
      StackMap stack:
         3: aload 3
            ldc "ignore"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            goto 14
      StackMap locals:
      StackMap stack:
         4: aload 3
            ldc "follow-scheme"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            goto 14
      StackMap locals:
      StackMap stack:
         5: aload 3
            ldc "throw"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            goto 14
         6: .line 2417
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_4
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
         7: .line 2418
            goto 19
         8: .line 2420
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
         9: .line 2421
            goto 19
        10: .line 2423
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
        11: .line 2424
            goto 19
        12: .line 2426
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
        13: .line 2427
            goto 19
        14: .line 2429
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        15: .line 2430
            ldc "Illegal value for java.naming.referral property."
        16: .line 2429
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 2432
      StackMap locals:
      StackMap stack:
            goto 19
        18: .line 2433
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
        19: .line 2436
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_3
            if_icmpne 22
        20: .line 2438
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            getstatic com.sun.jndi.ldap.LdapCtx.manageReferralControl:Ljavax/naming/ldap/Control;
            invokestatic com.sun.jndi.ldap.LdapCtx.addControl:([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        21: .line 2440
            goto 24
      StackMap locals:
      StackMap stack:
        22: iload 2 /* update */
            ifeq 24
        23: .line 2443
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            getstatic com.sun.jndi.ldap.LdapCtx.manageReferralControl:Ljavax/naming/ldap/Control;
            invokestatic com.sun.jndi.ldap.LdapCtx.removeControl:([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        24: .line 2446
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean update
        end local 1 // java.lang.String ref
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   25     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0   25     1     ref  Ljava/lang/String;
            0   25     2  update  Z
    MethodParameters:
        Name  Flags
      ref     
      update  

  private void setDerefAliases(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String deref
         0: .line 2452
            aload 1 /* deref */
            ifnull 16
         1: .line 2453
            aload 1 /* deref */
            dup
            astore 2
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 4
          -1414557169: 2
           -853173367: 3
            104712844: 4
           1778217274: 5
              default: 14
          }
      StackMap locals: java.lang.String
      StackMap stack:
         2: aload 2
            ldc "always"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            goto 14
      StackMap locals:
      StackMap stack:
         3: aload 2
            ldc "finding"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            goto 14
      StackMap locals:
      StackMap stack:
         4: aload 2
            ldc "never"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            goto 14
      StackMap locals:
      StackMap stack:
         5: aload 2
            ldc "searching"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 14
         6: .line 2455
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
         7: .line 2456
            goto 17
         8: .line 2458
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
         9: .line 2459
            goto 17
        10: .line 2461
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        11: .line 2462
            goto 17
        12: .line 2464
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        13: .line 2465
            goto 17
        14: .line 2467
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal value for java.naming.ldap.derefAliases property."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 2470
      StackMap locals:
      StackMap stack:
            goto 17
        16: .line 2471
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        17: .line 2473
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String deref
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Lcom/sun/jndi/ldap/LdapCtx;
            0   18     1  deref  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      deref  

  private void setRefSeparator(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String sepStr
         0: .line 2476
            aload 1 /* sepStr */
            ifnull 3
            aload 1 /* sepStr */
            invokevirtual java.lang.String.length:()I
            ifle 3
         1: .line 2477
            aload 0 /* this */
            aload 1 /* sepStr */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            putfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
         2: .line 2478
            goto 4
         3: .line 2479
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 35
            putfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
         4: .line 2481
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String sepStr
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  sepStr  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      sepStr  

  private void setReferralLimit(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String referralLimitProp
         0: .line 2488
            aload 1 /* referralLimitProp */
            ifnull 5
         1: .line 2489
            aload 0 /* this */
            aload 1 /* referralLimitProp */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
         2: .line 2492
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
            ifne 6
         3: .line 2493
            aload 0 /* this */
            ldc 2147483647
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
         4: .line 2494
            goto 6
         5: .line 2495
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
         6: .line 2497
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String referralLimitProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lcom/sun/jndi/ldap/LdapCtx;
            0    7     1  referralLimitProp  Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      referralLimitProp  

  void setHopCount(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // int hopCount
         0: .line 2501
            aload 0 /* this */
            iload 1 /* hopCount */
            putfield com.sun.jndi.ldap.LdapCtx.hopCount:I
         1: .line 2502
            return
        end local 1 // int hopCount
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1  hopCount  I
    MethodParameters:
          Name  Flags
      hopCount  

  private void setConnectTimeout(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String connectTimeoutProp
         0: .line 2508
            aload 1 /* connectTimeoutProp */
            ifnull 3
         1: .line 2509
            aload 0 /* this */
            aload 1 /* connectTimeoutProp */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
         2: .line 2510
            goto 4
         3: .line 2511
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
         4: .line 2513
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String connectTimeoutProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0                this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  connectTimeoutProp  Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      connectTimeoutProp  

  private void setReplyQueueSize(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String replyQueueSizeProp
         0: .line 2519
            aload 1 /* replyQueueSizeProp */
            ifnull 5
         1: .line 2520
            aload 0 /* this */
            aload 1 /* replyQueueSizeProp */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield com.sun.jndi.ldap.LdapCtx.replyQueueSize:I
         2: .line 2522
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.replyQueueSize:I
            ifgt 6
         3: .line 2523
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.replyQueueSize:I
         4: .line 2525
            goto 6
         5: .line 2526
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.replyQueueSize:I
         6: .line 2528
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String replyQueueSizeProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Lcom/sun/jndi/ldap/LdapCtx;
            0    7     1  replyQueueSizeProp  Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      replyQueueSizeProp  

  private void setWaitForReply(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String waitForReplyProp
         0: .line 2535
            aload 1 /* waitForReplyProp */
            ifnull 4
         1: .line 2536
            aload 1 /* waitForReplyProp */
            ldc "false"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         2: .line 2537
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.waitForReply:Z
         3: .line 2538
            goto 5
         4: .line 2539
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.waitForReply:Z
         5: .line 2541
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String waitForReplyProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lcom/sun/jndi/ldap/LdapCtx;
            0    6     1  waitForReplyProp  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      waitForReplyProp  

  private void setReadTimeout(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String readTimeoutProp
         0: .line 2547
            aload 1 /* readTimeoutProp */
            ifnull 3
         1: .line 2548
            aload 0 /* this */
            aload 1 /* readTimeoutProp */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
         2: .line 2549
            goto 4
         3: .line 2550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
         4: .line 2552
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String readTimeoutProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  readTimeoutProp  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      readTimeoutProp  

  private static java.util.Vector<java.util.Vector<java.lang.String>> extractURLs(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Vector;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.lang.String refString
         0: .line 2566
            iconst_0
            istore 1 /* separator */
        start local 1 // int separator
         1: .line 2567
            iconst_0
            istore 2 /* urlCount */
        start local 2 // int urlCount
         2: .line 2570
            goto 5
         3: .line 2571
      StackMap locals: int int
      StackMap stack:
            iinc 1 /* separator */ 1
         4: .line 2572
            iinc 2 /* urlCount */ 1
         5: .line 2570
      StackMap locals:
      StackMap stack:
            aload 0 /* refString */
            bipush 10
            iload 1 /* separator */
            invokevirtual java.lang.String.indexOf:(II)I
            dup
            istore 1 /* separator */
            ifge 3
         6: .line 2575
            new java.util.Vector
            dup
            iload 2 /* urlCount */
            invokespecial java.util.Vector.<init>:(I)V
            astore 3 /* referrals */
        start local 3 // java.util.Vector referrals
         7: .line 2579
            aload 0 /* refString */
            bipush 10
            invokevirtual java.lang.String.indexOf:(I)I
            istore 1 /* separator */
         8: .line 2580
            iload 1 /* separator */
            iconst_1
            iadd
            istore 4 /* iURL */
        start local 4 // int iURL
         9: .line 2581
            goto 14
        10: .line 2582
      StackMap locals: java.util.Vector int
      StackMap stack:
            new java.util.Vector
            dup
            iconst_1
            invokespecial java.util.Vector.<init>:(I)V
            astore 5 /* referral */
        start local 5 // java.util.Vector referral
        11: .line 2583
            aload 5 /* referral */
            aload 0 /* refString */
            iload 4 /* iURL */
            iload 1 /* separator */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        12: .line 2584
            aload 3 /* referrals */
            aload 5 /* referral */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        13: .line 2585
            iload 1 /* separator */
            iconst_1
            iadd
            istore 4 /* iURL */
        end local 5 // java.util.Vector referral
        14: .line 2581
      StackMap locals:
      StackMap stack:
            aload 0 /* refString */
            bipush 10
            iload 4 /* iURL */
            invokevirtual java.lang.String.indexOf:(II)I
            dup
            istore 1 /* separator */
            ifge 10
        15: .line 2587
            new java.util.Vector
            dup
            iconst_1
            invokespecial java.util.Vector.<init>:(I)V
            astore 5 /* referral */
        start local 5 // java.util.Vector referral
        16: .line 2588
            aload 5 /* referral */
            aload 0 /* refString */
            iload 4 /* iURL */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        17: .line 2589
            aload 3 /* referrals */
            aload 5 /* referral */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        18: .line 2591
            aload 3 /* referrals */
            areturn
        end local 5 // java.util.Vector referral
        end local 4 // int iURL
        end local 3 // java.util.Vector referrals
        end local 2 // int urlCount
        end local 1 // int separator
        end local 0 // java.lang.String refString
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0  refString  Ljava/lang/String;
            1   19     1  separator  I
            2   19     2   urlCount  I
            7   19     3  referrals  Ljava/util/Vector<Ljava/util/Vector<Ljava/lang/String;>;>;
            9   19     4       iURL  I
           11   14     5   referral  Ljava/util/Vector<Ljava/lang/String;>;
           16   19     5   referral  Ljava/util/Vector<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;)Ljava/util/Vector<Ljava/util/Vector<Ljava/lang/String;>;>;
    MethodParameters:
           Name  Flags
      refString  

  private void setBinaryAttributes(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String attrIds
         0: .line 2599
            aload 1 /* attrIds */
            ifnonnull 3
         1: .line 2600
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
         2: .line 2601
            goto 9
         3: .line 2602
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.Hashtable
            dup
            bipush 11
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            putfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
         4: .line 2604
            new java.util.StringTokenizer
            dup
            aload 1 /* attrIds */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc " "
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         5: .line 2603
            astore 2 /* tokens */
        start local 2 // java.util.StringTokenizer tokens
         6: .line 2606
            goto 8
         7: .line 2607
      StackMap locals: java.util.StringTokenizer
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
            aload 2 /* tokens */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 2606
      StackMap locals:
      StackMap stack:
            aload 2 /* tokens */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 7
        end local 2 // java.util.StringTokenizer tokens
         9: .line 2610
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String attrIds
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/sun/jndi/ldap/LdapCtx;
            0   10     1  attrIds  Ljava/lang/String;
            6    9     2   tokens  Ljava/util/StringTokenizer;
    MethodParameters:
         Name  Flags
      attrIds  

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2617
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.close:()V
         1: .line 2618
            goto 3
      StackMap locals:
      StackMap stack: javax.naming.NamingException
         2: pop
         3: .line 2621
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/jndi/ldap/LdapCtx;
      Exception table:
        from    to  target  type
           0     1       2  Class javax.naming.NamingException

  public synchronized void close();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2630
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            ifnull 3
         1: .line 2631
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            invokevirtual com.sun.jndi.ldap.EventSupport.cleanup:()V
         2: .line 2632
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.removeUnsolicited:()V
         3: .line 2636
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.enumCount:I
            ifle 6
         4: .line 2639
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.closeRequested:Z
         5: .line 2640
            return
         6: .line 2642
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
         7: .line 2653
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  public void reconnect(javax.naming.ldap.Control[]);
    descriptor: ([Ljavax/naming/ldap/Control;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.ldap.Control[] connCtls
         0: .line 2658
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnonnull 2
         1: .line 2659
            new java.util.Hashtable
            dup
            iconst_5
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            goto 3
         2: .line 2660
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.clone:()Ljava/lang/Object;
            checkcast java.util.Hashtable
         3: .line 2658
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.ldap.Control[]
      StackMap stack: com.sun.jndi.ldap.LdapCtx java.util.Hashtable
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
         4: .line 2662
            aload 1 /* connCtls */
            ifnonnull 8
         5: .line 2663
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.control.connect"
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 2664
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
         7: .line 2665
            goto 9
         8: .line 2666
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.control.connect"
            aload 0 /* this */
            aload 1 /* connCtls */
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneControls:([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            dup_x1
            putfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 2669
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        10: .line 2670
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
        11: .line 2671
            return
        end local 1 // javax.naming.ldap.Control[] connCtls
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   12     1  connCtls  [Ljavax/naming/ldap/Control;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      connCtls  

  private void ensureOpen();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2674
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:(Z)V
         1: .line 2675
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  private void ensureOpen(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // boolean startTLS
         0: .line 2680
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            ifnonnull 4
         1: .line 2686
            aload 0 /* this */
            new java.util.Hashtable
            dup
            bipush 11
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
         2: .line 2687
            aload 0 /* this */
            iload 1 /* startTLS */
            invokevirtual com.sun.jndi.ldap.LdapCtx.connect:(Z)V
         3: .line 2689
            goto 21
      StackMap locals:
      StackMap stack:
         4: aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.sharable:Z
            ifeq 5
            iload 1 /* startTLS */
            ifeq 21
         5: .line 2691
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            dup
            astore 2
            monitorenter
         6: .line 2692
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 10
         7: .line 2693
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            getfield com.sun.jndi.ldap.LdapClient.referenceCount:I
            iconst_1
            if_icmpgt 10
         8: .line 2694
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            invokevirtual com.sun.jndi.ldap.LdapClient.usingSaslStreams:()Z
            ifne 10
         9: .line 2695
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.useable:Z
            ifne 11
        10: .line 2696
      StackMap locals: com.sun.jndi.ldap.LdapClient
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        11: .line 2691
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 2
            monitorexit
        14: athrow
        15: .line 2700
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.Hashtable
            dup
            bipush 11
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
        16: .line 2701
            aload 0 /* this */
            iload 1 /* startTLS */
            invokevirtual com.sun.jndi.ldap.LdapCtx.connect:(Z)V
        17: .line 2704
            goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 3
        19: .line 2705
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        20: .line 2707
            aload 3
            athrow
        21: .line 2705
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        22: .line 2708
            return
        end local 1 // boolean startTLS
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   23     1  startTLS  Z
      Exception table:
        from    to  target  type
           6    12      13  any
          13    14      13  any
           0    18      18  any
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      startTLS  

  private void connect(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=15, locals=15, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // boolean startTLS
         0: .line 2713
            aconst_null
            astore 2 /* user */
        start local 2 // java.lang.String user
         1: .line 2714
            aconst_null
            astore 3 /* passwd */
        start local 3 // java.lang.Object passwd
         2: .line 2715
            aconst_null
            astore 4 /* secProtocol */
        start local 4 // java.lang.String secProtocol
         3: .line 2716
            aconst_null
            astore 5 /* socketFactory */
        start local 5 // java.lang.String socketFactory
         4: .line 2717
            aconst_null
            astore 6 /* authMechanism */
        start local 6 // java.lang.String authMechanism
         5: .line 2718
            aconst_null
            astore 7 /* ver */
        start local 7 // java.lang.String ver
         6: .line 2720
            iconst_0
            istore 9 /* usePool */
        start local 9 // boolean usePool
         7: .line 2722
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnull 18
         8: .line 2723
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.security.principal"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* user */
         9: .line 2724
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.security.credentials"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* passwd */
        10: .line 2725
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.version"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* ver */
        11: .line 2727
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
            ifeq 12
            ldc "ssl"
            goto 13
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int
      StackMap stack:
        12: aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.security.protocol"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
        13: .line 2726
      StackMap locals:
      StackMap stack: java.lang.String
            astore 4 /* secProtocol */
        14: .line 2728
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.factory.socket"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* socketFactory */
        15: .line 2730
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.security.authentication"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
        16: .line 2729
            astore 6 /* authMechanism */
        17: .line 2732
            ldc "true"
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.connect.pool"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            istore 9 /* usePool */
        18: .line 2735
      StackMap locals:
      StackMap stack:
            aload 5 /* socketFactory */
            ifnonnull 22
        19: .line 2737
            ldc "ssl"
            aload 4 /* secProtocol */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
            ldc "javax.net.ssl.SSLSocketFactory"
            goto 21
      StackMap locals:
      StackMap stack:
        20: aconst_null
        21: .line 2736
      StackMap locals:
      StackMap stack: java.lang.String
            astore 5 /* socketFactory */
        22: .line 2740
      StackMap locals:
      StackMap stack:
            aload 6 /* authMechanism */
            ifnonnull 26
        23: .line 2741
            aload 2 /* user */
            ifnonnull 24
            ldc "none"
            goto 25
      StackMap locals:
      StackMap stack:
        24: ldc "simple"
      StackMap locals:
      StackMap stack: java.lang.String
        25: astore 6 /* authMechanism */
        26: .line 2745
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            ifnonnull 27
            iconst_1
            goto 28
      StackMap locals:
      StackMap stack:
        27: iconst_0
      StackMap locals:
      StackMap stack: int
        28: istore 10 /* initial */
        start local 10 // boolean initial
        29: .line 2747
            iload 10 /* initial */
            ifeq 51
        30: .line 2748
            aload 7 /* ver */
            ifnull 31
            aload 7 /* ver */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            goto 32
        31: .line 2749
      StackMap locals: int
      StackMap stack:
            bipush 32
        32: .line 2748
      StackMap locals:
      StackMap stack: int
            istore 8 /* ldapVersion */
        start local 8 // int ldapVersion
        33: .line 2751
            aload 0 /* this */
        34: .line 2752
            iload 9 /* usePool */
        35: .line 2755
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        36: .line 2756
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.port_number:I
        37: .line 2757
            aload 5 /* socketFactory */
        38: .line 2758
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
        39: .line 2759
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
        40: .line 2760
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
        41: .line 2763
            iload 8 /* ldapVersion */
        42: .line 2764
            aload 6 /* authMechanism */
        43: .line 2765
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
        44: .line 2766
            aload 4 /* secProtocol */
        45: .line 2769
            aload 2 /* user */
        46: .line 2770
            aload 3 /* passwd */
        47: .line 2773
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        48: .line 2751
            invokestatic com.sun.jndi.ldap.LdapClient.getInstance:(ZLjava/lang/String;ILjava/lang/String;IILjava/io/OutputStream;ILjava/lang/String;[Ljavax/naming/ldap/Control;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapClient;
            putfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
        49: .line 2779
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            invokevirtual com.sun.jndi.ldap.LdapClient.authenticateCalled:()Z
            ifeq 54
        50: .line 2780
            return
        end local 8 // int ldapVersion
        51: .line 2783
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.sharable:Z
            ifeq 53
            iload 1 /* startTLS */
            ifeq 53
        52: .line 2784
            return
        53: .line 2789
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 8 /* ldapVersion */
        start local 8 // int ldapVersion
        54: .line 2792
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            iload 10 /* initial */
        55: .line 2793
            aload 2 /* user */
            aload 3 /* passwd */
            iload 8 /* ldapVersion */
            aload 6 /* authMechanism */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        56: .line 2792
            invokevirtual com.sun.jndi.ldap.LdapClient.authenticate:(ZLjava/lang/String;Ljava/lang/Object;ILjava/lang/String;[Ljavax/naming/ldap/Control;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapResult;
            astore 11 /* answer */
        start local 11 // com.sun.jndi.ldap.LdapResult answer
        57: .line 2795
            aload 0 /* this */
            aload 11 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        58: .line 2797
            aload 11 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 84
        59: .line 2798
            iload 10 /* initial */
            ifeq 61
        60: .line 2799
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        61: .line 2801
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 0 /* this */
            aload 11 /* answer */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;)V
        end local 11 // com.sun.jndi.ldap.LdapResult answer
        end local 10 // boolean initial
        62: .line 2804
            goto 84
        end local 8 // int ldapVersion
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
        63: astore 10 /* e */
        start local 10 // com.sun.jndi.ldap.LdapReferralException e
        64: .line 2805
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 66
        65: .line 2806
            aload 10 /* e */
            athrow
        66: .line 2810
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aconst_null
            astore 13 /* saved_ex */
        start local 13 // javax.naming.NamingException saved_ex
        67: .line 2816
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int com.sun.jndi.ldap.LdapReferralException top top javax.naming.NamingException
      StackMap stack:
            aload 10 /* e */
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getNextReferral:()Ljava/lang/String;
            dup
            astore 11 /* referral */
        start local 11 // java.lang.String referral
        68: ifnonnull 74
        69: .line 2819
            aload 13 /* saved_ex */
            ifnull 71
        70: .line 2820
            aload 13 /* saved_ex */
            invokevirtual javax.naming.NamingException.fillInStackTrace:()Ljava/lang/Throwable;
            checkcast javax.naming.NamingException
            athrow
        71: .line 2823
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int com.sun.jndi.ldap.LdapReferralException java.lang.String top javax.naming.NamingException
      StackMap stack:
            new javax.naming.NamingException
            dup
        72: .line 2824
            ldc "Internal error processing referral during connection"
        73: .line 2823
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            athrow
        74: .line 2829
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapURL
            dup
            aload 11 /* referral */
            invokespecial com.sun.jndi.ldap.LdapURL.<init>:(Ljava/lang/String;)V
            astore 12 /* url */
        start local 12 // com.sun.jndi.ldap.LdapURL url
        75: .line 2830
            aload 0 /* this */
            aload 12 /* url */
            invokevirtual com.sun.jndi.ldap.LdapURL.getHost:()Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        76: .line 2831
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            ifnull 78
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 78
        77: .line 2832
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            iconst_1
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        78: .line 2834
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int com.sun.jndi.ldap.LdapReferralException java.lang.String com.sun.jndi.ldap.LdapURL javax.naming.NamingException
      StackMap stack:
            aload 0 /* this */
            aload 12 /* url */
            invokevirtual com.sun.jndi.ldap.LdapURL.getPort:()I
            putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        79: .line 2838
            aload 0 /* this */
            iload 1 /* startTLS */
            invokevirtual com.sun.jndi.ldap.LdapCtx.connect:(Z)V
        80: .line 2839
            goto 84
        81: .line 2841
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 14 /* ne */
        start local 14 // javax.naming.NamingException ne
        82: .line 2842
            aload 14 /* ne */
            astore 13 /* saved_ex */
        end local 14 // javax.naming.NamingException ne
        end local 12 // com.sun.jndi.ldap.LdapURL url
        end local 11 // java.lang.String referral
        83: .line 2814
            goto 67
        end local 13 // javax.naming.NamingException saved_ex
        end local 10 // com.sun.jndi.ldap.LdapReferralException e
        84: .line 2847
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int
      StackMap stack:
            return
        end local 9 // boolean usePool
        end local 7 // java.lang.String ver
        end local 6 // java.lang.String authMechanism
        end local 5 // java.lang.String socketFactory
        end local 4 // java.lang.String secProtocol
        end local 3 // java.lang.Object passwd
        end local 2 // java.lang.String user
        end local 1 // boolean startTLS
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   85     0           this  Lcom/sun/jndi/ldap/LdapCtx;
            0   85     1       startTLS  Z
            1   85     2           user  Ljava/lang/String;
            2   85     3         passwd  Ljava/lang/Object;
            3   85     4    secProtocol  Ljava/lang/String;
            4   85     5  socketFactory  Ljava/lang/String;
            5   85     6  authMechanism  Ljava/lang/String;
            6   85     7            ver  Ljava/lang/String;
           33   51     8    ldapVersion  I
           54   63     8    ldapVersion  I
            7   85     9        usePool  Z
           29   62    10        initial  Z
           57   62    11         answer  Lcom/sun/jndi/ldap/LdapResult;
           64   84    10              e  Lcom/sun/jndi/ldap/LdapReferralException;
           68   83    11       referral  Ljava/lang/String;
           75   83    12            url  Lcom/sun/jndi/ldap/LdapURL;
           67   84    13       saved_ex  Ljavax/naming/NamingException;
           82   83    14             ne  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
          26    50      63  Class com.sun.jndi.ldap.LdapReferralException
          51    52      63  Class com.sun.jndi.ldap.LdapReferralException
          53    62      63  Class com.sun.jndi.ldap.LdapReferralException
          79    80      81  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      startTLS  

  private void closeConnection(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // boolean hardclose
         0: .line 2850
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.removeUnsolicited:()V
         1: .line 2852
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            ifnull 4
         2: .line 2856
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            iload 1 /* hardclose */
            invokevirtual com.sun.jndi.ldap.LdapClient.close:([Ljavax/naming/ldap/Control;Z)V
         3: .line 2857
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
         4: .line 2859
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean hardclose
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  hardclose  Z
    MethodParameters:
           Name  Flags
      hardclose  

  synchronized void incEnumCount();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2866
            aload 0 /* this */
            dup
            getfield com.sun.jndi.ldap.LdapCtx.enumCount:I
            iconst_1
            iadd
            putfield com.sun.jndi.ldap.LdapCtx.enumCount:I
         1: .line 2868
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapCtx;

  synchronized void decEnumCount();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2871
            aload 0 /* this */
            dup
            getfield com.sun.jndi.ldap.LdapCtx.enumCount:I
            iconst_1
            isub
            putfield com.sun.jndi.ldap.LdapCtx.enumCount:I
         1: .line 2874
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.enumCount:I
            ifne 5
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.closeRequested:Z
            ifeq 5
         2: .line 2876
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.close:()V
         3: .line 2877
            goto 5
      StackMap locals:
      StackMap stack: javax.naming.NamingException
         4: pop
         5: .line 2881
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/jndi/ldap/LdapCtx;
      Exception table:
        from    to  target  type
           2     3       4  Class javax.naming.NamingException

  protected void processReturnCode(com.sun.jndi.ldap.LdapResult);
    descriptor: (Lcom/sun/jndi/ldap/LdapResult;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // com.sun.jndi.ldap.LdapResult answer
         0: .line 2887
            aload 0 /* this */
            aload 1 /* answer */
            aconst_null
            aload 0 /* this */
            aconst_null
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aconst_null
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/util/Hashtable;Ljava/lang/String;)V
         1: .line 2888
            return
        end local 1 // com.sun.jndi.ldap.LdapResult answer
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1  answer  Lcom/sun/jndi/ldap/LdapResult;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      answer  

  void processReturnCode(com.sun.jndi.ldap.LdapResult, javax.naming.Name);
    descriptor: (Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // com.sun.jndi.ldap.LdapResult answer
        start local 2 // javax.naming.Name remainName
         0: .line 2892
            aload 0 /* this */
            aload 1 /* answer */
         1: .line 2893
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokevirtual javax.naming.CompositeName.add:(Ljava/lang/String;)Ljavax/naming/Name;
         2: .line 2894
            aload 0 /* this */
         3: .line 2895
            aload 2 /* remainName */
         4: .line 2896
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
         5: .line 2897
            aload 0 /* this */
            aload 2 /* remainName */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
         6: .line 2892
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/util/Hashtable;Ljava/lang/String;)V
         7: .line 2898
            return
        end local 2 // javax.naming.Name remainName
        end local 1 // com.sun.jndi.ldap.LdapResult answer
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0    8     1      answer  Lcom/sun/jndi/ldap/LdapResult;
            0    8     2  remainName  Ljavax/naming/Name;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
            Name  Flags
      answer      
      remainName  

  protected void processReturnCode(com.sun.jndi.ldap.LdapResult, javax.naming.Name, , javax.naming.Name, java.util.Hashtable<?, ?>, java.lang.String);
    descriptor: (Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/util/Hashtable;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=10, locals=14, args_size=7
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // com.sun.jndi.ldap.LdapResult res
        start local 2 // javax.naming.Name resolvedName
        start local 3 // java.lang.Object resolvedObj
        start local 4 // javax.naming.Name remainName
        start local 5 // java.util.Hashtable envprops
        start local 6 // java.lang.String fullDN
         0: .line 2904
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapClient.getErrorMessage:(ILjava/lang/String;)Ljava/lang/String;
            astore 7 /* msg */
        start local 7 // java.lang.String msg
         1: .line 2906
            aconst_null
            astore 9 /* r */
        start local 9 // com.sun.jndi.ldap.LdapReferralException r
         2: .line 2908
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            lookupswitch { // 5
                    0: 3
                    9: 74
                   10: 43
                   34: 107
                   64: 107
              default: 113
          }
         3: .line 2913
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapResult javax.naming.Name java.lang.Object javax.naming.Name java.util.Hashtable java.lang.String java.lang.String top com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnull 42
         4: .line 2915
            ldc "Unprocessed Continuation Reference(s)"
            astore 7 /* msg */
         5: .line 2917
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_3
            if_icmpne 8
         6: .line 2918
            new javax.naming.PartialResultException
            dup
            aload 7 /* msg */
            invokespecial javax.naming.PartialResultException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
         7: .line 2919
            goto 114
        end local 8 // javax.naming.NamingException e
         8: .line 2923
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            istore 10 /* contRefCount */
        start local 10 // int contRefCount
         9: .line 2924
            aconst_null
            astore 11 /* head */
        start local 11 // com.sun.jndi.ldap.LdapReferralException head
        10: .line 2925
            aconst_null
            astore 12 /* ptr */
        start local 12 // com.sun.jndi.ldap.LdapReferralException ptr
        11: .line 2927
            ldc "Continuation Reference"
            astore 7 /* msg */
        12: .line 2930
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        13: goto 27
        14: .line 2932
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapResult javax.naming.Name java.lang.Object javax.naming.Name java.util.Hashtable java.lang.String java.lang.String top com.sun.jndi.ldap.LdapReferralException int com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralException int
      StackMap stack:
            new com.sun.jndi.ldap.LdapReferralException
            dup
            aload 2 /* resolvedName */
            aload 3 /* resolvedObj */
        15: .line 2933
            aload 4 /* remainName */
            aload 7 /* msg */
            aload 5 /* envprops */
            aload 6 /* fullDN */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
        16: .line 2934
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        17: .line 2932
            invokespecial com.sun.jndi.ldap.LdapReferralException.<init>:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/lang/String;Ljava/util/Hashtable;Ljava/lang/String;I[Ljavax/naming/ldap/Control;)V
            astore 9 /* r */
        18: .line 2935
            aload 9 /* r */
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iload 13 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast java.util.Vector
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setReferralInfo:(Ljava/util/Vector;Z)V
        19: .line 2937
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            iconst_1
            if_icmple 21
        20: .line 2938
            aload 9 /* r */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setHopCount:(I)V
        21: .line 2941
      StackMap locals:
      StackMap stack:
            aload 11 /* head */
            ifnonnull 24
        22: .line 2942
            aload 9 /* r */
            dup
            astore 12 /* ptr */
            astore 11 /* head */
        23: .line 2943
            goto 26
        24: .line 2944
      StackMap locals:
      StackMap stack:
            aload 12 /* ptr */
            aload 9 /* r */
            putfield com.sun.jndi.ldap.LdapReferralException.nextReferralEx:Lcom/sun/jndi/ldap/LdapReferralException;
        25: .line 2945
            aload 9 /* r */
            astore 12 /* ptr */
        26: .line 2930
      StackMap locals:
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 13 /* i */
            iload 10 /* contRefCount */
            if_icmplt 14
        end local 13 // int i
        28: .line 2948
            aload 1 /* res */
            aconst_null
            putfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
        29: .line 2950
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.refEx:Lcom/sun/jndi/ldap/LdapReferralException;
            ifnonnull 32
        30: .line 2951
            aload 1 /* res */
            aload 11 /* head */
            putfield com.sun.jndi.ldap.LdapResult.refEx:Lcom/sun/jndi/ldap/LdapReferralException;
        31: .line 2953
            goto 37
        32: .line 2954
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.refEx:Lcom/sun/jndi/ldap/LdapReferralException;
            astore 12 /* ptr */
        33: .line 2956
            goto 35
        34: .line 2957
      StackMap locals:
      StackMap stack:
            aload 12 /* ptr */
            getfield com.sun.jndi.ldap.LdapReferralException.nextReferralEx:Lcom/sun/jndi/ldap/LdapReferralException;
            astore 12 /* ptr */
        35: .line 2956
      StackMap locals:
      StackMap stack:
            aload 12 /* ptr */
            getfield com.sun.jndi.ldap.LdapReferralException.nextReferralEx:Lcom/sun/jndi/ldap/LdapReferralException;
            ifnonnull 34
        36: .line 2959
            aload 12 /* ptr */
            aload 11 /* head */
            putfield com.sun.jndi.ldap.LdapReferralException.nextReferralEx:Lcom/sun/jndi/ldap/LdapReferralException;
        37: .line 2963
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
            if_icmple 42
        38: .line 2965
            new javax.naming.LimitExceededException
            dup
            ldc "Referral limit exceeded"
            invokespecial javax.naming.LimitExceededException.<init>:(Ljava/lang/String;)V
        39: .line 2964
            astore 13 /* lee */
        start local 13 // javax.naming.NamingException lee
        40: .line 2966
            aload 13 /* lee */
            aload 9 /* r */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        41: .line 2967
            aload 13 /* lee */
            athrow
        end local 13 // javax.naming.NamingException lee
        end local 12 // com.sun.jndi.ldap.LdapReferralException ptr
        end local 11 // com.sun.jndi.ldap.LdapReferralException head
        end local 10 // int contRefCount
        42: .line 2970
      StackMap locals:
      StackMap stack:
            return
        43: .line 2974
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_3
            if_icmpne 46
        44: .line 2975
            new javax.naming.PartialResultException
            dup
            aload 7 /* msg */
            invokespecial javax.naming.PartialResultException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
        45: .line 2976
            goto 114
        end local 8 // javax.naming.NamingException e
        46: .line 2979
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapReferralException
            dup
            aload 2 /* resolvedName */
            aload 3 /* resolvedObj */
            aload 4 /* remainName */
        47: .line 2980
            aload 7 /* msg */
            aload 5 /* envprops */
            aload 6 /* fullDN */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        48: .line 2979
            invokespecial com.sun.jndi.ldap.LdapReferralException.<init>:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/lang/String;Ljava/util/Hashtable;Ljava/lang/String;I[Ljavax/naming/ldap/Control;)V
            astore 9 /* r */
        49: .line 2983
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnonnull 52
        50: .line 2984
            aconst_null
            astore 10 /* refs */
        start local 10 // java.util.Vector refs
        51: .line 2985
            goto 63
        end local 10 // java.util.Vector refs
      StackMap locals:
      StackMap stack:
        52: aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_4
            if_icmpne 62
        53: .line 2986
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 10 /* refs */
        start local 10 // java.util.Vector refs
        54: .line 2987
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast java.util.Vector
            invokevirtual java.util.Vector.iterator:()Ljava/util/Iterator;
            astore 12
            goto 58
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapResult javax.naming.Name java.lang.Object javax.naming.Name java.util.Hashtable java.lang.String java.lang.String top com.sun.jndi.ldap.LdapReferralException java.util.Vector top java.util.Iterator
      StackMap stack:
        55: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 11 /* s */
        start local 11 // java.lang.String s
        56: .line 2988
            aload 11 /* s */
            ldc "ldap:"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 58
        57: .line 2989
            aload 10 /* refs */
            aload 11 /* s */
            invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // java.lang.String s
        58: .line 2987
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 55
        59: .line 2992
            aload 10 /* refs */
            invokevirtual java.util.Vector.isEmpty:()Z
            ifeq 63
        60: .line 2993
            aconst_null
            astore 10 /* refs */
        61: .line 2995
            goto 63
        end local 10 // java.util.Vector refs
        62: .line 2996
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapResult javax.naming.Name java.lang.Object javax.naming.Name java.util.Hashtable java.lang.String java.lang.String top com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast java.util.Vector
            astore 10 /* refs */
        start local 10 // java.util.Vector refs
        63: .line 2998
      StackMap locals: java.util.Vector
      StackMap stack:
            aload 9 /* r */
            aload 10 /* refs */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setReferralInfo:(Ljava/util/Vector;Z)V
        64: .line 3000
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            iconst_1
            if_icmple 66
        65: .line 3001
            aload 9 /* r */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setHopCount:(I)V
        66: .line 3005
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
            if_icmple 72
        67: .line 3007
            new javax.naming.LimitExceededException
            dup
            ldc "Referral limit exceeded"
            invokespecial javax.naming.LimitExceededException.<init>:(Ljava/lang/String;)V
        68: .line 3006
            astore 11 /* lee */
        start local 11 // javax.naming.NamingException lee
        69: .line 3008
            aload 11 /* lee */
            aload 9 /* r */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        70: .line 3009
            aload 11 /* lee */
            astore 8 /* e */
        end local 11 // javax.naming.NamingException lee
        start local 8 // javax.naming.NamingException e
        71: .line 3011
            goto 114
        end local 8 // javax.naming.NamingException e
        72: .line 3012
      StackMap locals:
      StackMap stack:
            aload 9 /* r */
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
        73: .line 3014
            goto 114
        end local 10 // java.util.Vector refs
        end local 8 // javax.naming.NamingException e
        74: .line 3030
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_3
            if_icmpne 77
        75: .line 3031
            new javax.naming.PartialResultException
            dup
            aload 7 /* msg */
            invokespecial javax.naming.PartialResultException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
        76: .line 3032
            goto 114
        end local 8 // javax.naming.NamingException e
        77: .line 3036
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            ifnull 80
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 80
        78: .line 3037
            aload 1 /* res */
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapCtx.extractURLs:(Ljava/lang/String;)Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
        79: .line 3038
            goto 82
        80: .line 3039
      StackMap locals:
      StackMap stack:
            new javax.naming.PartialResultException
            dup
            aload 7 /* msg */
            invokespecial javax.naming.PartialResultException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
        81: .line 3040
            goto 114
        end local 8 // javax.naming.NamingException e
        82: .line 3044
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapReferralException
            dup
            aload 2 /* resolvedName */
        83: .line 3045
            aload 3 /* resolvedObj */
        84: .line 3046
            aload 4 /* remainName */
        85: .line 3047
            aload 7 /* msg */
        86: .line 3048
            aload 5 /* envprops */
        87: .line 3049
            aload 6 /* fullDN */
        88: .line 3050
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
        89: .line 3051
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        90: .line 3044
            invokespecial com.sun.jndi.ldap.LdapReferralException.<init>:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/lang/String;Ljava/util/Hashtable;Ljava/lang/String;I[Ljavax/naming/ldap/Control;)V
            astore 9 /* r */
        91: .line 3053
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            iconst_1
            if_icmple 93
        92: .line 3054
            aload 9 /* r */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setHopCount:(I)V
        93: .line 3066
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            ifnull 94
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            invokevirtual java.util.Vector.isEmpty:()Z
            ifeq 104
        94: .line 3067
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnull 104
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            iconst_1
            if_icmpne 104
        95: .line 3069
            aload 9 /* r */
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setReferralInfo:(Ljava/util/Vector;Z)V
        96: .line 3072
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
            if_icmple 102
        97: .line 3074
            new javax.naming.LimitExceededException
            dup
            ldc "Referral limit exceeded"
            invokespecial javax.naming.LimitExceededException.<init>:(Ljava/lang/String;)V
        98: .line 3073
            astore 11 /* lee */
        start local 11 // javax.naming.NamingException lee
        99: .line 3075
            aload 11 /* lee */
            aload 9 /* r */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
       100: .line 3076
            aload 11 /* lee */
            astore 8 /* e */
        end local 11 // javax.naming.NamingException lee
        start local 8 // javax.naming.NamingException e
       101: .line 3078
            goto 114
        end local 8 // javax.naming.NamingException e
       102: .line 3079
      StackMap locals:
      StackMap stack:
            aload 9 /* r */
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
       103: .line 3082
            goto 114
        end local 8 // javax.naming.NamingException e
       104: .line 3083
      StackMap locals:
      StackMap stack:
            aload 9 /* r */
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setReferralInfo:(Ljava/util/Vector;Z)V
       105: .line 3084
            aload 1 /* res */
            aload 9 /* r */
            putfield com.sun.jndi.ldap.LdapResult.refEx:Lcom/sun/jndi/ldap/LdapReferralException;
       106: .line 3085
            return
       107: .line 3092
      StackMap locals:
      StackMap stack:
            aload 4 /* remainName */
            ifnull 111
       108: .line 3094
            new javax.naming.InvalidNameException
            dup
            new java.lang.StringBuilder
            dup
            aload 4 /* remainName */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       109: .line 3093
            invokespecial javax.naming.InvalidNameException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
       110: .line 3095
            goto 114
        end local 8 // javax.naming.NamingException e
       111: .line 3096
      StackMap locals:
      StackMap stack:
            new javax.naming.InvalidNameException
            dup
            aload 7 /* msg */
            invokespecial javax.naming.InvalidNameException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
       112: .line 3098
            goto 114
        end local 8 // javax.naming.NamingException e
       113: .line 3101
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapCtx.mapErrorCode:(ILjava/lang/String;)Ljavax/naming/NamingException;
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
       114: .line 3104
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapResult javax.naming.Name java.lang.Object javax.naming.Name java.util.Hashtable java.lang.String java.lang.String javax.naming.NamingException com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 8 /* e */
            aload 2 /* resolvedName */
            invokevirtual javax.naming.NamingException.setResolvedName:(Ljavax/naming/Name;)V
       115: .line 3105
            aload 8 /* e */
            aload 3 /* resolvedObj */
            invokevirtual javax.naming.NamingException.setResolvedObj:(Ljava/lang/Object;)V
       116: .line 3106
            aload 8 /* e */
            aload 4 /* remainName */
            invokevirtual javax.naming.NamingException.setRemainingName:(Ljavax/naming/Name;)V
       117: .line 3107
            aload 8 /* e */
            athrow
        end local 9 // com.sun.jndi.ldap.LdapReferralException r
        end local 8 // javax.naming.NamingException e
        end local 7 // java.lang.String msg
        end local 6 // java.lang.String fullDN
        end local 5 // java.util.Hashtable envprops
        end local 4 // javax.naming.Name remainName
        end local 3 // java.lang.Object resolvedObj
        end local 2 // javax.naming.Name resolvedName
        end local 1 // com.sun.jndi.ldap.LdapResult res
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0  118     0          this  Lcom/sun/jndi/ldap/LdapCtx;
            0  118     1           res  Lcom/sun/jndi/ldap/LdapResult;
            0  118     2  resolvedName  Ljavax/naming/Name;
            0  118     3   resolvedObj  Ljava/lang/Object;
            0  118     4    remainName  Ljavax/naming/Name;
            0  118     5      envprops  Ljava/util/Hashtable<**>;
            0  118     6        fullDN  Ljava/lang/String;
            1  118     7           msg  Ljava/lang/String;
            7    8     8             e  Ljavax/naming/NamingException;
           45   46     8             e  Ljavax/naming/NamingException;
           71   72     8             e  Ljavax/naming/NamingException;
           73   74     8             e  Ljavax/naming/NamingException;
           76   77     8             e  Ljavax/naming/NamingException;
           81   82     8             e  Ljavax/naming/NamingException;
          101  102     8             e  Ljavax/naming/NamingException;
          103  104     8             e  Ljavax/naming/NamingException;
          110  111     8             e  Ljavax/naming/NamingException;
          112  113     8             e  Ljavax/naming/NamingException;
          114  118     8             e  Ljavax/naming/NamingException;
            2  118     9             r  Lcom/sun/jndi/ldap/LdapReferralException;
            9   42    10  contRefCount  I
           10   42    11          head  Lcom/sun/jndi/ldap/LdapReferralException;
           11   42    12           ptr  Lcom/sun/jndi/ldap/LdapReferralException;
           13   28    13             i  I
           40   42    13           lee  Ljavax/naming/NamingException;
           51   52    10          refs  Ljava/util/Vector<Ljava/lang/String;>;
           54   62    10          refs  Ljava/util/Vector<Ljava/lang/String;>;
           63   74    10          refs  Ljava/util/Vector<Ljava/lang/String;>;
           56   58    11             s  Ljava/lang/String;
           69   71    11           lee  Ljavax/naming/NamingException;
           99  101    11           lee  Ljavax/naming/NamingException;
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/util/Hashtable<**>;Ljava/lang/String;)V
    MethodParameters:
              Name  Flags
      res           
      resolvedName  
      resolvedObj   
      remainName    
      envprops      
      fullDN        

  public static javax.naming.NamingException mapErrorCode(int, java.lang.String);
    descriptor: (ILjava/lang/String;)Ljavax/naming/NamingException;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // int errorCode
        start local 1 // java.lang.String errorMessage
         0: .line 3122
            iload 0 /* errorCode */
            ifne 2
         1: .line 3123
            aconst_null
            areturn
         2: .line 3125
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* e */
        start local 2 // javax.naming.NamingException e
         3: .line 3126
            iload 0 /* errorCode */
            aload 1 /* errorMessage */
            invokestatic com.sun.jndi.ldap.LdapClient.getErrorMessage:(ILjava/lang/String;)Ljava/lang/String;
            astore 3 /* message */
        start local 3 // java.lang.String message
         4: .line 3128
            iload 0 /* errorCode */
            tableswitch { // 1 - 80
                    1: 33
                    2: 37
                    3: 41
                    4: 39
                    5: 51
                    6: 51
                    7: 11
                    8: 11
                    9: 57
                   10: 55
                   11: 53
                   12: 43
                   13: 11
                   14: 15
                   15: 61
                   16: 25
                   17: 47
                   18: 17
                   19: 21
                   20: 9
                   21: 21
                   22: 61
                   23: 61
                   24: 61
                   25: 61
                   26: 61
                   27: 61
                   28: 61
                   29: 61
                   30: 61
                   31: 61
                   32: 27
                   33: 7
                   34: 59
                   35: 51
                   36: 5
                   37: 61
                   38: 61
                   39: 61
                   40: 61
                   41: 61
                   42: 61
                   43: 61
                   44: 61
                   45: 61
                   46: 61
                   47: 61
                   48: 11
                   49: 15
                   50: 19
                   51: 45
                   52: 45
                   53: 49
                   54: 23
                   55: 61
                   56: 61
                   57: 61
                   58: 61
                   59: 61
                   60: 61
                   61: 61
                   62: 61
                   63: 61
                   64: 59
                   65: 29
                   66: 31
                   67: 29
                   68: 13
                   69: 29
                   70: 61
                   71: 61
                   72: 61
                   73: 61
                   74: 61
                   75: 61
                   76: 61
                   77: 61
                   78: 61
                   79: 61
                   80: 35
              default: 61
          }
         5: .line 3131
      StackMap locals: javax.naming.NamingException java.lang.String
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
         6: .line 3132
            goto 62
         7: .line 3135
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
         8: .line 3136
            goto 62
         9: .line 3139
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.AttributeInUseException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.AttributeInUseException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        10: .line 3140
            goto 62
        11: .line 3146
      StackMap locals:
      StackMap stack:
            new javax.naming.AuthenticationNotSupportedException
            dup
            aload 3 /* message */
            invokespecial javax.naming.AuthenticationNotSupportedException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        12: .line 3147
            goto 62
        13: .line 3150
      StackMap locals:
      StackMap stack:
            new javax.naming.NameAlreadyBoundException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NameAlreadyBoundException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        14: .line 3151
            goto 62
        15: .line 3155
      StackMap locals:
      StackMap stack:
            new javax.naming.AuthenticationException
            dup
            aload 3 /* message */
            invokespecial javax.naming.AuthenticationException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        16: .line 3156
            goto 62
        17: .line 3159
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.InvalidSearchFilterException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.InvalidSearchFilterException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        18: .line 3160
            goto 62
        19: .line 3163
      StackMap locals:
      StackMap stack:
            new javax.naming.NoPermissionException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NoPermissionException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        20: .line 3164
            goto 62
        21: .line 3168
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.InvalidAttributeValueException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.InvalidAttributeValueException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        22: .line 3169
            goto 62
        23: .line 3172
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        24: .line 3173
            goto 62
        25: .line 3176
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.NoSuchAttributeException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.NoSuchAttributeException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        26: .line 3177
            goto 62
        27: .line 3180
      StackMap locals:
      StackMap stack:
            new javax.naming.NameNotFoundException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NameNotFoundException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        28: .line 3181
            goto 62
        29: .line 3186
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.SchemaViolationException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.SchemaViolationException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        30: .line 3187
            goto 62
        31: .line 3190
      StackMap locals:
      StackMap stack:
            new javax.naming.ContextNotEmptyException
            dup
            aload 3 /* message */
            invokespecial javax.naming.ContextNotEmptyException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        32: .line 3191
            goto 62
        33: .line 3195
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        34: .line 3196
            goto 62
        35: .line 3199
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        36: .line 3200
            goto 62
        37: .line 3203
      StackMap locals:
      StackMap stack:
            new javax.naming.CommunicationException
            dup
            aload 3 /* message */
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        38: .line 3204
            goto 62
        39: .line 3207
      StackMap locals:
      StackMap stack:
            new javax.naming.SizeLimitExceededException
            dup
            aload 3 /* message */
            invokespecial javax.naming.SizeLimitExceededException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        40: .line 3208
            goto 62
        41: .line 3211
      StackMap locals:
      StackMap stack:
            new javax.naming.TimeLimitExceededException
            dup
            aload 3 /* message */
            invokespecial javax.naming.TimeLimitExceededException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        42: .line 3212
            goto 62
        43: .line 3215
      StackMap locals:
      StackMap stack:
            new javax.naming.OperationNotSupportedException
            dup
            aload 3 /* message */
            invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        44: .line 3216
            goto 62
        45: .line 3220
      StackMap locals:
      StackMap stack:
            new javax.naming.ServiceUnavailableException
            dup
            aload 3 /* message */
            invokespecial javax.naming.ServiceUnavailableException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        46: .line 3221
            goto 62
        47: .line 3224
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.InvalidAttributeIdentifierException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.InvalidAttributeIdentifierException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        48: .line 3225
            goto 62
        49: .line 3228
      StackMap locals:
      StackMap stack:
            new javax.naming.OperationNotSupportedException
            dup
            aload 3 /* message */
            invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        50: .line 3229
            goto 62
        51: .line 3236
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        52: .line 3237
            goto 62
        53: .line 3240
      StackMap locals:
      StackMap stack:
            new javax.naming.LimitExceededException
            dup
            aload 3 /* message */
            invokespecial javax.naming.LimitExceededException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        54: .line 3241
            goto 62
        55: .line 3244
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        56: .line 3245
            goto 62
        57: .line 3248
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        58: .line 3249
            goto 62
        59: .line 3253
      StackMap locals:
      StackMap stack:
            new javax.naming.InvalidNameException
            dup
            aload 3 /* message */
            invokespecial javax.naming.InvalidNameException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        60: .line 3254
            goto 62
        61: .line 3257
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        62: .line 3261
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            areturn
        end local 3 // java.lang.String message
        end local 2 // javax.naming.NamingException e
        end local 1 // java.lang.String errorMessage
        end local 0 // int errorCode
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   63     0     errorCode  I
            0   63     1  errorMessage  Ljava/lang/String;
            3   63     2             e  Ljavax/naming/NamingException;
            4   63     3       message  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      errorCode     
      errorMessage  

  public javax.naming.ldap.ExtendedResponse extendedOperation(javax.naming.ldap.ExtendedRequest);
    descriptor: (Ljavax/naming/ldap/ExtendedRequest;)Ljavax/naming/ldap/ExtendedResponse;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.ldap.ExtendedRequest request
         0: .line 3269
            aload 1 /* request */
            invokeinterface javax.naming.ldap.ExtendedRequest.getID:()Ljava/lang/String;
            ldc "1.3.6.1.4.1.1466.20037"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            istore 2 /* startTLS */
        start local 2 // boolean startTLS
         1: .line 3270
            aload 0 /* this */
            iload 2 /* startTLS */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:(Z)V
         2: .line 3275
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 1 /* request */
            invokeinterface javax.naming.ldap.ExtendedRequest.getID:()Ljava/lang/String;
            aload 1 /* request */
            invokeinterface javax.naming.ldap.ExtendedRequest.getEncodedValue:()[B
         3: .line 3276
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            iload 2 /* startTLS */
         4: .line 3275
            invokevirtual com.sun.jndi.ldap.LdapClient.extendedOp:(Ljava/lang/String;[B[Ljavax/naming/ldap/Control;Z)Lcom/sun/jndi/ldap/LdapResult;
         5: .line 3274
            astore 3 /* answer */
        start local 3 // com.sun.jndi.ldap.LdapResult answer
         6: .line 3277
            aload 0 /* this */
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         7: .line 3279
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 9
         8: .line 3280
            aload 0 /* this */
            aload 3 /* answer */
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
         9: .line 3284
      StackMap locals: int com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.extensionValue:[B
            ifnonnull 11
        10: .line 3285
            iconst_0
            goto 12
        11: .line 3286
      StackMap locals:
      StackMap stack:
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.extensionValue:[B
            arraylength
        12: .line 3284
      StackMap locals:
      StackMap stack: int
            istore 4 /* len */
        start local 4 // int len
        13: .line 3289
            aload 1 /* request */
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.extensionId:Ljava/lang/String;
        14: .line 3290
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.extensionValue:[B
            iconst_0
            iload 4 /* len */
        15: .line 3289
            invokeinterface javax.naming.ldap.ExtendedRequest.createExtendedResponse:(Ljava/lang/String;[BII)Ljavax/naming/ldap/ExtendedResponse;
        16: .line 3288
            astore 5 /* er */
        start local 5 // javax.naming.ldap.ExtendedResponse er
        17: .line 3292
            aload 5 /* er */
            instanceof com.sun.jndi.ldap.ext.StartTlsResponseImpl
            ifeq 22
        18: .line 3295
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnull 19
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.domainname"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            goto 20
      StackMap locals: int javax.naming.ldap.ExtendedResponse
      StackMap stack:
        19: aconst_null
        20: .line 3294
      StackMap locals:
      StackMap stack: java.lang.Object
            checkcast java.lang.String
            astore 6 /* domainName */
        start local 6 // java.lang.String domainName
        21: .line 3296
            aload 5 /* er */
            checkcast com.sun.jndi.ldap.ext.StartTlsResponseImpl
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 6 /* domainName */
            invokevirtual com.sun.jndi.ldap.ext.StartTlsResponseImpl.setConnection:(Lcom/sun/jndi/ldap/Connection;Ljava/lang/String;)V
        end local 6 // java.lang.String domainName
        22: .line 3298
      StackMap locals:
      StackMap stack:
            aload 5 /* er */
        23: areturn
        end local 5 // javax.naming.ldap.ExtendedResponse er
        end local 4 // int len
        end local 3 // com.sun.jndi.ldap.LdapResult answer
        24: .line 3300
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.ldap.ExtendedRequest int
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 3 /* e */
        start local 3 // com.sun.jndi.ldap.LdapReferralException e
        25: .line 3302
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 27
        26: .line 3303
            aload 3 /* e */
            athrow
        27: .line 3309
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 3 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        28: .line 3308
            astore 4 /* refCtx */
        start local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        29: .line 3314
            aload 4 /* refCtx */
            aload 1 /* request */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.extendedOperation:(Ljavax/naming/ldap/ExtendedRequest;)Ljavax/naming/ldap/ExtendedResponse;
            astore 7
        30: .line 3322
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        31: .line 3314
            aload 7
            areturn
        32: .line 3316
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.ldap.ExtendedRequest int com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* re */
        start local 5 // com.sun.jndi.ldap.LdapReferralException re
        33: .line 3317
            aload 5 /* re */
            astore 3 /* e */
        34: .line 3322
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        35: .line 3318
            goto 27
        end local 5 // com.sun.jndi.ldap.LdapReferralException re
        36: .line 3320
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        37: .line 3322
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        38: .line 3323
            aload 6
            athrow
        end local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 3 // com.sun.jndi.ldap.LdapReferralException e
        39: .line 3326
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.ldap.ExtendedRequest int
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        40: .line 3327
            new javax.naming.CommunicationException
            dup
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 4 /* e2 */
        start local 4 // javax.naming.NamingException e2
        41: .line 3328
            aload 4 /* e2 */
            aload 3 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        42: .line 3329
            aload 4 /* e2 */
            athrow
        end local 4 // javax.naming.NamingException e2
        end local 3 // java.io.IOException e
        end local 2 // boolean startTLS
        end local 1 // javax.naming.ldap.ExtendedRequest request
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   43     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0   43     1     request  Ljavax/naming/ldap/ExtendedRequest;
            1   43     2    startTLS  Z
            6   24     3      answer  Lcom/sun/jndi/ldap/LdapResult;
           13   24     4         len  I
           17   24     5          er  Ljavax/naming/ldap/ExtendedResponse;
           21   22     6  domainName  Ljava/lang/String;
           25   39     3           e  Lcom/sun/jndi/ldap/LdapReferralException;
           29   39     4      refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           33   36     5          re  Lcom/sun/jndi/ldap/LdapReferralException;
           40   43     3           e  Ljava/io/IOException;
           41   43     4          e2  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2    23      24  Class com.sun.jndi.ldap.LdapReferralException
          29    30      32  Class com.sun.jndi.ldap.LdapReferralException
          29    30      36  any
          32    34      36  any
           2    23      39  Class java.io.IOException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      request  

  public void setRequestControls(javax.naming.ldap.Control[]);
    descriptor: ([Ljavax/naming/ldap/Control;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.ldap.Control[] reqCtls
         0: .line 3334
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_3
            if_icmpne 3
         1: .line 3335
            aload 0 /* this */
            aload 1 /* reqCtls */
            getstatic com.sun.jndi.ldap.LdapCtx.manageReferralControl:Ljavax/naming/ldap/Control;
            invokestatic com.sun.jndi.ldap.LdapCtx.addControl:([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
         2: .line 3336
            goto 4
         3: .line 3337
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneControls:([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
         4: .line 3339
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.naming.ldap.Control[] reqCtls
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  reqCtls  [Ljavax/naming/ldap/Control;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      reqCtls  

  public javax.naming.ldap.Control[] getRequestControls();
    descriptor: ()[Ljavax/naming/ldap/Control;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3342
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneControls:([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  public javax.naming.ldap.Control[] getConnectControls();
    descriptor: ()[Ljavax/naming/ldap/Control;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3346
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneControls:([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  public javax.naming.ldap.Control[] getResponseControls();
    descriptor: ()[Ljavax/naming/ldap/Control;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3350
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            ifnull 1
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            invokevirtual com.sun.jndi.ldap.LdapCtx.convertControls:(Ljava/util/Vector;)[Ljavax/naming/ldap/Control;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: javax.naming.ldap.Control[]
         2: areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  javax.naming.ldap.Control[] convertControls(java.util.Vector<javax.naming.ldap.Control>);
    descriptor: (Ljava/util/Vector;)[Ljavax/naming/ldap/Control;
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.util.Vector ctls
         0: .line 3358
            aload 1 /* ctls */
            invokevirtual java.util.Vector.size:()I
            istore 2 /* count */
        start local 2 // int count
         1: .line 3360
            iload 2 /* count */
            ifne 3
         2: .line 3361
            aconst_null
            areturn
         3: .line 3364
      StackMap locals: int
      StackMap stack:
            iload 2 /* count */
            anewarray javax.naming.ldap.Control
            astore 3 /* controls */
        start local 3 // javax.naming.ldap.Control[] controls
         4: .line 3366
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 14
         6: .line 3368
      StackMap locals: javax.naming.ldap.Control[] int
      StackMap stack:
            aload 3 /* controls */
            iload 4 /* i */
            getstatic com.sun.jndi.ldap.LdapCtx.myResponseControlFactory:Ljavax/naming/ldap/ControlFactory;
         7: .line 3369
            aload 1 /* ctls */
            iload 4 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast javax.naming.ldap.Control
         8: .line 3368
            invokevirtual javax.naming.ldap.ControlFactory.getControlInstance:(Ljavax/naming/ldap/Control;)Ljavax/naming/ldap/Control;
            aastore
         9: .line 3372
            aload 3 /* controls */
            iload 4 /* i */
            aaload
            ifnonnull 13
        10: .line 3373
            aload 3 /* controls */
            iload 4 /* i */
        11: .line 3374
            aload 1 /* ctls */
            iload 4 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast javax.naming.ldap.Control
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        12: .line 3373
            invokestatic javax.naming.ldap.ControlFactory.getControlInstance:(Ljavax/naming/ldap/Control;Ljavax/naming/Context;Ljava/util/Hashtable;)Ljavax/naming/ldap/Control;
            aastore
        13: .line 3366
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            iload 2 /* count */
            if_icmplt 6
        end local 4 // int i
        15: .line 3377
            aload 3 /* controls */
            areturn
        end local 3 // javax.naming.ldap.Control[] controls
        end local 2 // int count
        end local 1 // java.util.Vector ctls
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   16     1      ctls  Ljava/util/Vector<Ljavax/naming/ldap/Control;>;
            1   16     2     count  I
            4   16     3  controls  [Ljavax/naming/ldap/Control;
            5   15     4         i  I
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljava/util/Vector<Ljavax/naming/ldap/Control;>;)[Ljavax/naming/ldap/Control;
    MethodParameters:
      Name  Flags
      ctls  

  private static javax.naming.ldap.Control[] addControl(javax.naming.ldap.Control[], javax.naming.ldap.Control);
    descriptor: ([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // javax.naming.ldap.Control[] prevCtls
        start local 1 // javax.naming.ldap.Control addition
         0: .line 3381
            aload 0 /* prevCtls */
            ifnonnull 2
         1: .line 3382
            iconst_1
            anewarray javax.naming.ldap.Control
            dup
            iconst_0
            aload 1 /* addition */
            aastore
            areturn
         2: .line 3386
      StackMap locals:
      StackMap stack:
            aload 0 /* prevCtls */
            aload 1 /* addition */
            invokestatic com.sun.jndi.ldap.LdapCtx.findControl:([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)I
            istore 2 /* found */
        start local 2 // int found
         3: .line 3387
            iload 2 /* found */
            iconst_m1
            if_icmpeq 5
         4: .line 3388
            aload 0 /* prevCtls */
            areturn
         5: .line 3391
      StackMap locals: int
      StackMap stack:
            aload 0 /* prevCtls */
            arraylength
            iconst_1
            iadd
            anewarray javax.naming.ldap.Control
            astore 3 /* newCtls */
        start local 3 // javax.naming.ldap.Control[] newCtls
         6: .line 3392
            aload 0 /* prevCtls */
            iconst_0
            aload 3 /* newCtls */
            iconst_0
            aload 0 /* prevCtls */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 3393
            aload 3 /* newCtls */
            aload 0 /* prevCtls */
            arraylength
            aload 1 /* addition */
            aastore
         8: .line 3394
            aload 3 /* newCtls */
            areturn
        end local 3 // javax.naming.ldap.Control[] newCtls
        end local 2 // int found
        end local 1 // javax.naming.ldap.Control addition
        end local 0 // javax.naming.ldap.Control[] prevCtls
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0  prevCtls  [Ljavax/naming/ldap/Control;
            0    9     1  addition  Ljavax/naming/ldap/Control;
            3    9     2     found  I
            6    9     3   newCtls  [Ljavax/naming/ldap/Control;
    MethodParameters:
          Name  Flags
      prevCtls  
      addition  

  private static int findControl(javax.naming.ldap.Control[], javax.naming.ldap.Control);
    descriptor: ([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.naming.ldap.Control[] ctls
        start local 1 // javax.naming.ldap.Control target
         0: .line 3398
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 3399
      StackMap locals: int
      StackMap stack:
            aload 0 /* ctls */
            iload 2 /* i */
            aaload
            aload 1 /* target */
            if_acmpne 4
         3: .line 3400
            iload 2 /* i */
            ireturn
         4: .line 3398
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* ctls */
            arraylength
            if_icmplt 2
        end local 2 // int i
         6: .line 3403
            iconst_m1
            ireturn
        end local 1 // javax.naming.ldap.Control target
        end local 0 // javax.naming.ldap.Control[] ctls
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    ctls  [Ljavax/naming/ldap/Control;
            0    7     1  target  Ljavax/naming/ldap/Control;
            1    6     2       i  I
    MethodParameters:
        Name  Flags
      ctls    
      target  

  private static javax.naming.ldap.Control[] removeControl(javax.naming.ldap.Control[], javax.naming.ldap.Control);
    descriptor: ([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // javax.naming.ldap.Control[] prevCtls
        start local 1 // javax.naming.ldap.Control target
         0: .line 3407
            aload 0 /* prevCtls */
            ifnonnull 2
         1: .line 3408
            aconst_null
            areturn
         2: .line 3412
      StackMap locals:
      StackMap stack:
            aload 0 /* prevCtls */
            aload 1 /* target */
            invokestatic com.sun.jndi.ldap.LdapCtx.findControl:([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)I
            istore 2 /* found */
        start local 2 // int found
         3: .line 3413
            iload 2 /* found */
            iconst_m1
            if_icmpne 5
         4: .line 3414
            aload 0 /* prevCtls */
            areturn
         5: .line 3418
      StackMap locals: int
      StackMap stack:
            aload 0 /* prevCtls */
            arraylength
            iconst_1
            isub
            anewarray javax.naming.ldap.Control
            astore 3 /* newCtls */
        start local 3 // javax.naming.ldap.Control[] newCtls
         6: .line 3419
            aload 0 /* prevCtls */
            iconst_0
            aload 3 /* newCtls */
            iconst_0
            iload 2 /* found */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 3420
            aload 0 /* prevCtls */
            iload 2 /* found */
            iconst_1
            iadd
            aload 3 /* newCtls */
            iload 2 /* found */
         8: .line 3421
            aload 0 /* prevCtls */
            arraylength
            iload 2 /* found */
            isub
            iconst_1
            isub
         9: .line 3420
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 3422
            aload 3 /* newCtls */
            areturn
        end local 3 // javax.naming.ldap.Control[] newCtls
        end local 2 // int found
        end local 1 // javax.naming.ldap.Control target
        end local 0 // javax.naming.ldap.Control[] prevCtls
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0  prevCtls  [Ljavax/naming/ldap/Control;
            0   11     1    target  Ljavax/naming/ldap/Control;
            3   11     2     found  I
            6   11     3   newCtls  [Ljavax/naming/ldap/Control;
    MethodParameters:
          Name  Flags
      prevCtls  
      target    

  private static javax.naming.ldap.Control[] cloneControls(javax.naming.ldap.Control[]);
    descriptor: ([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // javax.naming.ldap.Control[] ctls
         0: .line 3426
            aload 0 /* ctls */
            ifnonnull 2
         1: .line 3427
            aconst_null
            areturn
         2: .line 3429
      StackMap locals:
      StackMap stack:
            aload 0 /* ctls */
            arraylength
            anewarray javax.naming.ldap.Control
            astore 1 /* copiedCtls */
        start local 1 // javax.naming.ldap.Control[] copiedCtls
         3: .line 3430
            aload 0 /* ctls */
            iconst_0
            aload 1 /* copiedCtls */
            iconst_0
            aload 0 /* ctls */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 3431
            aload 1 /* copiedCtls */
            areturn
        end local 1 // javax.naming.ldap.Control[] copiedCtls
        end local 0 // javax.naming.ldap.Control[] ctls
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        ctls  [Ljavax/naming/ldap/Control;
            3    5     1  copiedCtls  [Ljavax/naming/ldap/Control;
    MethodParameters:
      Name  Flags
      ctls  

  public void addNamingListener(javax.naming.Name, int, javax.naming.event.NamingListener);
    descriptor: (Ljavax/naming/Name;ILjavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name nm
        start local 2 // int scope
        start local 3 // javax.naming.event.NamingListener l
         0: .line 3444
            aload 0 /* this */
            aload 1 /* nm */
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
            iload 2 /* scope */
            aload 3 /* l */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addNamingListener:(Ljava/lang/String;ILjavax/naming/event/NamingListener;)V
         1: .line 3445
            return
        end local 3 // javax.naming.event.NamingListener l
        end local 2 // int scope
        end local 1 // javax.naming.Name nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1     nm  Ljavax/naming/Name;
            0    2     2  scope  I
            0    2     3      l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      nm     
      scope  
      l      

  public void addNamingListener(java.lang.String, int, javax.naming.event.NamingListener);
    descriptor: (Ljava/lang/String;ILjavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String nm
        start local 2 // int scope
        start local 3 // javax.naming.event.NamingListener l
         0: .line 3449
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            ifnonnull 2
         1: .line 3450
            aload 0 /* this */
            new com.sun.jndi.ldap.EventSupport
            dup
            aload 0 /* this */
            invokespecial com.sun.jndi.ldap.EventSupport.<init>:(Lcom/sun/jndi/ldap/LdapCtx;)V
            putfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
         2: .line 3451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            new javax.naming.CompositeName
            dup
            aload 1 /* nm */
            invokespecial javax.naming.CompositeName.<init>:(Ljava/lang/String;)V
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
         3: .line 3452
            iload 2 /* scope */
            aload 3 /* l */
         4: .line 3451
            invokevirtual com.sun.jndi.ldap.EventSupport.addNamingListener:(Ljava/lang/String;ILjavax/naming/event/NamingListener;)V
         5: .line 3455
            aload 3 /* l */
            instanceof javax.naming.ldap.UnsolicitedNotificationListener
            ifeq 7
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
            ifne 7
         6: .line 3456
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addUnsolicited:()V
         7: .line 3458
      StackMap locals:
      StackMap stack:
            return
        end local 3 // javax.naming.event.NamingListener l
        end local 2 // int scope
        end local 1 // java.lang.String nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/sun/jndi/ldap/LdapCtx;
            0    8     1     nm  Ljava/lang/String;
            0    8     2  scope  I
            0    8     3      l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      nm     
      scope  
      l      

  public void removeNamingListener(javax.naming.event.NamingListener);
    descriptor: (Ljavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.event.NamingListener l
         0: .line 3461
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            ifnonnull 2
         1: .line 3462
            return
         2: .line 3464
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            aload 1 /* l */
            invokevirtual com.sun.jndi.ldap.EventSupport.removeNamingListener:(Ljavax/naming/event/NamingListener;)V
         3: .line 3467
            aload 1 /* l */
            instanceof javax.naming.ldap.UnsolicitedNotificationListener
            ifeq 6
         4: .line 3468
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            invokevirtual com.sun.jndi.ldap.EventSupport.hasUnsolicited:()Z
            ifne 6
         5: .line 3469
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.removeUnsolicited:()V
         6: .line 3471
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.naming.event.NamingListener l
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    7     1     l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      l     

  public void addNamingListener(java.lang.String, java.lang.String, javax.naming.directory.SearchControls, javax.naming.event.NamingListener);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String nm
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls ctls
        start local 4 // javax.naming.event.NamingListener l
         0: .line 3475
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            ifnonnull 2
         1: .line 3476
            aload 0 /* this */
            new com.sun.jndi.ldap.EventSupport
            dup
            aload 0 /* this */
            invokespecial com.sun.jndi.ldap.EventSupport.<init>:(Lcom/sun/jndi/ldap/LdapCtx;)V
            putfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
         2: .line 3477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            new javax.naming.CompositeName
            dup
            aload 1 /* nm */
            invokespecial javax.naming.CompositeName.<init>:(Ljava/lang/String;)V
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
         3: .line 3478
            aload 2 /* filter */
            aload 3 /* ctls */
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneSearchControls:(Ljavax/naming/directory/SearchControls;)Ljavax/naming/directory/SearchControls;
            aload 4 /* l */
         4: .line 3477
            invokevirtual com.sun.jndi.ldap.EventSupport.addNamingListener:(Ljava/lang/String;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
         5: .line 3481
            aload 4 /* l */
            instanceof javax.naming.ldap.UnsolicitedNotificationListener
            ifeq 7
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
            ifne 7
         6: .line 3482
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addUnsolicited:()V
         7: .line 3484
      StackMap locals:
      StackMap stack:
            return
        end local 4 // javax.naming.event.NamingListener l
        end local 3 // javax.naming.directory.SearchControls ctls
        end local 2 // java.lang.String filter
        end local 1 // java.lang.String nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    8     1      nm  Ljava/lang/String;
            0    8     2  filter  Ljava/lang/String;
            0    8     3    ctls  Ljavax/naming/directory/SearchControls;
            0    8     4       l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      nm      
      filter  
      ctls    
      l       

  public void addNamingListener(javax.naming.Name, java.lang.String, javax.naming.directory.SearchControls, javax.naming.event.NamingListener);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name nm
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls ctls
        start local 4 // javax.naming.event.NamingListener l
         0: .line 3488
            aload 0 /* this */
            aload 1 /* nm */
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
            aload 2 /* filter */
            aload 3 /* ctls */
            aload 4 /* l */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addNamingListener:(Ljava/lang/String;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
         1: .line 3489
            return
        end local 4 // javax.naming.event.NamingListener l
        end local 3 // javax.naming.directory.SearchControls ctls
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1      nm  Ljavax/naming/Name;
            0    2     2  filter  Ljava/lang/String;
            0    2     3    ctls  Ljavax/naming/directory/SearchControls;
            0    2     4       l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      nm      
      filter  
      ctls    
      l       

  public void addNamingListener(javax.naming.Name, java.lang.String, java.lang.Object[], javax.naming.directory.SearchControls, javax.naming.event.NamingListener);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;[Ljava/lang/Object;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name nm
        start local 2 // java.lang.String filter
        start local 3 // java.lang.Object[] filterArgs
        start local 4 // javax.naming.directory.SearchControls ctls
        start local 5 // javax.naming.event.NamingListener l
         0: .line 3493
            aload 0 /* this */
            aload 1 /* nm */
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
            aload 2 /* filter */
            aload 3 /* filterArgs */
            aload 4 /* ctls */
            aload 5 /* l */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addNamingListener:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
         1: .line 3494
            return
        end local 5 // javax.naming.event.NamingListener l
        end local 4 // javax.naming.directory.SearchControls ctls
        end local 3 // java.lang.Object[] filterArgs
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1          nm  Ljavax/naming/Name;
            0    2     2      filter  Ljava/lang/String;
            0    2     3  filterArgs  [Ljava/lang/Object;
            0    2     4        ctls  Ljavax/naming/directory/SearchControls;
            0    2     5           l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
            Name  Flags
      nm          
      filter      
      filterArgs  
      ctls        
      l           

  public void addNamingListener(java.lang.String, java.lang.String, java.lang.Object[], javax.naming.directory.SearchControls, javax.naming.event.NamingListener);
    descriptor: (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String nm
        start local 2 // java.lang.String filterExpr
        start local 3 // java.lang.Object[] filterArgs
        start local 4 // javax.naming.directory.SearchControls ctls
        start local 5 // javax.naming.event.NamingListener l
         0: .line 3498
            aload 2 /* filterExpr */
            aload 3 /* filterArgs */
            invokestatic com.sun.jndi.toolkit.dir.SearchFilter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 6 /* strfilter */
        start local 6 // java.lang.String strfilter
         1: .line 3499
            aload 0 /* this */
            new javax.naming.CompositeName
            dup
            aload 1 /* nm */
            invokespecial javax.naming.CompositeName.<init>:(Ljava/lang/String;)V
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
            aload 6 /* strfilter */
            aload 4 /* ctls */
            aload 5 /* l */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addNamingListener:(Ljava/lang/String;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
         2: .line 3500
            return
        end local 6 // java.lang.String strfilter
        end local 5 // javax.naming.event.NamingListener l
        end local 4 // javax.naming.directory.SearchControls ctls
        end local 3 // java.lang.Object[] filterArgs
        end local 2 // java.lang.String filterExpr
        end local 1 // java.lang.String nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0    3     1          nm  Ljava/lang/String;
            0    3     2  filterExpr  Ljava/lang/String;
            0    3     3  filterArgs  [Ljava/lang/Object;
            0    3     4        ctls  Ljavax/naming/directory/SearchControls;
            0    3     5           l  Ljavax/naming/event/NamingListener;
            1    3     6   strfilter  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
            Name  Flags
      nm          
      filterExpr  
      filterArgs  
      ctls        
      l           

  public boolean targetMustExist();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3503
            iconst_1
            ireturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;

  private static java.lang.String getTargetName(javax.naming.Name);
    descriptor: (Ljavax/naming/Name;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // javax.naming.Name nm
         0: .line 3515
            aload 0 /* nm */
            instanceof javax.naming.CompositeName
            ifeq 8
         1: .line 3516
            aload 0 /* nm */
            invokeinterface javax.naming.Name.size:()I
            iconst_1
            if_icmple 5
         2: .line 3517
            new javax.naming.InvalidNameException
            dup
         3: .line 3518
            new java.lang.StringBuilder
            dup
            ldc "Target cannot span multiple namespaces: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* nm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 3517
            invokespecial javax.naming.InvalidNameException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 3519
      StackMap locals:
      StackMap stack:
            aload 0 /* nm */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 7
         6: .line 3520
            ldc ""
            areturn
         7: .line 3522
      StackMap locals:
      StackMap stack:
            aload 0 /* nm */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            areturn
         8: .line 3526
      StackMap locals:
      StackMap stack:
            aload 0 /* nm */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 0 // javax.naming.Name nm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0    nm  Ljavax/naming/Name;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      nm    

  private void addUnsolicited();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3549
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         1: .line 3550
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            dup
            astore 1
            monitorenter
         2: .line 3551
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.addUnsolicited:(Lcom/sun/jndi/ldap/LdapCtx;)V
         3: .line 3552
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
         4: .line 3550
            aload 1
            monitorexit
         5: goto 8
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.EventSupport
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 3554
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/jndi/ldap/LdapCtx;
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any
    Exceptions:
      throws javax.naming.NamingException

  private void removeUnsolicited();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3574
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            ifnonnull 2
         1: .line 3575
            return
         2: .line 3579
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            dup
            astore 1
            monitorenter
         3: .line 3580
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
            ifeq 5
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            ifnull 5
         4: .line 3581
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.removeUnsolicited:(Lcom/sun/jndi/ldap/LdapCtx;)V
         5: .line 3583
      StackMap locals: com.sun.jndi.ldap.EventSupport
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
         6: .line 3579
            aload 1
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 1
            monitorexit
         9: athrow
        10: .line 3585
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/sun/jndi/ldap/LdapCtx;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any

  void fireUnsolicited(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.Object obj
         0: .line 3596
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            dup
            astore 2
            monitorenter
         1: .line 3597
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
            ifeq 5
         2: .line 3598
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            aload 1 /* obj */
            invokevirtual com.sun.jndi.ldap.EventSupport.fireUnsolicited:(Ljava/lang/Object;)V
         3: .line 3600
            aload 1 /* obj */
            instanceof javax.naming.NamingException
            ifeq 5
         4: .line 3601
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
         5: .line 3596
      StackMap locals: com.sun.jndi.ldap.EventSupport
      StackMap stack:
            aload 2
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 3608
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object obj
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0   10     1   obj  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    MethodParameters:
      Name  Flags
      obj   
}
SourceFile: "LdapCtx.java"
NestMembers:
  com.sun.jndi.ldap.LdapCtx$SearchArgs
InnerClasses:
  final SearchArgs = com.sun.jndi.ldap.LdapCtx$SearchArgs of com.sun.jndi.ldap.LdapCtx