abstract class java.util.stream.Streams$ConcatSpliterator<T, T_SPLITR extends java.util.Spliterator<T>> implements java.util.Spliterator<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: java.util.stream.Streams$ConcatSpliterator
  super_class: java.lang.Object
{
  protected final T_SPLITR aSpliterator;
    descriptor: Ljava/util/Spliterator;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: TT_SPLITR;

  protected final T_SPLITR bSpliterator;
    descriptor: Ljava/util/Spliterator;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: TT_SPLITR;

  boolean beforeSplit;
    descriptor: Z
    flags: (0x0000) 

  final boolean unsized;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  public void <init>(T_SPLITR, );
    descriptor: (Ljava/util/Spliterator;Ljava/util/Spliterator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.util.stream.Streams$ConcatSpliterator this
        start local 1 // java.util.Spliterator aSpliterator
        start local 2 // java.util.Spliterator bSpliterator
         0: .line 699
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 700
            aload 0 /* this */
            aload 1 /* aSpliterator */
            putfield java.util.stream.Streams$ConcatSpliterator.aSpliterator:Ljava/util/Spliterator;
         2: .line 701
            aload 0 /* this */
            aload 2 /* bSpliterator */
            putfield java.util.stream.Streams$ConcatSpliterator.bSpliterator:Ljava/util/Spliterator;
         3: .line 702
            aload 0 /* this */
            iconst_1
            putfield java.util.stream.Streams$ConcatSpliterator.beforeSplit:Z
         4: .line 705
            aload 0 /* this */
            aload 1 /* aSpliterator */
            invokeinterface java.util.Spliterator.estimateSize:()J
            aload 2 /* bSpliterator */
            invokeinterface java.util.Spliterator.estimateSize:()J
            ladd
            lconst_0
            lcmp
            ifge 5
            iconst_1
            goto 6
      StackMap locals: java.util.stream.Streams$ConcatSpliterator java.util.Spliterator java.util.Spliterator
      StackMap stack: java.util.stream.Streams$ConcatSpliterator
         5: iconst_0
      StackMap locals: java.util.stream.Streams$ConcatSpliterator java.util.Spliterator java.util.Spliterator
      StackMap stack: java.util.stream.Streams$ConcatSpliterator int
         6: putfield java.util.stream.Streams$ConcatSpliterator.unsized:Z
         7: .line 706
            return
        end local 2 // java.util.Spliterator bSpliterator
        end local 1 // java.util.Spliterator aSpliterator
        end local 0 // java.util.stream.Streams$ConcatSpliterator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Ljava/util/stream/Streams$ConcatSpliterator<TT;TT_SPLITR;>;
            0    8     1  aSpliterator  TT_SPLITR;
            0    8     2  bSpliterator  TT_SPLITR;
    Signature: (TT_SPLITR;TT_SPLITR;)V
    MethodParameters:
              Name  Flags
      aSpliterator  
      bSpliterator  

  public T_SPLITR trySplit();
    descriptor: ()Ljava/util/Spliterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.util.stream.Streams$ConcatSpliterator this
         0: .line 711
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.beforeSplit:Z
            ifeq 1
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.aSpliterator:Ljava/util/Spliterator;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.bSpliterator:Ljava/util/Spliterator;
            invokeinterface java.util.Spliterator.trySplit:()Ljava/util/Spliterator;
      StackMap locals:
      StackMap stack: java.util.Spliterator
         2: astore 1 /* ret */
        start local 1 // java.util.Spliterator ret
         3: .line 712
            aload 0 /* this */
            iconst_0
            putfield java.util.stream.Streams$ConcatSpliterator.beforeSplit:Z
         4: .line 713
            aload 1 /* ret */
            areturn
        end local 1 // java.util.Spliterator ret
        end local 0 // java.util.stream.Streams$ConcatSpliterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/stream/Streams$ConcatSpliterator<TT;TT_SPLITR;>;
            3    5     1   ret  TT_SPLITR;
    Signature: ()TT_SPLITR;

  public boolean tryAdvance(java.util.function.Consumer<? super T>);
    descriptor: (Ljava/util/function/Consumer;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.stream.Streams$ConcatSpliterator this
        start local 1 // java.util.function.Consumer consumer
         0: .line 719
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.beforeSplit:Z
            ifeq 6
         1: .line 720
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.aSpliterator:Ljava/util/Spliterator;
            aload 1 /* consumer */
            invokeinterface java.util.Spliterator.tryAdvance:(Ljava/util/function/Consumer;)Z
            istore 2 /* hasNext */
        start local 2 // boolean hasNext
         2: .line 721
            iload 2 /* hasNext */
            ifne 7
         3: .line 722
            aload 0 /* this */
            iconst_0
            putfield java.util.stream.Streams$ConcatSpliterator.beforeSplit:Z
         4: .line 723
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.bSpliterator:Ljava/util/Spliterator;
            aload 1 /* consumer */
            invokeinterface java.util.Spliterator.tryAdvance:(Ljava/util/function/Consumer;)Z
            istore 2 /* hasNext */
         5: .line 725
            goto 7
        end local 2 // boolean hasNext
         6: .line 727
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.bSpliterator:Ljava/util/Spliterator;
            aload 1 /* consumer */
            invokeinterface java.util.Spliterator.tryAdvance:(Ljava/util/function/Consumer;)Z
            istore 2 /* hasNext */
        start local 2 // boolean hasNext
         7: .line 728
      StackMap locals: int
      StackMap stack:
            iload 2 /* hasNext */
            ireturn
        end local 2 // boolean hasNext
        end local 1 // java.util.function.Consumer consumer
        end local 0 // java.util.stream.Streams$ConcatSpliterator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Ljava/util/stream/Streams$ConcatSpliterator<TT;TT_SPLITR;>;
            0    8     1  consumer  Ljava/util/function/Consumer<-TT;>;
            2    6     2   hasNext  Z
            7    8     2   hasNext  Z
    Signature: (Ljava/util/function/Consumer<-TT;>;)Z
    MethodParameters:
          Name  Flags
      consumer  

  public void forEachRemaining(java.util.function.Consumer<? super T>);
    descriptor: (Ljava/util/function/Consumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.stream.Streams$ConcatSpliterator this
        start local 1 // java.util.function.Consumer consumer
         0: .line 733
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.beforeSplit:Z
            ifeq 2
         1: .line 734
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.aSpliterator:Ljava/util/Spliterator;
            aload 1 /* consumer */
            invokeinterface java.util.Spliterator.forEachRemaining:(Ljava/util/function/Consumer;)V
         2: .line 735
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.bSpliterator:Ljava/util/Spliterator;
            aload 1 /* consumer */
            invokeinterface java.util.Spliterator.forEachRemaining:(Ljava/util/function/Consumer;)V
         3: .line 736
            return
        end local 1 // java.util.function.Consumer consumer
        end local 0 // java.util.stream.Streams$ConcatSpliterator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Ljava/util/stream/Streams$ConcatSpliterator<TT;TT_SPLITR;>;
            0    4     1  consumer  Ljava/util/function/Consumer<-TT;>;
    Signature: (Ljava/util/function/Consumer<-TT;>;)V
    MethodParameters:
          Name  Flags
      consumer  

  public long estimateSize();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.util.stream.Streams$ConcatSpliterator this
         0: .line 740
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.beforeSplit:Z
            ifeq 5
         1: .line 743
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.aSpliterator:Ljava/util/Spliterator;
            invokeinterface java.util.Spliterator.estimateSize:()J
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.bSpliterator:Ljava/util/Spliterator;
            invokeinterface java.util.Spliterator.estimateSize:()J
            ladd
            lstore 1 /* size */
        start local 1 // long size
         2: .line 744
            lload 1 /* size */
            lconst_0
            lcmp
            iflt 3
            lload 1 /* size */
            goto 4
      StackMap locals: long
      StackMap stack:
         3: ldc 9223372036854775807
      StackMap locals:
      StackMap stack: long
         4: lreturn
        end local 1 // long size
         5: .line 747
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.bSpliterator:Ljava/util/Spliterator;
            invokeinterface java.util.Spliterator.estimateSize:()J
            lreturn
        end local 0 // java.util.stream.Streams$ConcatSpliterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/util/stream/Streams$ConcatSpliterator<TT;TT_SPLITR;>;
            2    5     1  size  J

  public int characteristics();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.stream.Streams$ConcatSpliterator this
         0: .line 753
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.beforeSplit:Z
            ifeq 7
         1: .line 755
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.aSpliterator:Ljava/util/Spliterator;
            invokeinterface java.util.Spliterator.characteristics:()I
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.bSpliterator:Ljava/util/Spliterator;
            invokeinterface java.util.Spliterator.characteristics:()I
            iand
         2: .line 756
            iconst_5
         3: .line 757
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.unsized:Z
            ifeq 4
            sipush 16448
            goto 5
      StackMap locals: java.util.stream.Streams$ConcatSpliterator
      StackMap stack: int int
         4: iconst_0
         5: .line 756
      StackMap locals: java.util.stream.Streams$ConcatSpliterator
      StackMap stack: int int int
            ior
            iconst_m1
            ixor
         6: .line 755
            iand
            ireturn
         7: .line 760
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.bSpliterator:Ljava/util/Spliterator;
            invokeinterface java.util.Spliterator.characteristics:()I
            ireturn
        end local 0 // java.util.stream.Streams$ConcatSpliterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljava/util/stream/Streams$ConcatSpliterator<TT;TT_SPLITR;>;

  public java.util.Comparator<? super T> getComparator();
    descriptor: ()Ljava/util/Comparator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.stream.Streams$ConcatSpliterator this
         0: .line 766
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.beforeSplit:Z
            ifeq 2
         1: .line 767
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
         2: .line 768
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.stream.Streams$ConcatSpliterator.bSpliterator:Ljava/util/Spliterator;
            invokeinterface java.util.Spliterator.getComparator:()Ljava/util/Comparator;
            areturn
        end local 0 // java.util.stream.Streams$ConcatSpliterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/util/stream/Streams$ConcatSpliterator<TT;TT_SPLITR;>;
    Signature: ()Ljava/util/Comparator<-TT;>;
}
Signature: <T:Ljava/lang/Object;T_SPLITR::Ljava/util/Spliterator<TT;>;>Ljava/lang/Object;Ljava/util/Spliterator<TT;>;
SourceFile: "Streams.java"
NestHost: java.util.stream.Streams
InnerClasses:
  abstract ConcatSpliterator = java.util.stream.Streams$ConcatSpliterator of java.util.stream.Streams
  OfDouble = java.util.stream.Streams$ConcatSpliterator$OfDouble of java.util.stream.Streams$ConcatSpliterator
  OfInt = java.util.stream.Streams$ConcatSpliterator$OfInt of java.util.stream.Streams$ConcatSpliterator
  OfLong = java.util.stream.Streams$ConcatSpliterator$OfLong of java.util.stream.Streams$ConcatSpliterator
  private abstract OfPrimitive = java.util.stream.Streams$ConcatSpliterator$OfPrimitive of java.util.stream.Streams$ConcatSpliterator
  OfRef = java.util.stream.Streams$ConcatSpliterator$OfRef of java.util.stream.Streams$ConcatSpliterator