public abstract class com.google.common.util.concurrent.AbstractFuture<V> extends com.google.common.util.concurrent.FluentFuture<V>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.google.common.util.concurrent.AbstractFuture
  super_class: com.google.common.util.concurrent.FluentFuture
{
  private static final boolean GENERATE_CANCELLATION_CAUSES;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.logging.Logger log;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final long SPIN_THRESHOLD_NANOS;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1000

  private static final com.google.common.util.concurrent.AbstractFuture$AtomicHelper ATOMIC_HELPER;
    descriptor: Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.Object NULL;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private volatile java.lang.Object value;
    descriptor: Ljava/lang/Object;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.Nullable()

  private volatile com.google.common.util.concurrent.AbstractFuture$Listener listeners;
    descriptor: Lcom/google/common/util/concurrent/AbstractFuture$Listener;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.Nullable()

  private volatile com.google.common.util.concurrent.AbstractFuture$Waiter waiters;
    descriptor: Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    RuntimeVisibleTypeAnnotations: 
      FIELD
        org.checkerframework.checker.nullness.qual.Nullable()

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=5, args_size=0
         0: .line 73
            ldc "guava.concurrent.generate_cancellation_cause"
            ldc "false"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
         1: .line 72
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
         2: .line 71
            putstatic com.google.common.util.concurrent.AbstractFuture.GENERATE_CANCELLATION_CAUSES:Z
         3: .line 116
            ldc Lcom/google/common/util/concurrent/AbstractFuture;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
            putstatic com.google.common.util.concurrent.AbstractFuture.log:Ljava/util/logging/Logger;
         4: .line 126
            aconst_null
            astore 1 /* thrownUnsafeFailure */
        start local 1 // java.lang.Throwable thrownUnsafeFailure
         5: .line 127
            aconst_null
            astore 2 /* thrownAtomicReferenceFieldUpdaterFailure */
        start local 2 // java.lang.Throwable thrownAtomicReferenceFieldUpdaterFailure
         6: .line 130
            new com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper
            dup
            invokespecial com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper.<init>:()V
            astore 0 /* helper */
        start local 0 // com.google.common.util.concurrent.AbstractFuture$AtomicHelper helper
         7: .line 131
            goto 22
        end local 0 // com.google.common.util.concurrent.AbstractFuture$AtomicHelper helper
      StackMap locals: top java.lang.Throwable java.lang.Throwable
      StackMap stack: java.lang.Throwable
         8: astore 3 /* unsafeFailure */
        start local 3 // java.lang.Throwable unsafeFailure
         9: .line 132
            aload 3 /* unsafeFailure */
            astore 1 /* thrownUnsafeFailure */
        10: .line 138
            new com.google.common.util.concurrent.AbstractFuture$SafeAtomicHelper
            dup
        11: .line 139
            ldc Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            ldc Ljava/lang/Thread;
            ldc "thread"
            invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
        12: .line 140
            ldc Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            ldc Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            ldc "next"
            invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
        13: .line 141
            ldc Lcom/google/common/util/concurrent/AbstractFuture;
            ldc Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            ldc "waiters"
            invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
        14: .line 142
            ldc Lcom/google/common/util/concurrent/AbstractFuture;
            ldc Lcom/google/common/util/concurrent/AbstractFuture$Listener;
            ldc "listeners"
            invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
        15: .line 143
            ldc Lcom/google/common/util/concurrent/AbstractFuture;
            ldc Ljava/lang/Object;
            ldc "value"
            invokestatic java.util.concurrent.atomic.AtomicReferenceFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
        16: .line 138
            invokespecial com.google.common.util.concurrent.AbstractFuture$SafeAtomicHelper.<init>:(Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;)V
        17: .line 137
            astore 0 /* helper */
        start local 0 // com.google.common.util.concurrent.AbstractFuture$AtomicHelper helper
        18: .line 144
            goto 22
        end local 0 // com.google.common.util.concurrent.AbstractFuture$AtomicHelper helper
      StackMap locals: top java.lang.Throwable java.lang.Throwable java.lang.Throwable
      StackMap stack: java.lang.Throwable
        19: astore 4 /* atomicReferenceFieldUpdaterFailure */
        start local 4 // java.lang.Throwable atomicReferenceFieldUpdaterFailure
        20: .line 149
            aload 4 /* atomicReferenceFieldUpdaterFailure */
            astore 2 /* thrownAtomicReferenceFieldUpdaterFailure */
        21: .line 150
            new com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper
            dup
            invokespecial com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper.<init>:()V
            astore 0 /* helper */
        end local 4 // java.lang.Throwable atomicReferenceFieldUpdaterFailure
        end local 3 // java.lang.Throwable unsafeFailure
        start local 0 // com.google.common.util.concurrent.AbstractFuture$AtomicHelper helper
        22: .line 153
      StackMap locals: com.google.common.util.concurrent.AbstractFuture$AtomicHelper java.lang.Throwable java.lang.Throwable
      StackMap stack:
            aload 0 /* helper */
            putstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
        23: .line 162
            aload 2 /* thrownAtomicReferenceFieldUpdaterFailure */
            ifnull 28
        24: .line 163
            getstatic com.google.common.util.concurrent.AbstractFuture.log:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.SEVERE:Ljava/util/logging/Level;
            ldc "UnsafeAtomicHelper is broken!"
            aload 1 /* thrownUnsafeFailure */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        25: .line 164
            getstatic com.google.common.util.concurrent.AbstractFuture.log:Ljava/util/logging/Logger;
        26: .line 165
            getstatic java.util.logging.Level.SEVERE:Ljava/util/logging/Level;
            ldc "SafeAtomicHelper is broken!"
            aload 2 /* thrownAtomicReferenceFieldUpdaterFailure */
        27: .line 164
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 2 // java.lang.Throwable thrownAtomicReferenceFieldUpdaterFailure
        end local 1 // java.lang.Throwable thrownUnsafeFailure
        end local 0 // com.google.common.util.concurrent.AbstractFuture$AtomicHelper helper
        28: .line 260
      StackMap locals:
      StackMap stack:
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic com.google.common.util.concurrent.AbstractFuture.NULL:Ljava/lang/Object;
            return
      LocalVariableTable:
        Start  End  Slot                                      Name  Signature
            7    8     0                                    helper  Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
           18   19     0                                    helper  Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
           22   28     0                                    helper  Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
            5   28     1                       thrownUnsafeFailure  Ljava/lang/Throwable;
            6   28     2  thrownAtomicReferenceFieldUpdaterFailure  Ljava/lang/Throwable;
            9   22     3                             unsafeFailure  Ljava/lang/Throwable;
           20   22     4        atomicReferenceFieldUpdaterFailure  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.Throwable
          10    18      19  Class java.lang.Throwable

  private void removeWaiter(com.google.common.util.concurrent.AbstractFuture$Waiter);
    descriptor: (Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
        start local 1 // com.google.common.util.concurrent.AbstractFuture$Waiter node
         0: .line 217
            aload 1 /* node */
            aconst_null
            putfield com.google.common.util.concurrent.AbstractFuture$Waiter.thread:Ljava/lang/Thread;
         1: .line 220
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* pred */
        start local 2 // com.google.common.util.concurrent.AbstractFuture$Waiter pred
         2: .line 221
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.waiters:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            astore 3 /* curr */
        start local 3 // com.google.common.util.concurrent.AbstractFuture$Waiter curr
         3: .line 222
            aload 3 /* curr */
            getstatic com.google.common.util.concurrent.AbstractFuture$Waiter.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            if_acmpne 16
         4: .line 223
            return
         5: .line 227
      StackMap locals: com.google.common.util.concurrent.AbstractFuture$Waiter com.google.common.util.concurrent.AbstractFuture$Waiter
      StackMap stack:
            aload 3 /* curr */
            getfield com.google.common.util.concurrent.AbstractFuture$Waiter.next:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            astore 4 /* succ */
        start local 4 // com.google.common.util.concurrent.AbstractFuture$Waiter succ
         6: .line 228
            aload 3 /* curr */
            getfield com.google.common.util.concurrent.AbstractFuture$Waiter.thread:Ljava/lang/Thread;
            ifnull 9
         7: .line 229
            aload 3 /* curr */
            astore 2 /* pred */
         8: .line 230
            goto 15
      StackMap locals: com.google.common.util.concurrent.AbstractFuture$Waiter
      StackMap stack:
         9: aload 2 /* pred */
            ifnull 13
        10: .line 231
            aload 2 /* pred */
            aload 4 /* succ */
            putfield com.google.common.util.concurrent.AbstractFuture$Waiter.next:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
        11: .line 232
            aload 2 /* pred */
            getfield com.google.common.util.concurrent.AbstractFuture$Waiter.thread:Ljava/lang/Thread;
            ifnonnull 15
        12: .line 233
            goto 1
        13: .line 235
      StackMap locals:
      StackMap stack:
            getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
            aload 0 /* this */
            aload 3 /* curr */
            aload 4 /* succ */
            invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casWaiters:(Lcom/google/common/util/concurrent/AbstractFuture;Lcom/google/common/util/concurrent/AbstractFuture$Waiter;Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)Z
            ifne 15
        14: .line 236
            goto 1
        15: .line 238
      StackMap locals:
      StackMap stack:
            aload 4 /* succ */
            astore 3 /* curr */
        end local 4 // com.google.common.util.concurrent.AbstractFuture$Waiter succ
        16: .line 226
      StackMap locals:
      StackMap stack:
            aload 3 /* curr */
            ifnonnull 5
        end local 3 // com.google.common.util.concurrent.AbstractFuture$Waiter curr
        end local 2 // com.google.common.util.concurrent.AbstractFuture$Waiter pred
        17: .line 242
            return
        end local 1 // com.google.common.util.concurrent.AbstractFuture$Waiter node
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            0   18     1  node  Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            2   17     2  pred  Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            3   17     3  curr  Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            6   16     4  succ  Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
    MethodParameters:
      Name  Flags
      node  

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
         0: .line 353
            aload 0 /* this */
            invokespecial com.google.common.util.concurrent.FluentFuture.<init>:()V
            return
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;

  public V get(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
        start local 1 // long timeout
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 393
            aload 3 /* unit */
            lload 1 /* timeout */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 4 /* remainingNanos */
        start local 4 // long remainingNanos
         1: .line 394
            invokestatic java.lang.Thread.interrupted:()Z
            ifeq 3
         2: .line 395
            new java.lang.InterruptedException
            dup
            invokespecial java.lang.InterruptedException.<init>:()V
            athrow
         3: .line 397
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            astore 6 /* localValue */
        start local 6 // java.lang.Object localValue
         4: .line 398
            aload 6 /* localValue */
            ifnull 5
            iconst_1
            goto 6
      StackMap locals: java.lang.Object
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: aload 6 /* localValue */
            instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
            ifeq 7
            iconst_0
            goto 8
      StackMap locals:
      StackMap stack: int
         7: iconst_1
      StackMap locals: com.google.common.util.concurrent.AbstractFuture long java.util.concurrent.TimeUnit long java.lang.Object
      StackMap stack: int int
         8: iand
            ifeq 10
         9: .line 399
            aload 0 /* this */
            aload 6 /* localValue */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.getDoneValue:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        10: .line 402
      StackMap locals:
      StackMap stack:
            lload 4 /* remainingNanos */
            lconst_0
            lcmp
            ifle 11
            invokestatic java.lang.System.nanoTime:()J
            lload 4 /* remainingNanos */
            ladd
            goto 12
      StackMap locals:
      StackMap stack:
        11: lconst_0
      StackMap locals:
      StackMap stack: long
        12: lstore 7 /* endNanos */
        start local 7 // long endNanos
        13: .line 404
            lload 4 /* remainingNanos */
            ldc 1000
            lcmp
            iflt 47
        14: .line 405
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.waiters:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            astore 9 /* oldHead */
        start local 9 // com.google.common.util.concurrent.AbstractFuture$Waiter oldHead
        15: .line 406
            aload 9 /* oldHead */
            getstatic com.google.common.util.concurrent.AbstractFuture$Waiter.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            if_acmpeq 36
        16: .line 407
            new com.google.common.util.concurrent.AbstractFuture$Waiter
            dup
            invokespecial com.google.common.util.concurrent.AbstractFuture$Waiter.<init>:()V
            astore 10 /* node */
        start local 10 // com.google.common.util.concurrent.AbstractFuture$Waiter node
        17: .line 409
      StackMap locals: long com.google.common.util.concurrent.AbstractFuture$Waiter com.google.common.util.concurrent.AbstractFuture$Waiter
      StackMap stack:
            aload 10 /* node */
            aload 9 /* oldHead */
            invokevirtual com.google.common.util.concurrent.AbstractFuture$Waiter.setNext:(Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)V
        18: .line 410
            getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
            aload 0 /* this */
            aload 9 /* oldHead */
            aload 10 /* node */
            invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casWaiters:(Lcom/google/common/util/concurrent/AbstractFuture;Lcom/google/common/util/concurrent/AbstractFuture$Waiter;Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)Z
            ifeq 34
        19: .line 412
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 4 /* remainingNanos */
            invokestatic java.util.concurrent.locks.LockSupport.parkNanos:(Ljava/lang/Object;J)V
        20: .line 414
            invokestatic java.lang.Thread.interrupted:()Z
            ifeq 23
        21: .line 415
            aload 0 /* this */
            aload 10 /* node */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.removeWaiter:(Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)V
        22: .line 416
            new java.lang.InterruptedException
            dup
            invokespecial java.lang.InterruptedException.<init>:()V
            athrow
        23: .line 421
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            astore 6 /* localValue */
        24: .line 422
            aload 6 /* localValue */
            ifnull 25
            iconst_1
            goto 26
      StackMap locals:
      StackMap stack:
        25: iconst_0
      StackMap locals:
      StackMap stack: int
        26: aload 6 /* localValue */
            instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
            ifeq 27
            iconst_0
            goto 28
      StackMap locals:
      StackMap stack: int
        27: iconst_1
      StackMap locals: com.google.common.util.concurrent.AbstractFuture long java.util.concurrent.TimeUnit long java.lang.Object long com.google.common.util.concurrent.AbstractFuture$Waiter com.google.common.util.concurrent.AbstractFuture$Waiter
      StackMap stack: int int
        28: iand
            ifeq 30
        29: .line 423
            aload 0 /* this */
            aload 6 /* localValue */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.getDoneValue:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        30: .line 427
      StackMap locals:
      StackMap stack:
            lload 7 /* endNanos */
            invokestatic java.lang.System.nanoTime:()J
            lsub
            lstore 4 /* remainingNanos */
        31: .line 428
            lload 4 /* remainingNanos */
            ldc 1000
            lcmp
            ifge 19
        32: .line 430
            aload 0 /* this */
            aload 10 /* node */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.removeWaiter:(Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)V
        33: .line 431
            goto 47
        34: .line 435
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.waiters:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            astore 9 /* oldHead */
        35: .line 436
            aload 9 /* oldHead */
            getstatic com.google.common.util.concurrent.AbstractFuture$Waiter.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            if_acmpne 17
        end local 10 // com.google.common.util.concurrent.AbstractFuture$Waiter node
        36: .line 440
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            invokevirtual com.google.common.util.concurrent.AbstractFuture.getDoneValue:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 9 // com.google.common.util.concurrent.AbstractFuture$Waiter oldHead
        37: .line 445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            astore 6 /* localValue */
        38: .line 446
            aload 6 /* localValue */
            ifnull 39
            iconst_1
            goto 40
      StackMap locals:
      StackMap stack:
        39: iconst_0
      StackMap locals:
      StackMap stack: int
        40: aload 6 /* localValue */
            instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
            ifeq 41
            iconst_0
            goto 42
      StackMap locals:
      StackMap stack: int
        41: iconst_1
      StackMap locals: com.google.common.util.concurrent.AbstractFuture long java.util.concurrent.TimeUnit long java.lang.Object long
      StackMap stack: int int
        42: iand
            ifeq 44
        43: .line 447
            aload 0 /* this */
            aload 6 /* localValue */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.getDoneValue:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        44: .line 449
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.interrupted:()Z
            ifeq 46
        45: .line 450
            new java.lang.InterruptedException
            dup
            invokespecial java.lang.InterruptedException.<init>:()V
            athrow
        46: .line 452
      StackMap locals:
      StackMap stack:
            lload 7 /* endNanos */
            invokestatic java.lang.System.nanoTime:()J
            lsub
            lstore 4 /* remainingNanos */
        47: .line 444
      StackMap locals:
      StackMap stack:
            lload 4 /* remainingNanos */
            lconst_0
            lcmp
            ifgt 37
        48: .line 455
            aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.toString:()Ljava/lang/String;
            astore 9 /* futureToString */
        start local 9 // java.lang.String futureToString
        49: .line 459
            aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.isDone:()Z
            ifeq 58
        50: .line 460
            new java.util.concurrent.TimeoutException
            dup
        51: .line 461
            new java.lang.StringBuilder
            dup
            ldc "Waited "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        52: .line 462
            lload 1 /* timeout */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        53: .line 463
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        54: .line 464
            aload 3 /* unit */
            invokevirtual java.util.concurrent.TimeUnit.toString:()Ljava/lang/String;
            invokestatic com.google.common.base.Ascii.toLowerCase:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        55: .line 465
            ldc " but future completed as timeout expired"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        56: .line 461
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        57: .line 460
            invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
            athrow
        58: .line 467
      StackMap locals: java.lang.String
      StackMap stack:
            new java.util.concurrent.TimeoutException
            dup
        59: .line 468
            new java.lang.StringBuilder
            dup
            ldc "Waited "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* timeout */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* unit */
            invokevirtual java.util.concurrent.TimeUnit.toString:()Ljava/lang/String;
            invokestatic com.google.common.base.Ascii.toLowerCase:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* futureToString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        60: .line 467
            invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // java.lang.String futureToString
        end local 7 // long endNanos
        end local 6 // java.lang.Object localValue
        end local 4 // long remainingNanos
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long timeout
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   61     0            this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            0   61     1         timeout  J
            0   61     3            unit  Ljava/util/concurrent/TimeUnit;
            1   61     4  remainingNanos  J
            4   61     6      localValue  Ljava/lang/Object;
           13   61     7        endNanos  J
           15   37     9         oldHead  Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
           17   36    10            node  Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
           49   61     9  futureToString  Ljava/lang/String;
    Exceptions:
      throws java.lang.InterruptedException, java.util.concurrent.TimeoutException, java.util.concurrent.ExecutionException
    Signature: (JLjava/util/concurrent/TimeUnit;)TV;
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
         Name  Flags
      timeout  
      unit     

  public V get();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
         0: .line 482
            invokestatic java.lang.Thread.interrupted:()Z
            ifeq 2
         1: .line 483
            new java.lang.InterruptedException
            dup
            invokespecial java.lang.InterruptedException.<init>:()V
            athrow
         2: .line 485
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            astore 1 /* localValue */
        start local 1 // java.lang.Object localValue
         3: .line 486
            aload 1 /* localValue */
            ifnull 4
            iconst_1
            goto 5
      StackMap locals: java.lang.Object
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: aload 1 /* localValue */
            instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
            ifeq 6
            iconst_0
            goto 7
      StackMap locals:
      StackMap stack: int
         6: iconst_1
      StackMap locals: com.google.common.util.concurrent.AbstractFuture java.lang.Object
      StackMap stack: int int
         7: iand
            ifeq 9
         8: .line 487
            aload 0 /* this */
            aload 1 /* localValue */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.getDoneValue:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         9: .line 489
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.waiters:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            astore 2 /* oldHead */
        start local 2 // com.google.common.util.concurrent.AbstractFuture$Waiter oldHead
        10: .line 490
            aload 2 /* oldHead */
            getstatic com.google.common.util.concurrent.AbstractFuture$Waiter.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            if_acmpeq 27
        11: .line 491
            new com.google.common.util.concurrent.AbstractFuture$Waiter
            dup
            invokespecial com.google.common.util.concurrent.AbstractFuture$Waiter.<init>:()V
            astore 3 /* node */
        start local 3 // com.google.common.util.concurrent.AbstractFuture$Waiter node
        12: .line 493
      StackMap locals: com.google.common.util.concurrent.AbstractFuture$Waiter com.google.common.util.concurrent.AbstractFuture$Waiter
      StackMap stack:
            aload 3 /* node */
            aload 2 /* oldHead */
            invokevirtual com.google.common.util.concurrent.AbstractFuture$Waiter.setNext:(Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)V
        13: .line 494
            getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
            aload 0 /* this */
            aload 2 /* oldHead */
            aload 3 /* node */
            invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casWaiters:(Lcom/google/common/util/concurrent/AbstractFuture;Lcom/google/common/util/concurrent/AbstractFuture$Waiter;Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)Z
            ifeq 25
        14: .line 497
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic java.util.concurrent.locks.LockSupport.park:(Ljava/lang/Object;)V
        15: .line 499
            invokestatic java.lang.Thread.interrupted:()Z
            ifeq 18
        16: .line 500
            aload 0 /* this */
            aload 3 /* node */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.removeWaiter:(Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)V
        17: .line 501
            new java.lang.InterruptedException
            dup
            invokespecial java.lang.InterruptedException.<init>:()V
            athrow
        18: .line 505
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            astore 1 /* localValue */
        19: .line 506
            aload 1 /* localValue */
            ifnull 20
            iconst_1
            goto 21
      StackMap locals:
      StackMap stack:
        20: iconst_0
      StackMap locals:
      StackMap stack: int
        21: aload 1 /* localValue */
            instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
            ifeq 22
            iconst_0
            goto 23
      StackMap locals:
      StackMap stack: int
        22: iconst_1
      StackMap locals: com.google.common.util.concurrent.AbstractFuture java.lang.Object com.google.common.util.concurrent.AbstractFuture$Waiter com.google.common.util.concurrent.AbstractFuture$Waiter
      StackMap stack: int int
        23: iand
            ifeq 14
        24: .line 507
            aload 0 /* this */
            aload 1 /* localValue */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.getDoneValue:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        25: .line 511
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.waiters:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            astore 2 /* oldHead */
        26: .line 512
            aload 2 /* oldHead */
            getstatic com.google.common.util.concurrent.AbstractFuture$Waiter.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            if_acmpne 12
        end local 3 // com.google.common.util.concurrent.AbstractFuture$Waiter node
        27: .line 516
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            invokevirtual com.google.common.util.concurrent.AbstractFuture.getDoneValue:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // com.google.common.util.concurrent.AbstractFuture$Waiter oldHead
        end local 1 // java.lang.Object localValue
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   28     0        this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            3   28     1  localValue  Ljava/lang/Object;
           10   28     2     oldHead  Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
           12   27     3        node  Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
    Exceptions:
      throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
    Signature: ()TV;
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()

  private V getDoneValue();
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
        start local 1 // java.lang.Object obj
         0: .line 523
            aload 1 /* obj */
            instanceof com.google.common.util.concurrent.AbstractFuture$Cancellation
            ifeq 2
         1: .line 524
            ldc "Task was cancelled."
            aload 1 /* obj */
            checkcast com.google.common.util.concurrent.AbstractFuture$Cancellation
            getfield com.google.common.util.concurrent.AbstractFuture$Cancellation.cause:Ljava/lang/Throwable;
            invokestatic com.google.common.util.concurrent.AbstractFuture.cancellationExceptionWithCause:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/util/concurrent/CancellationException;
            athrow
         2: .line 525
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof com.google.common.util.concurrent.AbstractFuture$Failure
            ifeq 4
         3: .line 526
            new java.util.concurrent.ExecutionException
            dup
            aload 1 /* obj */
            checkcast com.google.common.util.concurrent.AbstractFuture$Failure
            getfield com.google.common.util.concurrent.AbstractFuture$Failure.exception:Ljava/lang/Throwable;
            invokespecial java.util.concurrent.ExecutionException.<init>:(Ljava/lang/Throwable;)V
            athrow
         4: .line 527
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            getstatic com.google.common.util.concurrent.AbstractFuture.NULL:Ljava/lang/Object;
            if_acmpne 6
         5: .line 528
            aconst_null
            areturn
         6: .line 531
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            astore 2 /* asV */
        start local 2 // java.lang.Object asV
         7: .line 532
            aload 2 /* asV */
            areturn
        end local 2 // java.lang.Object asV
        end local 1 // java.lang.Object obj
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            0    8     1   obj  Ljava/lang/Object;
            7    8     2   asV  TV;
    Exceptions:
      throws java.util.concurrent.ExecutionException
    Signature: (Ljava/lang/Object;)TV;
    MethodParameters:
      Name  Flags
      obj   

  public boolean isDone();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
         0: .line 538
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            astore 1 /* localValue */
        start local 1 // java.lang.Object localValue
         1: .line 539
            aload 1 /* localValue */
            ifnull 2
            iconst_1
            goto 3
      StackMap locals: java.lang.Object
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: aload 1 /* localValue */
            instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
            ifeq 4
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack: int
         4: iconst_1
      StackMap locals: com.google.common.util.concurrent.AbstractFuture java.lang.Object
      StackMap stack: int int
         5: iand
            ireturn
        end local 1 // java.lang.Object localValue
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            1    6     1  localValue  Ljava/lang/Object;

  public boolean isCancelled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
         0: .line 544
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            astore 1 /* localValue */
        start local 1 // java.lang.Object localValue
         1: .line 545
            aload 1 /* localValue */
            instanceof com.google.common.util.concurrent.AbstractFuture$Cancellation
            ireturn
        end local 1 // java.lang.Object localValue
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            1    2     1  localValue  Ljava/lang/Object;

  public boolean cancel(boolean);
    descriptor: (Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
        start local 1 // boolean mayInterruptIfRunning
         0: .line 564
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            astore 2 /* localValue */
        start local 2 // java.lang.Object localValue
         1: .line 565
            iconst_0
            istore 3 /* rValue */
        start local 3 // boolean rValue
         2: .line 566
            aload 2 /* localValue */
            ifnonnull 3
            iconst_1
            goto 4
      StackMap locals: java.lang.Object int
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: aload 2 /* localValue */
            instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
            ior
            ifeq 34
         5: .line 570
            getstatic com.google.common.util.concurrent.AbstractFuture.GENERATE_CANCELLATION_CAUSES:Z
            ifeq 10
         6: .line 571
            new com.google.common.util.concurrent.AbstractFuture$Cancellation
            dup
         7: .line 572
            iload 1 /* mayInterruptIfRunning */
            new java.util.concurrent.CancellationException
            dup
            ldc "Future.cancel() was called."
            invokespecial java.util.concurrent.CancellationException.<init>:(Ljava/lang/String;)V
         8: .line 571
            invokespecial com.google.common.util.concurrent.AbstractFuture$Cancellation.<init>:(ZLjava/lang/Throwable;)V
         9: .line 572
            goto 13
        10: .line 573
      StackMap locals:
      StackMap stack:
            iload 1 /* mayInterruptIfRunning */
            ifeq 12
        11: .line 574
            getstatic com.google.common.util.concurrent.AbstractFuture$Cancellation.CAUSELESS_INTERRUPTED:Lcom/google/common/util/concurrent/AbstractFuture$Cancellation;
            goto 13
        12: .line 575
      StackMap locals:
      StackMap stack:
            getstatic com.google.common.util.concurrent.AbstractFuture$Cancellation.CAUSELESS_CANCELLED:Lcom/google/common/util/concurrent/AbstractFuture$Cancellation;
        13: .line 569
      StackMap locals:
      StackMap stack: com.google.common.util.concurrent.AbstractFuture$Cancellation
            astore 4 /* valueToSet */
        start local 4 // java.lang.Object valueToSet
        14: .line 576
            aload 0 /* this */
            astore 5 /* abstractFuture */
        start local 5 // com.google.common.util.concurrent.AbstractFuture abstractFuture
        15: .line 578
      StackMap locals: java.lang.Object com.google.common.util.concurrent.AbstractFuture
      StackMap stack:
            getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
            aload 5 /* abstractFuture */
            aload 2 /* localValue */
            aload 4 /* valueToSet */
            invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casValue:(Lcom/google/common/util/concurrent/AbstractFuture;Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 32
        16: .line 579
            iconst_1
            istore 3 /* rValue */
        17: .line 582
            iload 1 /* mayInterruptIfRunning */
            ifeq 19
        18: .line 583
            aload 5 /* abstractFuture */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.interruptTask:()V
        19: .line 585
      StackMap locals:
      StackMap stack:
            aload 5 /* abstractFuture */
            invokestatic com.google.common.util.concurrent.AbstractFuture.complete:(Lcom/google/common/util/concurrent/AbstractFuture;)V
        20: .line 586
            aload 2 /* localValue */
            instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
            ifeq 34
        21: .line 589
            aload 2 /* localValue */
            checkcast com.google.common.util.concurrent.AbstractFuture$SetFuture
            getfield com.google.common.util.concurrent.AbstractFuture$SetFuture.future:Lcom/google/common/util/concurrent/ListenableFuture;
            astore 6 /* futureToPropagateTo */
        start local 6 // com.google.common.util.concurrent.ListenableFuture futureToPropagateTo
        22: .line 590
            aload 6 /* futureToPropagateTo */
            instanceof com.google.common.util.concurrent.AbstractFuture$TrustedFuture
            ifeq 30
        23: .line 598
            aload 6 /* futureToPropagateTo */
            checkcast com.google.common.util.concurrent.AbstractFuture
            astore 7 /* trusted */
        start local 7 // com.google.common.util.concurrent.AbstractFuture trusted
        24: .line 599
            aload 7 /* trusted */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            astore 2 /* localValue */
        25: .line 600
            aload 2 /* localValue */
            ifnonnull 26
            iconst_1
            goto 27
      StackMap locals: com.google.common.util.concurrent.ListenableFuture com.google.common.util.concurrent.AbstractFuture
      StackMap stack:
        26: iconst_0
      StackMap locals:
      StackMap stack: int
        27: aload 2 /* localValue */
            instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
            ior
            ifeq 34
        28: .line 601
            aload 7 /* trusted */
            astore 5 /* abstractFuture */
        29: .line 602
            goto 15
        end local 7 // com.google.common.util.concurrent.AbstractFuture trusted
        30: .line 606
      StackMap locals:
      StackMap stack:
            aload 6 /* futureToPropagateTo */
            iload 1 /* mayInterruptIfRunning */
            invokeinterface com.google.common.util.concurrent.ListenableFuture.cancel:(Z)Z
            pop
        end local 6 // com.google.common.util.concurrent.ListenableFuture futureToPropagateTo
        31: .line 609
            goto 34
        32: .line 612
      StackMap locals:
      StackMap stack:
            aload 5 /* abstractFuture */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            astore 2 /* localValue */
        33: .line 613
            aload 2 /* localValue */
            instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
            ifne 15
        end local 5 // com.google.common.util.concurrent.AbstractFuture abstractFuture
        end local 4 // java.lang.Object valueToSet
        34: .line 621
      StackMap locals:
      StackMap stack:
            iload 3 /* rValue */
            ireturn
        end local 3 // boolean rValue
        end local 2 // java.lang.Object localValue
        end local 1 // boolean mayInterruptIfRunning
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   35     0                   this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            0   35     1  mayInterruptIfRunning  Z
            1   35     2             localValue  Ljava/lang/Object;
            2   35     3                 rValue  Z
           14   34     4             valueToSet  Ljava/lang/Object;
           15   34     5         abstractFuture  Lcom/google/common/util/concurrent/AbstractFuture<*>;
           22   31     6    futureToPropagateTo  Lcom/google/common/util/concurrent/ListenableFuture<*>;
           24   30     7                trusted  Lcom/google/common/util/concurrent/AbstractFuture<*>;
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
                       Name  Flags
      mayInterruptIfRunning  

  protected void interruptTask();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
         0: .line 635
            return
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;

  protected final boolean wasInterrupted();
    descriptor: ()Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
         0: .line 644
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            astore 1 /* localValue */
        start local 1 // java.lang.Object localValue
         1: .line 645
            aload 1 /* localValue */
            instanceof com.google.common.util.concurrent.AbstractFuture$Cancellation
            ifeq 2
            aload 1 /* localValue */
            checkcast com.google.common.util.concurrent.AbstractFuture$Cancellation
            getfield com.google.common.util.concurrent.AbstractFuture$Cancellation.wasInterrupted:Z
            ifeq 2
            iconst_1
            ireturn
      StackMap locals: java.lang.Object
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // java.lang.Object localValue
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            1    3     1  localValue  Ljava/lang/Object;

  public void addListener(java.lang.Runnable, java.util.concurrent.Executor);
    descriptor: (Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
        start local 1 // java.lang.Runnable listener
        start local 2 // java.util.concurrent.Executor executor
         0: .line 655
            aload 1 /* listener */
            ldc "Runnable was null."
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 656
            aload 2 /* executor */
            ldc "Executor was null."
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 657
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.listeners:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
            astore 3 /* oldHead */
        start local 3 // com.google.common.util.concurrent.AbstractFuture$Listener oldHead
         3: .line 658
            aload 3 /* oldHead */
            getstatic com.google.common.util.concurrent.AbstractFuture$Listener.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
            if_acmpeq 10
         4: .line 659
            new com.google.common.util.concurrent.AbstractFuture$Listener
            dup
            aload 1 /* listener */
            aload 2 /* executor */
            invokespecial com.google.common.util.concurrent.AbstractFuture$Listener.<init>:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
            astore 4 /* newNode */
        start local 4 // com.google.common.util.concurrent.AbstractFuture$Listener newNode
         5: .line 661
      StackMap locals: com.google.common.util.concurrent.AbstractFuture$Listener com.google.common.util.concurrent.AbstractFuture$Listener
      StackMap stack:
            aload 4 /* newNode */
            aload 3 /* oldHead */
            putfield com.google.common.util.concurrent.AbstractFuture$Listener.next:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
         6: .line 662
            getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
            aload 0 /* this */
            aload 3 /* oldHead */
            aload 4 /* newNode */
            invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casListeners:(Lcom/google/common/util/concurrent/AbstractFuture;Lcom/google/common/util/concurrent/AbstractFuture$Listener;Lcom/google/common/util/concurrent/AbstractFuture$Listener;)Z
            ifeq 8
         7: .line 663
            return
         8: .line 665
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.listeners:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
            astore 3 /* oldHead */
         9: .line 666
            aload 3 /* oldHead */
            getstatic com.google.common.util.concurrent.AbstractFuture$Listener.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
            if_acmpne 5
        end local 4 // com.google.common.util.concurrent.AbstractFuture$Listener newNode
        10: .line 670
      StackMap locals:
      StackMap stack:
            aload 1 /* listener */
            aload 2 /* executor */
            invokestatic com.google.common.util.concurrent.AbstractFuture.executeListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
        11: .line 671
            return
        end local 3 // com.google.common.util.concurrent.AbstractFuture$Listener oldHead
        end local 2 // java.util.concurrent.Executor executor
        end local 1 // java.lang.Runnable listener
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            0   12     1  listener  Ljava/lang/Runnable;
            0   12     2  executor  Ljava/util/concurrent/Executor;
            3   12     3   oldHead  Lcom/google/common/util/concurrent/AbstractFuture$Listener;
            5   10     4   newNode  Lcom/google/common/util/concurrent/AbstractFuture$Listener;
    MethodParameters:
          Name  Flags
      listener  
      executor  

  protected boolean set();
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
        start local 1 // java.lang.Object value
         0: .line 687
            aload 1 /* value */
            ifnonnull 1
            getstatic com.google.common.util.concurrent.AbstractFuture.NULL:Ljava/lang/Object;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* value */
      StackMap locals:
      StackMap stack: java.lang.Object
         2: astore 2 /* valueToSet */
        start local 2 // java.lang.Object valueToSet
         3: .line 688
            getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
            aload 0 /* this */
            aconst_null
            aload 2 /* valueToSet */
            invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casValue:(Lcom/google/common/util/concurrent/AbstractFuture;Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 6
         4: .line 689
            aload 0 /* this */
            invokestatic com.google.common.util.concurrent.AbstractFuture.complete:(Lcom/google/common/util/concurrent/AbstractFuture;)V
         5: .line 690
            iconst_1
            ireturn
         6: .line 692
      StackMap locals: java.lang.Object
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.lang.Object valueToSet
        end local 1 // java.lang.Object value
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            0    7     1       value  TV;
            3    7     2  valueToSet  Ljava/lang/Object;
    Signature: (TV;)Z
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
       Name  Flags
      value  

  protected boolean setException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
        start local 1 // java.lang.Throwable throwable
         0: .line 709
            new com.google.common.util.concurrent.AbstractFuture$Failure
            dup
            aload 1 /* throwable */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Throwable
            invokespecial com.google.common.util.concurrent.AbstractFuture$Failure.<init>:(Ljava/lang/Throwable;)V
            astore 2 /* valueToSet */
        start local 2 // java.lang.Object valueToSet
         1: .line 710
            getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
            aload 0 /* this */
            aconst_null
            aload 2 /* valueToSet */
            invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casValue:(Lcom/google/common/util/concurrent/AbstractFuture;Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 4
         2: .line 711
            aload 0 /* this */
            invokestatic com.google.common.util.concurrent.AbstractFuture.complete:(Lcom/google/common/util/concurrent/AbstractFuture;)V
         3: .line 712
            iconst_1
            ireturn
         4: .line 714
      StackMap locals: java.lang.Object
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.lang.Object valueToSet
        end local 1 // java.lang.Throwable throwable
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            0    5     1   throwable  Ljava/lang/Throwable;
            1    5     2  valueToSet  Ljava/lang/Object;
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
           Name  Flags
      throwable  

  protected boolean setFuture(com.google.common.util.concurrent.ListenableFuture<? extends V>);
    descriptor: (Lcom/google/common/util/concurrent/ListenableFuture;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
        start local 1 // com.google.common.util.concurrent.ListenableFuture future
         0: .line 746
            aload 1 /* future */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 747
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            astore 2 /* localValue */
        start local 2 // java.lang.Object localValue
         2: .line 748
            aload 2 /* localValue */
            ifnonnull 21
         3: .line 749
            aload 1 /* future */
            invokeinterface com.google.common.util.concurrent.ListenableFuture.isDone:()Z
            ifeq 9
         4: .line 750
            aload 1 /* future */
            invokestatic com.google.common.util.concurrent.AbstractFuture.getFutureValue:(Lcom/google/common/util/concurrent/ListenableFuture;)Ljava/lang/Object;
            astore 3 /* value */
        start local 3 // java.lang.Object value
         5: .line 751
            getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
            aload 0 /* this */
            aconst_null
            aload 3 /* value */
            invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casValue:(Lcom/google/common/util/concurrent/AbstractFuture;Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 8
         6: .line 752
            aload 0 /* this */
            invokestatic com.google.common.util.concurrent.AbstractFuture.complete:(Lcom/google/common/util/concurrent/AbstractFuture;)V
         7: .line 753
            iconst_1
            ireturn
         8: .line 755
      StackMap locals: java.lang.Object java.lang.Object
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // java.lang.Object value
         9: .line 757
      StackMap locals:
      StackMap stack:
            new com.google.common.util.concurrent.AbstractFuture$SetFuture
            dup
            aload 0 /* this */
            aload 1 /* future */
            invokespecial com.google.common.util.concurrent.AbstractFuture$SetFuture.<init>:(Lcom/google/common/util/concurrent/AbstractFuture;Lcom/google/common/util/concurrent/ListenableFuture;)V
            astore 3 /* valueToSet */
        start local 3 // com.google.common.util.concurrent.AbstractFuture$SetFuture valueToSet
        10: .line 758
            getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
            aload 0 /* this */
            aconst_null
            aload 3 /* valueToSet */
            invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casValue:(Lcom/google/common/util/concurrent/AbstractFuture;Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 20
        11: .line 762
            aload 1 /* future */
            aload 3 /* valueToSet */
            invokestatic com.google.common.util.concurrent.MoreExecutors.directExecutor:()Ljava/util/concurrent/Executor;
            invokeinterface com.google.common.util.concurrent.ListenableFuture.addListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
        12: .line 763
            goto 19
      StackMap locals: com.google.common.util.concurrent.AbstractFuture com.google.common.util.concurrent.ListenableFuture java.lang.Object com.google.common.util.concurrent.AbstractFuture$SetFuture
      StackMap stack: java.lang.Throwable
        13: astore 4 /* t */
        start local 4 // java.lang.Throwable t
        14: .line 769
            new com.google.common.util.concurrent.AbstractFuture$Failure
            dup
            aload 4 /* t */
            invokespecial com.google.common.util.concurrent.AbstractFuture$Failure.<init>:(Ljava/lang/Throwable;)V
            astore 5 /* failure */
        start local 5 // com.google.common.util.concurrent.AbstractFuture$Failure failure
        15: .line 770
            goto 18
        end local 5 // com.google.common.util.concurrent.AbstractFuture$Failure failure
      StackMap locals: com.google.common.util.concurrent.AbstractFuture com.google.common.util.concurrent.ListenableFuture java.lang.Object com.google.common.util.concurrent.AbstractFuture$SetFuture java.lang.Throwable
      StackMap stack: java.lang.Throwable
        16: pop
        17: .line 771
            getstatic com.google.common.util.concurrent.AbstractFuture$Failure.FALLBACK_INSTANCE:Lcom/google/common/util/concurrent/AbstractFuture$Failure;
            astore 5 /* failure */
        start local 5 // com.google.common.util.concurrent.AbstractFuture$Failure failure
        18: .line 774
      StackMap locals: com.google.common.util.concurrent.AbstractFuture$Failure
      StackMap stack:
            getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
            aload 0 /* this */
            aload 3 /* valueToSet */
            aload 5 /* failure */
            invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casValue:(Lcom/google/common/util/concurrent/AbstractFuture;Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        end local 5 // com.google.common.util.concurrent.AbstractFuture$Failure failure
        end local 4 // java.lang.Throwable t
        19: .line 776
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        20: .line 778
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            astore 2 /* localValue */
        end local 3 // com.google.common.util.concurrent.AbstractFuture$SetFuture valueToSet
        21: .line 782
      StackMap locals:
      StackMap stack:
            aload 2 /* localValue */
            instanceof com.google.common.util.concurrent.AbstractFuture$Cancellation
            ifeq 23
        22: .line 784
            aload 1 /* future */
            aload 2 /* localValue */
            checkcast com.google.common.util.concurrent.AbstractFuture$Cancellation
            getfield com.google.common.util.concurrent.AbstractFuture$Cancellation.wasInterrupted:Z
            invokeinterface com.google.common.util.concurrent.ListenableFuture.cancel:(Z)Z
            pop
        23: .line 786
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.lang.Object localValue
        end local 1 // com.google.common.util.concurrent.ListenableFuture future
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0        this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            0   24     1      future  Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;
            2   24     2  localValue  Ljava/lang/Object;
            5    9     3       value  Ljava/lang/Object;
           10   21     3  valueToSet  Lcom/google/common/util/concurrent/AbstractFuture$SetFuture;
           14   19     4           t  Ljava/lang/Throwable;
           15   16     5     failure  Lcom/google/common/util/concurrent/AbstractFuture$Failure;
           18   19     5     failure  Lcom/google/common/util/concurrent/AbstractFuture$Failure;
      Exception table:
        from    to  target  type
          11    12      13  Class java.lang.Throwable
          14    15      16  Class java.lang.Throwable
    Signature: (Lcom/google/common/util/concurrent/ListenableFuture<+TV;>;)Z
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
        Name  Flags
      future  

  private static  getFutureValue(com.google.common.util.concurrent.ListenableFuture<?>);
    descriptor: (Lcom/google/common/util/concurrent/ListenableFuture;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.google.common.util.concurrent.ListenableFuture future
         0: .line 797
            aload 0 /* future */
            instanceof com.google.common.util.concurrent.AbstractFuture$TrustedFuture
            ifeq 10
         1: .line 802
            aload 0 /* future */
            checkcast com.google.common.util.concurrent.AbstractFuture
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            astore 2 /* v */
        start local 2 // java.lang.Object v
         2: .line 803
            aload 2 /* v */
            instanceof com.google.common.util.concurrent.AbstractFuture$Cancellation
            ifeq 9
         3: .line 807
            aload 2 /* v */
            checkcast com.google.common.util.concurrent.AbstractFuture$Cancellation
            astore 3 /* c */
        start local 3 // com.google.common.util.concurrent.AbstractFuture$Cancellation c
         4: .line 808
            aload 3 /* c */
            getfield com.google.common.util.concurrent.AbstractFuture$Cancellation.wasInterrupted:Z
            ifeq 9
         5: .line 810
            aload 3 /* c */
            getfield com.google.common.util.concurrent.AbstractFuture$Cancellation.cause:Ljava/lang/Throwable;
            ifnull 7
         6: .line 811
            new com.google.common.util.concurrent.AbstractFuture$Cancellation
            dup
            iconst_0
            aload 3 /* c */
            getfield com.google.common.util.concurrent.AbstractFuture$Cancellation.cause:Ljava/lang/Throwable;
            invokespecial com.google.common.util.concurrent.AbstractFuture$Cancellation.<init>:(ZLjava/lang/Throwable;)V
            goto 8
         7: .line 812
      StackMap locals: com.google.common.util.concurrent.ListenableFuture top java.lang.Object com.google.common.util.concurrent.AbstractFuture$Cancellation
      StackMap stack:
            getstatic com.google.common.util.concurrent.AbstractFuture$Cancellation.CAUSELESS_CANCELLED:Lcom/google/common/util/concurrent/AbstractFuture$Cancellation;
         8: .line 809
      StackMap locals:
      StackMap stack: com.google.common.util.concurrent.AbstractFuture$Cancellation
            astore 2 /* v */
        end local 3 // com.google.common.util.concurrent.AbstractFuture$Cancellation c
         9: .line 815
      StackMap locals:
      StackMap stack:
            aload 2 /* v */
            areturn
        end local 2 // java.lang.Object v
        10: .line 819
      StackMap locals: com.google.common.util.concurrent.ListenableFuture
      StackMap stack:
            aload 0 /* future */
            invokestatic com.google.common.util.concurrent.Futures.getDone:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
            astore 2 /* v */
        start local 2 // java.lang.Object v
        11: .line 820
            aload 2 /* v */
            ifnonnull 12
            getstatic com.google.common.util.concurrent.AbstractFuture.NULL:Ljava/lang/Object;
            goto 13
      StackMap locals: com.google.common.util.concurrent.ListenableFuture top java.lang.Object
      StackMap stack:
        12: aload 2 /* v */
      StackMap locals:
      StackMap stack: java.lang.Object
        13: astore 1 /* valueToSet */
        end local 2 // java.lang.Object v
        start local 1 // java.lang.Object valueToSet
        14: .line 821
            goto 23
        end local 1 // java.lang.Object valueToSet
      StackMap locals: com.google.common.util.concurrent.ListenableFuture
      StackMap stack: java.util.concurrent.ExecutionException
        15: astore 2 /* exception */
        start local 2 // java.util.concurrent.ExecutionException exception
        16: .line 822
            new com.google.common.util.concurrent.AbstractFuture$Failure
            dup
            aload 2 /* exception */
            invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
            invokespecial com.google.common.util.concurrent.AbstractFuture$Failure.<init>:(Ljava/lang/Throwable;)V
            astore 1 /* valueToSet */
        end local 2 // java.util.concurrent.ExecutionException exception
        start local 1 // java.lang.Object valueToSet
        17: goto 23
        end local 1 // java.lang.Object valueToSet
        18: .line 823
      StackMap locals:
      StackMap stack: java.util.concurrent.CancellationException
            astore 2 /* cancellation */
        start local 2 // java.util.concurrent.CancellationException cancellation
        19: .line 824
            new com.google.common.util.concurrent.AbstractFuture$Cancellation
            dup
            iconst_0
            aload 2 /* cancellation */
            invokespecial com.google.common.util.concurrent.AbstractFuture$Cancellation.<init>:(ZLjava/lang/Throwable;)V
            astore 1 /* valueToSet */
        end local 2 // java.util.concurrent.CancellationException cancellation
        start local 1 // java.lang.Object valueToSet
        20: goto 23
        end local 1 // java.lang.Object valueToSet
        21: .line 825
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
        22: .line 826
            new com.google.common.util.concurrent.AbstractFuture$Failure
            dup
            aload 2 /* t */
            invokespecial com.google.common.util.concurrent.AbstractFuture$Failure.<init>:(Ljava/lang/Throwable;)V
            astore 1 /* valueToSet */
        end local 2 // java.lang.Throwable t
        start local 1 // java.lang.Object valueToSet
        23: .line 829
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* valueToSet */
            areturn
        end local 1 // java.lang.Object valueToSet
        end local 0 // com.google.common.util.concurrent.ListenableFuture future
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   24     0        future  Lcom/google/common/util/concurrent/ListenableFuture<*>;
           14   15     1    valueToSet  Ljava/lang/Object;
           17   18     1    valueToSet  Ljava/lang/Object;
           20   21     1    valueToSet  Ljava/lang/Object;
           23   24     1    valueToSet  Ljava/lang/Object;
            2   10     2             v  Ljava/lang/Object;
            4    9     3             c  Lcom/google/common/util/concurrent/AbstractFuture$Cancellation;
           11   14     2             v  Ljava/lang/Object;
           16   17     2     exception  Ljava/util/concurrent/ExecutionException;
           19   20     2  cancellation  Ljava/util/concurrent/CancellationException;
           22   23     2             t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          10    14      15  Class java.util.concurrent.ExecutionException
          10    14      18  Class java.util.concurrent.CancellationException
          10    14      21  Class java.lang.Throwable
    Signature: (Lcom/google/common/util/concurrent/ListenableFuture<*>;)Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      future  

  private static void complete(com.google.common.util.concurrent.AbstractFuture<?>);
    descriptor: (Lcom/google/common/util/concurrent/AbstractFuture;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractFuture future
         0: .line 834
            aconst_null
            astore 1 /* next */
        start local 1 // com.google.common.util.concurrent.AbstractFuture$Listener next
         1: .line 837
      StackMap locals: com.google.common.util.concurrent.AbstractFuture$Listener
      StackMap stack:
            aload 0 /* future */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.releaseWaiters:()V
         2: .line 842
            aload 0 /* future */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.afterDone:()V
         3: .line 844
            aload 0 /* future */
            aload 1 /* next */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.clearListeners:(Lcom/google/common/util/concurrent/AbstractFuture$Listener;)Lcom/google/common/util/concurrent/AbstractFuture$Listener;
            astore 1 /* next */
         4: .line 845
            aconst_null
            astore 0 /* future */
         5: .line 846
            goto 17
         6: .line 847
      StackMap locals:
      StackMap stack:
            aload 1 /* next */
            astore 2 /* curr */
        start local 2 // com.google.common.util.concurrent.AbstractFuture$Listener curr
         7: .line 848
            aload 1 /* next */
            getfield com.google.common.util.concurrent.AbstractFuture$Listener.next:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
            astore 1 /* next */
         8: .line 849
            aload 2 /* curr */
            getfield com.google.common.util.concurrent.AbstractFuture$Listener.task:Ljava/lang/Runnable;
            astore 3 /* task */
        start local 3 // java.lang.Runnable task
         9: .line 850
            aload 3 /* task */
            instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
            ifeq 16
        10: .line 851
            aload 3 /* task */
            checkcast com.google.common.util.concurrent.AbstractFuture$SetFuture
            astore 4 /* setFuture */
        start local 4 // com.google.common.util.concurrent.AbstractFuture$SetFuture setFuture
        11: .line 857
            aload 4 /* setFuture */
            getfield com.google.common.util.concurrent.AbstractFuture$SetFuture.owner:Lcom/google/common/util/concurrent/AbstractFuture;
            astore 0 /* future */
        12: .line 858
            aload 0 /* future */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            aload 4 /* setFuture */
            if_acmpne 17
        13: .line 859
            aload 4 /* setFuture */
            getfield com.google.common.util.concurrent.AbstractFuture$SetFuture.future:Lcom/google/common/util/concurrent/ListenableFuture;
            invokestatic com.google.common.util.concurrent.AbstractFuture.getFutureValue:(Lcom/google/common/util/concurrent/ListenableFuture;)Ljava/lang/Object;
            astore 5 /* valueToSet */
        start local 5 // java.lang.Object valueToSet
        14: .line 860
            getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
            aload 0 /* future */
            aload 4 /* setFuture */
            aload 5 /* valueToSet */
            invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casValue:(Lcom/google/common/util/concurrent/AbstractFuture;Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 17
        15: .line 861
            goto 1
        end local 5 // java.lang.Object valueToSet
        end local 4 // com.google.common.util.concurrent.AbstractFuture$SetFuture setFuture
        16: .line 866
      StackMap locals: com.google.common.util.concurrent.AbstractFuture$Listener java.lang.Runnable
      StackMap stack:
            aload 3 /* task */
            aload 2 /* curr */
            getfield com.google.common.util.concurrent.AbstractFuture$Listener.executor:Ljava/util/concurrent/Executor;
            invokestatic com.google.common.util.concurrent.AbstractFuture.executeListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
        end local 3 // java.lang.Runnable task
        end local 2 // com.google.common.util.concurrent.AbstractFuture$Listener curr
        17: .line 846
      StackMap locals:
      StackMap stack:
            aload 1 /* next */
            ifnonnull 6
        18: .line 871
            return
        end local 1 // com.google.common.util.concurrent.AbstractFuture$Listener next
        end local 0 // com.google.common.util.concurrent.AbstractFuture future
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0      future  Lcom/google/common/util/concurrent/AbstractFuture<*>;
            1   19     1        next  Lcom/google/common/util/concurrent/AbstractFuture$Listener;
            7   17     2        curr  Lcom/google/common/util/concurrent/AbstractFuture$Listener;
            9   17     3        task  Ljava/lang/Runnable;
           11   16     4   setFuture  Lcom/google/common/util/concurrent/AbstractFuture$SetFuture<*>;
           14   16     5  valueToSet  Ljava/lang/Object;
    Signature: (Lcom/google/common/util/concurrent/AbstractFuture<*>;)V
    MethodParameters:
        Name  Flags
      future  

  protected void afterDone();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
         0: .line 886
            return
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.errorprone.annotations.ForOverride()

  final java.lang.Throwable trustedGetException();
    descriptor: ()Ljava/lang/Throwable;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
         0: .line 896
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            checkcast com.google.common.util.concurrent.AbstractFuture$Failure
            getfield com.google.common.util.concurrent.AbstractFuture$Failure.exception:Ljava/lang/Throwable;
            areturn
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;

  final void maybePropagateCancellationTo(java.util.concurrent.Future<?>);
    descriptor: (Ljava/util/concurrent/Future;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
        start local 1 // java.util.concurrent.Future related
         0: .line 904
            aload 1 /* related */
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.isCancelled:()Z
            iand
            ifeq 4
         3: .line 905
            aload 1 /* related */
            aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.wasInterrupted:()Z
            invokeinterface java.util.concurrent.Future.cancel:(Z)Z
            pop
         4: .line 907
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.concurrent.Future related
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            0    5     1  related  Ljava/util/concurrent/Future<*>;
    Signature: (Ljava/util/concurrent/Future<*>;)V
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
         Name  Flags
      related  

  private void releaseWaiters();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
         0: .line 913
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.waiters:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            astore 1 /* head */
        start local 1 // com.google.common.util.concurrent.AbstractFuture$Waiter head
         1: .line 914
            getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
            aload 0 /* this */
            aload 1 /* head */
            getstatic com.google.common.util.concurrent.AbstractFuture$Waiter.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casWaiters:(Lcom/google/common/util/concurrent/AbstractFuture;Lcom/google/common/util/concurrent/AbstractFuture$Waiter;Lcom/google/common/util/concurrent/AbstractFuture$Waiter;)Z
            ifeq 0
         2: .line 915
            aload 1 /* head */
            astore 2 /* currentWaiter */
        start local 2 // com.google.common.util.concurrent.AbstractFuture$Waiter currentWaiter
         3: goto 6
         4: .line 916
      StackMap locals: com.google.common.util.concurrent.AbstractFuture$Waiter com.google.common.util.concurrent.AbstractFuture$Waiter
      StackMap stack:
            aload 2 /* currentWaiter */
            invokevirtual com.google.common.util.concurrent.AbstractFuture$Waiter.unpark:()V
         5: .line 915
            aload 2 /* currentWaiter */
            getfield com.google.common.util.concurrent.AbstractFuture$Waiter.next:Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            astore 2 /* currentWaiter */
      StackMap locals:
      StackMap stack:
         6: aload 2 /* currentWaiter */
            ifnonnull 4
        end local 2 // com.google.common.util.concurrent.AbstractFuture$Waiter currentWaiter
         7: .line 918
            return
        end local 1 // com.google.common.util.concurrent.AbstractFuture$Waiter head
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            1    8     1           head  Lcom/google/common/util/concurrent/AbstractFuture$Waiter;
            3    7     2  currentWaiter  Lcom/google/common/util/concurrent/AbstractFuture$Waiter;

  private com.google.common.util.concurrent.AbstractFuture$Listener clearListeners(com.google.common.util.concurrent.AbstractFuture$Listener);
    descriptor: (Lcom/google/common/util/concurrent/AbstractFuture$Listener;)Lcom/google/common/util/concurrent/AbstractFuture$Listener;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
        start local 1 // com.google.common.util.concurrent.AbstractFuture$Listener onto
         0: .line 933
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.listeners:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
            astore 2 /* head */
        start local 2 // com.google.common.util.concurrent.AbstractFuture$Listener head
         1: .line 934
            getstatic com.google.common.util.concurrent.AbstractFuture.ATOMIC_HELPER:Lcom/google/common/util/concurrent/AbstractFuture$AtomicHelper;
            aload 0 /* this */
            aload 2 /* head */
            getstatic com.google.common.util.concurrent.AbstractFuture$Listener.TOMBSTONE:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
            invokevirtual com.google.common.util.concurrent.AbstractFuture$AtomicHelper.casListeners:(Lcom/google/common/util/concurrent/AbstractFuture;Lcom/google/common/util/concurrent/AbstractFuture$Listener;Lcom/google/common/util/concurrent/AbstractFuture$Listener;)Z
            ifeq 0
         2: .line 935
            aload 1 /* onto */
            astore 3 /* reversedList */
        start local 3 // com.google.common.util.concurrent.AbstractFuture$Listener reversedList
         3: .line 936
            goto 8
         4: .line 937
      StackMap locals: com.google.common.util.concurrent.AbstractFuture$Listener com.google.common.util.concurrent.AbstractFuture$Listener
      StackMap stack:
            aload 2 /* head */
            astore 4 /* tmp */
        start local 4 // com.google.common.util.concurrent.AbstractFuture$Listener tmp
         5: .line 938
            aload 2 /* head */
            getfield com.google.common.util.concurrent.AbstractFuture$Listener.next:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
            astore 2 /* head */
         6: .line 939
            aload 4 /* tmp */
            aload 3 /* reversedList */
            putfield com.google.common.util.concurrent.AbstractFuture$Listener.next:Lcom/google/common/util/concurrent/AbstractFuture$Listener;
         7: .line 940
            aload 4 /* tmp */
            astore 3 /* reversedList */
        end local 4 // com.google.common.util.concurrent.AbstractFuture$Listener tmp
         8: .line 936
      StackMap locals:
      StackMap stack:
            aload 2 /* head */
            ifnonnull 4
         9: .line 942
            aload 3 /* reversedList */
            areturn
        end local 3 // com.google.common.util.concurrent.AbstractFuture$Listener reversedList
        end local 2 // com.google.common.util.concurrent.AbstractFuture$Listener head
        end local 1 // com.google.common.util.concurrent.AbstractFuture$Listener onto
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            0   10     1          onto  Lcom/google/common/util/concurrent/AbstractFuture$Listener;
            1   10     2          head  Lcom/google/common/util/concurrent/AbstractFuture$Listener;
            3   10     3  reversedList  Lcom/google/common/util/concurrent/AbstractFuture$Listener;
            5    8     4           tmp  Lcom/google/common/util/concurrent/AbstractFuture$Listener;
    MethodParameters:
      Name  Flags
      onto  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
         0: .line 948
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            invokespecial java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "[status="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            astore 1 /* builder */
        start local 1 // java.lang.StringBuilder builder
         1: .line 949
            aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.isCancelled:()Z
            ifeq 4
         2: .line 950
            aload 1 /* builder */
            ldc "CANCELLED"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 951
            goto 18
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
         4: aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.isDone:()Z
            ifeq 7
         5: .line 952
            aload 0 /* this */
            aload 1 /* builder */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.addDoneString:(Ljava/lang/StringBuilder;)V
         6: .line 953
            goto 18
         7: .line 956
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.pendingToString:()Ljava/lang/String;
            astore 2 /* pendingDescription */
        start local 2 // java.lang.String pendingDescription
         8: .line 957
            goto 11
        end local 2 // java.lang.String pendingDescription
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         9: astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
        10: .line 960
            new java.lang.StringBuilder
            dup
            ldc "Exception thrown from implementation: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* pendingDescription */
        end local 3 // java.lang.RuntimeException e
        start local 2 // java.lang.String pendingDescription
        11: .line 964
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* pendingDescription */
            invokestatic com.google.common.base.Strings.isNullOrEmpty:(Ljava/lang/String;)Z
            ifne 14
        12: .line 965
            aload 1 /* builder */
            ldc "PENDING, info=["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* pendingDescription */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 966
            goto 18
      StackMap locals:
      StackMap stack:
        14: aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.isDone:()Z
            ifeq 17
        15: .line 967
            aload 0 /* this */
            aload 1 /* builder */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.addDoneString:(Ljava/lang/StringBuilder;)V
        16: .line 968
            goto 18
        17: .line 969
      StackMap locals:
      StackMap stack:
            aload 1 /* builder */
            ldc "PENDING"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 2 // java.lang.String pendingDescription
        18: .line 972
      StackMap locals:
      StackMap stack:
            aload 1 /* builder */
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder builder
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   19     0                this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            1   19     1             builder  Ljava/lang/StringBuilder;
            8    9     2  pendingDescription  Ljava/lang/String;
           11   18     2  pendingDescription  Ljava/lang/String;
           10   11     3                   e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.RuntimeException

  protected java.lang.String pendingToString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
         0: .line 982
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AbstractFuture.value:Ljava/lang/Object;
            astore 1 /* localValue */
        start local 1 // java.lang.Object localValue
         1: .line 983
            aload 1 /* localValue */
            instanceof com.google.common.util.concurrent.AbstractFuture$SetFuture
            ifeq 3
         2: .line 984
            new java.lang.StringBuilder
            dup
            ldc "setFuture=["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 1 /* localValue */
            checkcast com.google.common.util.concurrent.AbstractFuture$SetFuture
            getfield com.google.common.util.concurrent.AbstractFuture$SetFuture.future:Lcom/google/common/util/concurrent/ListenableFuture;
            invokevirtual com.google.common.util.concurrent.AbstractFuture.userObjectToString:(Ljava/lang/Object;)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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         3: .line 985
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            instanceof java.util.concurrent.ScheduledFuture
            ifeq 8
         4: .line 986
            new java.lang.StringBuilder
            dup
            ldc "remaining delay=["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 987
            aload 0 /* this */
            checkcast java.util.concurrent.ScheduledFuture
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.ScheduledFuture.getDelay:(Ljava/util/concurrent/TimeUnit;)J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
         6: .line 988
            ldc " ms]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 986
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         8: .line 990
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.Object localValue
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            1    9     1  localValue  Ljava/lang/Object;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        org.checkerframework.checker.nullness.qual.Nullable()

  private void addDoneString(java.lang.StringBuilder);
    descriptor: (Ljava/lang/StringBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
        start local 1 // java.lang.StringBuilder builder
         0: .line 995
            aload 0 /* this */
            invokestatic com.google.common.util.concurrent.Futures.getDone:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
            astore 2 /* value */
        start local 2 // java.lang.Object value
         1: .line 996
            aload 1 /* builder */
            ldc "SUCCESS, result=["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 2 /* value */
            invokevirtual com.google.common.util.concurrent.AbstractFuture.userObjectToString:(Ljava/lang/Object;)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;
            pop
        end local 2 // java.lang.Object value
         2: .line 997
            goto 10
      StackMap locals:
      StackMap stack: java.util.concurrent.ExecutionException
         3: astore 2 /* e */
        start local 2 // java.util.concurrent.ExecutionException e
         4: .line 998
            aload 1 /* builder */
            ldc "FAILURE, cause=["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* e */
            invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 2 // java.util.concurrent.ExecutionException e
         5: goto 10
         6: .line 999
      StackMap locals:
      StackMap stack: java.util.concurrent.CancellationException
            pop
         7: .line 1000
            aload 1 /* builder */
            ldc "CANCELLED"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            goto 10
         8: .line 1001
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
         9: .line 1002
            aload 1 /* builder */
            ldc "UNKNOWN, cause=["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " thrown from get()]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 2 // java.lang.RuntimeException e
        10: .line 1004
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.StringBuilder builder
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            0   11     1  builder  Ljava/lang/StringBuilder;
            1    2     2    value  TV;
            4    5     2        e  Ljava/util/concurrent/ExecutionException;
            9   10     2        e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0     2       3  Class java.util.concurrent.ExecutionException
           0     2       6  Class java.util.concurrent.CancellationException
           0     2       8  Class java.lang.RuntimeException
    MethodParameters:
         Name  Flags
      builder  

  private java.lang.String userObjectToString(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.common.util.concurrent.AbstractFuture this
        start local 1 // java.lang.Object o
         0: .line 1012
            aload 1 /* o */
            aload 0 /* this */
            if_acmpne 2
         1: .line 1013
            ldc "this future"
            areturn
         2: .line 1015
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object o
        end local 0 // com.google.common.util.concurrent.AbstractFuture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/google/common/util/concurrent/AbstractFuture<TV;>;
            0    3     1     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     

  private static void executeListener(java.lang.Runnable, java.util.concurrent.Executor);
    descriptor: (Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.Runnable runnable
        start local 1 // java.util.concurrent.Executor executor
         0: .line 1024
            aload 1 /* executor */
            aload 0 /* runnable */
            invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
         1: .line 1025
            goto 8
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         2: astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
         3: .line 1029
            getstatic com.google.common.util.concurrent.AbstractFuture.log:Ljava/util/logging/Logger;
         4: .line 1030
            getstatic java.util.logging.Level.SEVERE:Ljava/util/logging/Level;
         5: .line 1031
            new java.lang.StringBuilder
            dup
            ldc "RuntimeException while executing runnable "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* runnable */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " with executor "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* executor */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 1032
            aload 2 /* e */
         7: .line 1029
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 2 // java.lang.RuntimeException e
         8: .line 1034
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.concurrent.Executor executor
        end local 0 // java.lang.Runnable runnable
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0  runnable  Ljava/lang/Runnable;
            0    9     1  executor  Ljava/util/concurrent/Executor;
            3    8     2         e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.RuntimeException
    MethodParameters:
          Name  Flags
      runnable  
      executor  

  private static java.util.concurrent.CancellationException cancellationExceptionWithCause(java.lang.String, java.lang.Throwable);
    descriptor: (Ljava/lang/String;Ljava/lang/Throwable;)Ljava/util/concurrent/CancellationException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String message
        start local 1 // java.lang.Throwable cause
         0: .line 1236
            new java.util.concurrent.CancellationException
            dup
            aload 0 /* message */
            invokespecial java.util.concurrent.CancellationException.<init>:(Ljava/lang/String;)V
            astore 2 /* exception */
        start local 2 // java.util.concurrent.CancellationException exception
         1: .line 1237
            aload 2 /* exception */
            aload 1 /* cause */
            invokevirtual java.util.concurrent.CancellationException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
         2: .line 1238
            aload 2 /* exception */
            areturn
        end local 2 // java.util.concurrent.CancellationException exception
        end local 1 // java.lang.Throwable cause
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0    message  Ljava/lang/String;
            0    3     1      cause  Ljava/lang/Throwable;
            1    3     2  exception  Ljava/util/concurrent/CancellationException;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
         Name  Flags
      message  
      cause    
}
Signature: <V:Ljava/lang/Object;>Lcom/google/common/util/concurrent/FluentFuture<TV;>;
SourceFile: "AbstractFuture.java"
NestMembers:
  com.google.common.util.concurrent.AbstractFuture$AtomicHelper  com.google.common.util.concurrent.AbstractFuture$Cancellation  com.google.common.util.concurrent.AbstractFuture$Failure  com.google.common.util.concurrent.AbstractFuture$Failure$1  com.google.common.util.concurrent.AbstractFuture$Listener  com.google.common.util.concurrent.AbstractFuture$SafeAtomicHelper  com.google.common.util.concurrent.AbstractFuture$SetFuture  com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper  com.google.common.util.concurrent.AbstractFuture$TrustedFuture  com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper  com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper$1  com.google.common.util.concurrent.AbstractFuture$Waiter
InnerClasses:
  private abstract AtomicHelper = com.google.common.util.concurrent.AbstractFuture$AtomicHelper of com.google.common.util.concurrent.AbstractFuture
  private final Cancellation = com.google.common.util.concurrent.AbstractFuture$Cancellation of com.google.common.util.concurrent.AbstractFuture
  private final Failure = com.google.common.util.concurrent.AbstractFuture$Failure of com.google.common.util.concurrent.AbstractFuture
  private final Listener = com.google.common.util.concurrent.AbstractFuture$Listener of com.google.common.util.concurrent.AbstractFuture
  private final SafeAtomicHelper = com.google.common.util.concurrent.AbstractFuture$SafeAtomicHelper of com.google.common.util.concurrent.AbstractFuture
  private final SetFuture = com.google.common.util.concurrent.AbstractFuture$SetFuture of com.google.common.util.concurrent.AbstractFuture
  private final SynchronizedHelper = com.google.common.util.concurrent.AbstractFuture$SynchronizedHelper of com.google.common.util.concurrent.AbstractFuture
  abstract TrustedFuture = com.google.common.util.concurrent.AbstractFuture$TrustedFuture of com.google.common.util.concurrent.AbstractFuture
  private final UnsafeAtomicHelper = com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper of com.google.common.util.concurrent.AbstractFuture
  private final Waiter = com.google.common.util.concurrent.AbstractFuture$Waiter of com.google.common.util.concurrent.AbstractFuture
  public final Level = com.google.j2objc.annotations.ReflectionSupport$Level of com.google.j2objc.annotations.ReflectionSupport
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtCompatible(emulated = true)
      com.google.j2objc.annotations.ReflectionSupport(value = com.google.j2objc.annotations.ReflectionSupport$Level.FULL:Lcom/google/j2objc/annotations/ReflectionSupport$Level;)