public class org.codehaus.plexus.interpolation.InterpolatorFilterReader extends java.io.FilterReader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.codehaus.plexus.interpolation.InterpolatorFilterReader
  super_class: java.io.FilterReader
{
  private org.codehaus.plexus.interpolation.Interpolator interpolator;
    descriptor: Lorg/codehaus/plexus/interpolation/Interpolator;
    flags: (0x0002) ACC_PRIVATE

  private org.codehaus.plexus.interpolation.RecursionInterceptor recursionInterceptor;
    descriptor: Lorg/codehaus/plexus/interpolation/RecursionInterceptor;
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

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

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

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

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

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

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

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

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

  public void <init>(java.io.Reader, org.codehaus.plexus.interpolation.Interpolator);
    descriptor: (Ljava/io/Reader;Lorg/codehaus/plexus/interpolation/Interpolator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
        start local 1 // java.io.Reader in
        start local 2 // org.codehaus.plexus.interpolation.Interpolator interpolator
         0: .line 117
            aload 0 /* this */
            aload 1 /* in */
            aload 2 /* interpolator */
            ldc "${"
            ldc "}"
            invokespecial org.codehaus.plexus.interpolation.InterpolatorFilterReader.<init>:(Ljava/io/Reader;Lorg/codehaus/plexus/interpolation/Interpolator;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 118
            return
        end local 2 // org.codehaus.plexus.interpolation.Interpolator interpolator
        end local 1 // java.io.Reader in
        end local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/codehaus/plexus/interpolation/InterpolatorFilterReader;
            0    2     1            in  Ljava/io/Reader;
            0    2     2  interpolator  Lorg/codehaus/plexus/interpolation/Interpolator;
    MethodParameters:
              Name  Flags
      in            
      interpolator  

  public void <init>(java.io.Reader, org.codehaus.plexus.interpolation.Interpolator, java.lang.String, java.lang.String);
    descriptor: (Ljava/io/Reader;Lorg/codehaus/plexus/interpolation/Interpolator;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
        start local 1 // java.io.Reader in
        start local 2 // org.codehaus.plexus.interpolation.Interpolator interpolator
        start local 3 // java.lang.String beginToken
        start local 4 // java.lang.String endToken
         0: .line 128
            aload 0 /* this */
            aload 1 /* in */
            aload 2 /* interpolator */
            aload 3 /* beginToken */
            aload 4 /* endToken */
            new org.codehaus.plexus.interpolation.SimpleRecursionInterceptor
            dup
            invokespecial org.codehaus.plexus.interpolation.SimpleRecursionInterceptor.<init>:()V
            invokespecial org.codehaus.plexus.interpolation.InterpolatorFilterReader.<init>:(Ljava/io/Reader;Lorg/codehaus/plexus/interpolation/Interpolator;Ljava/lang/String;Ljava/lang/String;Lorg/codehaus/plexus/interpolation/RecursionInterceptor;)V
         1: .line 129
            return
        end local 4 // java.lang.String endToken
        end local 3 // java.lang.String beginToken
        end local 2 // org.codehaus.plexus.interpolation.Interpolator interpolator
        end local 1 // java.io.Reader in
        end local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/codehaus/plexus/interpolation/InterpolatorFilterReader;
            0    2     1            in  Ljava/io/Reader;
            0    2     2  interpolator  Lorg/codehaus/plexus/interpolation/Interpolator;
            0    2     3    beginToken  Ljava/lang/String;
            0    2     4      endToken  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      in            
      interpolator  
      beginToken    
      endToken      

  public void <init>(java.io.Reader, org.codehaus.plexus.interpolation.Interpolator, org.codehaus.plexus.interpolation.RecursionInterceptor);
    descriptor: (Ljava/io/Reader;Lorg/codehaus/plexus/interpolation/Interpolator;Lorg/codehaus/plexus/interpolation/RecursionInterceptor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
        start local 1 // java.io.Reader in
        start local 2 // org.codehaus.plexus.interpolation.Interpolator interpolator
        start local 3 // org.codehaus.plexus.interpolation.RecursionInterceptor ri
         0: .line 140
            aload 0 /* this */
            aload 1 /* in */
            aload 2 /* interpolator */
            ldc "${"
            ldc "}"
            aload 3 /* ri */
            invokespecial org.codehaus.plexus.interpolation.InterpolatorFilterReader.<init>:(Ljava/io/Reader;Lorg/codehaus/plexus/interpolation/Interpolator;Ljava/lang/String;Ljava/lang/String;Lorg/codehaus/plexus/interpolation/RecursionInterceptor;)V
         1: .line 141
            return
        end local 3 // org.codehaus.plexus.interpolation.RecursionInterceptor ri
        end local 2 // org.codehaus.plexus.interpolation.Interpolator interpolator
        end local 1 // java.io.Reader in
        end local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/codehaus/plexus/interpolation/InterpolatorFilterReader;
            0    2     1            in  Ljava/io/Reader;
            0    2     2  interpolator  Lorg/codehaus/plexus/interpolation/Interpolator;
            0    2     3            ri  Lorg/codehaus/plexus/interpolation/RecursionInterceptor;
    MethodParameters:
              Name  Flags
      in            
      interpolator  
      ri            

  public void <init>(java.io.Reader, org.codehaus.plexus.interpolation.Interpolator, java.lang.String, java.lang.String, org.codehaus.plexus.interpolation.RecursionInterceptor);
    descriptor: (Ljava/io/Reader;Lorg/codehaus/plexus/interpolation/Interpolator;Ljava/lang/String;Ljava/lang/String;Lorg/codehaus/plexus/interpolation/RecursionInterceptor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
        start local 1 // java.io.Reader in
        start local 2 // org.codehaus.plexus.interpolation.Interpolator interpolator
        start local 3 // java.lang.String beginToken
        start local 4 // java.lang.String endToken
        start local 5 // org.codehaus.plexus.interpolation.RecursionInterceptor ri
         0: .line 153
            aload 0 /* this */
            aload 1 /* in */
            invokespecial java.io.FilterReader.<init>:(Ljava/io/Reader;)V
         1: .line 80
            aload 0 /* this */
            aconst_null
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceData:Ljava/lang/String;
         2: .line 83
            aload 0 /* this */
            iconst_m1
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceIndex:I
         3: .line 86
            aload 0 /* this */
            iconst_m1
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.previousIndex:I
         4: .line 101
            aload 0 /* this */
            iconst_1
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.interpolateWithPrefixPattern:Z
         5: .line 105
            aload 0 /* this */
            iconst_0
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.useEscape:Z
         6: .line 108
            aload 0 /* this */
            iconst_0
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.preserveEscapeString:Z
         7: .line 155
            aload 0 /* this */
            aload 2 /* interpolator */
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.interpolator:Lorg/codehaus/plexus/interpolation/Interpolator;
         8: .line 157
            aload 0 /* this */
            aload 3 /* beginToken */
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.beginToken:Ljava/lang/String;
         9: .line 159
            aload 0 /* this */
            aload 4 /* endToken */
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.endToken:Ljava/lang/String;
        10: .line 161
            aload 0 /* this */
            aload 5 /* ri */
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.recursionInterceptor:Lorg/codehaus/plexus/interpolation/RecursionInterceptor;
        11: .line 163
            aload 0 /* this */
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.beginToken:Ljava/lang/String;
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.orginalBeginToken:Ljava/lang/String;
        12: .line 164
            return
        end local 5 // org.codehaus.plexus.interpolation.RecursionInterceptor ri
        end local 4 // java.lang.String endToken
        end local 3 // java.lang.String beginToken
        end local 2 // org.codehaus.plexus.interpolation.Interpolator interpolator
        end local 1 // java.io.Reader in
        end local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lorg/codehaus/plexus/interpolation/InterpolatorFilterReader;
            0   13     1            in  Ljava/io/Reader;
            0   13     2  interpolator  Lorg/codehaus/plexus/interpolation/Interpolator;
            0   13     3    beginToken  Ljava/lang/String;
            0   13     4      endToken  Ljava/lang/String;
            0   13     5            ri  Lorg/codehaus/plexus/interpolation/RecursionInterceptor;
    MethodParameters:
              Name  Flags
      in            
      interpolator  
      beginToken    
      endToken      
      ri            

  public long skip(long);
    descriptor: (J)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
        start local 1 // long n
         0: .line 178
            lload 1 /* n */
            lconst_0
            lcmp
            ifge 2
         1: .line 180
            new java.lang.IllegalArgumentException
            dup
            ldc "skip value is negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 183
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 3 /* i */
        start local 3 // long i
         3: goto 7
         4: .line 185
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.codehaus.plexus.interpolation.InterpolatorFilterReader.read:()I
            iconst_m1
            if_icmpne 6
         5: .line 187
            lload 3 /* i */
            lreturn
         6: .line 183
      StackMap locals:
      StackMap stack:
            lload 3 /* i */
            lconst_1
            ladd
            lstore 3 /* i */
      StackMap locals:
      StackMap stack:
         7: lload 3 /* i */
            lload 1 /* n */
            lcmp
            iflt 4
        end local 3 // long i
         8: .line 190
            lload 1 /* n */
            lreturn
        end local 1 // long n
        end local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/codehaus/plexus/interpolation/InterpolatorFilterReader;
            0    9     1     n  J
            3    8     3     i  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      n     

  public int read(char[], int, int);
    descriptor: ([CII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
        start local 1 // char[] cbuf
        start local 2 // int off
        start local 3 // int len
         0: .line 206
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         1: goto 9
         2: .line 208
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.codehaus.plexus.interpolation.InterpolatorFilterReader.read:()I
            istore 5 /* ch */
        start local 5 // int ch
         3: .line 209
            iload 5 /* ch */
            iconst_m1
            if_icmpne 7
         4: .line 211
            iload 4 /* i */
            ifne 6
         5: .line 213
            iconst_m1
            ireturn
         6: .line 217
      StackMap locals: int
      StackMap stack:
            iload 4 /* i */
            ireturn
         7: .line 220
      StackMap locals:
      StackMap stack:
            aload 1 /* cbuf */
            iload 2 /* off */
            iload 4 /* i */
            iadd
            iload 5 /* ch */
            i2c
            castore
        end local 5 // int ch
         8: .line 206
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            iload 3 /* len */
            if_icmplt 2
        end local 4 // int i
        10: .line 222
            iload 3 /* len */
            ireturn
        end local 3 // int len
        end local 2 // int off
        end local 1 // char[] cbuf
        end local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/codehaus/plexus/interpolation/InterpolatorFilterReader;
            0   11     1  cbuf  [C
            0   11     2   off  I
            0   11     3   len  I
            1   10     4     i  I
            3    8     5    ch  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      cbuf  
      off   
      len   

  public int read();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
         0: .line 234
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceIndex:I
            iconst_m1
            if_icmpeq 5
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceIndex:I
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceData:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 5
         1: .line 236
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceData:Ljava/lang/String;
            aload 0 /* this */
            dup
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceIndex:I
            invokevirtual java.lang.String.charAt:(I)C
            istore 1 /* ch */
        start local 1 // int ch
         2: .line 237
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceIndex:I
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceData:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmplt 4
         3: .line 239
            aload 0 /* this */
            iconst_m1
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceIndex:I
         4: .line 241
      StackMap locals: int
      StackMap stack:
            iload 1 /* ch */
            ireturn
        end local 1 // int ch
         5: .line 244
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 1 /* ch */
        start local 1 // int ch
         6: .line 245
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.previousIndex:I
            iconst_m1
            if_icmpeq 9
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.previousIndex:I
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.endToken:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 9
         7: .line 247
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.endToken:Ljava/lang/String;
            aload 0 /* this */
            dup
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.previousIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.previousIndex:I
            invokevirtual java.lang.String.charAt:(I)C
            istore 1 /* ch */
         8: .line 248
            goto 10
         9: .line 251
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.in:Ljava/io/Reader;
            invokevirtual java.io.Reader.read:()I
            istore 1 /* ch */
        10: .line 254
      StackMap locals:
      StackMap stack:
            iload 1 /* ch */
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.beginToken:Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 11
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.useEscape:Z
            ifeq 76
            iload 1 /* ch */
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.orginalBeginToken:Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpne 76
        11: .line 256
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* key */
        start local 2 // java.lang.StringBuilder key
        12: .line 258
            aload 2 /* key */
            iload 1 /* ch */
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        13: .line 260
            iconst_1
            istore 3 /* beginTokenMatchPos */
        start local 3 // int beginTokenMatchPos
        14: .line 264
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.previousIndex:I
            iconst_m1
            if_icmpeq 17
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.previousIndex:I
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.endToken:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 17
        15: .line 266
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.endToken:Ljava/lang/String;
            aload 0 /* this */
            dup
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.previousIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.previousIndex:I
            invokevirtual java.lang.String.charAt:(I)C
            istore 1 /* ch */
        16: .line 267
            goto 18
        17: .line 270
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.in:Ljava/io/Reader;
            invokevirtual java.io.Reader.read:()I
            istore 1 /* ch */
        18: .line 272
      StackMap locals:
      StackMap stack:
            iload 1 /* ch */
            iconst_m1
            if_icmpeq 30
        19: .line 274
            aload 2 /* key */
            iload 1 /* ch */
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        20: .line 275
            iload 3 /* beginTokenMatchPos */
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.beginToken:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 26
        21: .line 276
            iload 1 /* ch */
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.beginToken:Ljava/lang/String;
            iload 3 /* beginTokenMatchPos */
            iinc 3 /* beginTokenMatchPos */ 1
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 26
        22: .line 277
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.useEscape:Z
            ifeq 26
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.orginalBeginToken:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iload 3 /* beginTokenMatchPos */
            iconst_1
            isub
            if_icmple 26
            iload 1 /* ch */
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.orginalBeginToken:Ljava/lang/String;
        23: .line 278
            iload 3 /* beginTokenMatchPos */
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 26
        24: .line 280
            iconst_m1
            istore 1 /* ch */
        25: .line 281
            goto 30
        26: .line 290
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.useEscape:Z
            ifeq 29
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.orginalBeginToken:Ljava/lang/String;
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.endToken:Ljava/lang/String;
            if_acmpne 29
            aload 2 /* key */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.beginToken:Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 29
        27: .line 292
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.in:Ljava/io/Reader;
            invokevirtual java.io.Reader.read:()I
            istore 1 /* ch */
        28: .line 293
            aload 2 /* key */
            iload 1 /* ch */
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        29: .line 296
      StackMap locals:
      StackMap stack:
            iload 1 /* ch */
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.endToken:Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpne 14
        30: .line 299
      StackMap locals:
      StackMap stack:
            iload 1 /* ch */
            iconst_m1
            if_icmpeq 43
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.endToken:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmple 43
        31: .line 301
            iconst_1
            istore 4 /* endTokenMatchPos */
        start local 4 // int endTokenMatchPos
        32: .line 305
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.previousIndex:I
            iconst_m1
            if_icmpeq 35
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.previousIndex:I
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.endToken:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpge 35
        33: .line 307
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.endToken:Ljava/lang/String;
            aload 0 /* this */
            dup
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.previousIndex:I
            dup_x1
            iconst_1
            iadd
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.previousIndex:I
            invokevirtual java.lang.String.charAt:(I)C
            istore 1 /* ch */
        34: .line 308
            goto 36
        35: .line 311
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.in:Ljava/io/Reader;
            invokevirtual java.io.Reader.read:()I
            istore 1 /* ch */
        36: .line 314
      StackMap locals:
      StackMap stack:
            iload 1 /* ch */
            iconst_m1
            if_icmpeq 43
        37: .line 316
            aload 2 /* key */
            iload 1 /* ch */
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        38: .line 318
            iload 1 /* ch */
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.endToken:Ljava/lang/String;
            iload 4 /* endTokenMatchPos */
            iinc 4 /* endTokenMatchPos */ 1
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 41
        39: .line 320
            iconst_m1
            istore 1 /* ch */
        40: .line 321
            goto 43
        41: .line 330
      StackMap locals:
      StackMap stack:
            iload 4 /* endTokenMatchPos */
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.endToken:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
        42: .line 303
            if_icmplt 32
        end local 4 // int endTokenMatchPos
        43: .line 336
      StackMap locals:
      StackMap stack:
            iload 1 /* ch */
            iconst_m1
            if_icmpne 47
        44: .line 338
            aload 0 /* this */
            aload 2 /* key */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceData:Ljava/lang/String;
        45: .line 339
            aload 0 /* this */
            iconst_1
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceIndex:I
        46: .line 340
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceData:Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            ireturn
        47: .line 343
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* value */
        start local 4 // java.lang.String value
        48: .line 346
            iconst_0
            istore 5 /* escapeFound */
        start local 5 // boolean escapeFound
        49: .line 347
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.useEscape:Z
            ifeq 57
        50: .line 349
            aload 2 /* key */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.escapeString:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.orginalBeginToken:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 57
        51: .line 351
            aload 2 /* key */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* keyStr */
        start local 6 // java.lang.String keyStr
        52: .line 352
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.preserveEscapeString:Z
            ifne 55
        53: .line 354
            aload 6 /* keyStr */
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.escapeString:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            aload 6 /* keyStr */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 4 /* value */
        54: .line 355
            goto 56
        55: .line 358
      StackMap locals: java.lang.String int java.lang.String
      StackMap stack:
            aload 6 /* keyStr */
            astore 4 /* value */
        56: .line 360
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 5 /* escapeFound */
        end local 6 // java.lang.String keyStr
        57: .line 363
      StackMap locals:
      StackMap stack:
            iload 5 /* escapeFound */
            ifne 67
        58: .line 365
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.interpolateWithPrefixPattern:Z
            ifeq 61
        59: .line 367
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.interpolator:Lorg/codehaus/plexus/interpolation/Interpolator;
            aload 2 /* key */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc ""
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.recursionInterceptor:Lorg/codehaus/plexus/interpolation/RecursionInterceptor;
            invokeinterface org.codehaus.plexus.interpolation.Interpolator.interpolate:(Ljava/lang/String;Ljava/lang/String;Lorg/codehaus/plexus/interpolation/RecursionInterceptor;)Ljava/lang/String;
            astore 4 /* value */
        60: .line 368
            goto 67
        61: .line 371
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.interpolator:Lorg/codehaus/plexus/interpolation/Interpolator;
            aload 2 /* key */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.recursionInterceptor:Lorg/codehaus/plexus/interpolation/RecursionInterceptor;
            invokeinterface org.codehaus.plexus.interpolation.Interpolator.interpolate:(Ljava/lang/String;Lorg/codehaus/plexus/interpolation/RecursionInterceptor;)Ljava/lang/String;
            astore 4 /* value */
        end local 5 // boolean escapeFound
        62: .line 374
            goto 67
        63: .line 375
      StackMap locals: org.codehaus.plexus.interpolation.InterpolatorFilterReader int java.lang.StringBuilder int java.lang.String
      StackMap stack: org.codehaus.plexus.interpolation.InterpolationException
            astore 5 /* e */
        start local 5 // org.codehaus.plexus.interpolation.InterpolationException e
        64: .line 377
            new java.lang.IllegalArgumentException
            dup
            aload 5 /* e */
            invokevirtual org.codehaus.plexus.interpolation.InterpolationException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            astore 6 /* error */
        start local 6 // java.lang.IllegalArgumentException error
        65: .line 378
            aload 6 /* error */
            aload 5 /* e */
            invokevirtual java.lang.IllegalArgumentException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        66: .line 380
            aload 6 /* error */
            athrow
        end local 6 // java.lang.IllegalArgumentException error
        end local 5 // org.codehaus.plexus.interpolation.InterpolationException e
        67: .line 383
      StackMap locals:
      StackMap stack:
            aload 4 /* value */
            ifnull 72
        68: .line 385
            aload 4 /* value */
            invokevirtual java.lang.String.length:()I
            ifeq 71
        69: .line 387
            aload 0 /* this */
            aload 4 /* value */
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceData:Ljava/lang/String;
        70: .line 388
            aload 0 /* this */
            iconst_0
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceIndex:I
        71: .line 390
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.codehaus.plexus.interpolation.InterpolatorFilterReader.read:()I
            ireturn
        72: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.previousIndex:I
        73: .line 395
            aload 0 /* this */
            aload 2 /* key */
            iconst_0
            aload 2 /* key */
            invokevirtual java.lang.StringBuilder.length:()I
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.endToken:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            isub
            invokevirtual java.lang.StringBuilder.substring:(II)Ljava/lang/String;
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceData:Ljava/lang/String;
        74: .line 396
            aload 0 /* this */
            iconst_0
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.replaceIndex:I
        75: .line 397
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.beginToken:Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            ireturn
        end local 4 // java.lang.String value
        end local 3 // int beginTokenMatchPos
        end local 2 // java.lang.StringBuilder key
        76: .line 401
      StackMap locals:
      StackMap stack:
            iload 1 /* ch */
            ireturn
        end local 1 // int ch
        end local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   77     0                this  Lorg/codehaus/plexus/interpolation/InterpolatorFilterReader;
            2    5     1                  ch  I
            6   77     1                  ch  I
           12   76     2                 key  Ljava/lang/StringBuilder;
           14   76     3  beginTokenMatchPos  I
           32   43     4    endTokenMatchPos  I
           48   76     4               value  Ljava/lang/String;
           49   62     5         escapeFound  Z
           52   57     6              keyStr  Ljava/lang/String;
           64   67     5                   e  Lorg/codehaus/plexus/interpolation/InterpolationException;
           65   67     6               error  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
          48    62      63  Class org.codehaus.plexus.interpolation.InterpolationException
    Exceptions:
      throws java.io.IOException

  public boolean isInterpolateWithPrefixPattern();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
         0: .line 406
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.interpolateWithPrefixPattern:Z
            ireturn
        end local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/codehaus/plexus/interpolation/InterpolatorFilterReader;

  public void setInterpolateWithPrefixPattern(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
        start local 1 // boolean interpolateWithPrefixPattern
         0: .line 411
            aload 0 /* this */
            iload 1 /* interpolateWithPrefixPattern */
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.interpolateWithPrefixPattern:Z
         1: .line 412
            return
        end local 1 // boolean interpolateWithPrefixPattern
        end local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    2     0                          this  Lorg/codehaus/plexus/interpolation/InterpolatorFilterReader;
            0    2     1  interpolateWithPrefixPattern  Z
    MethodParameters:
                              Name  Flags
      interpolateWithPrefixPattern  

  public java.lang.String getEscapeString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
         0: .line 415
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.escapeString:Ljava/lang/String;
            areturn
        end local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/codehaus/plexus/interpolation/InterpolatorFilterReader;

  public void setEscapeString(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
        start local 1 // java.lang.String escapeString
         0: .line 421
            aload 1 /* escapeString */
            ifnull 7
            aload 1 /* escapeString */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmplt 7
         1: .line 423
            aload 0 /* this */
            aload 1 /* escapeString */
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.escapeString:Ljava/lang/String;
         2: .line 424
            aload 0 /* this */
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.beginToken:Ljava/lang/String;
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.orginalBeginToken:Ljava/lang/String;
         3: .line 425
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 1 /* escapeString */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.beginToken:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.beginToken:Ljava/lang/String;
         4: .line 426
            aload 0 /* this */
            aload 1 /* escapeString */
            ifnull 5
            aload 1 /* escapeString */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmplt 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack: org.codehaus.plexus.interpolation.InterpolatorFilterReader
         5: iconst_0
      StackMap locals: org.codehaus.plexus.interpolation.InterpolatorFilterReader java.lang.String
      StackMap stack: org.codehaus.plexus.interpolation.InterpolatorFilterReader int
         6: putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.useEscape:Z
         7: .line 428
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String escapeString
        end local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/codehaus/plexus/interpolation/InterpolatorFilterReader;
            0    8     1  escapeString  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      escapeString  

  public boolean isPreserveEscapeString();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
         0: .line 432
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.preserveEscapeString:Z
            ireturn
        end local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/codehaus/plexus/interpolation/InterpolatorFilterReader;

  public void setPreserveEscapeString(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
        start local 1 // boolean preserveEscapeString
         0: .line 437
            aload 0 /* this */
            iload 1 /* preserveEscapeString */
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.preserveEscapeString:Z
         1: .line 438
            return
        end local 1 // boolean preserveEscapeString
        end local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/codehaus/plexus/interpolation/InterpolatorFilterReader;
            0    2     1  preserveEscapeString  Z
    MethodParameters:
                      Name  Flags
      preserveEscapeString  

  public org.codehaus.plexus.interpolation.RecursionInterceptor getRecursionInterceptor();
    descriptor: ()Lorg/codehaus/plexus/interpolation/RecursionInterceptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
         0: .line 442
            aload 0 /* this */
            getfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.recursionInterceptor:Lorg/codehaus/plexus/interpolation/RecursionInterceptor;
            areturn
        end local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/codehaus/plexus/interpolation/InterpolatorFilterReader;

  public org.codehaus.plexus.interpolation.InterpolatorFilterReader setRecursionInterceptor(org.codehaus.plexus.interpolation.RecursionInterceptor);
    descriptor: (Lorg/codehaus/plexus/interpolation/RecursionInterceptor;)Lorg/codehaus/plexus/interpolation/InterpolatorFilterReader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
        start local 1 // org.codehaus.plexus.interpolation.RecursionInterceptor recursionInterceptor
         0: .line 447
            aload 0 /* this */
            aload 1 /* recursionInterceptor */
            putfield org.codehaus.plexus.interpolation.InterpolatorFilterReader.recursionInterceptor:Lorg/codehaus/plexus/interpolation/RecursionInterceptor;
         1: .line 448
            aload 0 /* this */
            areturn
        end local 1 // org.codehaus.plexus.interpolation.RecursionInterceptor recursionInterceptor
        end local 0 // org.codehaus.plexus.interpolation.InterpolatorFilterReader this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/codehaus/plexus/interpolation/InterpolatorFilterReader;
            0    2     1  recursionInterceptor  Lorg/codehaus/plexus/interpolation/RecursionInterceptor;
    MethodParameters:
                      Name  Flags
      recursionInterceptor  
}
SourceFile: "InterpolatorFilterReader.java"