final class java.lang.StackStreamFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: java.lang.StackStreamFactory
  super_class: java.lang.Object
{
  private static final java.util.Set<java.lang.Class<?>> stackWalkImplClasses;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/Class<*>;>;

  private static final int SMALL_BATCH;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int BATCH_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private static final int LARGE_BATCH_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 256

  private static final int MIN_BATCH_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int DEFAULT_MODE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int FILL_CLASS_REFS_ONLY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int GET_CALLER_CLASS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int SHOW_HIDDEN_FRAMES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private static final int FILL_LIVE_STACK_FRAMES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 256

  static final boolean isDebug;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 66
            invokestatic java.lang.StackStreamFactory.init:()Ljava/util/Set;
            putstatic java.lang.StackStreamFactory.stackWalkImplClasses:Ljava/util/Set;
         1: .line 85
            ldc "true"
            ldc "stackwalk.debug"
            invokestatic sun.security.action.GetPropertyAction.privilegedGetProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
         2: .line 84
            putstatic java.lang.StackStreamFactory.isDebug:Z
         3: .line 85
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  static <T> java.lang.StackStreamFactory$StackFrameTraverser<T> makeStackTraverser(java.lang.StackWalker, java.util.function.Function<? super java.util.stream.Stream<java.lang.StackWalker$StackFrame>, ? extends T>);
    descriptor: (Ljava/lang/StackWalker;Ljava/util/function/Function;)Ljava/lang/StackStreamFactory$StackFrameTraverser;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.StackWalker walker
        start local 1 // java.util.function.Function function
         0: .line 90
            aload 0 /* walker */
            invokevirtual java.lang.StackWalker.hasLocalsOperandsOption:()Z
            ifeq 2
         1: .line 91
            new java.lang.StackStreamFactory$LiveStackInfoTraverser
            dup
            aload 0 /* walker */
            aload 1 /* function */
            invokespecial java.lang.StackStreamFactory$LiveStackInfoTraverser.<init>:(Ljava/lang/StackWalker;Ljava/util/function/Function;)V
            areturn
         2: .line 93
      StackMap locals:
      StackMap stack:
            new java.lang.StackStreamFactory$StackFrameTraverser
            dup
            aload 0 /* walker */
            aload 1 /* function */
            invokespecial java.lang.StackStreamFactory$StackFrameTraverser.<init>:(Ljava/lang/StackWalker;Ljava/util/function/Function;)V
            areturn
        end local 1 // java.util.function.Function function
        end local 0 // java.lang.StackWalker walker
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0    walker  Ljava/lang/StackWalker;
            0    3     1  function  Ljava/util/function/Function<-Ljava/util/stream/Stream<Ljava/lang/StackWalker$StackFrame;>;+TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/StackWalker;Ljava/util/function/Function<-Ljava/util/stream/Stream<Ljava/lang/StackWalker$StackFrame;>;+TT;>;)Ljava/lang/StackStreamFactory$StackFrameTraverser<TT;>;
    MethodParameters:
          Name  Flags
      walker    
      function  

  static java.lang.StackStreamFactory$CallerClassFinder makeCallerFinder(java.lang.StackWalker);
    descriptor: (Ljava/lang/StackWalker;)Ljava/lang/StackStreamFactory$CallerClassFinder;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.StackWalker walker
         0: .line 100
            new java.lang.StackStreamFactory$CallerClassFinder
            dup
            aload 0 /* walker */
            invokespecial java.lang.StackStreamFactory$CallerClassFinder.<init>:(Ljava/lang/StackWalker;)V
            areturn
        end local 0 // java.lang.StackWalker walker
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  walker  Ljava/lang/StackWalker;
    MethodParameters:
        Name  Flags
      walker  

  private static native boolean checkStackWalkModes();
    descriptor: ()Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  private static java.util.Set<java.lang.Class<?>> init();
    descriptor: ()Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 962
            invokestatic java.lang.StackStreamFactory.checkStackWalkModes:()Z
            ifne 2
         1: .line 963
            new java.lang.InternalError
            dup
            ldc "StackWalker mode values do not match with JVM"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 966
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 0 /* classes */
        start local 0 // java.util.Set classes
         3: .line 967
            aload 0 /* classes */
            ldc Ljava/lang/StackWalker;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 968
            aload 0 /* classes */
            ldc Ljava/lang/StackStreamFactory;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 969
            aload 0 /* classes */
            ldc Ljava/lang/StackStreamFactory$AbstractStackWalker;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 970
            aload 0 /* classes */
            areturn
        end local 0 // java.util.Set classes
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            3    7     0  classes  Ljava/util/Set<Ljava/lang/Class<*>;>;
    Signature: ()Ljava/util/Set<Ljava/lang/Class<*>;>;

  private static boolean filterStackWalkImpl(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class c
         0: .line 974
            getstatic java.lang.StackStreamFactory.stackWalkImplClasses:Ljava/util/Set;
            aload 0 /* c */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 3
         1: .line 975
            aload 0 /* c */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "java.util.stream."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 3
         2: .line 974
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 0 // java.lang.Class c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     c  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
      Name  Flags
      c     

  private static boolean isMethodHandleFrame(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class c
         0: .line 981
            aload 0 /* c */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "java.lang.invoke."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ireturn
        end local 0 // java.lang.Class c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     c  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
      Name  Flags
      c     

  private static boolean isReflectionFrame(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class c
         0: .line 986
            aload 0 /* c */
            ldc Ljava/lang/reflect/Method;
            if_acmpeq 6
         1: .line 987
            aload 0 /* c */
            ldc Ljava/lang/reflect/Constructor;
            if_acmpeq 6
         2: .line 988
            ldc Ljdk/internal/reflect/MethodAccessor;
            aload 0 /* c */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 6
         3: .line 989
            ldc Ljdk/internal/reflect/ConstructorAccessor;
            aload 0 /* c */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 6
         4: .line 990
            aload 0 /* c */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "java.lang.invoke.LambdaForm"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 6
         5: .line 986
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_1
            ireturn
        end local 0 // java.lang.Class c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     c  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
      Name  Flags
      c     
}
SourceFile: "StackStreamFactory.java"
NestMembers:
  java.lang.StackStreamFactory$AbstractStackWalker  java.lang.StackStreamFactory$CallerClassFinder  java.lang.StackStreamFactory$CallerClassFinder$ClassBuffer  java.lang.StackStreamFactory$FrameBuffer  java.lang.StackStreamFactory$LiveStackInfoTraverser  java.lang.StackStreamFactory$LiveStackInfoTraverser$LiveStackFrameBuffer  java.lang.StackStreamFactory$StackFrameTraverser  java.lang.StackStreamFactory$StackFrameTraverser$StackFrameBuffer  java.lang.StackStreamFactory$WalkerState
InnerClasses:
  abstract AbstractStackWalker = java.lang.StackStreamFactory$AbstractStackWalker of java.lang.StackStreamFactory
  final CallerClassFinder = java.lang.StackStreamFactory$CallerClassFinder of java.lang.StackStreamFactory
  abstract FrameBuffer = java.lang.StackStreamFactory$FrameBuffer of java.lang.StackStreamFactory
  final LiveStackInfoTraverser = java.lang.StackStreamFactory$LiveStackInfoTraverser of java.lang.StackStreamFactory
  StackFrameTraverser = java.lang.StackStreamFactory$StackFrameTraverser of java.lang.StackStreamFactory
  final WalkerState = java.lang.StackStreamFactory$WalkerState of java.lang.StackStreamFactory
  public abstract StackFrame = java.lang.StackWalker$StackFrame of java.lang.StackWalker