final class io.reactivex.subjects.BehaviorSubject$BehaviorDisposable<T> implements io.reactivex.disposables.Disposable, io.reactivex.internal.util.AppendOnlyLinkedArrayList$NonThrowingPredicate<java.lang.Object>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: io.reactivex.subjects.BehaviorSubject$BehaviorDisposable
  super_class: java.lang.Object
{
  final io.reactivex.Observer<? super T> downstream;
    descriptor: Lio/reactivex/Observer;
    flags: (0x0010) ACC_FINAL
    Signature: Lio/reactivex/Observer<-TT;>;

  final io.reactivex.subjects.BehaviorSubject<T> state;
    descriptor: Lio/reactivex/subjects/BehaviorSubject;
    flags: (0x0010) ACC_FINAL
    Signature: Lio/reactivex/subjects/BehaviorSubject<TT;>;

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

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

  io.reactivex.internal.util.AppendOnlyLinkedArrayList<java.lang.Object> queue;
    descriptor: Lio/reactivex/internal/util/AppendOnlyLinkedArrayList;
    flags: (0x0000) 
    Signature: Lio/reactivex/internal/util/AppendOnlyLinkedArrayList<Ljava/lang/Object;>;

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

  volatile boolean cancelled;
    descriptor: Z
    flags: (0x0040) ACC_VOLATILE

  long index;
    descriptor: J
    flags: (0x0000) 

  void <init>(io.reactivex.Observer<? super T>, io.reactivex.subjects.BehaviorSubject<T>);
    descriptor: (Lio/reactivex/Observer;Lio/reactivex/subjects/BehaviorSubject;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.reactivex.subjects.BehaviorSubject$BehaviorDisposable this
        start local 1 // io.reactivex.Observer actual
        start local 2 // io.reactivex.subjects.BehaviorSubject state
         0: .line 485
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 486
            aload 0 /* this */
            aload 1 /* actual */
            putfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.downstream:Lio/reactivex/Observer;
         2: .line 487
            aload 0 /* this */
            aload 2 /* state */
            putfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.state:Lio/reactivex/subjects/BehaviorSubject;
         3: .line 488
            return
        end local 2 // io.reactivex.subjects.BehaviorSubject state
        end local 1 // io.reactivex.Observer actual
        end local 0 // io.reactivex.subjects.BehaviorSubject$BehaviorDisposable this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lio/reactivex/subjects/BehaviorSubject$BehaviorDisposable<TT;>;
            0    4     1  actual  Lio/reactivex/Observer<-TT;>;
            0    4     2   state  Lio/reactivex/subjects/BehaviorSubject<TT;>;
    Signature: (Lio/reactivex/Observer<-TT;>;Lio/reactivex/subjects/BehaviorSubject<TT;>;)V
    MethodParameters:
        Name  Flags
      actual  
      state   

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.reactivex.subjects.BehaviorSubject$BehaviorDisposable this
         0: .line 492
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.cancelled:Z
            ifne 3
         1: .line 493
            aload 0 /* this */
            iconst_1
            putfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.cancelled:Z
         2: .line 495
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.state:Lio/reactivex/subjects/BehaviorSubject;
            aload 0 /* this */
            invokevirtual io.reactivex.subjects.BehaviorSubject.remove:(Lio/reactivex/subjects/BehaviorSubject$BehaviorDisposable;)V
         3: .line 497
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.reactivex.subjects.BehaviorSubject$BehaviorDisposable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/reactivex/subjects/BehaviorSubject$BehaviorDisposable<TT;>;

  public boolean isDisposed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.reactivex.subjects.BehaviorSubject$BehaviorDisposable this
         0: .line 501
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.cancelled:Z
            ireturn
        end local 0 // io.reactivex.subjects.BehaviorSubject$BehaviorDisposable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/reactivex/subjects/BehaviorSubject$BehaviorDisposable<TT;>;

  void emitFirst();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // io.reactivex.subjects.BehaviorSubject$BehaviorDisposable this
         0: .line 505
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.cancelled:Z
            ifeq 2
         1: .line 506
            return
         2: .line 509
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         3: .line 510
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.cancelled:Z
            ifeq 6
         4: .line 511
            aload 2
            monitorexit
         5: return
         6: .line 513
      StackMap locals: io.reactivex.subjects.BehaviorSubject$BehaviorDisposable top io.reactivex.subjects.BehaviorSubject$BehaviorDisposable
      StackMap stack:
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.next:Z
            ifeq 9
         7: .line 514
            aload 2
            monitorexit
         8: return
         9: .line 517
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.state:Lio/reactivex/subjects/BehaviorSubject;
            astore 3 /* s */
        start local 3 // io.reactivex.subjects.BehaviorSubject s
        10: .line 518
            aload 3 /* s */
            getfield io.reactivex.subjects.BehaviorSubject.readLock:Ljava/util/concurrent/locks/Lock;
            astore 4 /* lock */
        start local 4 // java.util.concurrent.locks.Lock lock
        11: .line 520
            aload 4 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
        12: .line 521
            aload 0 /* this */
            aload 3 /* s */
            getfield io.reactivex.subjects.BehaviorSubject.index:J
            putfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.index:J
        13: .line 522
            aload 3 /* s */
            getfield io.reactivex.subjects.BehaviorSubject.value:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            astore 1 /* o */
        start local 1 // java.lang.Object o
        14: .line 523
            aload 4 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        15: .line 525
            aload 0 /* this */
            aload 1 /* o */
            ifnull 16
            iconst_1
            goto 17
      StackMap locals: io.reactivex.subjects.BehaviorSubject$BehaviorDisposable java.lang.Object io.reactivex.subjects.BehaviorSubject$BehaviorDisposable io.reactivex.subjects.BehaviorSubject java.util.concurrent.locks.Lock
      StackMap stack: io.reactivex.subjects.BehaviorSubject$BehaviorDisposable
        16: iconst_0
      StackMap locals: io.reactivex.subjects.BehaviorSubject$BehaviorDisposable java.lang.Object io.reactivex.subjects.BehaviorSubject$BehaviorDisposable io.reactivex.subjects.BehaviorSubject java.util.concurrent.locks.Lock
      StackMap stack: io.reactivex.subjects.BehaviorSubject$BehaviorDisposable int
        17: putfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.emitting:Z
        18: .line 526
            aload 0 /* this */
            iconst_1
            putfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.next:Z
        end local 4 // java.util.concurrent.locks.Lock lock
        end local 3 // io.reactivex.subjects.BehaviorSubject s
        19: .line 509
            aload 2
            monitorexit
        20: goto 23
        end local 1 // java.lang.Object o
      StackMap locals: io.reactivex.subjects.BehaviorSubject$BehaviorDisposable top io.reactivex.subjects.BehaviorSubject$BehaviorDisposable
      StackMap stack: java.lang.Throwable
        21: aload 2
            monitorexit
        22: athrow
        start local 1 // java.lang.Object o
        23: .line 529
      StackMap locals: io.reactivex.subjects.BehaviorSubject$BehaviorDisposable java.lang.Object
      StackMap stack:
            aload 1 /* o */
            ifnull 27
        24: .line 530
            aload 0 /* this */
            aload 1 /* o */
            invokevirtual io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.test:(Ljava/lang/Object;)Z
            ifeq 26
        25: .line 531
            return
        26: .line 534
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.emitLoop:()V
        27: .line 536
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object o
        end local 0 // io.reactivex.subjects.BehaviorSubject$BehaviorDisposable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   28     0  this  Lio/reactivex/subjects/BehaviorSubject$BehaviorDisposable<TT;>;
           14   21     1     o  Ljava/lang/Object;
           23   28     1     o  Ljava/lang/Object;
           10   19     3     s  Lio/reactivex/subjects/BehaviorSubject<TT;>;
           11   19     4  lock  Ljava/util/concurrent/locks/Lock;
      Exception table:
        from    to  target  type
           3     5      21  any
           6     8      21  any
           9    20      21  any
          21    22      21  any

  void emitNext(java.lang.Object, long);
    descriptor: (Ljava/lang/Object;J)V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // io.reactivex.subjects.BehaviorSubject$BehaviorDisposable this
        start local 1 // java.lang.Object value
        start local 2 // long stateIndex
         0: .line 539
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.cancelled:Z
            ifeq 2
         1: .line 540
            return
         2: .line 542
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.fastPath:Z
            ifne 24
         3: .line 543
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         4: .line 544
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.cancelled:Z
            ifeq 7
         5: .line 545
            aload 4
            monitorexit
         6: return
         7: .line 547
      StackMap locals: io.reactivex.subjects.BehaviorSubject$BehaviorDisposable
      StackMap stack:
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.index:J
            lload 2 /* stateIndex */
            lcmp
            ifne 10
         8: .line 548
            aload 4
            monitorexit
         9: return
        10: .line 550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.emitting:Z
            ifeq 18
        11: .line 551
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.queue:Lio/reactivex/internal/util/AppendOnlyLinkedArrayList;
            astore 5 /* q */
        start local 5 // io.reactivex.internal.util.AppendOnlyLinkedArrayList q
        12: .line 552
            aload 5 /* q */
            ifnonnull 15
        13: .line 553
            new io.reactivex.internal.util.AppendOnlyLinkedArrayList
            dup
            iconst_4
            invokespecial io.reactivex.internal.util.AppendOnlyLinkedArrayList.<init>:(I)V
            astore 5 /* q */
        14: .line 554
            aload 0 /* this */
            aload 5 /* q */
            putfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.queue:Lio/reactivex/internal/util/AppendOnlyLinkedArrayList;
        15: .line 556
      StackMap locals: io.reactivex.internal.util.AppendOnlyLinkedArrayList
      StackMap stack:
            aload 5 /* q */
            aload 1 /* value */
            invokevirtual io.reactivex.internal.util.AppendOnlyLinkedArrayList.add:(Ljava/lang/Object;)V
        16: .line 557
            aload 4
            monitorexit
        17: return
        end local 5 // io.reactivex.internal.util.AppendOnlyLinkedArrayList q
        18: .line 559
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.next:Z
        19: .line 543
            aload 4
            monitorexit
        20: goto 23
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: aload 4
            monitorexit
        22: athrow
        23: .line 561
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.fastPath:Z
        24: .line 564
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* value */
            invokevirtual io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.test:(Ljava/lang/Object;)Z
            pop
        25: .line 565
            return
        end local 2 // long stateIndex
        end local 1 // java.lang.Object value
        end local 0 // io.reactivex.subjects.BehaviorSubject$BehaviorDisposable this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   26     0        this  Lio/reactivex/subjects/BehaviorSubject$BehaviorDisposable<TT;>;
            0   26     1       value  Ljava/lang/Object;
            0   26     2  stateIndex  J
           12   18     5           q  Lio/reactivex/internal/util/AppendOnlyLinkedArrayList<Ljava/lang/Object;>;
      Exception table:
        from    to  target  type
           4     6      21  any
           7     9      21  any
          10    17      21  any
          18    20      21  any
          21    22      21  any
    MethodParameters:
            Name  Flags
      value       
      stateIndex  

  public boolean test(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.reactivex.subjects.BehaviorSubject$BehaviorDisposable this
        start local 1 // java.lang.Object o
         0: .line 569
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.cancelled:Z
            ifne 1
            aload 1 /* o */
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.downstream:Lio/reactivex/Observer;
            invokestatic io.reactivex.internal.util.NotificationLite.accept:(Ljava/lang/Object;Lio/reactivex/Observer;)Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // java.lang.Object o
        end local 0 // io.reactivex.subjects.BehaviorSubject$BehaviorDisposable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/reactivex/subjects/BehaviorSubject$BehaviorDisposable<TT;>;
            0    2     1     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     

  void emitLoop();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // io.reactivex.subjects.BehaviorSubject$BehaviorDisposable this
         0: .line 574
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.cancelled:Z
            ifeq 2
         1: .line 575
            return
         2: .line 578
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         3: .line 579
            aload 0 /* this */
            getfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.queue:Lio/reactivex/internal/util/AppendOnlyLinkedArrayList;
            astore 1 /* q */
        start local 1 // io.reactivex.internal.util.AppendOnlyLinkedArrayList q
         4: .line 580
            aload 1 /* q */
            ifnonnull 8
         5: .line 581
            aload 0 /* this */
            iconst_0
            putfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.emitting:Z
         6: .line 582
            aload 2
            monitorexit
         7: return
         8: .line 584
      StackMap locals: io.reactivex.internal.util.AppendOnlyLinkedArrayList io.reactivex.subjects.BehaviorSubject$BehaviorDisposable
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.reactivex.subjects.BehaviorSubject$BehaviorDisposable.queue:Lio/reactivex/internal/util/AppendOnlyLinkedArrayList;
         9: .line 578
            aload 2
            monitorexit
        10: goto 13
        end local 1 // io.reactivex.internal.util.AppendOnlyLinkedArrayList q
      StackMap locals: io.reactivex.subjects.BehaviorSubject$BehaviorDisposable top io.reactivex.subjects.BehaviorSubject$BehaviorDisposable
      StackMap stack: java.lang.Throwable
        11: aload 2
            monitorexit
        12: athrow
        start local 1 // io.reactivex.internal.util.AppendOnlyLinkedArrayList q
        13: .line 587
      StackMap locals: io.reactivex.subjects.BehaviorSubject$BehaviorDisposable io.reactivex.internal.util.AppendOnlyLinkedArrayList
      StackMap stack:
            aload 1 /* q */
            aload 0 /* this */
            invokevirtual io.reactivex.internal.util.AppendOnlyLinkedArrayList.forEachWhile:(Lio/reactivex/internal/util/AppendOnlyLinkedArrayList$NonThrowingPredicate;)V
        end local 1 // io.reactivex.internal.util.AppendOnlyLinkedArrayList q
        14: .line 573
            goto 0
        end local 0 // io.reactivex.subjects.BehaviorSubject$BehaviorDisposable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lio/reactivex/subjects/BehaviorSubject$BehaviorDisposable<TT;>;
            4   11     1     q  Lio/reactivex/internal/util/AppendOnlyLinkedArrayList<Ljava/lang/Object;>;
           13   14     1     q  Lio/reactivex/internal/util/AppendOnlyLinkedArrayList<Ljava/lang/Object;>;
      Exception table:
        from    to  target  type
           3     7      11  any
           8    10      11  any
          11    12      11  any
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lio/reactivex/disposables/Disposable;Lio/reactivex/internal/util/AppendOnlyLinkedArrayList$NonThrowingPredicate<Ljava/lang/Object;>;
SourceFile: "BehaviorSubject.java"
NestHost: io.reactivex.subjects.BehaviorSubject
InnerClasses:
  public abstract NonThrowingPredicate = io.reactivex.internal.util.AppendOnlyLinkedArrayList$NonThrowingPredicate of io.reactivex.internal.util.AppendOnlyLinkedArrayList
  final BehaviorDisposable = io.reactivex.subjects.BehaviorSubject$BehaviorDisposable of io.reactivex.subjects.BehaviorSubject