final class com.sun.jndi.ldap.Filter
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.jndi.ldap.Filter
  super_class: java.lang.Object
{
  private static final boolean dbg;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static int dbgIndent;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 621
            iconst_0
            putstatic com.sun.jndi.ldap.Filter.dbgIndent:I
         1: .line 666
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  static void encodeFilterString(com.sun.jndi.ldap.BerEncoder, java.lang.String, boolean);
    descriptor: (Lcom/sun/jndi/ldap/BerEncoder;Ljava/lang/String;Z)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.sun.jndi.ldap.BerEncoder ber
        start local 1 // java.lang.String filterStr
        start local 2 // boolean isLdapv3
         0: .line 55
            aload 1 /* filterStr */
            ifnull 1
            aload 1 /* filterStr */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 56
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.InvalidSearchFilterException
            dup
            ldc "Empty filter"
            invokespecial javax.naming.directory.InvalidSearchFilterException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 60
      StackMap locals:
      StackMap stack:
            iload 2 /* isLdapv3 */
            ifeq 5
         3: .line 61
            aload 1 /* filterStr */
            ldc "UTF8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            astore 3 /* filter */
        start local 3 // byte[] filter
         4: .line 62
            goto 6
        end local 3 // byte[] filter
         5: .line 63
      StackMap locals:
      StackMap stack:
            aload 1 /* filterStr */
            ldc "8859_1"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            astore 3 /* filter */
        start local 3 // byte[] filter
         6: .line 65
      StackMap locals: byte[]
      StackMap stack:
            aload 3 /* filter */
            arraylength
            istore 4 /* filterLen */
        start local 4 // int filterLen
         7: .line 73
            aload 0 /* ber */
            aload 3 /* filter */
            iconst_0
            iload 4 /* filterLen */
            invokestatic com.sun.jndi.ldap.Filter.encodeFilter:(Lcom/sun/jndi/ldap/BerEncoder;[BII)V
         8: .line 74
            return
        end local 4 // int filterLen
        end local 3 // byte[] filter
        end local 2 // boolean isLdapv3
        end local 1 // java.lang.String filterStr
        end local 0 // com.sun.jndi.ldap.BerEncoder ber
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0        ber  Lcom/sun/jndi/ldap/BerEncoder;
            0    9     1  filterStr  Ljava/lang/String;
            0    9     2   isLdapv3  Z
            4    5     3     filter  [B
            6    9     3     filter  [B
            7    9     4  filterLen  I
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
           Name  Flags
      ber        
      filterStr  
      isLdapv3   

  private static void encodeFilter(com.sun.jndi.ldap.BerEncoder, byte[], int, int);
    descriptor: (Lcom/sun/jndi/ldap/BerEncoder;[BII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // com.sun.jndi.ldap.BerEncoder ber
        start local 1 // byte[] filter
        start local 2 // int filterStart
        start local 3 // int filterEnd
         0: .line 84
            iload 3 /* filterEnd */
            iload 2 /* filterStart */
            isub
            ifgt 2
         1: .line 85
            new javax.naming.directory.InvalidSearchFilterException
            dup
            ldc "Empty filter"
            invokespecial javax.naming.directory.InvalidSearchFilterException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 92
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* parens */
        start local 5 // int parens
         3: .line 94
            iconst_1
            newarray 10
            astore 8 /* filtOffset */
        start local 8 // int[] filtOffset
         4: .line 96
            aload 8 /* filtOffset */
            iconst_0
            iload 2 /* filterStart */
            iastore
         5: .line 97
            goto 57
         6: .line 99
      StackMap locals: com.sun.jndi.ldap.BerEncoder byte[] int int top int top top int[]
      StackMap stack:
            aload 1 /* filter */
            aload 8 /* filtOffset */
            iconst_0
            iaload
            baload
            lookupswitch { // 3
                   32: 52
                   40: 7
                   41: 48
              default: 54
          }
         7: .line 101
      StackMap locals:
      StackMap stack:
            aload 8 /* filtOffset */
            iconst_0
            dup2
            iaload
            iconst_1
            iadd
            iastore
         8: .line 102
            iinc 5 /* parens */ 1
         9: .line 103
            aload 1 /* filter */
            aload 8 /* filtOffset */
            iconst_0
            iaload
            baload
            lookupswitch { // 3
                   33: 20
                   38: 10
                  124: 15
              default: 25
          }
        10: .line 105
      StackMap locals:
      StackMap stack:
            aload 0 /* ber */
            aload 1 /* filter */
        11: .line 106
            sipush 160
            aload 8 /* filtOffset */
            iload 3 /* filterEnd */
        12: .line 105
            invokestatic com.sun.jndi.ldap.Filter.encodeComplexFilter:(Lcom/sun/jndi/ldap/BerEncoder;[BI[II)V
        13: .line 107
            iinc 5 /* parens */ -1
        14: .line 108
            goto 56
        15: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* ber */
            aload 1 /* filter */
        16: .line 112
            sipush 161
            aload 8 /* filtOffset */
            iload 3 /* filterEnd */
        17: .line 111
            invokestatic com.sun.jndi.ldap.Filter.encodeComplexFilter:(Lcom/sun/jndi/ldap/BerEncoder;[BI[II)V
        18: .line 113
            iinc 5 /* parens */ -1
        19: .line 114
            goto 56
        20: .line 117
      StackMap locals:
      StackMap stack:
            aload 0 /* ber */
            aload 1 /* filter */
        21: .line 118
            sipush 162
            aload 8 /* filtOffset */
            iload 3 /* filterEnd */
        22: .line 117
            invokestatic com.sun.jndi.ldap.Filter.encodeComplexFilter:(Lcom/sun/jndi/ldap/BerEncoder;[BI[II)V
        23: .line 119
            iinc 5 /* parens */ -1
        24: .line 120
            goto 56
        25: .line 123
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* balance */
        start local 6 // int balance
        26: .line 124
            iconst_0
            istore 7 /* escape */
        start local 7 // boolean escape
        27: .line 125
            aload 8 /* filtOffset */
            iconst_0
            iaload
            istore 4 /* nextOffset */
        start local 4 // int nextOffset
        28: .line 126
            goto 39
        29: .line 127
      StackMap locals: com.sun.jndi.ldap.BerEncoder byte[] int int int int int int int[]
      StackMap stack:
            iload 7 /* escape */
            ifne 34
        30: .line 128
            aload 1 /* filter */
            iload 4 /* nextOffset */
            baload
            bipush 40
            if_icmpne 32
        31: .line 129
            iinc 6 /* balance */ 1
            goto 34
        32: .line 130
      StackMap locals:
      StackMap stack:
            aload 1 /* filter */
            iload 4 /* nextOffset */
            baload
            bipush 41
            if_icmpne 34
        33: .line 131
            iinc 6 /* balance */ -1
        34: .line 133
      StackMap locals:
      StackMap stack:
            aload 1 /* filter */
            iload 4 /* nextOffset */
            baload
            bipush 92
            if_icmpne 36
            iload 7 /* escape */
            ifne 36
        35: .line 134
            iconst_1
            istore 7 /* escape */
            goto 37
        36: .line 136
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* escape */
        37: .line 137
      StackMap locals:
      StackMap stack:
            iload 6 /* balance */
            ifle 39
        38: .line 138
            iinc 4 /* nextOffset */ 1
        39: .line 126
      StackMap locals:
      StackMap stack:
            iload 4 /* nextOffset */
            iload 3 /* filterEnd */
            if_icmpge 40
            iload 6 /* balance */
            ifgt 29
        40: .line 140
      StackMap locals:
      StackMap stack:
            iload 6 /* balance */
            ifeq 44
        41: .line 141
            new javax.naming.directory.InvalidSearchFilterException
            dup
        42: .line 142
            ldc "Unbalanced parenthesis"
        43: .line 141
            invokespecial javax.naming.directory.InvalidSearchFilterException.<init>:(Ljava/lang/String;)V
            athrow
        44: .line 144
      StackMap locals:
      StackMap stack:
            aload 0 /* ber */
            aload 1 /* filter */
            aload 8 /* filtOffset */
            iconst_0
            iaload
            iload 4 /* nextOffset */
            invokestatic com.sun.jndi.ldap.Filter.encodeSimpleFilter:(Lcom/sun/jndi/ldap/BerEncoder;[BII)V
        45: .line 147
            aload 8 /* filtOffset */
            iconst_0
            iload 4 /* nextOffset */
            iastore
        46: .line 149
            iinc 5 /* parens */ -1
        end local 7 // boolean escape
        end local 6 // int balance
        end local 4 // int nextOffset
        47: .line 153
            goto 56
        48: .line 159
      StackMap locals: com.sun.jndi.ldap.BerEncoder byte[] int int top int top top int[]
      StackMap stack:
            aload 0 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        49: .line 160
            aload 8 /* filtOffset */
            iconst_0
            dup2
            iaload
            iconst_1
            iadd
            iastore
        50: .line 161
            iinc 5 /* parens */ -1
        51: .line 162
            goto 56
        52: .line 165
      StackMap locals:
      StackMap stack:
            aload 8 /* filtOffset */
            iconst_0
            dup2
            iaload
            iconst_1
            iadd
            iastore
        53: .line 166
            goto 56
        54: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* ber */
            aload 1 /* filter */
            aload 8 /* filtOffset */
            iconst_0
            iaload
            iload 3 /* filterEnd */
            invokestatic com.sun.jndi.ldap.Filter.encodeSimpleFilter:(Lcom/sun/jndi/ldap/BerEncoder;[BII)V
        55: .line 170
            aload 8 /* filtOffset */
            iconst_0
            iload 3 /* filterEnd */
            iastore
        56: .line 98
      StackMap locals:
      StackMap stack:
            aload 8 /* filtOffset */
            iconst_0
            dup2
            iaload
            iconst_1
            iadd
            iastore
        57: .line 97
      StackMap locals:
      StackMap stack:
            aload 8 /* filtOffset */
            iconst_0
            iaload
            iload 3 /* filterEnd */
        58: .line 96
            if_icmplt 6
        59: .line 175
            iload 5 /* parens */
            ifle 61
        60: .line 176
            new javax.naming.directory.InvalidSearchFilterException
            dup
            ldc "Unbalanced parenthesis"
            invokespecial javax.naming.directory.InvalidSearchFilterException.<init>:(Ljava/lang/String;)V
            athrow
        61: .line 183
      StackMap locals:
      StackMap stack:
            return
        end local 8 // int[] filtOffset
        end local 5 // int parens
        end local 3 // int filterEnd
        end local 2 // int filterStart
        end local 1 // byte[] filter
        end local 0 // com.sun.jndi.ldap.BerEncoder ber
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   62     0          ber  Lcom/sun/jndi/ldap/BerEncoder;
            0   62     1       filter  [B
            0   62     2  filterStart  I
            0   62     3    filterEnd  I
           28   47     4   nextOffset  I
            3   62     5       parens  I
           26   47     6      balance  I
           27   47     7       escape  Z
            4   62     8   filtOffset  [I
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
             Name  Flags
      ber          
      filter       
      filterStart  
      filterEnd    

  private static int hexchar2int(byte);
    descriptor: (B)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte c
         0: .line 191
            iload 0 /* c */
            bipush 48
            if_icmplt 2
            iload 0 /* c */
            bipush 57
            if_icmpgt 2
         1: .line 192
            iload 0 /* c */
            bipush 48
            isub
            ireturn
         2: .line 194
      StackMap locals:
      StackMap stack:
            iload 0 /* c */
            bipush 65
            if_icmplt 4
            iload 0 /* c */
            bipush 70
            if_icmpgt 4
         3: .line 195
            iload 0 /* c */
            bipush 65
            isub
            bipush 10
            iadd
            ireturn
         4: .line 197
      StackMap locals:
      StackMap stack:
            iload 0 /* c */
            bipush 97
            if_icmplt 6
            iload 0 /* c */
            bipush 102
            if_icmpgt 6
         5: .line 198
            iload 0 /* c */
            bipush 97
            isub
            bipush 10
            iadd
            ireturn
         6: .line 200
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 0 // byte c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     c  B
    MethodParameters:
      Name  Flags
      c     

  static byte[] unescapeFilterValue(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // byte[] orig
        start local 1 // int start
        start local 2 // int end
         0: .line 206
            iconst_0
            istore 3 /* escape */
        start local 3 // boolean escape
         1: iconst_0
            istore 4 /* escStart */
        start local 4 // boolean escStart
         2: .line 214
            iload 2 /* end */
            iload 1 /* start */
            isub
            istore 7 /* len */
        start local 7 // int len
         3: .line 215
            iload 7 /* len */
            newarray 8
            astore 8 /* tbuf */
        start local 8 // byte[] tbuf
         4: .line 216
            iconst_0
            istore 9 /* j */
        start local 9 // int j
         5: .line 217
            iload 1 /* start */
            istore 10 /* i */
        start local 10 // int i
         6: goto 29
         7: .line 218
      StackMap locals: byte[] int int int int top top int byte[] int int
      StackMap stack:
            aload 0 /* orig */
            iload 10 /* i */
            baload
            istore 6 /* ch */
        start local 6 // byte ch
         8: .line 219
            iload 3 /* escape */
            ifeq 23
         9: .line 221
            iload 6 /* ch */
            invokestatic com.sun.jndi.ldap.Filter.hexchar2int:(B)I
            dup
            istore 5 /* ival */
        start local 5 // int ival
        10: ifge 16
        11: .line 228
            iload 4 /* escStart */
            ifeq 15
        12: .line 230
            iconst_0
            istore 3 /* escape */
        13: .line 231
            aload 8 /* tbuf */
            iload 9 /* j */
            iinc 9 /* j */ 1
            iload 6 /* ch */
            bastore
        14: .line 232
            goto 28
        15: .line 234
      StackMap locals: byte[] int int int int int int int byte[] int int
      StackMap stack:
            new javax.naming.directory.InvalidSearchFilterException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid escape sequence: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* orig */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.naming.directory.InvalidSearchFilterException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 237
      StackMap locals:
      StackMap stack:
            iload 4 /* escStart */
            ifeq 20
        17: .line 238
            aload 8 /* tbuf */
            iload 9 /* j */
            iload 5 /* ival */
            iconst_4
            ishl
            i2b
            bastore
        18: .line 239
            iconst_0
            istore 4 /* escStart */
        19: .line 240
            goto 28
        20: .line 241
      StackMap locals:
      StackMap stack:
            aload 8 /* tbuf */
            iload 9 /* j */
            iinc 9 /* j */ 1
            dup2
            baload
            iload 5 /* ival */
            i2b
            ior
            i2b
            bastore
        21: .line 242
            iconst_0
            istore 3 /* escape */
        22: .line 245
            goto 28
        end local 5 // int ival
      StackMap locals: byte[] int int int int top int int byte[] int int
      StackMap stack:
        23: iload 6 /* ch */
            bipush 92
            if_icmpeq 27
        24: .line 246
            aload 8 /* tbuf */
            iload 9 /* j */
            iinc 9 /* j */ 1
            iload 6 /* ch */
            bastore
        25: .line 247
            iconst_0
            istore 3 /* escape */
        26: .line 248
            goto 28
        27: .line 249
      StackMap locals:
      StackMap stack:
            iconst_1
            dup
            istore 3 /* escape */
            istore 4 /* escStart */
        28: .line 217
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
        end local 6 // byte ch
      StackMap locals: byte[] int int int int top top int byte[] int int
      StackMap stack:
        29: iload 10 /* i */
            iload 2 /* end */
            if_icmplt 7
        end local 10 // int i
        30: .line 252
            iload 9 /* j */
            newarray 8
            astore 10 /* answer */
        start local 10 // byte[] answer
        31: .line 253
            aload 8 /* tbuf */
            iconst_0
            aload 10 /* answer */
            iconst_0
            iload 9 /* j */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        32: .line 257
            aload 10 /* answer */
            areturn
        end local 10 // byte[] answer
        end local 9 // int j
        end local 8 // byte[] tbuf
        end local 7 // int len
        end local 4 // boolean escStart
        end local 3 // boolean escape
        end local 2 // int end
        end local 1 // int start
        end local 0 // byte[] orig
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   33     0      orig  [B
            0   33     1     start  I
            0   33     2       end  I
            1   33     3    escape  Z
            2   33     4  escStart  Z
           10   23     5      ival  I
            8   29     6        ch  B
            3   33     7       len  I
            4   33     8      tbuf  [B
            5   33     9         j  I
            6   30    10         i  I
           31   33    10    answer  [B
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      orig   
      start  
      end    

  private static int indexOf(byte[], char, int, int);
    descriptor: ([BCII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // byte[] str
        start local 1 // char ch
        start local 2 // int start
        start local 3 // int end
         0: .line 261
            iload 2 /* start */
            istore 4 /* i */
        start local 4 // int i
         1: goto 5
         2: .line 262
      StackMap locals: int
      StackMap stack:
            aload 0 /* str */
            iload 4 /* i */
            baload
            iload 1 /* ch */
            if_icmpne 4
         3: .line 263
            iload 4 /* i */
            ireturn
         4: .line 261
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 4 /* i */
            iload 3 /* end */
            if_icmplt 2
        end local 4 // int i
         6: .line 265
            iconst_m1
            ireturn
        end local 3 // int end
        end local 2 // int start
        end local 1 // char ch
        end local 0 // byte[] str
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0    str  [B
            0    7     1     ch  C
            0    7     2  start  I
            0    7     3    end  I
            1    6     4      i  I
    MethodParameters:
       Name  Flags
      str    
      ch     
      start  
      end    

  private static int indexOf(byte[], java.lang.String, int, int);
    descriptor: ([BLjava/lang/String;II)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // byte[] str
        start local 1 // java.lang.String target
        start local 2 // int start
        start local 3 // int end
         0: .line 269
            aload 0 /* str */
            aload 1 /* target */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            iload 2 /* start */
            iload 3 /* end */
            invokestatic com.sun.jndi.ldap.Filter.indexOf:([BCII)I
            istore 4 /* where */
        start local 4 // int where
         1: .line 270
            iload 4 /* where */
            iflt 8
         2: .line 271
            iconst_1
            istore 5 /* i */
        start local 5 // int i
         3: goto 7
         4: .line 272
      StackMap locals: int int
      StackMap stack:
            aload 0 /* str */
            iload 4 /* where */
            iload 5 /* i */
            iadd
            baload
            aload 1 /* target */
            iload 5 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 6
         5: .line 273
            iconst_m1
            ireturn
         6: .line 271
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 5 /* i */
            aload 1 /* target */
            invokevirtual java.lang.String.length:()I
            if_icmplt 4
        end local 5 // int i
         8: .line 277
      StackMap locals:
      StackMap stack:
            iload 4 /* where */
            ireturn
        end local 4 // int where
        end local 3 // int end
        end local 2 // int start
        end local 1 // java.lang.String target
        end local 0 // byte[] str
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0     str  [B
            0    9     1  target  Ljava/lang/String;
            0    9     2   start  I
            0    9     3     end  I
            1    9     4   where  I
            3    8     5       i  I
    MethodParameters:
        Name  Flags
      str     
      target  
      start   
      end     

  private static int findUnescaped(byte[], char, int, int);
    descriptor: ([BCII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // byte[] str
        start local 1 // char ch
        start local 2 // int start
        start local 3 // int end
         0: .line 281
            goto 10
         1: .line 282
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            iload 1 /* ch */
            iload 2 /* start */
            iload 3 /* end */
            invokestatic com.sun.jndi.ldap.Filter.indexOf:([BCII)I
            istore 4 /* where */
        start local 4 // int where
         2: .line 294
            iconst_0
            istore 6 /* backSlashCnt */
        start local 6 // int backSlashCnt
         3: .line 295
            iload 4 /* where */
            iconst_1
            isub
            istore 5 /* backSlashPos */
        start local 5 // int backSlashPos
         4: .line 296
            goto 6
         5: .line 297
      StackMap locals: int int int
      StackMap stack:
            iinc 5 /* backSlashPos */ -1
            iinc 6 /* backSlashCnt */ 1
         6: .line 296
      StackMap locals:
      StackMap stack:
            iload 5 /* backSlashPos */
            iload 2 /* start */
            if_icmplt 7
            aload 0 /* str */
            iload 5 /* backSlashPos */
            baload
            bipush 92
            if_icmpeq 5
         7: .line 300
      StackMap locals:
      StackMap stack:
            iload 4 /* where */
            iload 2 /* start */
            if_icmpeq 8
            iload 4 /* where */
            iconst_m1
            if_icmpeq 8
            iload 6 /* backSlashCnt */
            iconst_2
            irem
            ifne 9
         8: .line 301
      StackMap locals:
      StackMap stack:
            iload 4 /* where */
            ireturn
         9: .line 304
      StackMap locals:
      StackMap stack:
            iload 4 /* where */
            iconst_1
            iadd
            istore 2 /* start */
        end local 6 // int backSlashCnt
        end local 5 // int backSlashPos
        end local 4 // int where
        10: .line 281
      StackMap locals:
      StackMap stack:
            iload 2 /* start */
            iload 3 /* end */
            if_icmplt 1
        11: .line 306
            iconst_m1
            ireturn
        end local 3 // int end
        end local 2 // int start
        end local 1 // char ch
        end local 0 // byte[] str
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0           str  [B
            0   12     1            ch  C
            0   12     2         start  I
            0   12     3           end  I
            2   10     4         where  I
            4   10     5  backSlashPos  I
            3   10     6  backSlashCnt  I
    MethodParameters:
       Name  Flags
      str    
      ch     
      start  
      end    

  private static void encodeSimpleFilter(com.sun.jndi.ldap.BerEncoder, byte[], int, int);
    descriptor: (Lcom/sun/jndi/ldap/BerEncoder;[BII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // com.sun.jndi.ldap.BerEncoder ber
        start local 1 // byte[] filter
        start local 2 // int filtStart
        start local 3 // int filtEnd
         0: .line 322
            aload 1 /* filter */
            bipush 61
            iload 2 /* filtStart */
            iload 3 /* filtEnd */
            invokestatic com.sun.jndi.ldap.Filter.indexOf:([BCII)I
            dup
            istore 8 /* eq */
        start local 8 // int eq
         1: iconst_m1
            if_icmpne 3
         2: .line 323
            new javax.naming.directory.InvalidSearchFilterException
            dup
            ldc "Missing 'equals'"
            invokespecial javax.naming.directory.InvalidSearchFilterException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 327
      StackMap locals: com.sun.jndi.ldap.BerEncoder byte[] int int top top top top int
      StackMap stack:
            iload 8 /* eq */
            iconst_1
            iadd
            istore 4 /* valueStart */
        start local 4 // int valueStart
         4: .line 328
            iload 3 /* filtEnd */
            istore 5 /* valueEnd */
        start local 5 // int valueEnd
         5: .line 329
            iload 2 /* filtStart */
            istore 6 /* typeStart */
        start local 6 // int typeStart
         6: .line 333
            aload 1 /* filter */
            iload 8 /* eq */
            iconst_1
            isub
            baload
            lookupswitch { // 4
                   58: 16
                   60: 7
                   62: 10
                  126: 13
              default: 19
          }
         7: .line 335
      StackMap locals: com.sun.jndi.ldap.BerEncoder byte[] int int int int int top int
      StackMap stack:
            sipush 166
            istore 9 /* ftype */
        start local 9 // int ftype
         8: .line 336
            iload 8 /* eq */
            iconst_1
            isub
            istore 7 /* typeEnd */
        start local 7 // int typeEnd
         9: .line 337
            goto 30
        end local 9 // int ftype
        end local 7 // int typeEnd
        10: .line 339
      StackMap locals:
      StackMap stack:
            sipush 165
            istore 9 /* ftype */
        start local 9 // int ftype
        11: .line 340
            iload 8 /* eq */
            iconst_1
            isub
            istore 7 /* typeEnd */
        start local 7 // int typeEnd
        12: .line 341
            goto 30
        end local 9 // int ftype
        end local 7 // int typeEnd
        13: .line 343
      StackMap locals:
      StackMap stack:
            sipush 168
            istore 9 /* ftype */
        start local 9 // int ftype
        14: .line 344
            iload 8 /* eq */
            iconst_1
            isub
            istore 7 /* typeEnd */
        start local 7 // int typeEnd
        15: .line 345
            goto 30
        end local 9 // int ftype
        end local 7 // int typeEnd
        16: .line 347
      StackMap locals:
      StackMap stack:
            sipush 169
            istore 9 /* ftype */
        start local 9 // int ftype
        17: .line 348
            iload 8 /* eq */
            iconst_1
            isub
            istore 7 /* typeEnd */
        start local 7 // int typeEnd
        18: .line 349
            goto 30
        end local 9 // int ftype
        end local 7 // int typeEnd
        19: .line 351
      StackMap locals:
      StackMap stack:
            iload 8 /* eq */
            istore 7 /* typeEnd */
        start local 7 // int typeEnd
        20: .line 352
            aload 1 /* filter */
            bipush 42
            iload 4 /* valueStart */
            iload 5 /* valueEnd */
            invokestatic com.sun.jndi.ldap.Filter.findUnescaped:([BCII)I
            iconst_m1
            if_icmpne 23
        21: .line 353
            sipush 163
            istore 9 /* ftype */
        start local 9 // int ftype
        22: .line 354
            goto 30
        end local 9 // int ftype
      StackMap locals: com.sun.jndi.ldap.BerEncoder byte[] int int int int int int int
      StackMap stack:
        23: aload 1 /* filter */
            iload 4 /* valueStart */
            baload
            bipush 42
            if_icmpne 26
            iload 4 /* valueStart */
            iload 5 /* valueEnd */
            iconst_1
            isub
            if_icmpne 26
        24: .line 355
            sipush 135
            istore 9 /* ftype */
        start local 9 // int ftype
        25: .line 356
            goto 30
        end local 9 // int ftype
        26: .line 357
      StackMap locals:
      StackMap stack:
            aload 0 /* ber */
            aload 1 /* filter */
        27: .line 358
            iload 6 /* typeStart */
            iload 7 /* typeEnd */
            iload 4 /* valueStart */
            iload 5 /* valueEnd */
        28: .line 357
            invokestatic com.sun.jndi.ldap.Filter.encodeSubstringFilter:(Lcom/sun/jndi/ldap/BerEncoder;[BIIII)V
        29: .line 359
            return
        start local 9 // int ftype
        30: .line 368
      StackMap locals: int
      StackMap stack:
            iload 9 /* ftype */
            sipush 135
            if_icmpne 33
        31: .line 369
            aload 0 /* ber */
            aload 1 /* filter */
            iload 9 /* ftype */
            iload 6 /* typeStart */
            iload 7 /* typeEnd */
            iload 6 /* typeStart */
            isub
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BIII)V
        32: .line 370
            goto 47
      StackMap locals:
      StackMap stack:
        33: iload 9 /* ftype */
            sipush 169
            if_icmpne 38
        34: .line 371
            aload 0 /* ber */
            aload 1 /* filter */
        35: .line 372
            iload 6 /* typeStart */
            iload 7 /* typeEnd */
            iload 4 /* valueStart */
            iload 5 /* valueEnd */
        36: .line 371
            invokestatic com.sun.jndi.ldap.Filter.encodeExtensibleMatch:(Lcom/sun/jndi/ldap/BerEncoder;[BIIII)V
        37: .line 373
            goto 47
        38: .line 374
      StackMap locals:
      StackMap stack:
            aload 0 /* ber */
            iload 9 /* ftype */
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        39: .line 375
            aload 0 /* ber */
            aload 1 /* filter */
            iconst_4
        40: .line 376
            iload 6 /* typeStart */
            iload 7 /* typeEnd */
            iload 6 /* typeStart */
            isub
        41: .line 375
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BIII)V
        42: .line 377
            aload 0 /* ber */
        43: .line 378
            aload 1 /* filter */
            iload 4 /* valueStart */
            iload 5 /* valueEnd */
            invokestatic com.sun.jndi.ldap.Filter.unescapeFilterValue:([BII)[B
        44: .line 379
            iconst_4
        45: .line 377
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        46: .line 380
            aload 0 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        47: .line 386
      StackMap locals:
      StackMap stack:
            return
        end local 9 // int ftype
        end local 8 // int eq
        end local 7 // int typeEnd
        end local 6 // int typeStart
        end local 5 // int valueEnd
        end local 4 // int valueStart
        end local 3 // int filtEnd
        end local 2 // int filtStart
        end local 1 // byte[] filter
        end local 0 // com.sun.jndi.ldap.BerEncoder ber
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   48     0         ber  Lcom/sun/jndi/ldap/BerEncoder;
            0   48     1      filter  [B
            0   48     2   filtStart  I
            0   48     3     filtEnd  I
            4   48     4  valueStart  I
            5   48     5    valueEnd  I
            6   48     6   typeStart  I
            9   10     7     typeEnd  I
           12   13     7     typeEnd  I
           15   16     7     typeEnd  I
           18   19     7     typeEnd  I
           20   48     7     typeEnd  I
            1   48     8          eq  I
            8   10     9       ftype  I
           11   13     9       ftype  I
           14   16     9       ftype  I
           17   19     9       ftype  I
           22   23     9       ftype  I
           25   26     9       ftype  I
           30   48     9       ftype  I
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
           Name  Flags
      ber        
      filter     
      filtStart  
      filtEnd    

  private static void encodeSubstringFilter(com.sun.jndi.ldap.BerEncoder, byte[], int, int, int, int);
    descriptor: (Lcom/sun/jndi/ldap/BerEncoder;[BIIII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=6
        start local 0 // com.sun.jndi.ldap.BerEncoder ber
        start local 1 // byte[] filter
        start local 2 // int typeStart
        start local 3 // int typeEnd
        start local 4 // int valueStart
        start local 5 // int valueEnd
         0: .line 398
            aload 0 /* ber */
            sipush 164
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         1: .line 399
            aload 0 /* ber */
            aload 1 /* filter */
            iconst_4
         2: .line 400
            iload 2 /* typeStart */
            iload 3 /* typeEnd */
            iload 2 /* typeStart */
            isub
         3: .line 399
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BIII)V
         4: .line 401
            aload 0 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         5: .line 403
            iload 4 /* valueStart */
            istore 7 /* previndex */
        start local 7 // int previndex
         6: .line 404
            goto 20
        start local 6 // int index
         7: .line 405
      StackMap locals: int int
      StackMap stack:
            iload 7 /* previndex */
            iload 4 /* valueStart */
            if_icmpne 14
         8: .line 406
            iload 7 /* previndex */
            iload 6 /* index */
            if_icmpge 19
         9: .line 410
            aload 0 /* ber */
        10: .line 411
            aload 1 /* filter */
            iload 7 /* previndex */
            iload 6 /* index */
            invokestatic com.sun.jndi.ldap.Filter.unescapeFilterValue:([BII)[B
        11: .line 412
            sipush 128
        12: .line 410
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        13: .line 414
            goto 19
        14: .line 415
      StackMap locals:
      StackMap stack:
            iload 7 /* previndex */
            iload 6 /* index */
            if_icmpge 19
        15: .line 418
            aload 0 /* ber */
        16: .line 419
            aload 1 /* filter */
            iload 7 /* previndex */
            iload 6 /* index */
            invokestatic com.sun.jndi.ldap.Filter.unescapeFilterValue:([BII)[B
        17: .line 420
            sipush 129
        18: .line 418
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        19: .line 423
      StackMap locals:
      StackMap stack:
            iload 6 /* index */
            iconst_1
            iadd
            istore 7 /* previndex */
        end local 6 // int index
        20: .line 404
      StackMap locals: com.sun.jndi.ldap.BerEncoder byte[] int int int int top int
      StackMap stack:
            aload 1 /* filter */
            bipush 42
            iload 7 /* previndex */
            iload 5 /* valueEnd */
            invokestatic com.sun.jndi.ldap.Filter.findUnescaped:([BCII)I
            dup
            istore 6 /* index */
        start local 6 // int index
        21: iconst_m1
            if_icmpne 7
        22: .line 425
            iload 7 /* previndex */
            iload 5 /* valueEnd */
            if_icmpge 27
        23: .line 428
            aload 0 /* ber */
        24: .line 429
            aload 1 /* filter */
            iload 7 /* previndex */
            iload 5 /* valueEnd */
            invokestatic com.sun.jndi.ldap.Filter.unescapeFilterValue:([BII)[B
        25: .line 430
            sipush 130
        26: .line 428
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        27: .line 432
      StackMap locals: com.sun.jndi.ldap.BerEncoder byte[] int int int int int int
      StackMap stack:
            aload 0 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        28: .line 433
            aload 0 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        29: .line 438
            return
        end local 7 // int previndex
        end local 6 // int index
        end local 5 // int valueEnd
        end local 4 // int valueStart
        end local 3 // int typeEnd
        end local 2 // int typeStart
        end local 1 // byte[] filter
        end local 0 // com.sun.jndi.ldap.BerEncoder ber
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   30     0         ber  Lcom/sun/jndi/ldap/BerEncoder;
            0   30     1      filter  [B
            0   30     2   typeStart  I
            0   30     3     typeEnd  I
            0   30     4  valueStart  I
            0   30     5    valueEnd  I
            7   20     6       index  I
           21   30     6       index  I
            6   30     7   previndex  I
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
            Name  Flags
      ber         
      filter      
      typeStart   
      typeEnd     
      valueStart  
      valueEnd    

  private static void encodeComplexFilter(com.sun.jndi.ldap.BerEncoder, byte[], int, int[], int);
    descriptor: (Lcom/sun/jndi/ldap/BerEncoder;[BI[II)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.sun.jndi.ldap.BerEncoder ber
        start local 1 // byte[] filter
        start local 2 // int filterType
        start local 3 // int[] filtOffset
        start local 4 // int filtEnd
         0: .line 455
            aload 3 /* filtOffset */
            iconst_0
            dup2
            iaload
            iconst_1
            iadd
            iastore
         1: .line 457
            aload 0 /* ber */
            iload 2 /* filterType */
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         2: .line 459
            aload 1 /* filter */
            aload 3 /* filtOffset */
            iload 4 /* filtEnd */
            invokestatic com.sun.jndi.ldap.Filter.findRightParen:([B[II)[I
            astore 5 /* parens */
        start local 5 // int[] parens
         3: .line 460
            aload 0 /* ber */
            aload 1 /* filter */
            aload 5 /* parens */
            iconst_0
            iaload
            aload 5 /* parens */
            iconst_1
            iaload
            invokestatic com.sun.jndi.ldap.Filter.encodeFilterList:(Lcom/sun/jndi/ldap/BerEncoder;[BII)V
         4: .line 462
            aload 0 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
         5: .line 468
            return
        end local 5 // int[] parens
        end local 4 // int filtEnd
        end local 3 // int[] filtOffset
        end local 2 // int filterType
        end local 1 // byte[] filter
        end local 0 // com.sun.jndi.ldap.BerEncoder ber
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0         ber  Lcom/sun/jndi/ldap/BerEncoder;
            0    6     1      filter  [B
            0    6     2  filterType  I
            0    6     3  filtOffset  [I
            0    6     4     filtEnd  I
            3    6     5      parens  [I
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
            Name  Flags
      ber         
      filter      
      filterType  
      filtOffset  
      filtEnd     

  private static int[] findRightParen(byte[], int[], int);
    descriptor: ([B[II)[I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // byte[] filter
        start local 1 // int[] filtOffset
        start local 2 // int end
         0: .line 478
            iconst_1
            istore 3 /* balance */
        start local 3 // int balance
         1: .line 479
            iconst_0
            istore 4 /* escape */
        start local 4 // boolean escape
         2: .line 480
            aload 1 /* filtOffset */
            iconst_0
            iaload
            istore 5 /* nextOffset */
        start local 5 // int nextOffset
         3: .line 482
            goto 14
         4: .line 483
      StackMap locals: int int int
      StackMap stack:
            iload 4 /* escape */
            ifne 9
         5: .line 484
            aload 0 /* filter */
            iload 5 /* nextOffset */
            baload
            bipush 40
            if_icmpne 7
         6: .line 485
            iinc 3 /* balance */ 1
            goto 9
         7: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* filter */
            iload 5 /* nextOffset */
            baload
            bipush 41
            if_icmpne 9
         8: .line 487
            iinc 3 /* balance */ -1
         9: .line 489
      StackMap locals:
      StackMap stack:
            aload 0 /* filter */
            iload 5 /* nextOffset */
            baload
            bipush 92
            if_icmpne 11
            iload 4 /* escape */
            ifne 11
        10: .line 490
            iconst_1
            istore 4 /* escape */
            goto 12
        11: .line 492
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* escape */
        12: .line 493
      StackMap locals:
      StackMap stack:
            iload 3 /* balance */
            ifle 14
        13: .line 494
            iinc 5 /* nextOffset */ 1
        14: .line 482
      StackMap locals:
      StackMap stack:
            iload 5 /* nextOffset */
            iload 2 /* end */
            if_icmpge 15
            iload 3 /* balance */
            ifgt 4
        15: .line 496
      StackMap locals:
      StackMap stack:
            iload 3 /* balance */
            ifeq 17
        16: .line 497
            new javax.naming.directory.InvalidSearchFilterException
            dup
            ldc "Unbalanced parenthesis"
            invokespecial javax.naming.directory.InvalidSearchFilterException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 502
      StackMap locals:
      StackMap stack:
            iconst_2
            newarray 10
            dup
            iconst_0
            aload 1 /* filtOffset */
            iconst_0
            iaload
            iastore
            dup
            iconst_1
            iload 5 /* nextOffset */
            iastore
            astore 6 /* tmp */
        start local 6 // int[] tmp
        18: .line 504
            aload 1 /* filtOffset */
            iconst_0
            iload 5 /* nextOffset */
            iconst_1
            iadd
            iastore
        19: .line 506
            aload 6 /* tmp */
            areturn
        end local 6 // int[] tmp
        end local 5 // int nextOffset
        end local 4 // boolean escape
        end local 3 // int balance
        end local 2 // int end
        end local 1 // int[] filtOffset
        end local 0 // byte[] filter
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0      filter  [B
            0   20     1  filtOffset  [I
            0   20     2         end  I
            1   20     3     balance  I
            2   20     4      escape  Z
            3   20     5  nextOffset  I
           18   20     6         tmp  [I
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
            Name  Flags
      filter      
      filtOffset  
      end         

  private static void encodeFilterList(com.sun.jndi.ldap.BerEncoder, byte[], int, int);
    descriptor: (Lcom/sun/jndi/ldap/BerEncoder;[BII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // com.sun.jndi.ldap.BerEncoder ber
        start local 1 // byte[] filter
        start local 2 // int start
        start local 3 // int end
         0: .line 521
            iconst_1
            newarray 10
            astore 4 /* filtOffset */
        start local 4 // int[] filtOffset
         1: .line 523
            aload 4 /* filtOffset */
            iconst_0
            iload 2 /* start */
            iastore
            goto 14
         2: .line 525
      StackMap locals: int[]
      StackMap stack:
            aload 1 /* filter */
            aload 4 /* filtOffset */
            iconst_0
            iaload
            baload
            i2c
            invokestatic java.lang.Character.isSpaceChar:(C)Z
            ifeq 4
         3: .line 526
            goto 13
         4: .line 528
      StackMap locals:
      StackMap stack:
            aload 1 /* filter */
            aload 4 /* filtOffset */
            iconst_0
            iaload
            baload
            bipush 40
            if_icmpne 6
         5: .line 529
            goto 13
         6: .line 532
      StackMap locals:
      StackMap stack:
            aload 1 /* filter */
            aload 4 /* filtOffset */
            iload 3 /* end */
            invokestatic com.sun.jndi.ldap.Filter.findRightParen:([B[II)[I
            astore 5 /* parens */
        start local 5 // int[] parens
         7: .line 535
            aload 5 /* parens */
            iconst_1
            iaload
            aload 5 /* parens */
            iconst_0
            iaload
            isub
            istore 6 /* len */
        start local 6 // int len
         8: .line 536
            iload 6 /* len */
            iconst_2
            iadd
            newarray 8
            astore 7 /* newfilter */
        start local 7 // byte[] newfilter
         9: .line 537
            aload 1 /* filter */
            aload 5 /* parens */
            iconst_0
            iaload
            aload 7 /* newfilter */
            iconst_1
            iload 6 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 538
            aload 7 /* newfilter */
            iconst_0
            bipush 40
            bastore
        11: .line 539
            aload 7 /* newfilter */
            iload 6 /* len */
            iconst_1
            iadd
            bipush 41
            bastore
        12: .line 540
            aload 0 /* ber */
            aload 7 /* newfilter */
            iconst_0
            aload 7 /* newfilter */
            arraylength
            invokestatic com.sun.jndi.ldap.Filter.encodeFilter:(Lcom/sun/jndi/ldap/BerEncoder;[BII)V
        end local 7 // byte[] newfilter
        end local 6 // int len
        end local 5 // int[] parens
        13: .line 524
      StackMap locals:
      StackMap stack:
            aload 4 /* filtOffset */
            iconst_0
            dup2
            iaload
            iconst_1
            iadd
            iastore
        14: .line 523
      StackMap locals:
      StackMap stack:
            aload 4 /* filtOffset */
            iconst_0
            iaload
            iload 3 /* end */
            if_icmplt 2
        15: .line 547
            return
        end local 4 // int[] filtOffset
        end local 3 // int end
        end local 2 // int start
        end local 1 // byte[] filter
        end local 0 // com.sun.jndi.ldap.BerEncoder ber
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0         ber  Lcom/sun/jndi/ldap/BerEncoder;
            0   16     1      filter  [B
            0   16     2       start  I
            0   16     3         end  I
            1   16     4  filtOffset  [I
            7   13     5      parens  [I
            8   13     6         len  I
            9   13     7   newfilter  [B
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
        Name  Flags
      ber     
      filter  
      start   
      end     

  private static void encodeExtensibleMatch(com.sun.jndi.ldap.BerEncoder, byte[], int, int, int, int);
    descriptor: (Lcom/sun/jndi/ldap/BerEncoder;[BIIII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=10, args_size=6
        start local 0 // com.sun.jndi.ldap.BerEncoder ber
        start local 1 // byte[] filter
        start local 2 // int matchStart
        start local 3 // int matchEnd
        start local 4 // int valueStart
        start local 5 // int valueEnd
         0: .line 556
            iconst_0
            istore 6 /* matchDN */
        start local 6 // boolean matchDN
         1: .line 561
            aload 0 /* ber */
            sipush 169
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         2: .line 564
            aload 1 /* filter */
            bipush 58
            iload 2 /* matchStart */
            iload 3 /* matchEnd */
            invokestatic com.sun.jndi.ldap.Filter.indexOf:([BCII)I
            dup
            istore 7 /* colon */
        start local 7 // int colon
         3: iflt 28
         4: .line 567
            aload 1 /* filter */
            ldc ":dn"
            iload 7 /* colon */
            iload 3 /* matchEnd */
            invokestatic com.sun.jndi.ldap.Filter.indexOf:([BLjava/lang/String;II)I
            dup
            istore 9 /* i */
        start local 9 // int i
         5: iflt 7
         6: .line 568
            iconst_1
            istore 6 /* matchDN */
         7: .line 572
      StackMap locals: com.sun.jndi.ldap.BerEncoder byte[] int int int int int int top int
      StackMap stack:
            aload 1 /* filter */
            bipush 58
            iload 7 /* colon */
            iconst_1
            iadd
            iload 3 /* matchEnd */
            invokestatic com.sun.jndi.ldap.Filter.indexOf:([BCII)I
            dup
            istore 8 /* colon2 */
        start local 8 // int colon2
         8: ifge 10
         9: .line 573
            iload 9 /* i */
            iconst_m1
            if_icmpne 23
        10: .line 575
      StackMap locals: com.sun.jndi.ldap.BerEncoder byte[] int int int int int int int int
      StackMap stack:
            iload 9 /* i */
            iload 7 /* colon */
            if_icmpne 15
        11: .line 576
            aload 0 /* ber */
            aload 1 /* filter */
            sipush 129
        12: .line 577
            iload 8 /* colon2 */
            iconst_1
            iadd
            iload 3 /* matchEnd */
            iload 8 /* colon2 */
            iconst_1
            iadd
            isub
        13: .line 576
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BIII)V
        14: .line 579
            goto 23
      StackMap locals:
      StackMap stack:
        15: iload 9 /* i */
            iload 8 /* colon2 */
            if_icmpne 20
            iload 9 /* i */
            iflt 20
        16: .line 580
            aload 0 /* ber */
            aload 1 /* filter */
            sipush 129
        17: .line 581
            iload 7 /* colon */
            iconst_1
            iadd
            iload 8 /* colon2 */
            iload 7 /* colon */
            iconst_1
            iadd
            isub
        18: .line 580
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BIII)V
        19: .line 583
            goto 23
        20: .line 584
      StackMap locals:
      StackMap stack:
            aload 0 /* ber */
            aload 1 /* filter */
            sipush 129
        21: .line 585
            iload 7 /* colon */
            iconst_1
            iadd
            iload 3 /* matchEnd */
            iload 7 /* colon */
            iconst_1
            iadd
            isub
        22: .line 584
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BIII)V
        23: .line 590
      StackMap locals:
      StackMap stack:
            iload 7 /* colon */
            iload 2 /* matchStart */
            if_icmple 31
        24: .line 591
            aload 0 /* ber */
            aload 1 /* filter */
        25: .line 592
            sipush 130
            iload 2 /* matchStart */
            iload 7 /* colon */
            iload 2 /* matchStart */
            isub
        26: .line 591
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BIII)V
        27: .line 594
            goto 31
        end local 9 // int i
        end local 8 // int colon2
        28: .line 595
      StackMap locals:
      StackMap stack:
            aload 0 /* ber */
            aload 1 /* filter */
            sipush 130
            iload 2 /* matchStart */
        29: .line 596
            iload 3 /* matchEnd */
            iload 2 /* matchStart */
            isub
        30: .line 595
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BIII)V
        31: .line 599
      StackMap locals:
      StackMap stack:
            aload 0 /* ber */
        32: .line 600
            aload 1 /* filter */
            iload 4 /* valueStart */
            iload 5 /* valueEnd */
            invokestatic com.sun.jndi.ldap.Filter.unescapeFilterValue:([BII)[B
        33: .line 601
            sipush 131
        34: .line 599
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        35: .line 608
            aload 0 /* ber */
            iload 6 /* matchDN */
            sipush 132
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeBoolean:(ZI)V
        36: .line 610
            aload 0 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        37: .line 611
            return
        end local 7 // int colon
        end local 6 // boolean matchDN
        end local 5 // int valueEnd
        end local 4 // int valueStart
        end local 3 // int matchEnd
        end local 2 // int matchStart
        end local 1 // byte[] filter
        end local 0 // com.sun.jndi.ldap.BerEncoder ber
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   38     0         ber  Lcom/sun/jndi/ldap/BerEncoder;
            0   38     1      filter  [B
            0   38     2  matchStart  I
            0   38     3    matchEnd  I
            0   38     4  valueStart  I
            0   38     5    valueEnd  I
            1   38     6     matchDN  Z
            3   38     7       colon  I
            8   28     8      colon2  I
            5   28     9           i  I
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
            Name  Flags
      ber         
      filter      
      matchStart  
      matchEnd    
      valueStart  
      valueEnd    

  private static void dprint(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String msg
         0: .line 624
            aload 0 /* msg */
            iconst_0
            newarray 8
            iconst_0
            iconst_0
            invokestatic com.sun.jndi.ldap.Filter.dprint:(Ljava/lang/String;[BII)V
         1: .line 625
            return
        end local 0 // java.lang.String msg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      msg   

  private static void dprint(java.lang.String, byte[]);
    descriptor: (Ljava/lang/String;[B)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.String msg
        start local 1 // byte[] str
         0: .line 628
            aload 0 /* msg */
            aload 1 /* str */
            iconst_0
            aload 1 /* str */
            arraylength
            invokestatic com.sun.jndi.ldap.Filter.dprint:(Ljava/lang/String;[BII)V
         1: .line 629
            return
        end local 1 // byte[] str
        end local 0 // java.lang.String msg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   msg  Ljava/lang/String;
            0    2     1   str  [B
    MethodParameters:
      Name  Flags
      msg   
      str   

  private static void dprint(java.lang.String, byte[], int, int);
    descriptor: (Ljava/lang/String;[BII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // java.lang.String msg
        start local 1 // byte[] str
        start local 2 // int start
        start local 3 // int end
         0: .line 632
            ldc "  "
            astore 4 /* dstr */
        start local 4 // java.lang.String dstr
         1: .line 633
            getstatic com.sun.jndi.ldap.Filter.dbgIndent:I
            istore 5 /* i */
        start local 5 // int i
         2: .line 634
            goto 4
         3: .line 635
      StackMap locals: java.lang.String int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 4 /* dstr */
            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 4 /* dstr */
         4: .line 634
      StackMap locals:
      StackMap stack:
            iload 5 /* i */
            iinc 5 /* i */ -1
            ifgt 3
         5: .line 637
            new java.lang.StringBuilder
            dup
            aload 4 /* dstr */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* dstr */
         6: .line 639
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 4 /* dstr */
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         7: .line 640
            iload 2 /* start */
            istore 6 /* j */
        start local 6 // int j
         8: goto 11
         9: .line 641
      StackMap locals: int
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 1 /* str */
            iload 6 /* j */
            baload
            i2c
            invokevirtual java.io.PrintStream.print:(C)V
        10: .line 640
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
        11: iload 6 /* j */
            iload 3 /* end */
            if_icmplt 9
        end local 6 // int j
        12: .line 643
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        13: .line 644
            return
        end local 5 // int i
        end local 4 // java.lang.String dstr
        end local 3 // int end
        end local 2 // int start
        end local 1 // byte[] str
        end local 0 // java.lang.String msg
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0    msg  Ljava/lang/String;
            0   14     1    str  [B
            0   14     2  start  I
            0   14     3    end  I
            1   14     4   dstr  Ljava/lang/String;
            2   14     5      i  I
            8   12     6      j  I
    MethodParameters:
       Name  Flags
      msg    
      str    
      start  
      end    
}
SourceFile: "Filter.java"