public class com.sun.jndi.toolkit.dir.SearchFilter implements com.sun.jndi.toolkit.dir.AttrFilter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.jndi.toolkit.dir.SearchFilter
  super_class: java.lang.Object
{
  java.lang.String filter;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

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

  private com.sun.jndi.toolkit.dir.SearchFilter$StringFilter rootFilter;
    descriptor: Lcom/sun/jndi/toolkit/dir/SearchFilter$StringFilter;
    flags: (0x0002) ACC_PRIVATE

  protected static final boolean debug;
    descriptor: Z
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  protected static final char BEGIN_FILTER_TOKEN;
    descriptor: C
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 40

  protected static final char END_FILTER_TOKEN;
    descriptor: C
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 41

  protected static final char AND_TOKEN;
    descriptor: C
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 38

  protected static final char OR_TOKEN;
    descriptor: C
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 124

  protected static final char NOT_TOKEN;
    descriptor: C
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 33

  protected static final char EQUAL_TOKEN;
    descriptor: C
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 61

  protected static final char APPROX_TOKEN;
    descriptor: C
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 126

  protected static final char LESS_TOKEN;
    descriptor: C
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 60

  protected static final char GREATER_TOKEN;
    descriptor: C
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 62

  protected static final char EXTEND_TOKEN;
    descriptor: C
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 58

  protected static final char WILDCARD_TOKEN;
    descriptor: C
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 42

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

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

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

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

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
        start local 1 // java.lang.String filter
         0: .line 64
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 65
            aload 0 /* this */
            aload 1 /* filter */
            putfield com.sun.jndi.toolkit.dir.SearchFilter.filter:Ljava/lang/String;
         2: .line 66
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.toolkit.dir.SearchFilter.pos:I
         3: .line 67
            aload 0 /* this */
            invokevirtual com.sun.jndi.toolkit.dir.SearchFilter.normalizeFilter:()V
         4: .line 68
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.sun.jndi.toolkit.dir.SearchFilter.createNextFilter:()Lcom/sun/jndi/toolkit/dir/SearchFilter$StringFilter;
            putfield com.sun.jndi.toolkit.dir.SearchFilter.rootFilter:Lcom/sun/jndi/toolkit/dir/SearchFilter$StringFilter;
         5: .line 69
            return
        end local 1 // java.lang.String filter
        end local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/sun/jndi/toolkit/dir/SearchFilter;
            0    6     1  filter  Ljava/lang/String;
    Exceptions:
      throws javax.naming.directory.InvalidSearchFilterException
    MethodParameters:
        Name  Flags
      filter  

  public boolean check(javax.naming.directory.Attributes);
    descriptor: (Ljavax/naming/directory/Attributes;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
        start local 1 // javax.naming.directory.Attributes targetAttrs
         0: .line 73
            aload 1 /* targetAttrs */
            ifnonnull 2
         1: .line 74
            iconst_0
            ireturn
         2: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.toolkit.dir.SearchFilter.rootFilter:Lcom/sun/jndi/toolkit/dir/SearchFilter$StringFilter;
            aload 1 /* targetAttrs */
            invokeinterface com.sun.jndi.toolkit.dir.SearchFilter$StringFilter.check:(Ljavax/naming/directory/Attributes;)Z
            ireturn
        end local 1 // javax.naming.directory.Attributes targetAttrs
        end local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/sun/jndi/toolkit/dir/SearchFilter;
            0    3     1  targetAttrs  Ljavax/naming/directory/Attributes;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
             Name  Flags
      targetAttrs  

  protected void normalizeFilter();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
         0: .line 86
            aload 0 /* this */
            invokevirtual com.sun.jndi.toolkit.dir.SearchFilter.skipWhiteSpace:()V
         1: .line 89
            aload 0 /* this */
            invokevirtual com.sun.jndi.toolkit.dir.SearchFilter.getCurrentChar:()C
            bipush 40
            if_icmpeq 3
         2: .line 90
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            bipush 40
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.jndi.toolkit.dir.SearchFilter.filter:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield com.sun.jndi.toolkit.dir.SearchFilter.filter:Ljava/lang/String;
         3: .line 96
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/jndi/toolkit/dir/SearchFilter;

  private void skipWhiteSpace();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
         0: .line 99
            goto 2
         1: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jndi.toolkit.dir.SearchFilter.consumeChar:()V
         2: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jndi.toolkit.dir.SearchFilter.getCurrentChar:()C
            invokestatic java.lang.Character.isWhitespace:(C)Z
            ifne 1
         3: .line 102
            return
        end local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/jndi/toolkit/dir/SearchFilter;

  protected com.sun.jndi.toolkit.dir.SearchFilter$StringFilter createNextFilter();
    descriptor: ()Lcom/sun/jndi/toolkit/dir/SearchFilter$StringFilter;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
         0: .line 108
            aload 0 /* this */
            invokevirtual com.sun.jndi.toolkit.dir.SearchFilter.skipWhiteSpace:()V
         1: .line 112
            aload 0 /* this */
            invokevirtual com.sun.jndi.toolkit.dir.SearchFilter.getCurrentChar:()C
            bipush 40
            if_icmpeq 5
         2: .line 113
            new javax.naming.directory.InvalidSearchFilterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "expected \"(\" at position "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 116
            aload 0 /* this */
            getfield com.sun.jndi.toolkit.dir.SearchFilter.pos:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 113
            invokespecial javax.naming.directory.InvalidSearchFilterException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 120
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jndi.toolkit.dir.SearchFilter.consumeChar:()V
         6: .line 122
            aload 0 /* this */
            invokevirtual com.sun.jndi.toolkit.dir.SearchFilter.skipWhiteSpace:()V
         7: .line 125
            aload 0 /* this */
            invokevirtual com.sun.jndi.toolkit.dir.SearchFilter.getCurrentChar:()C
            lookupswitch { // 3
                   33: 14
                   38: 8
                  124: 11
              default: 17
          }
         8: .line 128
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.toolkit.dir.SearchFilter$CompoundFilter
            dup
            aload 0 /* this */
            iconst_1
            invokespecial com.sun.jndi.toolkit.dir.SearchFilter$CompoundFilter.<init>:(Lcom/sun/jndi/toolkit/dir/SearchFilter;Z)V
            astore 1 /* filter */
        start local 1 // com.sun.jndi.toolkit.dir.SearchFilter$StringFilter filter
         9: .line 129
            aload 1 /* filter */
            invokeinterface com.sun.jndi.toolkit.dir.SearchFilter$StringFilter.parse:()V
        10: .line 130
            goto 19
        end local 1 // com.sun.jndi.toolkit.dir.SearchFilter$StringFilter filter
        11: .line 133
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.toolkit.dir.SearchFilter$CompoundFilter
            dup
            aload 0 /* this */
            iconst_0
            invokespecial com.sun.jndi.toolkit.dir.SearchFilter$CompoundFilter.<init>:(Lcom/sun/jndi/toolkit/dir/SearchFilter;Z)V
            astore 1 /* filter */
        start local 1 // com.sun.jndi.toolkit.dir.SearchFilter$StringFilter filter
        12: .line 134
            aload 1 /* filter */
            invokeinterface com.sun.jndi.toolkit.dir.SearchFilter$StringFilter.parse:()V
        13: .line 135
            goto 19
        end local 1 // com.sun.jndi.toolkit.dir.SearchFilter$StringFilter filter
        14: .line 138
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.toolkit.dir.SearchFilter$NotFilter
            dup
            aload 0 /* this */
            invokespecial com.sun.jndi.toolkit.dir.SearchFilter$NotFilter.<init>:(Lcom/sun/jndi/toolkit/dir/SearchFilter;)V
            astore 1 /* filter */
        start local 1 // com.sun.jndi.toolkit.dir.SearchFilter$StringFilter filter
        15: .line 139
            aload 1 /* filter */
            invokeinterface com.sun.jndi.toolkit.dir.SearchFilter$StringFilter.parse:()V
        16: .line 140
            goto 19
        end local 1 // com.sun.jndi.toolkit.dir.SearchFilter$StringFilter filter
        17: .line 143
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.toolkit.dir.SearchFilter$AtomicFilter
            dup
            aload 0 /* this */
            invokespecial com.sun.jndi.toolkit.dir.SearchFilter$AtomicFilter.<init>:(Lcom/sun/jndi/toolkit/dir/SearchFilter;)V
            astore 1 /* filter */
        start local 1 // com.sun.jndi.toolkit.dir.SearchFilter$StringFilter filter
        18: .line 144
            aload 1 /* filter */
            invokeinterface com.sun.jndi.toolkit.dir.SearchFilter$StringFilter.parse:()V
        19: .line 148
      StackMap locals: com.sun.jndi.toolkit.dir.SearchFilter$StringFilter
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jndi.toolkit.dir.SearchFilter.skipWhiteSpace:()V
        20: .line 151
            aload 0 /* this */
            invokevirtual com.sun.jndi.toolkit.dir.SearchFilter.getCurrentChar:()C
            bipush 41
            if_icmpeq 24
        21: .line 152
            new javax.naming.directory.InvalidSearchFilterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "expected \")\" at position "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        22: .line 155
            aload 0 /* this */
            getfield com.sun.jndi.toolkit.dir.SearchFilter.pos:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 152
            invokespecial javax.naming.directory.InvalidSearchFilterException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jndi.toolkit.dir.SearchFilter.consumeChar:()V
        25: .line 160
            goto 33
        end local 1 // com.sun.jndi.toolkit.dir.SearchFilter$StringFilter filter
      StackMap locals: com.sun.jndi.toolkit.dir.SearchFilter
      StackMap stack: javax.naming.directory.InvalidSearchFilterException
        26: astore 2 /* e */
        start local 2 // javax.naming.directory.InvalidSearchFilterException e
        27: .line 162
            aload 2 /* e */
            athrow
        end local 2 // javax.naming.directory.InvalidSearchFilterException e
        28: .line 165
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        29: .line 167
            new javax.naming.directory.InvalidSearchFilterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to parse character "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        30: .line 168
            aload 0 /* this */
            getfield com.sun.jndi.toolkit.dir.SearchFilter.pos:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " in \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        31: .line 169
            aload 0 /* this */
            getfield com.sun.jndi.toolkit.dir.SearchFilter.filter:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        32: .line 167
            invokespecial javax.naming.directory.InvalidSearchFilterException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Exception e
        start local 1 // com.sun.jndi.toolkit.dir.SearchFilter$StringFilter filter
        33: .line 172
      StackMap locals: com.sun.jndi.toolkit.dir.SearchFilter$StringFilter
      StackMap stack:
            aload 1 /* filter */
            areturn
        end local 1 // com.sun.jndi.toolkit.dir.SearchFilter$StringFilter filter
        end local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   34     0    this  Lcom/sun/jndi/toolkit/dir/SearchFilter;
            9   11     1  filter  Lcom/sun/jndi/toolkit/dir/SearchFilter$StringFilter;
           12   14     1  filter  Lcom/sun/jndi/toolkit/dir/SearchFilter$StringFilter;
           15   17     1  filter  Lcom/sun/jndi/toolkit/dir/SearchFilter$StringFilter;
           18   26     1  filter  Lcom/sun/jndi/toolkit/dir/SearchFilter$StringFilter;
           33   34     1  filter  Lcom/sun/jndi/toolkit/dir/SearchFilter$StringFilter;
           27   28     2       e  Ljavax/naming/directory/InvalidSearchFilterException;
           29   33     2       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1    25      26  Class javax.naming.directory.InvalidSearchFilterException
           1    25      28  Class java.lang.Exception
    Exceptions:
      throws javax.naming.directory.InvalidSearchFilterException

  protected char getCurrentChar();
    descriptor: ()C
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
         0: .line 176
            aload 0 /* this */
            getfield com.sun.jndi.toolkit.dir.SearchFilter.filter:Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.jndi.toolkit.dir.SearchFilter.pos:I
            invokevirtual java.lang.String.charAt:(I)C
            ireturn
        end local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/toolkit/dir/SearchFilter;

  protected char relCharAt(int);
    descriptor: (I)C
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
        start local 1 // int i
         0: .line 180
            aload 0 /* this */
            getfield com.sun.jndi.toolkit.dir.SearchFilter.filter:Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.jndi.toolkit.dir.SearchFilter.pos:I
            iload 1 /* i */
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            ireturn
        end local 1 // int i
        end local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/toolkit/dir/SearchFilter;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  protected void consumeChar();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
         0: .line 184
            aload 0 /* this */
            dup
            getfield com.sun.jndi.toolkit.dir.SearchFilter.pos:I
            iconst_1
            iadd
            putfield com.sun.jndi.toolkit.dir.SearchFilter.pos:I
         1: .line 185
            return
        end local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/toolkit/dir/SearchFilter;

  protected void consumeChars(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
        start local 1 // int i
         0: .line 188
            aload 0 /* this */
            dup
            getfield com.sun.jndi.toolkit.dir.SearchFilter.pos:I
            iload 1 /* i */
            iadd
            putfield com.sun.jndi.toolkit.dir.SearchFilter.pos:I
         1: .line 189
            return
        end local 1 // int i
        end local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/toolkit/dir/SearchFilter;
            0    2     1     i  I
    MethodParameters:
      Name  Flags
      i     

  protected int relIndexOf(int);
    descriptor: (I)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
        start local 1 // int ch
         0: .line 192
            aload 0 /* this */
            getfield com.sun.jndi.toolkit.dir.SearchFilter.filter:Ljava/lang/String;
            iload 1 /* ch */
            aload 0 /* this */
            getfield com.sun.jndi.toolkit.dir.SearchFilter.pos:I
            invokevirtual java.lang.String.indexOf:(II)I
            aload 0 /* this */
            getfield com.sun.jndi.toolkit.dir.SearchFilter.pos:I
            isub
            ireturn
        end local 1 // int ch
        end local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/toolkit/dir/SearchFilter;
            0    1     1    ch  I
    MethodParameters:
      Name  Flags
      ch    

  protected java.lang.String relSubstring(int, int);
    descriptor: (II)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
        start local 1 // int beginIndex
        start local 2 // int endIndex
         0: .line 198
            aload 0 /* this */
            getfield com.sun.jndi.toolkit.dir.SearchFilter.filter:Ljava/lang/String;
            iload 1 /* beginIndex */
            aload 0 /* this */
            getfield com.sun.jndi.toolkit.dir.SearchFilter.pos:I
            iadd
            iload 2 /* endIndex */
            aload 0 /* this */
            getfield com.sun.jndi.toolkit.dir.SearchFilter.pos:I
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 2 // int endIndex
        end local 1 // int beginIndex
        end local 0 // com.sun.jndi.toolkit.dir.SearchFilter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/sun/jndi/toolkit/dir/SearchFilter;
            0    1     1  beginIndex  I
            0    1     2    endIndex  I
    MethodParameters:
            Name  Flags
      beginIndex  
      endIndex    

  public static java.lang.String format(javax.naming.directory.Attributes);
    descriptor: (Ljavax/naming/directory/Attributes;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // javax.naming.directory.Attributes attrs
         0: .line 437
            aload 0 /* attrs */
            ifnull 1
            aload 0 /* attrs */
            invokeinterface javax.naming.directory.Attributes.size:()I
            ifne 2
         1: .line 438
      StackMap locals:
      StackMap stack:
            ldc "objectClass=*"
            areturn
         2: .line 442
      StackMap locals:
      StackMap stack:
            ldc "(& "
            astore 1 /* answer */
        start local 1 // java.lang.String answer
         3: .line 444
            aload 0 /* attrs */
            invokeinterface javax.naming.directory.Attributes.getAll:()Ljavax/naming/NamingEnumeration;
            astore 3 /* e */
        start local 3 // javax.naming.NamingEnumeration e
         4: goto 15
         5: .line 445
      StackMap locals: javax.naming.directory.Attributes java.lang.String top javax.naming.NamingEnumeration
      StackMap stack:
            aload 3 /* e */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attribute
            astore 2 /* attr */
        start local 2 // javax.naming.directory.Attribute attr
         6: .line 446
            aload 2 /* attr */
            invokeinterface javax.naming.directory.Attribute.size:()I
            ifeq 7
            aload 2 /* attr */
            invokeinterface javax.naming.directory.Attribute.size:()I
            iconst_1
            if_icmpne 9
            aload 2 /* attr */
            invokeinterface javax.naming.directory.Attribute.get:()Ljava/lang/Object;
            ifnonnull 9
         7: .line 448
      StackMap locals: javax.naming.directory.Attributes java.lang.String javax.naming.directory.Attribute javax.naming.NamingEnumeration
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* answer */
            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 2 /* attr */
            invokeinterface javax.naming.directory.Attribute.getID:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "*)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* answer */
         8: .line 449
            goto 15
         9: .line 450
      StackMap locals:
      StackMap stack:
            aload 2 /* attr */
            invokeinterface javax.naming.directory.Attribute.getAll:()Ljavax/naming/NamingEnumeration;
            astore 4 /* ve */
        start local 4 // javax.naming.NamingEnumeration ve
        10: .line 451
            goto 14
        11: .line 453
      StackMap locals: javax.naming.NamingEnumeration
      StackMap stack:
            aload 4 /* ve */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            invokestatic com.sun.jndi.toolkit.dir.SearchFilter.getEncodedStringRep:(Ljava/lang/Object;)Ljava/lang/String;
            astore 5 /* val */
        start local 5 // java.lang.String val
        12: .line 454
            aload 5 /* val */
            ifnull 14
        13: .line 455
            new java.lang.StringBuilder
            dup
            aload 1 /* answer */
            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 2 /* attr */
            invokeinterface javax.naming.directory.Attribute.getID:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* val */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* answer */
        end local 5 // java.lang.String val
        14: .line 451
      StackMap locals:
      StackMap stack:
            aload 4 /* ve */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 11
        end local 4 // javax.naming.NamingEnumeration ve
        end local 2 // javax.naming.directory.Attribute attr
        15: .line 444
      StackMap locals: javax.naming.directory.Attributes java.lang.String top javax.naming.NamingEnumeration
      StackMap stack:
            aload 3 /* e */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 5
        end local 3 // javax.naming.NamingEnumeration e
        16: .line 461
            new java.lang.StringBuilder
            dup
            aload 1 /* answer */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* answer */
        17: .line 463
            aload 1 /* answer */
            areturn
        end local 1 // java.lang.String answer
        end local 0 // javax.naming.directory.Attributes attrs
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0   attrs  Ljavax/naming/directory/Attributes;
            3   18     1  answer  Ljava/lang/String;
            6   15     2    attr  Ljavax/naming/directory/Attribute;
            4   16     3       e  Ljavax/naming/NamingEnumeration;
           10   15     4      ve  Ljavax/naming/NamingEnumeration;
           12   14     5     val  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      attrs  

  private static void hexDigit(java.lang.StringBuffer, byte);
    descriptor: (Ljava/lang/StringBuffer;B)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.StringBuffer buf
        start local 1 // byte x
         0: .line 470
            iload 1 /* x */
            iconst_4
            ishr
            bipush 15
            iand
            i2c
            istore 2 /* c */
        start local 2 // char c
         1: .line 471
            iload 2 /* c */
            bipush 9
            if_icmple 3
         2: .line 472
            iload 2 /* c */
            bipush 10
            isub
            bipush 65
            iadd
            i2c
            istore 2 /* c */
            goto 4
         3: .line 474
      StackMap locals: int
      StackMap stack:
            iload 2 /* c */
            bipush 48
            iadd
            i2c
            istore 2 /* c */
         4: .line 476
      StackMap locals:
      StackMap stack:
            aload 0 /* buf */
            iload 2 /* c */
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         5: .line 477
            iload 1 /* x */
            bipush 15
            iand
            i2c
            istore 2 /* c */
         6: .line 478
            iload 2 /* c */
            bipush 9
            if_icmple 8
         7: .line 479
            iload 2 /* c */
            bipush 10
            isub
            bipush 65
            iadd
            i2c
            istore 2 /* c */
            goto 9
         8: .line 481
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            bipush 48
            iadd
            i2c
            istore 2 /* c */
         9: .line 482
      StackMap locals:
      StackMap stack:
            aload 0 /* buf */
            iload 2 /* c */
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        10: .line 483
            return
        end local 2 // char c
        end local 1 // byte x
        end local 0 // java.lang.StringBuffer buf
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0   buf  Ljava/lang/StringBuffer;
            0   11     1     x  B
            1   11     2     c  C
    MethodParameters:
      Name  Flags
      buf   
      x     

  private static java.lang.String getEncodedStringRep(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 501
            aload 0 /* obj */
            ifnonnull 2
         1: .line 502
            aconst_null
            areturn
         2: .line 504
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            instanceof byte[]
            ifeq 12
         3: .line 506
            aload 0 /* obj */
            checkcast byte[]
            astore 2 /* bytes */
        start local 2 // byte[] bytes
         4: .line 507
            new java.lang.StringBuffer
            dup
            aload 2 /* bytes */
            arraylength
            iconst_3
            imul
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 3 /* b1 */
        start local 3 // java.lang.StringBuffer b1
         5: .line 508
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 10
         7: .line 509
      StackMap locals: java.lang.Object top byte[] java.lang.StringBuffer int
      StackMap stack:
            aload 3 /* b1 */
            bipush 92
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         8: .line 510
            aload 3 /* b1 */
            aload 2 /* bytes */
            iload 4 /* i */
            baload
            invokestatic com.sun.jndi.toolkit.dir.SearchFilter.hexDigit:(Ljava/lang/StringBuffer;B)V
         9: .line 508
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            aload 2 /* bytes */
            arraylength
            if_icmplt 7
        end local 4 // int i
        11: .line 512
            aload 3 /* b1 */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuffer b1
        end local 2 // byte[] bytes
        12: .line 514
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* obj */
            instanceof java.lang.String
            ifne 15
        13: .line 515
            aload 0 /* obj */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 1 /* str */
        start local 1 // java.lang.String str
        14: .line 516
            goto 16
        end local 1 // java.lang.String str
        15: .line 517
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            checkcast java.lang.String
            astore 1 /* str */
        start local 1 // java.lang.String str
        16: .line 519
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* str */
            invokevirtual java.lang.String.length:()I
            istore 2 /* len */
        start local 2 // int len
        17: .line 520
            new java.lang.StringBuffer
            dup
            iload 2 /* len */
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 3 /* buf */
        start local 3 // java.lang.StringBuffer buf
        18: .line 522
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        19: goto 34
        20: .line 523
      StackMap locals: java.lang.Object java.lang.String int java.lang.StringBuffer top int
      StackMap stack:
            aload 1 /* str */
            iload 5 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            dup
            istore 4 /* ch */
        start local 4 // char ch
        21: lookupswitch { // 5
                    0: 30
                   40: 24
                   41: 26
                   42: 22
                   92: 28
              default: 32
          }
        22: .line 525
      StackMap locals: java.lang.Object java.lang.String int java.lang.StringBuffer int int
      StackMap stack:
            aload 3 /* buf */
            ldc "\\2a"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        23: .line 526
            goto 33
        24: .line 528
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            ldc "\\28"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        25: .line 529
            goto 33
        26: .line 531
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            ldc "\\29"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        27: .line 532
            goto 33
        28: .line 534
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            ldc "\\5c"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        29: .line 535
            goto 33
        30: .line 537
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            ldc "\\00"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        31: .line 538
            goto 33
        32: .line 540
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            iload 4 /* ch */
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        33: .line 522
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
        end local 4 // char ch
      StackMap locals: java.lang.Object java.lang.String int java.lang.StringBuffer top int
      StackMap stack:
        34: iload 5 /* i */
            iload 2 /* len */
            if_icmplt 20
        end local 5 // int i
        35: .line 543
            aload 3 /* buf */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuffer buf
        end local 2 // int len
        end local 1 // java.lang.String str
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   36     0    obj  Ljava/lang/Object;
           14   15     1    str  Ljava/lang/String;
           16   36     1    str  Ljava/lang/String;
            4   12     2  bytes  [B
            5   12     3     b1  Ljava/lang/StringBuffer;
            6   11     4      i  I
           17   36     2    len  I
           18   36     3    buf  Ljava/lang/StringBuffer;
           21   34     4     ch  C
           19   35     5      i  I
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      obj   

  public static int findUnescaped(char, java.lang.String, int);
    descriptor: (CLjava/lang/String;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // char ch
        start local 1 // java.lang.String val
        start local 2 // int start
         0: .line 553
            aload 1 /* val */
            invokevirtual java.lang.String.length:()I
            istore 3 /* len */
        start local 3 // int len
         1: .line 555
            goto 6
         2: .line 556
      StackMap locals: int
      StackMap stack:
            aload 1 /* val */
            iload 0 /* ch */
            iload 2 /* start */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 4 /* where */
        start local 4 // int where
         3: .line 558
            iload 4 /* where */
            iload 2 /* start */
            if_icmpeq 4
            iload 4 /* where */
            iconst_m1
            if_icmpeq 4
            aload 1 /* val */
            iload 4 /* where */
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 92
            if_icmpeq 5
         4: .line 559
      StackMap locals: int
      StackMap stack:
            iload 4 /* where */
            ireturn
         5: .line 562
      StackMap locals:
      StackMap stack:
            iload 4 /* where */
            iconst_1
            iadd
            istore 2 /* start */
        end local 4 // int where
         6: .line 555
      StackMap locals:
      StackMap stack:
            iload 2 /* start */
            iload 3 /* len */
            if_icmplt 2
         7: .line 564
            iconst_m1
            ireturn
        end local 3 // int len
        end local 2 // int start
        end local 1 // java.lang.String val
        end local 0 // char ch
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0     ch  C
            0    8     1    val  Ljava/lang/String;
            0    8     2  start  I
            1    8     3    len  I
            3    6     4  where  I
    MethodParameters:
       Name  Flags
      ch     
      val    
      start  

  public static java.lang.String format(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // java.lang.String expr
        start local 1 // java.lang.Object[] args
         0: .line 584
            iconst_0
            istore 3 /* where */
        start local 3 // int where
         1: iconst_0
            istore 4 /* start */
        start local 4 // int start
         2: .line 585
            new java.lang.StringBuffer
            dup
            aload 0 /* expr */
            invokevirtual java.lang.String.length:()I
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 5 /* answer */
        start local 5 // java.lang.StringBuffer answer
         3: .line 587
            goto 20
         4: .line 588
      StackMap locals: java.lang.String java.lang.Object[] top int int java.lang.StringBuffer
      StackMap stack:
            iload 3 /* where */
            iconst_1
            iadd
            istore 6 /* pstart */
        start local 6 // int pstart
         5: .line 589
            aload 0 /* expr */
            bipush 125
            iload 6 /* pstart */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 7 /* pend */
        start local 7 // int pend
         6: .line 591
            iload 7 /* pend */
            ifge 8
         7: .line 592
            new javax.naming.directory.InvalidSearchFilterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unbalanced {: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* expr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.naming.directory.InvalidSearchFilterException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 597
      StackMap locals: int int
      StackMap stack:
            aload 0 /* expr */
            iload 6 /* pstart */
            iload 7 /* pend */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 2 /* param */
        start local 2 // int param
         9: .line 598
            goto 14
        end local 2 // int param
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
        10: pop
        11: .line 599
            new javax.naming.directory.InvalidSearchFilterException
            dup
        12: .line 600
            new java.lang.StringBuilder
            dup
            ldc "integer expected inside {}: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* expr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 599
            invokespecial javax.naming.directory.InvalidSearchFilterException.<init>:(Ljava/lang/String;)V
            athrow
        start local 2 // int param
        14: .line 603
      StackMap locals: java.lang.String java.lang.Object[] int int int java.lang.StringBuffer int int
      StackMap stack:
            iload 2 /* param */
            aload 1 /* args */
            arraylength
            if_icmplt 18
        15: .line 604
            new javax.naming.directory.InvalidSearchFilterException
            dup
        16: .line 605
            new java.lang.StringBuilder
            dup
            ldc "number exceeds argument list: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* param */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 604
            invokespecial javax.naming.directory.InvalidSearchFilterException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 608
      StackMap locals:
      StackMap stack:
            aload 5 /* answer */
            aload 0 /* expr */
            iload 4 /* start */
            iload 3 /* where */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 1 /* args */
            iload 2 /* param */
            aaload
            invokestatic com.sun.jndi.toolkit.dir.SearchFilter.getEncodedStringRep:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        19: .line 609
            iload 7 /* pend */
            iconst_1
            iadd
            istore 4 /* start */
        end local 7 // int pend
        end local 6 // int pstart
        end local 2 // int param
        20: .line 587
      StackMap locals: java.lang.String java.lang.Object[] top int int java.lang.StringBuffer
      StackMap stack:
            bipush 123
            aload 0 /* expr */
            iload 4 /* start */
            invokestatic com.sun.jndi.toolkit.dir.SearchFilter.findUnescaped:(CLjava/lang/String;I)I
            dup
            istore 3 /* where */
            ifge 4
        21: .line 612
            iload 4 /* start */
            aload 0 /* expr */
            invokevirtual java.lang.String.length:()I
            if_icmpge 23
        22: .line 613
            aload 5 /* answer */
            aload 0 /* expr */
            iload 4 /* start */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        23: .line 615
      StackMap locals:
      StackMap stack:
            aload 5 /* answer */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 5 // java.lang.StringBuffer answer
        end local 4 // int start
        end local 3 // int where
        end local 1 // java.lang.Object[] args
        end local 0 // java.lang.String expr
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   24     0    expr  Ljava/lang/String;
            0   24     1    args  [Ljava/lang/Object;
            9   10     2   param  I
           14   20     2   param  I
            1   24     3   where  I
            2   24     4   start  I
            3   24     5  answer  Ljava/lang/StringBuffer;
            5   20     6  pstart  I
            6   20     7    pend  I
      Exception table:
        from    to  target  type
           8     9      10  Class java.lang.NumberFormatException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      expr  
      args  

  public static javax.naming.directory.Attributes selectAttributes(javax.naming.directory.Attributes, java.lang.String[]);
    descriptor: (Ljavax/naming/directory/Attributes;[Ljava/lang/String;)Ljavax/naming/directory/Attributes;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // javax.naming.directory.Attributes originals
        start local 1 // java.lang.String[] attrIDs
         0: .line 625
            aload 1 /* attrIDs */
            ifnonnull 2
         1: .line 626
            aload 0 /* originals */
            areturn
         2: .line 628
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.BasicAttributes
            dup
            invokespecial javax.naming.directory.BasicAttributes.<init>:()V
            astore 2 /* result */
        start local 2 // javax.naming.directory.Attributes result
         3: .line 630
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 9
         5: .line 631
      StackMap locals: javax.naming.directory.Attributes int
      StackMap stack:
            aload 0 /* originals */
            aload 1 /* attrIDs */
            iload 3 /* i */
            aaload
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            astore 4 /* attr */
        start local 4 // javax.naming.directory.Attribute attr
         6: .line 632
            aload 4 /* attr */
            ifnull 8
         7: .line 633
            aload 2 /* result */
            aload 4 /* attr */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        end local 4 // javax.naming.directory.Attribute attr
         8: .line 630
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            aload 1 /* attrIDs */
            arraylength
            if_icmplt 5
        end local 3 // int i
        10: .line 637
            aload 2 /* result */
            areturn
        end local 2 // javax.naming.directory.Attributes result
        end local 1 // java.lang.String[] attrIDs
        end local 0 // javax.naming.directory.Attributes originals
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0  originals  Ljavax/naming/directory/Attributes;
            0   11     1    attrIDs  [Ljava/lang/String;
            3   11     2     result  Ljavax/naming/directory/Attributes;
            4   10     3          i  I
            6    8     4       attr  Ljavax/naming/directory/Attribute;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
           Name  Flags
      originals  
      attrIDs    
}
SourceFile: "SearchFilter.java"
NestMembers:
  com.sun.jndi.toolkit.dir.SearchFilter$AtomicFilter  com.sun.jndi.toolkit.dir.SearchFilter$CompoundFilter  com.sun.jndi.toolkit.dir.SearchFilter$NotFilter  com.sun.jndi.toolkit.dir.SearchFilter$StringFilter
InnerClasses:
  final AtomicFilter = com.sun.jndi.toolkit.dir.SearchFilter$AtomicFilter of com.sun.jndi.toolkit.dir.SearchFilter
  final CompoundFilter = com.sun.jndi.toolkit.dir.SearchFilter$CompoundFilter of com.sun.jndi.toolkit.dir.SearchFilter
  final NotFilter = com.sun.jndi.toolkit.dir.SearchFilter$NotFilter of com.sun.jndi.toolkit.dir.SearchFilter
  abstract StringFilter = com.sun.jndi.toolkit.dir.SearchFilter$StringFilter of com.sun.jndi.toolkit.dir.SearchFilter