abstract class java.lang.StackStreamFactory$AbstractStackWalker<R, T>
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: java.lang.StackStreamFactory$AbstractStackWalker
  super_class: java.lang.Object
{
  protected final java.lang.StackWalker walker;
    descriptor: Ljava/lang/StackWalker;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final java.lang.Thread thread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final int maxDepth;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final long mode;
    descriptor: J
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected int depth;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.StackStreamFactory$FrameBuffer<? extends T> frameBuffer;
    descriptor: Ljava/lang/StackStreamFactory$FrameBuffer;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/lang/StackStreamFactory$FrameBuffer<+TT;>;

  protected long anchor;
    descriptor: J
    flags: (0x0004) ACC_PROTECTED

  private static volatile int[] $SWITCH_TABLE$java$lang$StackStreamFactory$WalkerState;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  protected void <init>(java.lang.StackWalker, int);
    descriptor: (Ljava/lang/StackWalker;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
        start local 1 // java.lang.StackWalker walker
        start local 2 // int mode
         0: .line 132
            aload 0 /* this */
            aload 1 /* walker */
            iload 2 /* mode */
            ldc 2147483647
            invokespecial java.lang.StackStreamFactory$AbstractStackWalker.<init>:(Ljava/lang/StackWalker;II)V
         1: .line 133
            return
        end local 2 // int mode
        end local 1 // java.lang.StackWalker walker
        end local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
            0    2     1  walker  Ljava/lang/StackWalker;
            0    2     2    mode  I
    MethodParameters:
        Name  Flags
      walker  
      mode    

  protected void <init>(java.lang.StackWalker, int, int);
    descriptor: (Ljava/lang/StackWalker;II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
        start local 1 // java.lang.StackWalker walker
        start local 2 // int mode
        start local 3 // int maxDepth
         0: .line 134
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 135
            aload 0 /* this */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            putfield java.lang.StackStreamFactory$AbstractStackWalker.thread:Ljava/lang/Thread;
         2: .line 136
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* walker */
            iload 2 /* mode */
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.toStackWalkMode:(Ljava/lang/StackWalker;I)I
            i2l
            putfield java.lang.StackStreamFactory$AbstractStackWalker.mode:J
         3: .line 137
            aload 0 /* this */
            aload 1 /* walker */
            putfield java.lang.StackStreamFactory$AbstractStackWalker.walker:Ljava/lang/StackWalker;
         4: .line 138
            aload 0 /* this */
            iload 3 /* maxDepth */
            putfield java.lang.StackStreamFactory$AbstractStackWalker.maxDepth:I
         5: .line 139
            aload 0 /* this */
            iconst_0
            putfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
         6: .line 140
            return
        end local 3 // int maxDepth
        end local 2 // int mode
        end local 1 // java.lang.StackWalker walker
        end local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
            0    7     1    walker  Ljava/lang/StackWalker;
            0    7     2      mode  I
            0    7     3  maxDepth  I
    MethodParameters:
          Name  Flags
      walker    
      mode      
      maxDepth  

  private int toStackWalkMode(java.lang.StackWalker, int);
    descriptor: (Ljava/lang/StackWalker;I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
        start local 1 // java.lang.StackWalker walker
        start local 2 // int mode
         0: .line 143
            iload 2 /* mode */
            istore 3 /* newMode */
        start local 3 // int newMode
         1: .line 144
            aload 1 /* walker */
            getstatic java.lang.StackWalker$Option.SHOW_HIDDEN_FRAMES:Ljava/lang/StackWalker$Option;
            invokevirtual java.lang.StackWalker.hasOption:(Ljava/lang/StackWalker$Option;)Z
            ifeq 4
         2: .line 145
            iload 2 /* mode */
            iconst_2
            iand
            iconst_2
            if_icmpeq 4
         3: .line 146
            iload 3 /* newMode */
            bipush 32
            ior
            istore 3 /* newMode */
         4: .line 147
      StackMap locals: int
      StackMap stack:
            aload 1 /* walker */
            invokevirtual java.lang.StackWalker.hasLocalsOperandsOption:()Z
            ifeq 6
         5: .line 148
            iload 3 /* newMode */
            sipush 256
            ior
            istore 3 /* newMode */
         6: .line 149
      StackMap locals:
      StackMap stack:
            iload 3 /* newMode */
            ireturn
        end local 3 // int newMode
        end local 2 // int mode
        end local 1 // java.lang.StackWalker walker
        end local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
            0    7     1   walker  Ljava/lang/StackWalker;
            0    7     2     mode  I
            1    7     3  newMode  I
    MethodParameters:
        Name  Flags
      walker  
      mode    

  protected abstract R consumeFrames();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: ()TR;

  protected abstract void initFrameBuffer();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract int batchSize(int);
    descriptor: (I)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
                     Name  Flags
      lastBatchFrameCount  

  protected int getNextBatchSize();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
         0: .line 188
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
            ifne 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.curBatchFrameCount:()I
      StackMap locals:
      StackMap stack: int
         2: istore 1 /* lastBatchSize */
        start local 1 // int lastBatchSize
         3: .line 189
            aload 0 /* this */
            iload 1 /* lastBatchSize */
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.batchSize:(I)I
            istore 2 /* nextBatchSize */
        start local 2 // int nextBatchSize
         4: .line 190
            getstatic java.lang.StackStreamFactory.isDebug:Z
            ifeq 8
         5: .line 191
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "last batch size = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* lastBatchSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         6: .line 192
            ldc " next batch size = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* nextBatchSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 191
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         8: .line 194
      StackMap locals: int int
      StackMap stack:
            iload 2 /* nextBatchSize */
            bipush 8
            if_icmplt 9
            iload 2 /* nextBatchSize */
            goto 10
      StackMap locals:
      StackMap stack:
         9: bipush 8
      StackMap locals:
      StackMap stack: int
        10: ireturn
        end local 2 // int nextBatchSize
        end local 1 // int lastBatchSize
        end local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
            3   11     1  lastBatchSize  I
            4   11     2  nextBatchSize  I

  final void checkState(java.lang.StackStreamFactory$WalkerState);
    descriptor: (Ljava/lang/StackStreamFactory$WalkerState;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
        start local 1 // java.lang.StackStreamFactory$WalkerState state
         0: .line 204
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.thread:Ljava/lang/Thread;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpeq 4
         1: .line 205
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid thread walking this stack stream: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 206
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.thread:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 205
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 208
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.StackStreamFactory$AbstractStackWalker.$SWITCH_TABLE$java$lang$StackStreamFactory$WalkerState:()[I
            aload 1 /* state */
            invokevirtual java.lang.StackStreamFactory$WalkerState.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 5
                    2: 7
                    3: 9
              default: 11
          }
         5: .line 210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.anchor:J
            lconst_0
            lcmp
            ifeq 11
         6: .line 211
            new java.lang.IllegalStateException
            dup
            ldc "This stack stream is being reused."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.anchor:J
            lconst_0
            lcmp
            ifeq 8
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.anchor:J
            ldc -1
            lcmp
            ifne 11
         8: .line 216
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "This stack stream is not valid for walking."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 220
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.anchor:J
            ldc -1
            lcmp
            ifeq 11
        10: .line 221
            new java.lang.IllegalStateException
            dup
            ldc "This stack stream is not closed."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 224
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.StackStreamFactory$WalkerState state
        end local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
            0   12     1  state  Ljava/lang/StackStreamFactory$WalkerState;
    MethodParameters:
       Name  Flags
      state  

  private void close();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
         0: .line 230
            aload 0 /* this */
            ldc -1
            putfield java.lang.StackStreamFactory$AbstractStackWalker.anchor:J
         1: .line 231
            return
        end local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;

  final R walk();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
         0: .line 238
            aload 0 /* this */
            getstatic java.lang.StackStreamFactory$WalkerState.NEW:Ljava/lang/StackStreamFactory$WalkerState;
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.checkState:(Ljava/lang/StackStreamFactory$WalkerState;)V
         1: .line 243
            aload 0 /* this */
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.beginStackWalk:()Ljava/lang/Object;
            astore 2
         2: .line 245
            aload 0 /* this */
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.close:()V
         3: .line 243
            aload 2
            areturn
         4: .line 244
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 245
            aload 0 /* this */
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.close:()V
         6: .line 246
            aload 1
            athrow
        end local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
      Exception table:
        from    to  target  type
           1     2       4  any
    Signature: ()TR;

  private boolean skipReflectionFrames();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
         0: .line 250
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.walker:Ljava/lang/StackWalker;
            getstatic java.lang.StackWalker$Option.SHOW_REFLECT_FRAMES:Ljava/lang/StackWalker$Option;
            invokevirtual java.lang.StackWalker.hasOption:(Ljava/lang/StackWalker$Option;)Z
            ifne 3
         1: .line 251
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.walker:Ljava/lang/StackWalker;
            getstatic java.lang.StackWalker$Option.SHOW_HIDDEN_FRAMES:Ljava/lang/StackWalker$Option;
            invokevirtual java.lang.StackWalker.hasOption:(Ljava/lang/StackWalker$Option;)Z
            ifne 3
         2: .line 250
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;

  final java.lang.Class<?> peekFrame();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
         0: .line 260
            goto 12
         1: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.isEmpty:()Z
            ifeq 4
         2: .line 263
            aload 0 /* this */
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.getNextBatch:()I
            pop
         3: .line 264
            goto 12
         4: .line 265
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.get:()Ljava/lang/Class;
            astore 1 /* c */
        start local 1 // java.lang.Class c
         5: .line 266
            aload 0 /* this */
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.skipReflectionFrames:()Z
            ifeq 11
            aload 1 /* c */
            invokestatic java.lang.StackStreamFactory.isReflectionFrame:(Ljava/lang/Class;)Z
            ifeq 11
         6: .line 267
            getstatic java.lang.StackStreamFactory.isDebug:Z
            ifeq 8
         7: .line 268
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  skip: frame "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.getIndex:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* c */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         8: .line 270
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.next:()Ljava/lang/Class;
            pop
         9: .line 271
            aload 0 /* this */
            dup
            getfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
            iconst_1
            iadd
            putfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
        10: .line 272
            goto 12
        11: .line 274
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            areturn
        end local 1 // java.lang.Class c
        12: .line 260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.isActive:()Z
            ifeq 13
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.maxDepth:I
            if_icmplt 1
        13: .line 278
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
            5   12     1     c  Ljava/lang/Class<*>;
    Signature: ()Ljava/lang/Class<*>;

  private java.lang.Object doStackWalk(long, int, int, int, int);
    descriptor: (JIIII)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=6
        start local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
        start local 1 // long anchor
        start local 3 // int skipFrames
        start local 4 // int batchSize
        start local 5 // int bufStartIndex
        start local 6 // int bufEndIndex
         0: .line 293
            aload 0 /* this */
            getstatic java.lang.StackStreamFactory$WalkerState.NEW:Ljava/lang/StackStreamFactory$WalkerState;
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.checkState:(Ljava/lang/StackStreamFactory$WalkerState;)V
         1: .line 295
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            iload 3 /* skipFrames */
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.check:(I)V
         2: .line 297
            getstatic java.lang.StackStreamFactory.isDebug:Z
            ifeq 6
         3: .line 298
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "doStackWalk: skip %d start %d end %d%n"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 299
            iload 3 /* skipFrames */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 5 /* bufStartIndex */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iload 6 /* bufEndIndex */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         5: .line 298
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         6: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* anchor */
            putfield java.lang.StackStreamFactory$AbstractStackWalker.anchor:J
         7: .line 303
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
            iload 5 /* bufStartIndex */
            iload 6 /* bufEndIndex */
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.setBatch:(III)V
         8: .line 306
            aload 0 /* this */
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.consumeFrames:()Ljava/lang/Object;
            areturn
        end local 6 // int bufEndIndex
        end local 5 // int bufStartIndex
        end local 4 // int batchSize
        end local 3 // int skipFrames
        end local 1 // long anchor
        end local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
            0    9     1         anchor  J
            0    9     3     skipFrames  I
            0    9     4      batchSize  I
            0    9     5  bufStartIndex  I
            0    9     6    bufEndIndex  I
    MethodParameters:
               Name  Flags
      anchor         
      skipFrames     
      batchSize      
      bufStartIndex  
      bufEndIndex    

  private int getNextBatch();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
         0: .line 313
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.maxDepth:I
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
            isub
            aload 0 /* this */
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.getNextBatchSize:()I
            invokestatic java.lang.Math.min:(II)I
            istore 1 /* nextBatchSize */
        start local 1 // int nextBatchSize
         1: .line 314
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.isActive:()Z
            ifeq 2
            iload 1 /* nextBatchSize */
            ifgt 6
         2: .line 315
      StackMap locals: int
      StackMap stack:
            getstatic java.lang.StackStreamFactory.isDebug:Z
            ifeq 4
         3: .line 316
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "  more stack walk done%n"
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         4: .line 318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.freeze:()V
         5: .line 319
            iconst_0
            ireturn
         6: .line 322
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* nextBatchSize */
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.fetchStackFrames:(I)I
            ireturn
        end local 1 // int nextBatchSize
        end local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
            1    7     1  nextBatchSize  I

  final java.lang.Class<?> nextFrame();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
         0: .line 336
            aload 0 /* this */
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.hasNext:()Z
            ifne 2
         1: .line 337
            aconst_null
            areturn
         2: .line 340
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.next:()Ljava/lang/Class;
            astore 1 /* c */
        start local 1 // java.lang.Class c
         3: .line 341
            aload 0 /* this */
            dup
            getfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
            iconst_1
            iadd
            putfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
         4: .line 342
            aload 1 /* c */
            areturn
        end local 1 // java.lang.Class c
        end local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
            3    5     1     c  Ljava/lang/Class<*>;
    Signature: ()Ljava/lang/Class<*>;

  final boolean hasNext();
    descriptor: ()Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
         0: .line 351
            aload 0 /* this */
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.peekFrame:()Ljava/lang/Class;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;

  private R beginStackWalk();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
         0: .line 368
            aload 0 /* this */
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.initFrameBuffer:()V
         1: .line 370
            aload 0 /* this */
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.mode:J
            iconst_0
         2: .line 371
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.curBatchFrameCount:()I
         3: .line 372
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.startIndex:()I
         4: .line 373
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.frames:()[Ljava/lang/Object;
         5: .line 370
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.callStackWalk:(JIII[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
    Signature: ()TR;

  private int fetchStackFrames(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=2
        start local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
        start local 1 // int batchSize
         0: .line 383
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.startIndex:()I
            istore 2 /* startIndex */
        start local 2 // int startIndex
         1: .line 384
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            iload 2 /* startIndex */
            iload 1 /* batchSize */
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.resize:(II)V
         2: .line 386
            aload 0 /* this */
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.mode:J
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.anchor:J
            iload 1 /* batchSize */
         3: .line 387
            iload 2 /* startIndex */
         4: .line 388
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.frames:()[Ljava/lang/Object;
         5: .line 386
            invokevirtual java.lang.StackStreamFactory$AbstractStackWalker.fetchStackFrames:(JJII[Ljava/lang/Object;)I
            istore 3 /* endIndex */
        start local 3 // int endIndex
         6: .line 389
            getstatic java.lang.StackStreamFactory.isDebug:Z
            ifeq 10
         7: .line 390
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "  more stack walk requesting %d got %d to %d frames%n"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         8: .line 391
            iload 1 /* batchSize */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.startIndex:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iload 3 /* endIndex */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         9: .line 390
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        10: .line 393
      StackMap locals: int int
      StackMap stack:
            iload 3 /* endIndex */
            iload 2 /* startIndex */
            isub
            istore 4 /* numFrames */
        start local 4 // int numFrames
        11: .line 394
            iload 4 /* numFrames */
            ifne 14
        12: .line 395
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.freeze:()V
        13: .line 396
            goto 15
        14: .line 397
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.frameBuffer:Ljava/lang/StackStreamFactory$FrameBuffer;
            aload 0 /* this */
            getfield java.lang.StackStreamFactory$AbstractStackWalker.depth:I
            iload 2 /* startIndex */
            iload 3 /* endIndex */
            invokevirtual java.lang.StackStreamFactory$FrameBuffer.setBatch:(III)V
        15: .line 399
      StackMap locals:
      StackMap stack:
            iload 4 /* numFrames */
            ireturn
        end local 4 // int numFrames
        end local 3 // int endIndex
        end local 2 // int startIndex
        end local 1 // int batchSize
        end local 0 // java.lang.StackStreamFactory$AbstractStackWalker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0        this  Ljava/lang/StackStreamFactory$AbstractStackWalker<TR;TT;>;
            0   16     1   batchSize  I
            1   16     2  startIndex  I
            6   16     3    endIndex  I
           11   16     4   numFrames  I
    MethodParameters:
           Name  Flags
      batchSize  

  private native R callStackWalk(long, int, int, int, );
    descriptor: (JIII[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Signature: (JIII[TT;)TR;
    MethodParameters:
            Name  Flags
      mode        
      skipframes  
      batchSize   
      startIndex  
      frames      

  private native int fetchStackFrames(long, long, int, int, );
    descriptor: (JJII[Ljava/lang/Object;)I
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Signature: (JJII[TT;)I
    MethodParameters:
            Name  Flags
      mode        
      anchor      
      batchSize   
      startIndex  
      frames      

  static int[] $SWITCH_TABLE$java$lang$StackStreamFactory$WalkerState();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 121
            getstatic java.lang.StackStreamFactory$AbstractStackWalker.$SWITCH_TABLE$java$lang$StackStreamFactory$WalkerState:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic java.lang.StackStreamFactory$WalkerState.values:()[Ljava/lang/StackStreamFactory$WalkerState;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic java.lang.StackStreamFactory$WalkerState.CLOSED:Ljava/lang/StackStreamFactory$WalkerState;
            invokevirtual java.lang.StackStreamFactory$WalkerState.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic java.lang.StackStreamFactory$WalkerState.NEW:Ljava/lang/StackStreamFactory$WalkerState;
            invokevirtual java.lang.StackStreamFactory$WalkerState.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic java.lang.StackStreamFactory$WalkerState.OPEN:Ljava/lang/StackStreamFactory$WalkerState;
            invokevirtual java.lang.StackStreamFactory$WalkerState.ordinal:()I
            iconst_2
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic java.lang.StackStreamFactory$AbstractStackWalker.$SWITCH_TABLE$java$lang$StackStreamFactory$WalkerState:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
}
Signature: <R:Ljava/lang/Object;T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "StackStreamFactory.java"
NestHost: java.lang.StackStreamFactory
InnerClasses:
  abstract AbstractStackWalker = java.lang.StackStreamFactory$AbstractStackWalker of java.lang.StackStreamFactory
  abstract FrameBuffer = java.lang.StackStreamFactory$FrameBuffer of java.lang.StackStreamFactory
  final WalkerState = java.lang.StackStreamFactory$WalkerState of java.lang.StackStreamFactory
  public final Option = java.lang.StackWalker$Option of java.lang.StackWalker