final class com.sun.jndi.ldap.Obj
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.jndi.ldap.Obj
  super_class: java.lang.Object
{
  static com.sun.jndi.ldap.VersionHelper helper;
    descriptor: Lcom/sun/jndi/ldap/VersionHelper;
    flags: (0x0008) ACC_STATIC

  static final java.lang.String[] JAVA_ATTRIBUTES;
    descriptor: [Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int OBJECT_CLASS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int SERIALIZED_DATA;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int CLASSNAME;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int FACTORY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int CODEBASE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  static final int REF_ADDR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  static final int TYPENAME;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  private static final int REMOTE_LOC;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 7
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  static final java.lang.String[] JAVA_OBJECT_CLASSES;
    descriptor: [Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final java.lang.String[] JAVA_OBJECT_CLASSES_LOWER;
    descriptor: [Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int STRUCTURAL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int BASE_OBJECT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int REF_OBJECT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int SER_OBJECT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int MAR_OBJECT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 61
            invokestatic com.sun.jndi.ldap.VersionHelper.getVersionHelper:()Lcom/sun/jndi/ldap/VersionHelper;
            putstatic com.sun.jndi.ldap.Obj.helper:Lcom/sun/jndi/ldap/VersionHelper;
         1: .line 64
            bipush 8
            anewarray java.lang.String
            dup
            iconst_0
         2: .line 65
            ldc "objectClass"
            aastore
            dup
            iconst_1
         3: .line 66
            ldc "javaSerializedData"
            aastore
            dup
            iconst_2
         4: .line 67
            ldc "javaClassName"
            aastore
            dup
            iconst_3
         5: .line 68
            ldc "javaFactory"
            aastore
            dup
            iconst_4
         6: .line 69
            ldc "javaCodeBase"
            aastore
            dup
            iconst_5
         7: .line 70
            ldc "javaReferenceAddress"
            aastore
            dup
            bipush 6
         8: .line 71
            ldc "javaClassNames"
            aastore
            dup
            bipush 7
         9: .line 72
            ldc "javaRemoteLocation"
            aastore
        10: .line 64
            putstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
        11: .line 89
            iconst_5
            anewarray java.lang.String
            dup
            iconst_0
        12: .line 90
            ldc "javaContainer"
            aastore
            dup
            iconst_1
        13: .line 91
            ldc "javaObject"
            aastore
            dup
            iconst_2
        14: .line 92
            ldc "javaNamingReference"
            aastore
            dup
            iconst_3
        15: .line 93
            ldc "javaSerializedObject"
            aastore
            dup
            iconst_4
        16: .line 94
            ldc "javaMarshalledObject"
            aastore
        17: .line 89
            putstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
        18: .line 97
            iconst_5
            anewarray java.lang.String
            dup
            iconst_0
        19: .line 98
            ldc "javacontainer"
            aastore
            dup
            iconst_1
        20: .line 99
            ldc "javaobject"
            aastore
            dup
            iconst_2
        21: .line 100
            ldc "javanamingreference"
            aastore
            dup
            iconst_3
        22: .line 101
            ldc "javaserializedobject"
            aastore
            dup
            iconst_4
        23: .line 102
            ldc "javamarshalledobject"
            aastore
        24: .line 97
            putstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES_LOWER:[Ljava/lang/String;
        25: .line 109
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.Obj this
         0: .line 58
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.sun.jndi.ldap.Obj this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/Obj;

  private static javax.naming.directory.Attributes encodeObject(char, java.lang.Object, javax.naming.directory.Attributes, javax.naming.directory.Attribute, boolean);
    descriptor: (CLjava/lang/Object;Ljavax/naming/directory/Attributes;Ljavax/naming/directory/Attribute;Z)Ljavax/naming/directory/Attributes;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // char separator
        start local 1 // java.lang.Object obj
        start local 2 // javax.naming.directory.Attributes attrs
        start local 3 // javax.naming.directory.Attribute objectClass
        start local 4 // boolean cloned
         0: .line 132
            aload 3 /* objectClass */
            invokeinterface javax.naming.directory.Attribute.size:()I
            ifeq 3
         1: .line 133
            aload 3 /* objectClass */
            invokeinterface javax.naming.directory.Attribute.size:()I
            iconst_1
            if_icmpne 2
            aload 3 /* objectClass */
            ldc "top"
            invokeinterface javax.naming.directory.Attribute.contains:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 131
      StackMap locals:
      StackMap stack:
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: istore 5 /* structural */
        start local 5 // boolean structural
         5: .line 135
            iload 5 /* structural */
            ifeq 7
         6: .line 136
            aload 3 /* objectClass */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            iconst_0
            aaload
            invokeinterface javax.naming.directory.Attribute.add:(Ljava/lang/Object;)Z
            pop
         7: .line 140
      StackMap locals: int
      StackMap stack:
            aload 1 /* obj */
            instanceof javax.naming.Referenceable
            ifeq 17
         8: .line 141
            aload 3 /* objectClass */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            iconst_1
            aaload
            invokeinterface javax.naming.directory.Attribute.add:(Ljava/lang/Object;)Z
            pop
         9: .line 142
            aload 3 /* objectClass */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            iconst_2
            aaload
            invokeinterface javax.naming.directory.Attribute.add:(Ljava/lang/Object;)Z
            pop
        10: .line 143
            iload 4 /* cloned */
            ifne 12
        11: .line 144
            aload 2 /* attrs */
            invokeinterface javax.naming.directory.Attributes.clone:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attributes
            astore 2 /* attrs */
        12: .line 146
      StackMap locals:
      StackMap stack:
            aload 2 /* attrs */
            aload 3 /* objectClass */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        13: .line 147
            iload 0 /* separator */
        14: .line 148
            aload 1 /* obj */
            checkcast javax.naming.Referenceable
            invokeinterface javax.naming.Referenceable.getReference:()Ljavax/naming/Reference;
        15: .line 149
            aload 2 /* attrs */
            aload 1 /* obj */
        16: .line 147
            invokestatic com.sun.jndi.ldap.Obj.encodeReference:(CLjavax/naming/Reference;Ljavax/naming/directory/Attributes;Ljava/lang/Object;)Ljavax/naming/directory/Attributes;
            areturn
        17: .line 151
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof javax.naming.Reference
            ifeq 24
        18: .line 152
            aload 3 /* objectClass */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            iconst_1
            aaload
            invokeinterface javax.naming.directory.Attribute.add:(Ljava/lang/Object;)Z
            pop
        19: .line 153
            aload 3 /* objectClass */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            iconst_2
            aaload
            invokeinterface javax.naming.directory.Attribute.add:(Ljava/lang/Object;)Z
            pop
        20: .line 154
            iload 4 /* cloned */
            ifne 22
        21: .line 155
            aload 2 /* attrs */
            invokeinterface javax.naming.directory.Attributes.clone:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attributes
            astore 2 /* attrs */
        22: .line 157
      StackMap locals:
      StackMap stack:
            aload 2 /* attrs */
            aload 3 /* objectClass */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        23: .line 158
            iload 0 /* separator */
            aload 1 /* obj */
            checkcast javax.naming.Reference
            aload 2 /* attrs */
            aconst_null
            invokestatic com.sun.jndi.ldap.Obj.encodeReference:(CLjavax/naming/Reference;Ljavax/naming/directory/Attributes;Ljava/lang/Object;)Ljavax/naming/directory/Attributes;
            areturn
        24: .line 161
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.io.Serializable
            ifeq 45
        25: .line 162
            aload 3 /* objectClass */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            iconst_1
            aaload
            invokeinterface javax.naming.directory.Attribute.add:(Ljava/lang/Object;)Z
            pop
        26: .line 163
            aload 3 /* objectClass */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            iconst_4
            aaload
            invokeinterface javax.naming.directory.Attribute.contains:(Ljava/lang/Object;)Z
            ifne 29
        27: .line 164
            aload 3 /* objectClass */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES_LOWER:[Ljava/lang/String;
            iconst_4
            aaload
            invokeinterface javax.naming.directory.Attribute.contains:(Ljava/lang/Object;)Z
            ifne 29
        28: .line 165
            aload 3 /* objectClass */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            iconst_3
            aaload
            invokeinterface javax.naming.directory.Attribute.add:(Ljava/lang/Object;)Z
            pop
        29: .line 167
      StackMap locals:
      StackMap stack:
            iload 4 /* cloned */
            ifne 31
        30: .line 168
            aload 2 /* attrs */
            invokeinterface javax.naming.directory.Attributes.clone:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attributes
            astore 2 /* attrs */
        31: .line 170
      StackMap locals:
      StackMap stack:
            aload 2 /* attrs */
            aload 3 /* objectClass */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        32: .line 171
            aload 2 /* attrs */
            new javax.naming.directory.BasicAttribute
            dup
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_1
            aaload
        33: .line 172
            aload 1 /* obj */
            invokestatic com.sun.jndi.ldap.Obj.serializeObject:(Ljava/lang/Object;)[B
            invokespecial javax.naming.directory.BasicAttribute.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
        34: .line 171
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        35: .line 173
            aload 2 /* 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;
            ifnonnull 39
        36: .line 174
            aload 2 /* attrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_2
            aaload
        37: .line 175
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        38: .line 174
            invokeinterface javax.naming.directory.Attributes.put:(Ljava/lang/String;Ljava/lang/Object;)Ljavax/naming/directory/Attribute;
            pop
        39: .line 177
      StackMap locals:
      StackMap stack:
            aload 2 /* attrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            bipush 6
            aaload
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            ifnonnull 49
        40: .line 179
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic com.sun.jndi.ldap.LdapCtxFactory.createTypeNameAttr:(Ljava/lang/Class;)Ljavax/naming/directory/Attribute;
        41: .line 178
            astore 6 /* tAttr */
        start local 6 // javax.naming.directory.Attribute tAttr
        42: .line 180
            aload 6 /* tAttr */
            ifnull 49
        43: .line 181
            aload 2 /* attrs */
            aload 6 /* tAttr */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        end local 6 // javax.naming.directory.Attribute tAttr
        44: .line 185
            goto 49
      StackMap locals:
      StackMap stack:
        45: aload 1 /* obj */
            instanceof javax.naming.directory.DirContext
            ifne 49
        46: .line 188
            new java.lang.IllegalArgumentException
            dup
        47: .line 189
            ldc "can only bind Referenceable, Serializable, DirContext"
        48: .line 188
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        49: .line 192
      StackMap locals:
      StackMap stack:
            aload 2 /* attrs */
            areturn
        end local 5 // boolean structural
        end local 4 // boolean cloned
        end local 3 // javax.naming.directory.Attribute objectClass
        end local 2 // javax.naming.directory.Attributes attrs
        end local 1 // java.lang.Object obj
        end local 0 // char separator
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   50     0    separator  C
            0   50     1          obj  Ljava/lang/Object;
            0   50     2        attrs  Ljavax/naming/directory/Attributes;
            0   50     3  objectClass  Ljavax/naming/directory/Attribute;
            0   50     4       cloned  Z
            5   50     5   structural  Z
           42   44     6        tAttr  Ljavax/naming/directory/Attribute;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
             Name  Flags
      separator    
      obj          
      attrs        
      objectClass  
      cloned       

  private static java.lang.String[] getCodebases(javax.naming.directory.Attribute);
    descriptor: (Ljavax/naming/directory/Attribute;)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // javax.naming.directory.Attribute codebaseAttr
         0: .line 203
            aload 0 /* codebaseAttr */
            ifnonnull 2
         1: .line 204
            aconst_null
            areturn
         2: .line 207
      StackMap locals:
      StackMap stack:
            new java.util.StringTokenizer
            dup
            aload 0 /* codebaseAttr */
            invokeinterface javax.naming.directory.Attribute.get:()Ljava/lang/Object;
            checkcast java.lang.String
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
         3: .line 206
            astore 1 /* parser */
        start local 1 // java.util.StringTokenizer parser
         4: .line 208
            new java.util.Vector
            dup
            bipush 10
            invokespecial java.util.Vector.<init>:(I)V
            astore 2 /* vec */
        start local 2 // java.util.Vector vec
         5: .line 209
            goto 7
         6: .line 210
      StackMap locals: java.util.StringTokenizer java.util.Vector
      StackMap stack:
            aload 2 /* vec */
            aload 1 /* parser */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         7: .line 209
      StackMap locals:
      StackMap stack:
            aload 1 /* parser */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 6
         8: .line 212
            aload 2 /* vec */
            invokevirtual java.util.Vector.size:()I
            anewarray java.lang.String
            astore 3 /* answer */
        start local 3 // java.lang.String[] answer
         9: .line 213
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        10: goto 13
        11: .line 214
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 3 /* answer */
            iload 4 /* i */
            aload 2 /* vec */
            iload 4 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast java.lang.String
            aastore
        12: .line 213
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 4 /* i */
            aload 3 /* answer */
            arraylength
            if_icmplt 11
        end local 4 // int i
        14: .line 216
            aload 3 /* answer */
            areturn
        end local 3 // java.lang.String[] answer
        end local 2 // java.util.Vector vec
        end local 1 // java.util.StringTokenizer parser
        end local 0 // javax.naming.directory.Attribute codebaseAttr
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0  codebaseAttr  Ljavax/naming/directory/Attribute;
            4   15     1        parser  Ljava/util/StringTokenizer;
            5   15     2           vec  Ljava/util/Vector<Ljava/lang/String;>;
            9   15     3        answer  [Ljava/lang/String;
           10   14     4             i  I
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
              Name  Flags
      codebaseAttr  

  static java.lang.Object decodeObject(javax.naming.directory.Attributes);
    descriptor: (Ljavax/naming/directory/Attributes;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // javax.naming.directory.Attributes attrs
         0: .line 233
            aload 0 /* attrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_4
            aaload
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            invokestatic com.sun.jndi.ldap.Obj.getCodebases:(Ljavax/naming/directory/Attribute;)[Ljava/lang/String;
            astore 2 /* codebases */
        start local 2 // java.lang.String[] codebases
         1: .line 235
            aload 0 /* attrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_1
            aaload
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            dup
            astore 1 /* attr */
        start local 1 // javax.naming.directory.Attribute attr
         2: ifnull 6
         3: .line 236
            getstatic com.sun.jndi.ldap.Obj.helper:Lcom/sun/jndi/ldap/VersionHelper;
            aload 2 /* codebases */
            invokevirtual com.sun.jndi.ldap.VersionHelper.getURLClassLoader:([Ljava/lang/String;)Ljava/lang/ClassLoader;
            astore 3 /* cl */
        start local 3 // java.lang.ClassLoader cl
         4: .line 237
            aload 1 /* attr */
            invokeinterface javax.naming.directory.Attribute.get:()Ljava/lang/Object;
            checkcast byte[]
            aload 3 /* cl */
            invokestatic com.sun.jndi.ldap.Obj.deserializeObject:([BLjava/lang/ClassLoader;)Ljava/lang/Object;
         5: areturn
        end local 3 // java.lang.ClassLoader cl
         6: .line 238
      StackMap locals: javax.naming.directory.Attribute java.lang.String[]
      StackMap stack:
            aload 0 /* attrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            bipush 7
            aaload
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            dup
            astore 1 /* attr */
            ifnull 11
         7: .line 241
            aload 0 /* 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;
            invokeinterface javax.naming.directory.Attribute.get:()Ljava/lang/Object;
            checkcast java.lang.String
         8: .line 242
            aload 1 /* attr */
            invokeinterface javax.naming.directory.Attribute.get:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 2 /* codebases */
         9: .line 240
            invokestatic com.sun.jndi.ldap.Obj.decodeRmiObject:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Object;
        10: areturn
        11: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* attrs */
            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;
            astore 1 /* attr */
        12: .line 246
            aload 1 /* attr */
            ifnull 17
        13: .line 247
            aload 1 /* attr */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            iconst_2
            aaload
            invokeinterface javax.naming.directory.Attribute.contains:(Ljava/lang/Object;)Z
            ifne 15
        14: .line 248
            aload 1 /* attr */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES_LOWER:[Ljava/lang/String;
            iconst_2
            aaload
            invokeinterface javax.naming.directory.Attribute.contains:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* attrs */
            aload 2 /* codebases */
            invokestatic com.sun.jndi.ldap.Obj.decodeReference:(Ljavax/naming/directory/Attributes;[Ljava/lang/String;)Ljavax/naming/Reference;
        16: areturn
        17: .line 251
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // javax.naming.directory.Attribute attr
        18: .line 252
      StackMap locals: javax.naming.directory.Attributes top java.lang.String[]
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        19: .line 253
            new javax.naming.NamingException
            dup
            invokespecial javax.naming.NamingException.<init>:()V
            astore 4 /* ne */
        start local 4 // javax.naming.NamingException ne
        20: .line 254
            aload 4 /* ne */
            aload 3 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        21: .line 255
            aload 4 /* ne */
            athrow
        end local 4 // javax.naming.NamingException ne
        end local 3 // java.io.IOException e
        end local 2 // java.lang.String[] codebases
        end local 0 // javax.naming.directory.Attributes attrs
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   22     0      attrs  Ljavax/naming/directory/Attributes;
            2   18     1       attr  Ljavax/naming/directory/Attribute;
            1   22     2  codebases  [Ljava/lang/String;
            4    6     3         cl  Ljava/lang/ClassLoader;
           19   22     3          e  Ljava/io/IOException;
           20   22     4         ne  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     5      18  Class java.io.IOException
           6    10      18  Class java.io.IOException
          11    16      18  Class java.io.IOException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      attrs  

  private static javax.naming.directory.Attributes encodeReference(char, javax.naming.Reference, javax.naming.directory.Attributes, java.lang.Object);
    descriptor: (CLjavax/naming/Reference;Ljavax/naming/directory/Attributes;Ljava/lang/Object;)Ljavax/naming/directory/Attributes;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // char separator
        start local 1 // javax.naming.Reference ref
        start local 2 // javax.naming.directory.Attributes attrs
        start local 3 // java.lang.Object orig
         0: .line 292
            aload 1 /* ref */
            ifnonnull 2
         1: .line 293
            aload 2 /* attrs */
            areturn
         2: .line 297
      StackMap locals:
      StackMap stack:
            aload 1 /* ref */
            invokevirtual javax.naming.Reference.getClassName:()Ljava/lang/String;
            dup
            astore 4 /* s */
        start local 4 // java.lang.String s
         3: ifnull 5
         4: .line 298
            aload 2 /* attrs */
            new javax.naming.directory.BasicAttribute
            dup
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_2
            aaload
            aload 4 /* s */
            invokespecial javax.naming.directory.BasicAttribute.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
         5: .line 301
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* ref */
            invokevirtual javax.naming.Reference.getFactoryClassName:()Ljava/lang/String;
            dup
            astore 4 /* s */
            ifnull 7
         6: .line 302
            aload 2 /* attrs */
            new javax.naming.directory.BasicAttribute
            dup
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_3
            aaload
            aload 4 /* s */
            invokespecial javax.naming.directory.BasicAttribute.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
         7: .line 305
      StackMap locals:
      StackMap stack:
            aload 1 /* ref */
            invokevirtual javax.naming.Reference.getFactoryClassLocation:()Ljava/lang/String;
            dup
            astore 4 /* s */
            ifnull 9
         8: .line 306
            aload 2 /* attrs */
            new javax.naming.directory.BasicAttribute
            dup
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_4
            aaload
            aload 4 /* s */
            invokespecial javax.naming.directory.BasicAttribute.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
         9: .line 311
      StackMap locals:
      StackMap stack:
            aload 3 /* orig */
            ifnull 14
            aload 2 /* attrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            bipush 6
            aaload
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            ifnull 14
        10: .line 313
            aload 3 /* orig */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic com.sun.jndi.ldap.LdapCtxFactory.createTypeNameAttr:(Ljava/lang/Class;)Ljavax/naming/directory/Attribute;
        11: .line 312
            astore 5 /* tAttr */
        start local 5 // javax.naming.directory.Attribute tAttr
        12: .line 314
            aload 5 /* tAttr */
            ifnull 14
        13: .line 315
            aload 2 /* attrs */
            aload 5 /* tAttr */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        end local 5 // javax.naming.directory.Attribute tAttr
        14: .line 319
      StackMap locals:
      StackMap stack:
            aload 1 /* ref */
            invokevirtual javax.naming.Reference.size:()I
            istore 5 /* count */
        start local 5 // int count
        15: .line 321
            iload 5 /* count */
            ifle 37
        16: .line 323
            new javax.naming.directory.BasicAttribute
            dup
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_5
            aaload
            invokespecial javax.naming.directory.BasicAttribute.<init>:(Ljava/lang/String;)V
            astore 6 /* refAttr */
        start local 6 // javax.naming.directory.Attribute refAttr
        17: .line 325
            aconst_null
            astore 8 /* encoder */
        start local 8 // java.util.Base64$Encoder encoder
        18: .line 327
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        19: goto 35
        20: .line 328
      StackMap locals: int javax.naming.Reference javax.naming.directory.Attributes java.lang.Object java.lang.String int javax.naming.directory.Attribute top java.util.Base64$Encoder int
      StackMap stack:
            aload 1 /* ref */
            iload 9 /* i */
            invokevirtual javax.naming.Reference.get:(I)Ljavax/naming/RefAddr;
            astore 7 /* refAddr */
        start local 7 // javax.naming.RefAddr refAddr
        21: .line 330
            aload 7 /* refAddr */
            instanceof javax.naming.StringRefAddr
            ifeq 27
        22: .line 331
            aload 6 /* refAttr */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            iload 0 /* separator */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            iload 9 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        23: .line 332
            iload 0 /* separator */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 7 /* refAddr */
            invokevirtual javax.naming.RefAddr.getType:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 333
            iload 0 /* separator */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 7 /* refAddr */
            invokevirtual javax.naming.RefAddr.getContent:()Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        25: .line 331
            invokeinterface javax.naming.directory.Attribute.add:(Ljava/lang/Object;)Z
            pop
        26: .line 334
            goto 34
        27: .line 335
      StackMap locals: int javax.naming.Reference javax.naming.directory.Attributes java.lang.Object java.lang.String int javax.naming.directory.Attribute javax.naming.RefAddr java.util.Base64$Encoder int
      StackMap stack:
            aload 8 /* encoder */
            ifnonnull 29
        28: .line 336
            invokestatic java.util.Base64.getMimeEncoder:()Ljava/util/Base64$Encoder;
            astore 8 /* encoder */
        29: .line 338
      StackMap locals:
      StackMap stack:
            aload 6 /* refAttr */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            iload 0 /* separator */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            iload 9 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        30: .line 339
            iload 0 /* separator */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 7 /* refAddr */
            invokevirtual javax.naming.RefAddr.getType:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        31: .line 340
            iload 0 /* separator */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            iload 0 /* separator */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        32: .line 341
            aload 8 /* encoder */
            aload 7 /* refAddr */
            invokestatic com.sun.jndi.ldap.Obj.serializeObject:(Ljava/lang/Object;)[B
            invokevirtual java.util.Base64$Encoder.encodeToString:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        33: .line 338
            invokeinterface javax.naming.directory.Attribute.add:(Ljava/lang/Object;)Z
            pop
        34: .line 327
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
        end local 7 // javax.naming.RefAddr refAddr
      StackMap locals: int javax.naming.Reference javax.naming.directory.Attributes java.lang.Object java.lang.String int javax.naming.directory.Attribute top java.util.Base64$Encoder int
      StackMap stack:
        35: iload 9 /* i */
            iload 5 /* count */
            if_icmplt 20
        end local 9 // int i
        36: .line 344
            aload 2 /* attrs */
            aload 6 /* refAttr */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        end local 8 // java.util.Base64$Encoder encoder
        end local 6 // javax.naming.directory.Attribute refAttr
        37: .line 346
      StackMap locals: int javax.naming.Reference javax.naming.directory.Attributes java.lang.Object java.lang.String int
      StackMap stack:
            aload 2 /* attrs */
            areturn
        end local 5 // int count
        end local 4 // java.lang.String s
        end local 3 // java.lang.Object orig
        end local 2 // javax.naming.directory.Attributes attrs
        end local 1 // javax.naming.Reference ref
        end local 0 // char separator
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   38     0  separator  C
            0   38     1        ref  Ljavax/naming/Reference;
            0   38     2      attrs  Ljavax/naming/directory/Attributes;
            0   38     3       orig  Ljava/lang/Object;
            3   38     4          s  Ljava/lang/String;
           12   14     5      tAttr  Ljavax/naming/directory/Attribute;
           15   38     5      count  I
           17   37     6    refAttr  Ljavax/naming/directory/Attribute;
           21   35     7    refAddr  Ljavax/naming/RefAddr;
           18   37     8    encoder  Ljava/util/Base64$Encoder;
           19   36     9          i  I
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
           Name  Flags
      separator  
      ref        
      attrs      
      orig       

  private static java.lang.Object decodeRmiObject(java.lang.String, java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // java.lang.String className
        start local 1 // java.lang.String rmiName
        start local 2 // java.lang.String[] codebases
         0: .line 365
            new javax.naming.Reference
            dup
            aload 0 /* className */
            new javax.naming.StringRefAddr
            dup
            ldc "URL"
            aload 1 /* rmiName */
            invokespecial javax.naming.StringRefAddr.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokespecial javax.naming.Reference.<init>:(Ljava/lang/String;Ljavax/naming/RefAddr;)V
            areturn
        end local 2 // java.lang.String[] codebases
        end local 1 // java.lang.String rmiName
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  className  Ljava/lang/String;
            0    1     1    rmiName  Ljava/lang/String;
            0    1     2  codebases  [Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
           Name  Flags
      className  
      rmiName    
      codebases  

  private static javax.naming.Reference decodeReference(javax.naming.directory.Attributes, java.lang.String[]);
    descriptor: (Ljavax/naming/directory/Attributes;[Ljava/lang/String;)Ljavax/naming/Reference;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=18, args_size=2
        start local 0 // javax.naming.directory.Attributes attrs
        start local 1 // java.lang.String[] codebases
         0: .line 376
            aconst_null
            astore 4 /* factory */
        start local 4 // java.lang.String factory
         1: .line 378
            aload 0 /* 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;
            dup
            astore 2 /* attr */
        start local 2 // javax.naming.directory.Attribute attr
         2: ifnull 5
         3: .line 379
            aload 2 /* attr */
            invokeinterface javax.naming.directory.Attribute.get:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* className */
        start local 3 // java.lang.String className
         4: .line 380
            goto 8
        end local 3 // java.lang.String className
         5: .line 381
      StackMap locals: javax.naming.directory.Attributes java.lang.String[] javax.naming.directory.Attribute top java.lang.String
      StackMap stack:
            new javax.naming.directory.InvalidAttributesException
            dup
            new java.lang.StringBuilder
            dup
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_2
            aaload
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 382
            ldc " attribute is required"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 381
            invokespecial javax.naming.directory.InvalidAttributesException.<init>:(Ljava/lang/String;)V
            athrow
        start local 3 // java.lang.String className
         8: .line 385
      StackMap locals: javax.naming.directory.Attributes java.lang.String[] javax.naming.directory.Attribute java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* attrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_3
            aaload
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            dup
            astore 2 /* attr */
            ifnull 10
         9: .line 386
            aload 2 /* attr */
            invokeinterface javax.naming.directory.Attribute.get:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* factory */
        10: .line 389
      StackMap locals:
      StackMap stack:
            new javax.naming.Reference
            dup
            aload 3 /* className */
            aload 4 /* factory */
        11: .line 390
            aload 1 /* codebases */
            ifnull 12
            aload 1 /* codebases */
            iconst_0
            aaload
            goto 13
      StackMap locals: javax.naming.directory.Attributes java.lang.String[] javax.naming.directory.Attribute java.lang.String java.lang.String
      StackMap stack: new 10 new 10 java.lang.String java.lang.String
        12: aconst_null
        13: .line 389
      StackMap locals: javax.naming.directory.Attributes java.lang.String[] javax.naming.directory.Attribute java.lang.String java.lang.String
      StackMap stack: new 10 new 10 java.lang.String java.lang.String java.lang.String
            invokespecial javax.naming.Reference.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            astore 5 /* ref */
        start local 5 // javax.naming.Reference ref
        14: .line 399
            aload 0 /* attrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_5
            aaload
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            dup
            astore 2 /* attr */
            ifnull 89
        15: .line 404
            aconst_null
            astore 13 /* decoder */
        start local 13 // java.util.Base64$Decoder decoder
        16: .line 406
            getstatic com.sun.jndi.ldap.Obj.helper:Lcom/sun/jndi/ldap/VersionHelper;
            aload 1 /* codebases */
            invokevirtual com.sun.jndi.ldap.VersionHelper.getURLClassLoader:([Ljava/lang/String;)Ljava/lang/ClassLoader;
            astore 14 /* cl */
        start local 14 // java.lang.ClassLoader cl
        17: .line 412
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 15 /* refAddrList */
        start local 15 // java.util.Vector refAddrList
        18: .line 413
            aload 15 /* refAddrList */
            aload 2 /* attr */
            invokeinterface javax.naming.directory.Attribute.size:()I
            invokevirtual java.util.Vector.setSize:(I)V
        19: .line 415
            aload 2 /* attr */
            invokeinterface javax.naming.directory.Attribute.getAll:()Ljavax/naming/NamingEnumeration;
            astore 16 /* vals */
        start local 16 // javax.naming.NamingEnumeration vals
        20: goto 83
        21: .line 417
      StackMap locals: javax.naming.directory.Attributes java.lang.String[] javax.naming.directory.Attribute java.lang.String java.lang.String javax.naming.Reference top top top top top top top java.util.Base64$Decoder java.lang.ClassLoader java.util.Vector javax.naming.NamingEnumeration
      StackMap stack:
            aload 16 /* vals */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* val */
        start local 6 // java.lang.String val
        22: .line 419
            aload 6 /* val */
            invokevirtual java.lang.String.length:()I
            ifne 28
        23: .line 420
            new javax.naming.directory.InvalidAttributeValueException
            dup
        24: .line 421
            new java.lang.StringBuilder
            dup
            ldc "malformed "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_5
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " attribute - "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 422
            ldc "empty attribute value"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        26: .line 421
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        27: .line 420
            invokespecial javax.naming.directory.InvalidAttributeValueException.<init>:(Ljava/lang/String;)V
            athrow
        28: .line 425
      StackMap locals: javax.naming.directory.Attributes java.lang.String[] javax.naming.directory.Attribute java.lang.String java.lang.String javax.naming.Reference java.lang.String top top top top top top java.util.Base64$Decoder java.lang.ClassLoader java.util.Vector javax.naming.NamingEnumeration
      StackMap stack:
            aload 6 /* val */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 9 /* separator */
        start local 9 // char separator
        29: .line 426
            iconst_1
            istore 10 /* start */
        start local 10 // int start
        30: .line 429
            aload 6 /* val */
            iload 9 /* separator */
            iload 10 /* start */
            invokevirtual java.lang.String.indexOf:(II)I
            dup
            istore 11 /* sep */
        start local 11 // int sep
        31: ifge 37
        32: .line 430
            new javax.naming.directory.InvalidAttributeValueException
            dup
        33: .line 431
            new java.lang.StringBuilder
            dup
            ldc "malformed "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_5
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " attribute - "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        34: .line 432
            ldc "separator '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* separator */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        35: .line 431
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        36: .line 430
            invokespecial javax.naming.directory.InvalidAttributeValueException.<init>:(Ljava/lang/String;)V
            athrow
        37: .line 434
      StackMap locals: javax.naming.directory.Attributes java.lang.String[] javax.naming.directory.Attribute java.lang.String java.lang.String javax.naming.Reference java.lang.String top top int int int top java.util.Base64$Decoder java.lang.ClassLoader java.util.Vector javax.naming.NamingEnumeration
      StackMap stack:
            aload 6 /* val */
            iload 10 /* start */
            iload 11 /* sep */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            dup
            astore 7 /* posnStr */
        start local 7 // java.lang.String posnStr
        38: ifnonnull 44
        39: .line 435
            new javax.naming.directory.InvalidAttributeValueException
            dup
        40: .line 436
            new java.lang.StringBuilder
            dup
            ldc "malformed "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_5
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " attribute - "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        41: .line 437
            ldc "empty RefAddr position"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        42: .line 436
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        43: .line 435
            invokespecial javax.naming.directory.InvalidAttributeValueException.<init>:(Ljava/lang/String;)V
            athrow
        44: .line 440
      StackMap locals: javax.naming.directory.Attributes java.lang.String[] javax.naming.directory.Attribute java.lang.String java.lang.String javax.naming.Reference java.lang.String java.lang.String top int int int top java.util.Base64$Decoder java.lang.ClassLoader java.util.Vector javax.naming.NamingEnumeration
      StackMap stack:
            aload 7 /* posnStr */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 12 /* posn */
        start local 12 // int posn
        45: .line 441
            goto 52
        end local 12 // int posn
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
        46: pop
        47: .line 442
            new javax.naming.directory.InvalidAttributeValueException
            dup
        48: .line 443
            new java.lang.StringBuilder
            dup
            ldc "malformed "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_5
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " attribute - "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        49: .line 444
            ldc "RefAddr position not an integer"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        50: .line 443
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        51: .line 442
            invokespecial javax.naming.directory.InvalidAttributeValueException.<init>:(Ljava/lang/String;)V
            athrow
        start local 12 // int posn
        52: .line 446
      StackMap locals: javax.naming.directory.Attributes java.lang.String[] javax.naming.directory.Attribute java.lang.String java.lang.String javax.naming.Reference java.lang.String java.lang.String top int int int int java.util.Base64$Decoder java.lang.ClassLoader java.util.Vector javax.naming.NamingEnumeration
      StackMap stack:
            iload 11 /* sep */
            iconst_1
            iadd
            istore 10 /* start */
        53: .line 449
            aload 6 /* val */
            iload 9 /* separator */
            iload 10 /* start */
            invokevirtual java.lang.String.indexOf:(II)I
            dup
            istore 11 /* sep */
            ifge 59
        54: .line 450
            new javax.naming.directory.InvalidAttributeValueException
            dup
        55: .line 451
            new java.lang.StringBuilder
            dup
            ldc "malformed "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_5
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " attribute - "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        56: .line 452
            ldc "RefAddr type not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        57: .line 451
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        58: .line 450
            invokespecial javax.naming.directory.InvalidAttributeValueException.<init>:(Ljava/lang/String;)V
            athrow
        59: .line 454
      StackMap locals:
      StackMap stack:
            aload 6 /* val */
            iload 10 /* start */
            iload 11 /* sep */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            dup
            astore 8 /* type */
        start local 8 // java.lang.String type
        60: ifnonnull 66
        61: .line 455
            new javax.naming.directory.InvalidAttributeValueException
            dup
        62: .line 456
            new java.lang.StringBuilder
            dup
            ldc "malformed "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_5
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " attribute - "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        63: .line 457
            ldc "empty RefAddr type"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        64: .line 456
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        65: .line 455
            invokespecial javax.naming.directory.InvalidAttributeValueException.<init>:(Ljava/lang/String;)V
            athrow
        66: .line 459
      StackMap locals: javax.naming.directory.Attributes java.lang.String[] javax.naming.directory.Attribute java.lang.String java.lang.String javax.naming.Reference java.lang.String java.lang.String java.lang.String int int int int java.util.Base64$Decoder java.lang.ClassLoader java.util.Vector javax.naming.NamingEnumeration
      StackMap stack:
            iload 11 /* sep */
            iconst_1
            iadd
            istore 10 /* start */
        67: .line 462
            iload 10 /* start */
            aload 6 /* val */
            invokevirtual java.lang.String.length:()I
            if_icmpne 70
        68: .line 464
            aload 15 /* refAddrList */
            new javax.naming.StringRefAddr
            dup
            aload 8 /* type */
            aconst_null
            invokespecial javax.naming.StringRefAddr.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            iload 12 /* posn */
            invokevirtual java.util.Vector.setElementAt:(Ljava/lang/Object;I)V
        69: .line 465
            goto 83
      StackMap locals:
      StackMap stack:
        70: aload 6 /* val */
            iload 10 /* start */
            invokevirtual java.lang.String.charAt:(I)C
            iload 9 /* separator */
            if_icmpne 80
        71: .line 469
            iinc 10 /* start */ 1
        72: .line 472
            aload 13 /* decoder */
            ifnonnull 74
        73: .line 473
            invokestatic java.util.Base64.getMimeDecoder:()Ljava/util/Base64$Decoder;
            astore 13 /* decoder */
        74: .line 477
      StackMap locals:
      StackMap stack:
            aload 13 /* decoder */
            aload 6 /* val */
            iload 10 /* start */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            invokevirtual java.util.Base64$Decoder.decode:([B)[B
        75: .line 478
            aload 14 /* cl */
        76: .line 476
            invokestatic com.sun.jndi.ldap.Obj.deserializeObject:([BLjava/lang/ClassLoader;)Ljava/lang/Object;
        77: .line 475
            checkcast javax.naming.RefAddr
            astore 17 /* ra */
        start local 17 // javax.naming.RefAddr ra
        78: .line 480
            aload 15 /* refAddrList */
            aload 17 /* ra */
            iload 12 /* posn */
            invokevirtual java.util.Vector.setElementAt:(Ljava/lang/Object;I)V
        end local 17 // javax.naming.RefAddr ra
        79: .line 481
            goto 83
        80: .line 483
      StackMap locals:
      StackMap stack:
            aload 15 /* refAddrList */
            new javax.naming.StringRefAddr
            dup
            aload 8 /* type */
        81: .line 484
            aload 6 /* val */
            iload 10 /* start */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokespecial javax.naming.StringRefAddr.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            iload 12 /* posn */
        82: .line 483
            invokevirtual java.util.Vector.setElementAt:(Ljava/lang/Object;I)V
        end local 12 // int posn
        end local 11 // int sep
        end local 10 // int start
        end local 9 // char separator
        end local 8 // java.lang.String type
        end local 7 // java.lang.String posnStr
        end local 6 // java.lang.String val
        83: .line 415
      StackMap locals: javax.naming.directory.Attributes java.lang.String[] javax.naming.directory.Attribute java.lang.String java.lang.String javax.naming.Reference top top top top top top top java.util.Base64$Decoder java.lang.ClassLoader java.util.Vector javax.naming.NamingEnumeration
      StackMap stack:
            aload 16 /* vals */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 21
        end local 16 // javax.naming.NamingEnumeration vals
        84: .line 489
            iconst_0
            istore 16 /* i */
        start local 16 // int i
        85: goto 88
        86: .line 490
      StackMap locals: javax.naming.directory.Attributes java.lang.String[] javax.naming.directory.Attribute java.lang.String java.lang.String javax.naming.Reference top top top top top top top java.util.Base64$Decoder java.lang.ClassLoader java.util.Vector int
      StackMap stack:
            aload 5 /* ref */
            aload 15 /* refAddrList */
            iload 16 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast javax.naming.RefAddr
            invokevirtual javax.naming.Reference.add:(Ljavax/naming/RefAddr;)V
        87: .line 489
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        88: iload 16 /* i */
            aload 15 /* refAddrList */
            invokevirtual java.util.Vector.size:()I
            if_icmplt 86
        end local 16 // int i
        end local 15 // java.util.Vector refAddrList
        end local 14 // java.lang.ClassLoader cl
        end local 13 // java.util.Base64$Decoder decoder
        89: .line 494
      StackMap locals: javax.naming.directory.Attributes java.lang.String[] javax.naming.directory.Attribute java.lang.String java.lang.String javax.naming.Reference
      StackMap stack:
            aload 5 /* ref */
            areturn
        end local 5 // javax.naming.Reference ref
        end local 4 // java.lang.String factory
        end local 3 // java.lang.String className
        end local 2 // javax.naming.directory.Attribute attr
        end local 1 // java.lang.String[] codebases
        end local 0 // javax.naming.directory.Attributes attrs
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   90     0        attrs  Ljavax/naming/directory/Attributes;
            0   90     1    codebases  [Ljava/lang/String;
            2   90     2         attr  Ljavax/naming/directory/Attribute;
            4    5     3    className  Ljava/lang/String;
            8   90     3    className  Ljava/lang/String;
            1   90     4      factory  Ljava/lang/String;
           14   90     5          ref  Ljavax/naming/Reference;
           22   83     6          val  Ljava/lang/String;
           38   83     7      posnStr  Ljava/lang/String;
           60   83     8         type  Ljava/lang/String;
           29   83     9    separator  C
           30   83    10        start  I
           31   83    11          sep  I
           45   46    12         posn  I
           52   83    12         posn  I
           16   89    13      decoder  Ljava/util/Base64$Decoder;
           17   89    14           cl  Ljava/lang/ClassLoader;
           18   89    15  refAddrList  Ljava/util/Vector<Ljavax/naming/RefAddr;>;
           20   84    16         vals  Ljavax/naming/NamingEnumeration<*>;
           78   79    17           ra  Ljavax/naming/RefAddr;
           85   89    16            i  I
      Exception table:
        from    to  target  type
          44    45      46  Class java.lang.NumberFormatException
    Exceptions:
      throws javax.naming.NamingException, java.io.IOException
    MethodParameters:
           Name  Flags
      attrs      
      codebases  

  private static byte[] serializeObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 503
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 1 /* bytes */
        start local 1 // java.io.ByteArrayOutputStream bytes
         1: .line 504
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: new java.io.ObjectOutputStream
            dup
            aload 1 /* bytes */
            invokespecial java.io.ObjectOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 4 /* serial */
        start local 4 // java.io.ObjectOutputStream serial
         3: .line 505
            aload 4 /* serial */
            aload 0 /* obj */
            invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
         4: .line 506
            aload 4 /* serial */
            ifnull 10
            aload 4 /* serial */
            invokevirtual java.io.ObjectOutputStream.close:()V
            goto 10
      StackMap locals: java.lang.Object java.io.ByteArrayOutputStream java.lang.Throwable java.lang.Throwable java.io.ObjectOutputStream
      StackMap stack: java.lang.Throwable
         5: astore 2
            aload 4 /* serial */
            ifnull 6
            aload 4 /* serial */
            invokevirtual java.io.ObjectOutputStream.close:()V
        end local 4 // java.io.ObjectOutputStream serial
      StackMap locals:
      StackMap stack:
         6: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 3
            aload 2
            ifnonnull 8
            aload 3
            astore 2
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 2
            aload 3
            if_acmpeq 9
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         9: aload 2
            athrow
        10: .line 508
      StackMap locals:
      StackMap stack:
            aload 1 /* bytes */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
        11: areturn
        end local 1 // java.io.ByteArrayOutputStream bytes
        12: .line 510
      StackMap locals: java.lang.Object
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
        13: .line 511
            new javax.naming.NamingException
            dup
            invokespecial javax.naming.NamingException.<init>:()V
            astore 2 /* ne */
        start local 2 // javax.naming.NamingException ne
        14: .line 512
            aload 2 /* ne */
            aload 1 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        15: .line 513
            aload 2 /* ne */
            athrow
        end local 2 // javax.naming.NamingException ne
        end local 1 // java.io.IOException e
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0     obj  Ljava/lang/Object;
            1   12     1   bytes  Ljava/io/ByteArrayOutputStream;
            3    6     4  serial  Ljava/io/ObjectOutputStream;
           13   16     1       e  Ljava/io/IOException;
           14   16     2      ne  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           3     4       5  any
           2     7       7  any
           0    11      12  Class java.io.IOException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      obj   

  private static java.lang.Object deserializeObject(byte[], java.lang.ClassLoader);
    descriptor: ([BLjava/lang/ClassLoader;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // byte[] obj
        start local 1 // java.lang.ClassLoader cl
         0: .line 525
            new java.io.ByteArrayInputStream
            dup
            aload 0 /* obj */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 2 /* bytes */
        start local 2 // java.io.ByteArrayInputStream bytes
         1: .line 526
            aconst_null
            astore 3
            aconst_null
            astore 4
         2: aload 1 /* cl */
            ifnonnull 4
         3: .line 527
            new java.io.ObjectInputStream
            dup
            aload 2 /* bytes */
            invokespecial java.io.ObjectInputStream.<init>:(Ljava/io/InputStream;)V
            goto 5
         4: .line 528
      StackMap locals: java.io.ByteArrayInputStream java.lang.Throwable java.lang.Throwable
      StackMap stack:
            new com.sun.jndi.ldap.Obj$LoaderInputStream
            dup
            aload 2 /* bytes */
            aload 1 /* cl */
            invokespecial com.sun.jndi.ldap.Obj$LoaderInputStream.<init>:(Ljava/io/InputStream;Ljava/lang/ClassLoader;)V
         5: .line 526
      StackMap locals:
      StackMap stack: java.io.ObjectInputStream
            astore 5 /* deserial */
        start local 5 // java.io.ObjectInputStream deserial
         6: .line 529
            aload 5 /* deserial */
            invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
         7: .line 530
            aload 5 /* deserial */
            ifnull 8
            aload 5 /* deserial */
            invokevirtual java.io.ObjectInputStream.close:()V
         8: .line 529
      StackMap locals: byte[] java.lang.ClassLoader java.io.ByteArrayInputStream java.lang.Throwable java.lang.Throwable java.io.ObjectInputStream
      StackMap stack: java.lang.Object
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 3
        10: .line 530
            aload 5 /* deserial */
            ifnull 11
            aload 5 /* deserial */
            invokevirtual java.io.ObjectInputStream.close:()V
        end local 5 // java.io.ObjectInputStream deserial
      StackMap locals:
      StackMap stack:
        11: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 4
            aload 3
            ifnonnull 13
            aload 4
            astore 3
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 3
            aload 4
            if_acmpeq 14
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 3
            athrow
      StackMap locals: byte[] java.lang.ClassLoader java.io.ByteArrayInputStream
      StackMap stack: java.lang.ClassNotFoundException
        15: astore 3 /* e */
        start local 3 // java.lang.ClassNotFoundException e
        16: .line 531
            new javax.naming.NamingException
            dup
            invokespecial javax.naming.NamingException.<init>:()V
            astore 4 /* ne */
        start local 4 // javax.naming.NamingException ne
        17: .line 532
            aload 4 /* ne */
            aload 3 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        18: .line 533
            aload 4 /* ne */
            athrow
        end local 4 // javax.naming.NamingException ne
        end local 3 // java.lang.ClassNotFoundException e
        end local 2 // java.io.ByteArrayInputStream bytes
        19: .line 535
      StackMap locals: byte[] java.lang.ClassLoader
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
        20: .line 536
            new javax.naming.NamingException
            dup
            invokespecial javax.naming.NamingException.<init>:()V
            astore 3 /* ne */
        start local 3 // javax.naming.NamingException ne
        21: .line 537
            aload 3 /* ne */
            aload 2 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        22: .line 538
            aload 3 /* ne */
            athrow
        end local 3 // javax.naming.NamingException ne
        end local 2 // java.io.IOException e
        end local 1 // java.lang.ClassLoader cl
        end local 0 // byte[] obj
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0       obj  [B
            0   23     1        cl  Ljava/lang/ClassLoader;
            1   19     2     bytes  Ljava/io/ByteArrayInputStream;
            6   11     5  deserial  Ljava/io/ObjectInputStream;
           16   19     3         e  Ljava/lang/ClassNotFoundException;
           17   19     4        ne  Ljavax/naming/NamingException;
           20   23     2         e  Ljava/io/IOException;
           21   23     3        ne  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           6     7       9  any
           2     8      12  any
           9    12      12  any
           1     8      15  Class java.lang.ClassNotFoundException
           9    15      15  Class java.lang.ClassNotFoundException
           0     8      19  Class java.io.IOException
           9    19      19  Class java.io.IOException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      obj   
      cl    

  static javax.naming.directory.Attributes determineBindAttrs(char, , javax.naming.directory.Attributes, boolean, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>);
    descriptor: (CLjava/lang/Object;Ljavax/naming/directory/Attributes;ZLjavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable;)Ljavax/naming/directory/Attributes;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=10, args_size=7
        start local 0 // char separator
        start local 1 // java.lang.Object obj
        start local 2 // javax.naming.directory.Attributes attrs
        start local 3 // boolean cloned
        start local 4 // javax.naming.Name name
        start local 5 // javax.naming.Context ctx
        start local 6 // java.util.Hashtable env
         0: .line 552
            aload 1 /* obj */
            aload 4 /* name */
            aload 5 /* ctx */
            aload 6 /* env */
            aload 2 /* attrs */
            invokestatic javax.naming.spi.DirectoryManager.getStateToBind:(Ljava/lang/Object;Ljavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable;Ljavax/naming/directory/Attributes;)Ljavax/naming/spi/DirStateFactory$Result;
         1: .line 551
            astore 7 /* res */
        start local 7 // javax.naming.spi.DirStateFactory$Result res
         2: .line 553
            aload 7 /* res */
            invokevirtual javax.naming.spi.DirStateFactory$Result.getObject:()Ljava/lang/Object;
            astore 1 /* obj */
         3: .line 554
            aload 7 /* res */
            invokevirtual javax.naming.spi.DirStateFactory$Result.getAttributes:()Ljavax/naming/directory/Attributes;
            astore 2 /* attrs */
         4: .line 557
            aload 1 /* obj */
            ifnonnull 6
         5: .line 558
            aload 2 /* attrs */
            areturn
         6: .line 562
      StackMap locals: javax.naming.spi.DirStateFactory$Result
      StackMap stack:
            aload 2 /* attrs */
            ifnonnull 9
            aload 1 /* obj */
            instanceof javax.naming.directory.DirContext
            ifeq 9
         7: .line 563
            iconst_1
            istore 3 /* cloned */
         8: .line 564
            aload 1 /* obj */
            checkcast javax.naming.directory.DirContext
            ldc ""
            invokeinterface javax.naming.directory.DirContext.getAttributes:(Ljava/lang/String;)Ljavax/naming/directory/Attributes;
            astore 2 /* attrs */
         9: .line 567
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 8 /* ocNeedsCloning */
        start local 8 // boolean ocNeedsCloning
        10: .line 571
            aload 2 /* attrs */
            ifnull 11
            aload 2 /* attrs */
            invokeinterface javax.naming.directory.Attributes.size:()I
            ifne 15
        11: .line 572
      StackMap locals: int
      StackMap stack:
            new javax.naming.directory.BasicAttributes
            dup
            iconst_1
            invokespecial javax.naming.directory.BasicAttributes.<init>:(Z)V
            astore 2 /* attrs */
        12: .line 573
            iconst_1
            istore 3 /* cloned */
        13: .line 576
            new javax.naming.directory.BasicAttribute
            dup
            ldc "objectClass"
            ldc "top"
            invokespecial javax.naming.directory.BasicAttribute.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            astore 9 /* objectClass */
        start local 9 // javax.naming.directory.Attribute objectClass
        14: .line 578
            goto 23
        end local 9 // javax.naming.directory.Attribute objectClass
        15: .line 580
      StackMap locals:
      StackMap stack:
            aload 2 /* attrs */
            ldc "objectClass"
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            astore 9 /* objectClass */
        start local 9 // javax.naming.directory.Attribute objectClass
        16: .line 581
            aload 9 /* objectClass */
            ifnonnull 18
            aload 2 /* attrs */
            invokeinterface javax.naming.directory.Attributes.isCaseIgnored:()Z
            ifne 18
        17: .line 583
            aload 2 /* attrs */
            ldc "objectclass"
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            astore 9 /* objectClass */
        18: .line 587
      StackMap locals: javax.naming.directory.Attribute
      StackMap stack:
            aload 9 /* objectClass */
            ifnonnull 21
        19: .line 588
            new javax.naming.directory.BasicAttribute
            dup
            ldc "objectClass"
            ldc "top"
            invokespecial javax.naming.directory.BasicAttribute.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            astore 9 /* objectClass */
        20: .line 589
            goto 23
      StackMap locals:
      StackMap stack:
        21: iload 8 /* ocNeedsCloning */
            ifne 22
            iload 3 /* cloned */
            ifne 23
        22: .line 590
      StackMap locals:
      StackMap stack:
            aload 9 /* objectClass */
            invokeinterface javax.naming.directory.Attribute.clone:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attribute
            astore 9 /* objectClass */
        23: .line 595
      StackMap locals:
      StackMap stack:
            iload 0 /* separator */
            aload 1 /* obj */
            aload 2 /* attrs */
            aload 9 /* objectClass */
            iload 3 /* cloned */
            invokestatic com.sun.jndi.ldap.Obj.encodeObject:(CLjava/lang/Object;Ljavax/naming/directory/Attributes;Ljavax/naming/directory/Attribute;Z)Ljavax/naming/directory/Attributes;
            astore 2 /* attrs */
        24: .line 598
            aload 2 /* attrs */
            areturn
        end local 9 // javax.naming.directory.Attribute objectClass
        end local 8 // boolean ocNeedsCloning
        end local 7 // javax.naming.spi.DirStateFactory$Result res
        end local 6 // java.util.Hashtable env
        end local 5 // javax.naming.Context ctx
        end local 4 // javax.naming.Name name
        end local 3 // boolean cloned
        end local 2 // javax.naming.directory.Attributes attrs
        end local 1 // java.lang.Object obj
        end local 0 // char separator
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   25     0       separator  C
            0   25     1             obj  Ljava/lang/Object;
            0   25     2           attrs  Ljavax/naming/directory/Attributes;
            0   25     3          cloned  Z
            0   25     4            name  Ljavax/naming/Name;
            0   25     5             ctx  Ljavax/naming/Context;
            0   25     6             env  Ljava/util/Hashtable<**>;
            2   25     7             res  Ljavax/naming/spi/DirStateFactory$Result;
           10   25     8  ocNeedsCloning  Z
           14   15     9     objectClass  Ljavax/naming/directory/Attribute;
           16   25     9     objectClass  Ljavax/naming/directory/Attribute;
    Exceptions:
      throws javax.naming.NamingException
    Signature: (CLjava/lang/Object;Ljavax/naming/directory/Attributes;ZLjavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable<**>;)Ljavax/naming/directory/Attributes;
    MethodParameters:
           Name  Flags
      separator  
      obj        
      attrs      
      cloned     
      name       
      ctx        
      env        
}
SourceFile: "Obj.java"
NestMembers:
  com.sun.jndi.ldap.Obj$LoaderInputStream
InnerClasses:
  private final LoaderInputStream = com.sun.jndi.ldap.Obj$LoaderInputStream of com.sun.jndi.ldap.Obj
  public Decoder = java.util.Base64$Decoder of java.util.Base64
  public Encoder = java.util.Base64$Encoder of java.util.Base64
  public Result = javax.naming.spi.DirStateFactory$Result of javax.naming.spi.DirStateFactory