public class android.animation.ValueAnimator extends android.animation.Animator implements android.animation.AnimationHandler$AnimationFrameCallback
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.animation.ValueAnimator
  super_class: android.animation.Animator
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ValueAnimator"

  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static float sDurationScale;
    descriptor: F
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

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

  float mSeekFraction;
    descriptor: F
    flags: (0x0000) 

  private long mPauseTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private boolean mResumed;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private static final android.animation.TimeInterpolator sDefaultInterpolator;
    descriptor: Landroid/animation/TimeInterpolator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private boolean mReversing;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private float mOverallFraction;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float mCurrentFraction;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private long mLastFrameTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long mFirstFrameTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private boolean mRunning;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean mStarted;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean mStartListenersCalled;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

  private boolean mAnimationEndRequested;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private long mDuration;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long mStartDelay;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private int mRepeatCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mRepeatMode;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean mSelfPulse;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean mSuppressSelfPulseRequested;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private android.animation.TimeInterpolator mInterpolator;
    descriptor: Landroid/animation/TimeInterpolator;
    flags: (0x0002) ACC_PRIVATE

  java.util.ArrayList<android.animation.ValueAnimator$AnimatorUpdateListener> mUpdateListeners;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0000) 
    Signature: Ljava/util/ArrayList<Landroid/animation/ValueAnimator$AnimatorUpdateListener;>;

  android.animation.PropertyValuesHolder[] mValues;
    descriptor: [Landroid/animation/PropertyValuesHolder;
    flags: (0x0000) 

  java.util.HashMap<java.lang.String, android.animation.PropertyValuesHolder> mValuesMap;
    descriptor: Ljava/util/HashMap;
    flags: (0x0000) 
    Signature: Ljava/util/HashMap<Ljava/lang/String;Landroid/animation/PropertyValuesHolder;>;

  private float mDurationScale;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  public static final int RESTART;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int REVERSE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int INFINITE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 78
            fconst_1
            putstatic android.animation.ValueAnimator.sDurationScale:F
         1: .line 131
            new android.view.animation.AccelerateDecelerateInterpolator
            dup
            invokespecial android.view.animation.AccelerateDecelerateInterpolator.<init>:()V
         2: .line 130
            putstatic android.animation.ValueAnimator.sDefaultInterpolator:Landroid/animation/TimeInterpolator;
         3: .line 284
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void setDurationScale(float);
    descriptor: (F)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // float durationScale
         0: .line 291
            fload 0 /* durationScale */
            putstatic android.animation.ValueAnimator.sDurationScale:F
         1: .line 292
            return
        end local 0 // float durationScale
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0  durationScale  F
    MethodParameters:
               Name  Flags
      durationScale  

  public static float getDurationScale();
    descriptor: ()F
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 299
            getstatic android.animation.ValueAnimator.sDurationScale:F
            freturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static boolean areAnimatorsEnabled();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 316
            getstatic android.animation.ValueAnimator.sDurationScale:F
            fconst_0
            fcmpl
            ifne 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 324
            aload 0 /* this */
            invokespecial android.animation.Animator.<init>:()V
         1: .line 94
            aload 0 /* this */
            ldc -1
            putfield android.animation.ValueAnimator.mStartTime:J
         2: .line 114
            aload 0 /* this */
            ldc -1.0
            putfield android.animation.ValueAnimator.mSeekFraction:F
         3: .line 127
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mResumed:Z
         4: .line 145
            aload 0 /* this */
            fconst_0
            putfield android.animation.ValueAnimator.mOverallFraction:F
         5: .line 151
            aload 0 /* this */
            fconst_0
            putfield android.animation.ValueAnimator.mCurrentFraction:F
         6: .line 156
            aload 0 /* this */
            ldc -1
            putfield android.animation.ValueAnimator.mLastFrameTime:J
         7: .line 162
            aload 0 /* this */
            ldc -1
            putfield android.animation.ValueAnimator.mFirstFrameTime:J
         8: .line 172
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mRunning:Z
         9: .line 178
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mStarted:Z
        10: .line 185
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mStartListenersCalled:Z
        11: .line 191
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mInitialized:Z
        12: .line 196
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mAnimationEndRequested:Z
        13: .line 203
            aload 0 /* this */
            ldc 300
            putfield android.animation.ValueAnimator.mDuration:J
        14: .line 208
            aload 0 /* this */
            lconst_0
            putfield android.animation.ValueAnimator.mStartDelay:J
        15: .line 212
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mRepeatCount:I
        16: .line 219
            aload 0 /* this */
            iconst_1
            putfield android.animation.ValueAnimator.mRepeatMode:I
        17: .line 225
            aload 0 /* this */
            iconst_1
            putfield android.animation.ValueAnimator.mSelfPulse:Z
        18: .line 231
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mSuppressSelfPulseRequested:Z
        19: .line 238
            aload 0 /* this */
            getstatic android.animation.ValueAnimator.sDefaultInterpolator:Landroid/animation/TimeInterpolator;
            putfield android.animation.ValueAnimator.mInterpolator:Landroid/animation/TimeInterpolator;
        20: .line 243
            aload 0 /* this */
            aconst_null
            putfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
        21: .line 259
            aload 0 /* this */
            ldc -1.0
            putfield android.animation.ValueAnimator.mDurationScale:F
        22: .line 325
            return
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   23     0  this  Landroid/animation/ValueAnimator;

  public static android.animation.ValueAnimator ofInt(int[]);
    descriptor: ([I)Landroid/animation/ValueAnimator;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // int[] values
         0: .line 339
            new android.animation.ValueAnimator
            dup
            invokespecial android.animation.ValueAnimator.<init>:()V
            astore 1 /* anim */
        start local 1 // android.animation.ValueAnimator anim
         1: .line 340
            aload 1 /* anim */
            aload 0 /* values */
            invokevirtual android.animation.ValueAnimator.setIntValues:([I)V
         2: .line 341
            aload 1 /* anim */
            areturn
        end local 1 // android.animation.ValueAnimator anim
        end local 0 // int[] values
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  values  [I
            1    3     1    anim  Landroid/animation/ValueAnimator;
    MethodParameters:
        Name  Flags
      values  

  public static android.animation.ValueAnimator ofArgb(int[]);
    descriptor: ([I)Landroid/animation/ValueAnimator;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // int[] values
         0: .line 356
            new android.animation.ValueAnimator
            dup
            invokespecial android.animation.ValueAnimator.<init>:()V
            astore 1 /* anim */
        start local 1 // android.animation.ValueAnimator anim
         1: .line 357
            aload 1 /* anim */
            aload 0 /* values */
            invokevirtual android.animation.ValueAnimator.setIntValues:([I)V
         2: .line 358
            aload 1 /* anim */
            invokestatic android.animation.ArgbEvaluator.getInstance:()Landroid/animation/ArgbEvaluator;
            invokevirtual android.animation.ValueAnimator.setEvaluator:(Landroid/animation/TypeEvaluator;)V
         3: .line 359
            aload 1 /* anim */
            areturn
        end local 1 // android.animation.ValueAnimator anim
        end local 0 // int[] values
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  values  [I
            1    4     1    anim  Landroid/animation/ValueAnimator;
    MethodParameters:
        Name  Flags
      values  

  public static android.animation.ValueAnimator ofFloat(float[]);
    descriptor: ([F)Landroid/animation/ValueAnimator;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // float[] values
         0: .line 374
            new android.animation.ValueAnimator
            dup
            invokespecial android.animation.ValueAnimator.<init>:()V
            astore 1 /* anim */
        start local 1 // android.animation.ValueAnimator anim
         1: .line 375
            aload 1 /* anim */
            aload 0 /* values */
            invokevirtual android.animation.ValueAnimator.setFloatValues:([F)V
         2: .line 376
            aload 1 /* anim */
            areturn
        end local 1 // android.animation.ValueAnimator anim
        end local 0 // float[] values
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  values  [F
            1    3     1    anim  Landroid/animation/ValueAnimator;
    MethodParameters:
        Name  Flags
      values  

  public static android.animation.ValueAnimator ofPropertyValuesHolder(android.animation.PropertyValuesHolder[]);
    descriptor: ([Landroid/animation/PropertyValuesHolder;)Landroid/animation/ValueAnimator;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.animation.PropertyValuesHolder[] values
         0: .line 388
            new android.animation.ValueAnimator
            dup
            invokespecial android.animation.ValueAnimator.<init>:()V
            astore 1 /* anim */
        start local 1 // android.animation.ValueAnimator anim
         1: .line 389
            aload 1 /* anim */
            aload 0 /* values */
            invokevirtual android.animation.ValueAnimator.setValues:([Landroid/animation/PropertyValuesHolder;)V
         2: .line 390
            aload 1 /* anim */
            areturn
        end local 1 // android.animation.ValueAnimator anim
        end local 0 // android.animation.PropertyValuesHolder[] values
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  values  [Landroid/animation/PropertyValuesHolder;
            1    3     1    anim  Landroid/animation/ValueAnimator;
    MethodParameters:
        Name  Flags
      values  

  public static android.animation.ValueAnimator ofObject(android.animation.TypeEvaluator, java.lang.Object[]);
    descriptor: (Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ValueAnimator;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.animation.TypeEvaluator evaluator
        start local 1 // java.lang.Object[] values
         0: .line 416
            new android.animation.ValueAnimator
            dup
            invokespecial android.animation.ValueAnimator.<init>:()V
            astore 2 /* anim */
        start local 2 // android.animation.ValueAnimator anim
         1: .line 417
            aload 2 /* anim */
            aload 1 /* values */
            invokevirtual android.animation.ValueAnimator.setObjectValues:([Ljava/lang/Object;)V
         2: .line 418
            aload 2 /* anim */
            aload 0 /* evaluator */
            invokevirtual android.animation.ValueAnimator.setEvaluator:(Landroid/animation/TypeEvaluator;)V
         3: .line 419
            aload 2 /* anim */
            areturn
        end local 2 // android.animation.ValueAnimator anim
        end local 1 // java.lang.Object[] values
        end local 0 // android.animation.TypeEvaluator evaluator
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  evaluator  Landroid/animation/TypeEvaluator;
            0    4     1     values  [Ljava/lang/Object;
            1    4     2       anim  Landroid/animation/ValueAnimator;
    MethodParameters:
           Name  Flags
      evaluator  
      values     

  public void setIntValues(int[]);
    descriptor: ([I)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // int[] values
         0: .line 437
            aload 1 /* values */
            ifnull 1
            aload 1 /* values */
            arraylength
            ifne 2
         1: .line 438
      StackMap locals:
      StackMap stack:
            return
         2: .line 440
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            ifnull 3
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            arraylength
            ifne 5
         3: .line 441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            anewarray android.animation.PropertyValuesHolder
            dup
            iconst_0
            ldc ""
            aload 1 /* values */
            invokestatic android.animation.PropertyValuesHolder.ofInt:(Ljava/lang/String;[I)Landroid/animation/PropertyValuesHolder;
            aastore
            invokevirtual android.animation.ValueAnimator.setValues:([Landroid/animation/PropertyValuesHolder;)V
         4: .line 442
            goto 7
         5: .line 443
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            iconst_0
            aaload
            astore 2 /* valuesHolder */
        start local 2 // android.animation.PropertyValuesHolder valuesHolder
         6: .line 444
            aload 2 /* valuesHolder */
            aload 1 /* values */
            invokevirtual android.animation.PropertyValuesHolder.setIntValues:([I)V
        end local 2 // android.animation.PropertyValuesHolder valuesHolder
         7: .line 447
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mInitialized:Z
         8: .line 448
            return
        end local 1 // int[] values
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Landroid/animation/ValueAnimator;
            0    9     1        values  [I
            6    7     2  valuesHolder  Landroid/animation/PropertyValuesHolder;
    MethodParameters:
        Name  Flags
      values  

  public void setFloatValues(float[]);
    descriptor: ([F)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // float[] values
         0: .line 465
            aload 1 /* values */
            ifnull 1
            aload 1 /* values */
            arraylength
            ifne 2
         1: .line 466
      StackMap locals:
      StackMap stack:
            return
         2: .line 468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            ifnull 3
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            arraylength
            ifne 5
         3: .line 469
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            anewarray android.animation.PropertyValuesHolder
            dup
            iconst_0
            ldc ""
            aload 1 /* values */
            invokestatic android.animation.PropertyValuesHolder.ofFloat:(Ljava/lang/String;[F)Landroid/animation/PropertyValuesHolder;
            aastore
            invokevirtual android.animation.ValueAnimator.setValues:([Landroid/animation/PropertyValuesHolder;)V
         4: .line 470
            goto 7
         5: .line 471
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            iconst_0
            aaload
            astore 2 /* valuesHolder */
        start local 2 // android.animation.PropertyValuesHolder valuesHolder
         6: .line 472
            aload 2 /* valuesHolder */
            aload 1 /* values */
            invokevirtual android.animation.PropertyValuesHolder.setFloatValues:([F)V
        end local 2 // android.animation.PropertyValuesHolder valuesHolder
         7: .line 475
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mInitialized:Z
         8: .line 476
            return
        end local 1 // float[] values
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Landroid/animation/ValueAnimator;
            0    9     1        values  [F
            6    7     2  valuesHolder  Landroid/animation/PropertyValuesHolder;
    MethodParameters:
        Name  Flags
      values  

  public void setObjectValues(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // java.lang.Object[] values
         0: .line 502
            aload 1 /* values */
            ifnull 1
            aload 1 /* values */
            arraylength
            ifne 2
         1: .line 503
      StackMap locals:
      StackMap stack:
            return
         2: .line 505
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            ifnull 3
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            arraylength
            ifne 5
         3: .line 506
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            anewarray android.animation.PropertyValuesHolder
            dup
            iconst_0
            ldc ""
            aconst_null
            aload 1 /* values */
            invokestatic android.animation.PropertyValuesHolder.ofObject:(Ljava/lang/String;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/PropertyValuesHolder;
            aastore
            invokevirtual android.animation.ValueAnimator.setValues:([Landroid/animation/PropertyValuesHolder;)V
         4: .line 507
            goto 7
         5: .line 508
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            iconst_0
            aaload
            astore 2 /* valuesHolder */
        start local 2 // android.animation.PropertyValuesHolder valuesHolder
         6: .line 509
            aload 2 /* valuesHolder */
            aload 1 /* values */
            invokevirtual android.animation.PropertyValuesHolder.setObjectValues:([Ljava/lang/Object;)V
        end local 2 // android.animation.PropertyValuesHolder valuesHolder
         7: .line 512
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mInitialized:Z
         8: .line 513
            return
        end local 1 // java.lang.Object[] values
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Landroid/animation/ValueAnimator;
            0    9     1        values  [Ljava/lang/Object;
            6    7     2  valuesHolder  Landroid/animation/PropertyValuesHolder;
    MethodParameters:
        Name  Flags
      values  

  public void setValues(android.animation.PropertyValuesHolder[]);
    descriptor: ([Landroid/animation/PropertyValuesHolder;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // android.animation.PropertyValuesHolder[] values
         0: .line 524
            aload 1 /* values */
            arraylength
            istore 2 /* numValues */
        start local 2 // int numValues
         1: .line 525
            aload 0 /* this */
            aload 1 /* values */
            putfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
         2: .line 526
            aload 0 /* this */
            new java.util.HashMap
            dup
            iload 2 /* numValues */
            invokespecial java.util.HashMap.<init>:(I)V
            putfield android.animation.ValueAnimator.mValuesMap:Ljava/util/HashMap;
         3: .line 527
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 8
         5: .line 528
      StackMap locals: int int
      StackMap stack:
            aload 1 /* values */
            iload 3 /* i */
            aaload
            astore 4 /* valuesHolder */
        start local 4 // android.animation.PropertyValuesHolder valuesHolder
         6: .line 529
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValuesMap:Ljava/util/HashMap;
            aload 4 /* valuesHolder */
            invokevirtual android.animation.PropertyValuesHolder.getPropertyName:()Ljava/lang/String;
            aload 4 /* valuesHolder */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // android.animation.PropertyValuesHolder valuesHolder
         7: .line 527
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 2 /* numValues */
            if_icmplt 5
        end local 3 // int i
         9: .line 532
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mInitialized:Z
        10: .line 533
            return
        end local 2 // int numValues
        end local 1 // android.animation.PropertyValuesHolder[] values
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Landroid/animation/ValueAnimator;
            0   11     1        values  [Landroid/animation/PropertyValuesHolder;
            1   11     2     numValues  I
            4    9     3             i  I
            6    7     4  valuesHolder  Landroid/animation/PropertyValuesHolder;
    MethodParameters:
        Name  Flags
      values  

  public android.animation.PropertyValuesHolder[] getValues();
    descriptor: ()[Landroid/animation/PropertyValuesHolder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 544
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            areturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/ValueAnimator;

  void initAnimation();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 559
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mInitialized:Z
            ifne 8
         1: .line 560
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            arraylength
            istore 1 /* numValues */
        start local 1 // int numValues
         2: .line 561
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 6
         4: .line 562
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            iload 2 /* i */
            aaload
            invokevirtual android.animation.PropertyValuesHolder.init:()V
         5: .line 561
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            iload 1 /* numValues */
            if_icmplt 4
        end local 2 // int i
         7: .line 564
            aload 0 /* this */
            iconst_1
            putfield android.animation.ValueAnimator.mInitialized:Z
        end local 1 // int numValues
         8: .line 566
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Landroid/animation/ValueAnimator;
            2    8     1  numValues  I
            3    7     2          i  I

  public android.animation.ValueAnimator setDuration(long);
    descriptor: (J)Landroid/animation/ValueAnimator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // long duration
         0: .line 579
            lload 1 /* duration */
            lconst_0
            lcmp
            ifge 4
         1: .line 580
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Animators cannot have negative duration: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 581
            lload 1 /* duration */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 580
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 583
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* duration */
            putfield android.animation.ValueAnimator.mDuration:J
         5: .line 584
            aload 0 /* this */
            areturn
        end local 1 // long duration
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Landroid/animation/ValueAnimator;
            0    6     1  duration  J
    MethodParameters:
          Name  Flags
      duration  

  public void overrideDurationScale(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // float durationScale
         0: .line 595
            aload 0 /* this */
            fload 1 /* durationScale */
            putfield android.animation.ValueAnimator.mDurationScale:F
         1: .line 596
            return
        end local 1 // float durationScale
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Landroid/animation/ValueAnimator;
            0    2     1  durationScale  F
    MethodParameters:
               Name  Flags
      durationScale  

  private float resolveDurationScale();
    descriptor: ()F
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 599
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mDurationScale:F
            fconst_0
            fcmpl
            iflt 1
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mDurationScale:F
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic android.animation.ValueAnimator.sDurationScale:F
      StackMap locals:
      StackMap stack: float
         2: freturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/animation/ValueAnimator;

  private long getScaledDuration();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 603
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mDuration:J
            l2f
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.resolveDurationScale:()F
            fmul
            f2l
            lreturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/ValueAnimator;

  public long getDuration();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 613
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mDuration:J
            lreturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/ValueAnimator;

  public long getTotalDuration();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 618
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            iconst_m1
            if_icmpne 2
         1: .line 619
            ldc -1
            lreturn
         2: .line 621
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mStartDelay:J
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mDuration:J
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            iconst_1
            iadd
            i2l
            lmul
            ladd
            lreturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/animation/ValueAnimator;

  public void setCurrentPlayTime(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // long playTime
         0: .line 636
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mDuration:J
            lconst_0
            lcmp
            ifle 1
            lload 1 /* playTime */
            l2f
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mDuration:J
            l2f
            fdiv
            goto 2
      StackMap locals:
      StackMap stack:
         1: fconst_1
      StackMap locals:
      StackMap stack: float
         2: fstore 3 /* fraction */
        start local 3 // float fraction
         3: .line 637
            aload 0 /* this */
            fload 3 /* fraction */
            invokevirtual android.animation.ValueAnimator.setCurrentFraction:(F)V
         4: .line 638
            return
        end local 3 // float fraction
        end local 1 // long playTime
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Landroid/animation/ValueAnimator;
            0    5     1  playTime  J
            3    5     3  fraction  F
    MethodParameters:
          Name  Flags
      playTime  

  public void setCurrentFraction(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // float fraction
         0: .line 658
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.initAnimation:()V
         1: .line 659
            aload 0 /* this */
            fload 1 /* fraction */
            invokevirtual android.animation.ValueAnimator.clampFraction:(F)F
            fstore 1 /* fraction */
         2: .line 660
            aload 0 /* this */
            iconst_1
            putfield android.animation.ValueAnimator.mStartTimeCommitted:Z
         3: .line 661
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.isPulsingInternal:()Z
            ifeq 8
         4: .line 662
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.getScaledDuration:()J
            l2f
            fload 1 /* fraction */
            fmul
            f2l
            lstore 2 /* seekTime */
        start local 2 // long seekTime
         5: .line 663
            invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
            lstore 4 /* currentTime */
        start local 4 // long currentTime
         6: .line 666
            aload 0 /* this */
            lload 4 /* currentTime */
            lload 2 /* seekTime */
            lsub
            putfield android.animation.ValueAnimator.mStartTime:J
        end local 4 // long currentTime
        end local 2 // long seekTime
         7: .line 667
            goto 9
         8: .line 670
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            fload 1 /* fraction */
            putfield android.animation.ValueAnimator.mSeekFraction:F
         9: .line 672
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            fload 1 /* fraction */
            putfield android.animation.ValueAnimator.mOverallFraction:F
        10: .line 673
            aload 0 /* this */
            fload 1 /* fraction */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mReversing:Z
            invokevirtual android.animation.ValueAnimator.getCurrentIterationFraction:(FZ)F
            fstore 2 /* currentIterationFraction */
        start local 2 // float currentIterationFraction
        11: .line 674
            aload 0 /* this */
            fload 2 /* currentIterationFraction */
            invokevirtual android.animation.ValueAnimator.animateValue:(F)V
        12: .line 675
            return
        end local 2 // float currentIterationFraction
        end local 1 // float fraction
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   13     0                      this  Landroid/animation/ValueAnimator;
            0   13     1                  fraction  F
            5    7     2                  seekTime  J
            6    7     4               currentTime  J
           11   13     2  currentIterationFraction  F
    MethodParameters:
          Name  Flags
      fraction  

  private int getCurrentIteration(float);
    descriptor: (F)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // float fraction
         0: .line 683
            aload 0 /* this */
            fload 1 /* fraction */
            invokevirtual android.animation.ValueAnimator.clampFraction:(F)F
            fstore 1 /* fraction */
         1: .line 687
            fload 1 /* fraction */
            f2d
            invokestatic java.lang.Math.floor:(D)D
            dstore 2 /* iteration */
        start local 2 // double iteration
         2: .line 688
            fload 1 /* fraction */
            f2d
            dload 2 /* iteration */
            dcmpl
            ifne 4
            fload 1 /* fraction */
            fconst_0
            fcmpl
            ifle 4
         3: .line 689
            dload 2 /* iteration */
            dconst_1
            dsub
            dstore 2 /* iteration */
         4: .line 691
      StackMap locals: double
      StackMap stack:
            dload 2 /* iteration */
            d2i
            ireturn
        end local 2 // double iteration
        end local 1 // float fraction
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Landroid/animation/ValueAnimator;
            0    5     1   fraction  F
            2    5     2  iteration  D
    MethodParameters:
          Name  Flags
      fraction  

  private float getCurrentIterationFraction(float, boolean);
    descriptor: (FZ)F
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // android.animation.ValueAnimator this
        start local 1 // float fraction
        start local 2 // boolean inReverse
         0: .line 700
            aload 0 /* this */
            fload 1 /* fraction */
            invokevirtual android.animation.ValueAnimator.clampFraction:(F)F
            fstore 1 /* fraction */
         1: .line 701
            aload 0 /* this */
            fload 1 /* fraction */
            invokevirtual android.animation.ValueAnimator.getCurrentIteration:(F)I
            istore 3 /* iteration */
        start local 3 // int iteration
         2: .line 702
            fload 1 /* fraction */
            iload 3 /* iteration */
            i2f
            fsub
            fstore 4 /* currentFraction */
        start local 4 // float currentFraction
         3: .line 703
            aload 0 /* this */
            iload 3 /* iteration */
            iload 2 /* inReverse */
            invokevirtual android.animation.ValueAnimator.shouldPlayBackward:(IZ)Z
            ifeq 4
            fconst_1
            fload 4 /* currentFraction */
            fsub
            goto 5
      StackMap locals: int float
      StackMap stack:
         4: fload 4 /* currentFraction */
      StackMap locals:
      StackMap stack: float
         5: freturn
        end local 4 // float currentFraction
        end local 3 // int iteration
        end local 2 // boolean inReverse
        end local 1 // float fraction
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Landroid/animation/ValueAnimator;
            0    6     1         fraction  F
            0    6     2        inReverse  Z
            2    6     3        iteration  I
            3    6     4  currentFraction  F
    MethodParameters:
           Name  Flags
      fraction   
      inReverse  

  private float clampFraction(float);
    descriptor: (F)F
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // float fraction
         0: .line 714
            fload 1 /* fraction */
            fconst_0
            fcmpg
            ifge 3
         1: .line 715
            fconst_0
            fstore 1 /* fraction */
         2: .line 716
            goto 5
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            iconst_m1
            if_icmpeq 5
         4: .line 717
            fload 1 /* fraction */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            iconst_1
            iadd
            i2f
            invokestatic java.lang.Math.min:(FF)F
            fstore 1 /* fraction */
         5: .line 719
      StackMap locals:
      StackMap stack:
            fload 1 /* fraction */
            freturn
        end local 1 // float fraction
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Landroid/animation/ValueAnimator;
            0    6     1  fraction  F
    MethodParameters:
          Name  Flags
      fraction  

  private boolean shouldPlayBackward(int, boolean);
    descriptor: (IZ)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.animation.ValueAnimator this
        start local 1 // int iteration
        start local 2 // boolean inReverse
         0: .line 728
            iload 1 /* iteration */
            ifle 7
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatMode:I
            iconst_2
            if_icmpne 7
         1: .line 729
            iload 1 /* iteration */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            iconst_1
            iadd
            if_icmplt 2
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            iconst_m1
            if_icmpne 7
         2: .line 732
      StackMap locals:
      StackMap stack:
            iload 2 /* inReverse */
            ifeq 5
         3: .line 733
            iload 1 /* iteration */
            iconst_2
            irem
            ifne 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
         5: .line 735
      StackMap locals:
      StackMap stack:
            iload 1 /* iteration */
            iconst_2
            irem
            ifeq 6
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_0
            ireturn
         7: .line 738
      StackMap locals:
      StackMap stack:
            iload 2 /* inReverse */
            ireturn
        end local 2 // boolean inReverse
        end local 1 // int iteration
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Landroid/animation/ValueAnimator;
            0    8     1  iteration  I
            0    8     2  inReverse  Z
    MethodParameters:
           Name  Flags
      iteration  
      inReverse  

  public long getCurrentPlayTime();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 752
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mInitialized:Z
            ifeq 1
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mStarted:Z
            ifne 2
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSeekFraction:F
            fconst_0
            fcmpg
            ifge 2
         1: .line 753
      StackMap locals:
      StackMap stack:
            lconst_0
            lreturn
         2: .line 755
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSeekFraction:F
            fconst_0
            fcmpl
            iflt 4
         3: .line 756
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mDuration:J
            l2f
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSeekFraction:F
            fmul
            f2l
            lreturn
         4: .line 758
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.resolveDurationScale:()F
            fstore 1 /* durationScale */
        start local 1 // float durationScale
         5: .line 759
            fload 1 /* durationScale */
            fconst_0
            fcmpl
            ifne 7
         6: .line 760
            fconst_1
            fstore 1 /* durationScale */
         7: .line 762
      StackMap locals: float
      StackMap stack:
            invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mStartTime:J
            lsub
            l2f
            fload 1 /* durationScale */
            fdiv
            f2l
            lreturn
        end local 1 // float durationScale
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Landroid/animation/ValueAnimator;
            5    8     1  durationScale  F

  public long getStartDelay();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 773
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mStartDelay:J
            lreturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/ValueAnimator;

  public void setStartDelay(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // long startDelay
         0: .line 786
            lload 1 /* startDelay */
            lconst_0
            lcmp
            ifge 3
         1: .line 787
            ldc "ValueAnimator"
            ldc "Start delay should always be non-negative"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 788
            lconst_0
            lstore 1 /* startDelay */
         3: .line 790
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* startDelay */
            putfield android.animation.ValueAnimator.mStartDelay:J
         4: .line 791
            return
        end local 1 // long startDelay
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Landroid/animation/ValueAnimator;
            0    5     1  startDelay  J
    MethodParameters:
            Name  Flags
      startDelay  

  public static long getFrameDelay();
    descriptor: ()J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 810
            invokestatic android.animation.AnimationHandler.getInstance:()Landroid/animation/AnimationHandler;
            pop
            invokestatic android.animation.AnimationHandler.getFrameDelay:()J
            lreturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void setFrameDelay(long);
    descriptor: (J)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // long frameDelay
         0: .line 830
            invokestatic android.animation.AnimationHandler.getInstance:()Landroid/animation/AnimationHandler;
            pop
            lload 0 /* frameDelay */
            invokestatic android.animation.AnimationHandler.setFrameDelay:(J)V
         1: .line 831
            return
        end local 0 // long frameDelay
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  frameDelay  J
    MethodParameters:
            Name  Flags
      frameDelay  

  public java.lang.Object getAnimatedValue();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 846
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            ifnull 2
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            arraylength
            ifle 2
         1: .line 847
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            iconst_0
            aaload
            invokevirtual android.animation.PropertyValuesHolder.getAnimatedValue:()Ljava/lang/Object;
            areturn
         2: .line 850
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/animation/ValueAnimator;

  public java.lang.Object getAnimatedValue(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // java.lang.String propertyName
         0: .line 864
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValuesMap:Ljava/util/HashMap;
            aload 1 /* propertyName */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.animation.PropertyValuesHolder
            astore 2 /* valuesHolder */
        start local 2 // android.animation.PropertyValuesHolder valuesHolder
         1: .line 865
            aload 2 /* valuesHolder */
            ifnull 3
         2: .line 866
            aload 2 /* valuesHolder */
            invokevirtual android.animation.PropertyValuesHolder.getAnimatedValue:()Ljava/lang/Object;
            areturn
         3: .line 869
      StackMap locals: android.animation.PropertyValuesHolder
      StackMap stack:
            aconst_null
            areturn
        end local 2 // android.animation.PropertyValuesHolder valuesHolder
        end local 1 // java.lang.String propertyName
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Landroid/animation/ValueAnimator;
            0    4     1  propertyName  Ljava/lang/String;
            1    4     2  valuesHolder  Landroid/animation/PropertyValuesHolder;
    MethodParameters:
              Name  Flags
      propertyName  

  public void setRepeatCount(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // int value
         0: .line 882
            aload 0 /* this */
            iload 1 /* value */
            putfield android.animation.ValueAnimator.mRepeatCount:I
         1: .line 883
            return
        end local 1 // int value
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/animation/ValueAnimator;
            0    2     1  value  I
    MethodParameters:
       Name  Flags
      value  

  public int getRepeatCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 891
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            ireturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/ValueAnimator;

  public void setRepeatMode(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // int value
         0: .line 902
            aload 0 /* this */
            iload 1 /* value */
            putfield android.animation.ValueAnimator.mRepeatMode:I
         1: .line 903
            return
        end local 1 // int value
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/animation/ValueAnimator;
            0    2     1  value  I
    MethodParameters:
       Name  Flags
      value  

  public int getRepeatMode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 912
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatMode:I
            ireturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/ValueAnimator;

  public void addUpdateListener(android.animation.ValueAnimator$AnimatorUpdateListener);
    descriptor: (Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // android.animation.ValueAnimator$AnimatorUpdateListener listener
         0: .line 923
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
            ifnonnull 2
         1: .line 924
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
         2: .line 926
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
            aload 1 /* listener */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         3: .line 927
            return
        end local 1 // android.animation.ValueAnimator$AnimatorUpdateListener listener
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Landroid/animation/ValueAnimator;
            0    4     1  listener  Landroid/animation/ValueAnimator$AnimatorUpdateListener;
    MethodParameters:
          Name  Flags
      listener  

  public void removeAllUpdateListeners();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 933
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
            ifnonnull 2
         1: .line 934
            return
         2: .line 936
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
         3: .line 937
            aload 0 /* this */
            aconst_null
            putfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
         4: .line 938
            return
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/animation/ValueAnimator;

  public void removeUpdateListener(android.animation.ValueAnimator$AnimatorUpdateListener);
    descriptor: (Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // android.animation.ValueAnimator$AnimatorUpdateListener listener
         0: .line 947
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
            ifnonnull 2
         1: .line 948
            return
         2: .line 950
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
            aload 1 /* listener */
            invokevirtual java.util.ArrayList.remove:(Ljava/lang/Object;)Z
            pop
         3: .line 951
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            ifne 5
         4: .line 952
            aload 0 /* this */
            aconst_null
            putfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
         5: .line 954
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.animation.ValueAnimator$AnimatorUpdateListener listener
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Landroid/animation/ValueAnimator;
            0    6     1  listener  Landroid/animation/ValueAnimator$AnimatorUpdateListener;
    MethodParameters:
          Name  Flags
      listener  

  public void setInterpolator(android.animation.TimeInterpolator);
    descriptor: (Landroid/animation/TimeInterpolator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // android.animation.TimeInterpolator value
         0: .line 968
            aload 1 /* value */
            ifnull 3
         1: .line 969
            aload 0 /* this */
            aload 1 /* value */
            putfield android.animation.ValueAnimator.mInterpolator:Landroid/animation/TimeInterpolator;
         2: .line 970
            goto 4
         3: .line 971
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new android.view.animation.LinearInterpolator
            dup
            invokespecial android.view.animation.LinearInterpolator.<init>:()V
            putfield android.animation.ValueAnimator.mInterpolator:Landroid/animation/TimeInterpolator;
         4: .line 973
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.animation.TimeInterpolator value
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Landroid/animation/ValueAnimator;
            0    5     1  value  Landroid/animation/TimeInterpolator;
    MethodParameters:
       Name  Flags
      value  

  public android.animation.TimeInterpolator getInterpolator();
    descriptor: ()Landroid/animation/TimeInterpolator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 982
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mInterpolator:Landroid/animation/TimeInterpolator;
            areturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/ValueAnimator;

  public void setEvaluator(android.animation.TypeEvaluator);
    descriptor: (Landroid/animation/TypeEvaluator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // android.animation.TypeEvaluator value
         0: .line 1002
            aload 1 /* value */
            ifnull 2
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            ifnull 2
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            arraylength
            ifle 2
         1: .line 1003
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            iconst_0
            aaload
            aload 1 /* value */
            invokevirtual android.animation.PropertyValuesHolder.setEvaluator:(Landroid/animation/TypeEvaluator;)V
         2: .line 1005
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.animation.TypeEvaluator value
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Landroid/animation/ValueAnimator;
            0    3     1  value  Landroid/animation/TypeEvaluator;
    MethodParameters:
       Name  Flags
      value  

  private void notifyStartListeners();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1008
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mListeners:Ljava/util/ArrayList;
            ifnull 9
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mStartListenersCalled:Z
            ifne 9
         1: .line 1010
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mListeners:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clone:()Ljava/lang/Object;
            checkcast java.util.ArrayList
         2: .line 1009
            astore 1 /* tmpListeners */
        start local 1 // java.util.ArrayList tmpListeners
         3: .line 1011
            aload 1 /* tmpListeners */
            invokevirtual java.util.ArrayList.size:()I
            istore 2 /* numListeners */
        start local 2 // int numListeners
         4: .line 1012
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 8
         6: .line 1013
      StackMap locals: java.util.ArrayList int int
      StackMap stack:
            aload 1 /* tmpListeners */
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.animation.Animator$AnimatorListener
            aload 0 /* this */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mReversing:Z
            invokeinterface android.animation.Animator$AnimatorListener.onAnimationStart:(Landroid/animation/Animator;Z)V
         7: .line 1012
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 2 /* numListeners */
            if_icmplt 6
        end local 3 // int i
        end local 2 // int numListeners
        end local 1 // java.util.ArrayList tmpListeners
         9: .line 1016
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.animation.ValueAnimator.mStartListenersCalled:Z
        10: .line 1017
            return
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Landroid/animation/ValueAnimator;
            3    9     1  tmpListeners  Ljava/util/ArrayList<Landroid/animation/Animator$AnimatorListener;>;
            4    9     2  numListeners  I
            5    9     3             i  I

  private void start(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // boolean playBackwards
         0: .line 1033
            invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
            ifnonnull 2
         1: .line 1034
            new android.util.AndroidRuntimeException
            dup
            ldc "Animators may only be run on Looper threads"
            invokespecial android.util.AndroidRuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1036
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* playBackwards */
            putfield android.animation.ValueAnimator.mReversing:Z
         3: .line 1037
            aload 0 /* this */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSuppressSelfPulseRequested:Z
            ifeq 4
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack: android.animation.ValueAnimator
         4: iconst_1
      StackMap locals: android.animation.ValueAnimator int
      StackMap stack: android.animation.ValueAnimator int
         5: putfield android.animation.ValueAnimator.mSelfPulse:Z
         6: .line 1039
            iload 1 /* playBackwards */
            ifeq 12
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSeekFraction:F
            ldc -1.0
            fcmpl
            ifeq 12
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSeekFraction:F
            fconst_0
            fcmpl
            ifeq 12
         7: .line 1040
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            iconst_m1
            if_icmpne 11
         8: .line 1042
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSeekFraction:F
            f2d
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSeekFraction:F
            f2d
            invokestatic java.lang.Math.floor:(D)D
            dsub
            d2f
            fstore 2 /* fraction */
        start local 2 // float fraction
         9: .line 1043
            aload 0 /* this */
            fconst_1
            fload 2 /* fraction */
            fsub
            putfield android.animation.ValueAnimator.mSeekFraction:F
        end local 2 // float fraction
        10: .line 1044
            goto 12
        11: .line 1045
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            iadd
            i2f
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSeekFraction:F
            fsub
            putfield android.animation.ValueAnimator.mSeekFraction:F
        12: .line 1048
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.animation.ValueAnimator.mStarted:Z
        13: .line 1049
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mPaused:Z
        14: .line 1050
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mRunning:Z
        15: .line 1051
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mAnimationEndRequested:Z
        16: .line 1055
            aload 0 /* this */
            ldc -1
            putfield android.animation.ValueAnimator.mLastFrameTime:J
        17: .line 1056
            aload 0 /* this */
            ldc -1
            putfield android.animation.ValueAnimator.mFirstFrameTime:J
        18: .line 1057
            aload 0 /* this */
            ldc -1
            putfield android.animation.ValueAnimator.mStartTime:J
        19: .line 1058
            aload 0 /* this */
            lconst_0
            invokevirtual android.animation.ValueAnimator.addAnimationCallback:(J)V
        20: .line 1060
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mStartDelay:J
            lconst_0
            lcmp
            ifeq 21
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSeekFraction:F
            fconst_0
            fcmpl
            ifge 21
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mReversing:Z
            ifeq 26
        21: .line 1064
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.startAnimation:()V
        22: .line 1065
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSeekFraction:F
            ldc -1.0
            fcmpl
            ifne 25
        23: .line 1069
            aload 0 /* this */
            lconst_0
            invokevirtual android.animation.ValueAnimator.setCurrentPlayTime:(J)V
        24: .line 1070
            goto 26
        25: .line 1071
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSeekFraction:F
            invokevirtual android.animation.ValueAnimator.setCurrentFraction:(F)V
        26: .line 1074
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean playBackwards
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   27     0           this  Landroid/animation/ValueAnimator;
            0   27     1  playBackwards  Z
            9   10     2       fraction  F
    MethodParameters:
               Name  Flags
      playBackwards  

  void startWithoutPulsing(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // boolean inReverse
         0: .line 1077
            aload 0 /* this */
            iconst_1
            putfield android.animation.ValueAnimator.mSuppressSelfPulseRequested:Z
         1: .line 1078
            iload 1 /* inReverse */
            ifeq 4
         2: .line 1079
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.reverse:()V
         3: .line 1080
            goto 5
         4: .line 1081
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.start:()V
         5: .line 1083
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mSuppressSelfPulseRequested:Z
         6: .line 1084
            return
        end local 1 // boolean inReverse
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Landroid/animation/ValueAnimator;
            0    7     1  inReverse  Z
    MethodParameters:
           Name  Flags
      inReverse  

  public void start();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1088
            aload 0 /* this */
            iconst_0
            invokevirtual android.animation.ValueAnimator.start:(Z)V
         1: .line 1089
            return
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/animation/ValueAnimator;

  public void cancel();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1093
            invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
            ifnonnull 2
         1: .line 1094
            new android.util.AndroidRuntimeException
            dup
            ldc "Animators may only be run on Looper threads"
            invokespecial android.util.AndroidRuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1099
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mAnimationEndRequested:Z
            ifeq 4
         3: .line 1100
            return
         4: .line 1106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mStarted:Z
            ifne 5
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRunning:Z
            ifeq 14
      StackMap locals:
      StackMap stack:
         5: aload 0 /* this */
            getfield android.animation.ValueAnimator.mListeners:Ljava/util/ArrayList;
            ifnull 14
         6: .line 1107
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRunning:Z
            ifne 8
         7: .line 1109
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.notifyStartListeners:()V
         8: .line 1112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mListeners:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clone:()Ljava/lang/Object;
            checkcast java.util.ArrayList
         9: .line 1111
            astore 1 /* tmpListeners */
        start local 1 // java.util.ArrayList tmpListeners
        10: .line 1113
            aload 1 /* tmpListeners */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 13
      StackMap locals: android.animation.ValueAnimator java.util.ArrayList top java.util.Iterator
      StackMap stack:
        11: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.animation.Animator$AnimatorListener
            astore 2 /* listener */
        start local 2 // android.animation.Animator$AnimatorListener listener
        12: .line 1114
            aload 2 /* listener */
            aload 0 /* this */
            invokeinterface android.animation.Animator$AnimatorListener.onAnimationCancel:(Landroid/animation/Animator;)V
        end local 2 // android.animation.Animator$AnimatorListener listener
        13: .line 1113
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        end local 1 // java.util.ArrayList tmpListeners
        14: .line 1117
      StackMap locals: android.animation.ValueAnimator
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.endAnimation:()V
        15: .line 1119
            return
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Landroid/animation/ValueAnimator;
           10   14     1  tmpListeners  Ljava/util/ArrayList<Landroid/animation/Animator$AnimatorListener;>;
           12   13     2      listener  Landroid/animation/Animator$AnimatorListener;

  public void end();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1123
            invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
            ifnonnull 2
         1: .line 1124
            new android.util.AndroidRuntimeException
            dup
            ldc "Animators may only be run on Looper threads"
            invokespecial android.util.AndroidRuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1126
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRunning:Z
            ifne 6
         3: .line 1128
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.startAnimation:()V
         4: .line 1129
            aload 0 /* this */
            iconst_1
            putfield android.animation.ValueAnimator.mStarted:Z
         5: .line 1130
            goto 8
      StackMap locals:
      StackMap stack:
         6: aload 0 /* this */
            getfield android.animation.ValueAnimator.mInitialized:Z
            ifne 8
         7: .line 1131
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.initAnimation:()V
         8: .line 1133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mReversing:Z
            invokevirtual android.animation.ValueAnimator.shouldPlayBackward:(IZ)Z
            ifeq 9
            fconst_0
            goto 10
      StackMap locals:
      StackMap stack: android.animation.ValueAnimator
         9: fconst_1
      StackMap locals: android.animation.ValueAnimator
      StackMap stack: android.animation.ValueAnimator float
        10: invokevirtual android.animation.ValueAnimator.animateValue:(F)V
        11: .line 1134
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.endAnimation:()V
        12: .line 1135
            return
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Landroid/animation/ValueAnimator;

  public void resume();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1139
            invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
            ifnonnull 2
         1: .line 1140
            new android.util.AndroidRuntimeException
            dup
            ldc "Animators may only be resumed from the same thread that the animator was started on"
            invokespecial android.util.AndroidRuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mPaused:Z
            ifeq 6
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mResumed:Z
            ifne 6
         3: .line 1144
            aload 0 /* this */
            iconst_1
            putfield android.animation.ValueAnimator.mResumed:Z
         4: .line 1145
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mPauseTime:J
            lconst_0
            lcmp
            ifle 6
         5: .line 1146
            aload 0 /* this */
            lconst_0
            invokevirtual android.animation.ValueAnimator.addAnimationCallback:(J)V
         6: .line 1149
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial android.animation.Animator.resume:()V
         7: .line 1150
            return
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/animation/ValueAnimator;

  public void pause();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1154
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mPaused:Z
            istore 1 /* previouslyPaused */
        start local 1 // boolean previouslyPaused
         1: .line 1155
            aload 0 /* this */
            invokespecial android.animation.Animator.pause:()V
         2: .line 1156
            iload 1 /* previouslyPaused */
            ifne 5
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mPaused:Z
            ifeq 5
         3: .line 1157
            aload 0 /* this */
            ldc -1
            putfield android.animation.ValueAnimator.mPauseTime:J
         4: .line 1158
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mResumed:Z
         5: .line 1160
      StackMap locals: int
      StackMap stack:
            return
        end local 1 // boolean previouslyPaused
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Landroid/animation/ValueAnimator;
            1    6     1  previouslyPaused  Z

  public boolean isRunning();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1164
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRunning:Z
            ireturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/ValueAnimator;

  public boolean isStarted();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1169
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mStarted:Z
            ireturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/ValueAnimator;

  public void reverse();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1181
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.isPulsingInternal:()Z
            ifeq 10
         1: .line 1182
            invokestatic android.view.animation.AnimationUtils.currentAnimationTimeMillis:()J
            lstore 1 /* currentTime */
        start local 1 // long currentTime
         2: .line 1183
            lload 1 /* currentTime */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mStartTime:J
            lsub
            lstore 3 /* currentPlayTime */
        start local 3 // long currentPlayTime
         3: .line 1184
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.getScaledDuration:()J
            lload 3 /* currentPlayTime */
            lsub
            lstore 5 /* timeLeft */
        start local 5 // long timeLeft
         4: .line 1185
            aload 0 /* this */
            lload 1 /* currentTime */
            lload 5 /* timeLeft */
            lsub
            putfield android.animation.ValueAnimator.mStartTime:J
         5: .line 1186
            aload 0 /* this */
            iconst_1
            putfield android.animation.ValueAnimator.mStartTimeCommitted:Z
         6: .line 1187
            aload 0 /* this */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mReversing:Z
            ifeq 7
            iconst_0
            goto 8
      StackMap locals: android.animation.ValueAnimator long long long
      StackMap stack: android.animation.ValueAnimator
         7: iconst_1
      StackMap locals: android.animation.ValueAnimator long long long
      StackMap stack: android.animation.ValueAnimator int
         8: putfield android.animation.ValueAnimator.mReversing:Z
        end local 5 // long timeLeft
        end local 3 // long currentPlayTime
        end local 1 // long currentTime
         9: .line 1188
            goto 17
      StackMap locals:
      StackMap stack:
        10: aload 0 /* this */
            getfield android.animation.ValueAnimator.mStarted:Z
            ifeq 16
        11: .line 1189
            aload 0 /* this */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mReversing:Z
            ifeq 12
            iconst_0
            goto 13
      StackMap locals:
      StackMap stack: android.animation.ValueAnimator
        12: iconst_1
      StackMap locals: android.animation.ValueAnimator
      StackMap stack: android.animation.ValueAnimator int
        13: putfield android.animation.ValueAnimator.mReversing:Z
        14: .line 1190
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.end:()V
        15: .line 1191
            goto 17
        16: .line 1192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual android.animation.ValueAnimator.start:(Z)V
        17: .line 1194
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0             this  Landroid/animation/ValueAnimator;
            2    9     1      currentTime  J
            3    9     3  currentPlayTime  J
            4    9     5         timeLeft  J

  public boolean canReverse();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1201
            iconst_1
            ireturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/ValueAnimator;

  private void endAnimation();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1209
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mAnimationEndRequested:Z
            ifeq 2
         1: .line 1210
            return
         2: .line 1212
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.removeAnimationCallback:()V
         3: .line 1214
            aload 0 /* this */
            iconst_1
            putfield android.animation.ValueAnimator.mAnimationEndRequested:Z
         4: .line 1215
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mPaused:Z
         5: .line 1216
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mStarted:Z
            ifne 6
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRunning:Z
            ifeq 7
      StackMap locals:
      StackMap stack:
         6: aload 0 /* this */
            getfield android.animation.ValueAnimator.mListeners:Ljava/util/ArrayList;
            ifnull 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 1 /* notify */
        start local 1 // boolean notify
         9: .line 1217
            iload 1 /* notify */
            ifeq 11
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRunning:Z
            ifne 11
        10: .line 1219
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.notifyStartListeners:()V
        11: .line 1221
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mRunning:Z
        12: .line 1222
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mStarted:Z
        13: .line 1223
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mStartListenersCalled:Z
        14: .line 1224
            aload 0 /* this */
            ldc -1
            putfield android.animation.ValueAnimator.mLastFrameTime:J
        15: .line 1225
            aload 0 /* this */
            ldc -1
            putfield android.animation.ValueAnimator.mFirstFrameTime:J
        16: .line 1226
            aload 0 /* this */
            ldc -1
            putfield android.animation.ValueAnimator.mStartTime:J
        17: .line 1227
            iload 1 /* notify */
            ifeq 26
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mListeners:Ljava/util/ArrayList;
            ifnull 26
        18: .line 1229
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mListeners:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clone:()Ljava/lang/Object;
            checkcast java.util.ArrayList
        19: .line 1228
            astore 2 /* tmpListeners */
        start local 2 // java.util.ArrayList tmpListeners
        20: .line 1230
            aload 2 /* tmpListeners */
            invokevirtual java.util.ArrayList.size:()I
            istore 3 /* numListeners */
        start local 3 // int numListeners
        21: .line 1231
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        22: goto 25
        23: .line 1232
      StackMap locals: java.util.ArrayList int int
      StackMap stack:
            aload 2 /* tmpListeners */
            iload 4 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.animation.Animator$AnimatorListener
            aload 0 /* this */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mReversing:Z
            invokeinterface android.animation.Animator$AnimatorListener.onAnimationEnd:(Landroid/animation/Animator;Z)V
        24: .line 1231
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 4 /* i */
            iload 3 /* numListeners */
            if_icmplt 23
        end local 4 // int i
        end local 3 // int numListeners
        end local 2 // java.util.ArrayList tmpListeners
        26: .line 1236
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mReversing:Z
        27: .line 1237
            ldc 8
            invokestatic android.os.Trace.isTagEnabled:(J)Z
            ifeq 31
        28: .line 1238
            ldc 8
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.getNameForTrace:()Ljava/lang/String;
        29: .line 1239
            aload 0 /* this */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
        30: .line 1238
            invokestatic android.os.Trace.asyncTraceEnd:(JLjava/lang/String;I)V
        31: .line 1241
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean notify
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   32     0          this  Landroid/animation/ValueAnimator;
            9   32     1        notify  Z
           20   26     2  tmpListeners  Ljava/util/ArrayList<Landroid/animation/Animator$AnimatorListener;>;
           21   26     3  numListeners  I
           22   26     4             i  I

  private void startAnimation();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1248
            ldc 8
            invokestatic android.os.Trace.isTagEnabled:(J)Z
            ifeq 4
         1: .line 1249
            ldc 8
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.getNameForTrace:()Ljava/lang/String;
         2: .line 1250
            aload 0 /* this */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
         3: .line 1249
            invokestatic android.os.Trace.asyncTraceBegin:(JLjava/lang/String;I)V
         4: .line 1253
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mAnimationEndRequested:Z
         5: .line 1254
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.initAnimation:()V
         6: .line 1255
            aload 0 /* this */
            iconst_1
            putfield android.animation.ValueAnimator.mRunning:Z
         7: .line 1256
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSeekFraction:F
            fconst_0
            fcmpl
            iflt 10
         8: .line 1257
            aload 0 /* this */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSeekFraction:F
            putfield android.animation.ValueAnimator.mOverallFraction:F
         9: .line 1258
            goto 11
        10: .line 1259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            fconst_0
            putfield android.animation.ValueAnimator.mOverallFraction:F
        11: .line 1261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mListeners:Ljava/util/ArrayList;
            ifnull 13
        12: .line 1262
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.notifyStartListeners:()V
        13: .line 1264
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Landroid/animation/ValueAnimator;

  private boolean isPulsingInternal();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1272
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mLastFrameTime:J
            lconst_0
            lcmp
            iflt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/animation/ValueAnimator;

  java.lang.String getNameForTrace();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1279
            ldc "animator"
            areturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/ValueAnimator;

  public void commitAnimationFrame(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // long frameTime
         0: .line 1288
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mStartTimeCommitted:Z
            ifne 5
         1: .line 1289
            aload 0 /* this */
            iconst_1
            putfield android.animation.ValueAnimator.mStartTimeCommitted:Z
         2: .line 1290
            lload 1 /* frameTime */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mLastFrameTime:J
            lsub
            lstore 3 /* adjustment */
        start local 3 // long adjustment
         3: .line 1291
            lload 3 /* adjustment */
            lconst_0
            lcmp
            ifle 5
         4: .line 1292
            aload 0 /* this */
            dup
            getfield android.animation.ValueAnimator.mStartTime:J
            lload 3 /* adjustment */
            ladd
            putfield android.animation.ValueAnimator.mStartTime:J
        end local 3 // long adjustment
         5: .line 1298
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long frameTime
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Landroid/animation/ValueAnimator;
            0    6     1   frameTime  J
            3    5     3  adjustment  J
    MethodParameters:
           Name  Flags
      frameTime  

  boolean animateBasedOnTime(long);
    descriptor: (J)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=12, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // long currentTime
         0: .line 1313
            iconst_0
            istore 3 /* done */
        start local 3 // boolean done
         1: .line 1314
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRunning:Z
            ifeq 35
         2: .line 1315
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.getScaledDuration:()J
            lstore 4 /* scaledDuration */
        start local 4 // long scaledDuration
         3: .line 1316
            lload 4 /* scaledDuration */
            lconst_0
            lcmp
            ifle 5
         4: .line 1317
            lload 1 /* currentTime */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mStartTime:J
            lsub
            l2f
            lload 4 /* scaledDuration */
            l2f
            fdiv
            goto 6
      StackMap locals: int long
      StackMap stack:
         5: fconst_1
         6: .line 1316
      StackMap locals:
      StackMap stack: float
            fstore 6 /* fraction */
        start local 6 // float fraction
         7: .line 1318
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mOverallFraction:F
            fstore 7 /* lastFraction */
        start local 7 // float lastFraction
         8: .line 1319
            fload 6 /* fraction */
            f2i
            fload 7 /* lastFraction */
            f2i
            if_icmple 9
            iconst_1
            goto 10
      StackMap locals: float float
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 8 /* newIteration */
        start local 8 // boolean newIteration
        11: .line 1320
            fload 6 /* fraction */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            iconst_1
            iadd
            i2f
            fcmpl
            iflt 14
        12: .line 1321
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            iconst_m1
            if_icmpeq 14
        13: .line 1320
            iconst_1
            goto 15
      StackMap locals: int
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 9 /* lastIterationFinished */
        start local 9 // boolean lastIterationFinished
        16: .line 1322
            lload 4 /* scaledDuration */
            lconst_0
            lcmp
            ifne 19
        17: .line 1324
            iconst_1
            istore 3 /* done */
        18: .line 1325
            goto 30
      StackMap locals: int
      StackMap stack:
        19: iload 8 /* newIteration */
            ifeq 28
            iload 9 /* lastIterationFinished */
            ifne 28
        20: .line 1327
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mListeners:Ljava/util/ArrayList;
            ifnull 30
        21: .line 1328
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mListeners:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 10 /* numListeners */
        start local 10 // int numListeners
        22: .line 1329
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        23: goto 26
        24: .line 1330
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mListeners:Ljava/util/ArrayList;
            iload 11 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.animation.Animator$AnimatorListener
            aload 0 /* this */
            invokeinterface android.animation.Animator$AnimatorListener.onAnimationRepeat:(Landroid/animation/Animator;)V
        25: .line 1329
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 11 /* i */
            iload 10 /* numListeners */
            if_icmplt 24
        end local 11 // int i
        end local 10 // int numListeners
        27: .line 1333
            goto 30
      StackMap locals:
      StackMap stack:
        28: iload 9 /* lastIterationFinished */
            ifeq 30
        29: .line 1334
            iconst_1
            istore 3 /* done */
        30: .line 1336
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            fload 6 /* fraction */
            invokevirtual android.animation.ValueAnimator.clampFraction:(F)F
            putfield android.animation.ValueAnimator.mOverallFraction:F
        31: .line 1337
            aload 0 /* this */
        32: .line 1338
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mOverallFraction:F
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mReversing:Z
        33: .line 1337
            invokevirtual android.animation.ValueAnimator.getCurrentIterationFraction:(FZ)F
            fstore 10 /* currentIterationFraction */
        start local 10 // float currentIterationFraction
        34: .line 1339
            aload 0 /* this */
            fload 10 /* currentIterationFraction */
            invokevirtual android.animation.ValueAnimator.animateValue:(F)V
        end local 10 // float currentIterationFraction
        end local 9 // boolean lastIterationFinished
        end local 8 // boolean newIteration
        end local 7 // float lastFraction
        end local 6 // float fraction
        end local 4 // long scaledDuration
        35: .line 1341
      StackMap locals: android.animation.ValueAnimator long int
      StackMap stack:
            iload 3 /* done */
            ireturn
        end local 3 // boolean done
        end local 1 // long currentTime
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   36     0                      this  Landroid/animation/ValueAnimator;
            0   36     1               currentTime  J
            1   36     3                      done  Z
            3   35     4            scaledDuration  J
            7   35     6                  fraction  F
            8   35     7              lastFraction  F
           11   35     8              newIteration  Z
           16   35     9     lastIterationFinished  Z
           22   27    10              numListeners  I
           23   27    11                         i  I
           34   35    10  currentIterationFraction  F
    MethodParameters:
             Name  Flags
      currentTime  

  void animateBasedOnPlayTime(long, long, boolean);
    descriptor: (JJZ)V
    flags: (0x0000) 
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // android.animation.ValueAnimator this
        start local 1 // long currentPlayTime
        start local 3 // long lastPlayTime
        start local 5 // boolean inReverse
         0: .line 1355
            lload 1 /* currentPlayTime */
            lconst_0
            lcmp
            iflt 1
            lload 3 /* lastPlayTime */
            lconst_0
            lcmp
            ifge 2
         1: .line 1356
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            ldc "Error: Play time should never be negative."
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1359
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.initAnimation:()V
         3: .line 1361
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            ifle 16
         4: .line 1362
            lload 1 /* currentPlayTime */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mDuration:J
            ldiv
            l2i
            istore 6 /* iteration */
        start local 6 // int iteration
         5: .line 1363
            lload 3 /* lastPlayTime */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mDuration:J
            ldiv
            l2i
            istore 7 /* lastIteration */
        start local 7 // int lastIteration
         6: .line 1366
            iload 6 /* iteration */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            invokestatic java.lang.Math.min:(II)I
            istore 6 /* iteration */
         7: .line 1367
            iload 7 /* lastIteration */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            invokestatic java.lang.Math.min:(II)I
            istore 7 /* lastIteration */
         8: .line 1369
            iload 6 /* iteration */
            iload 7 /* lastIteration */
            if_icmpeq 16
         9: .line 1370
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mListeners:Ljava/util/ArrayList;
            ifnull 16
        10: .line 1371
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mListeners:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 8 /* numListeners */
        start local 8 // int numListeners
        11: .line 1372
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        12: goto 15
        13: .line 1373
      StackMap locals: android.animation.ValueAnimator long long int int int int int
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mListeners:Ljava/util/ArrayList;
            iload 9 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.animation.Animator$AnimatorListener
            aload 0 /* this */
            invokeinterface android.animation.Animator$AnimatorListener.onAnimationRepeat:(Landroid/animation/Animator;)V
        14: .line 1372
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 9 /* i */
            iload 8 /* numListeners */
            if_icmplt 13
        end local 9 // int i
        end local 8 // int numListeners
        end local 7 // int lastIteration
        end local 6 // int iteration
        16: .line 1379
      StackMap locals: android.animation.ValueAnimator long long int
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            iconst_m1
            if_icmpeq 19
            lload 1 /* currentPlayTime */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            iconst_1
            iadd
            i2l
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mDuration:J
            lmul
            lcmp
            iflt 19
        17: .line 1380
            aload 0 /* this */
            iload 5 /* inReverse */
            invokevirtual android.animation.ValueAnimator.skipToEndValue:(Z)V
        18: .line 1381
            goto 22
        19: .line 1383
      StackMap locals:
      StackMap stack:
            lload 1 /* currentPlayTime */
            l2f
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mDuration:J
            l2f
            fdiv
            fstore 6 /* fraction */
        start local 6 // float fraction
        20: .line 1384
            aload 0 /* this */
            fload 6 /* fraction */
            iload 5 /* inReverse */
            invokevirtual android.animation.ValueAnimator.getCurrentIterationFraction:(FZ)F
            fstore 6 /* fraction */
        21: .line 1385
            aload 0 /* this */
            fload 6 /* fraction */
            invokevirtual android.animation.ValueAnimator.animateValue:(F)V
        end local 6 // float fraction
        22: .line 1387
      StackMap locals:
      StackMap stack:
            return
        end local 5 // boolean inReverse
        end local 3 // long lastPlayTime
        end local 1 // long currentPlayTime
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   23     0             this  Landroid/animation/ValueAnimator;
            0   23     1  currentPlayTime  J
            0   23     3     lastPlayTime  J
            0   23     5        inReverse  Z
            5   16     6        iteration  I
            6   16     7    lastIteration  I
           11   16     8     numListeners  I
           12   16     9                i  I
           20   22     6         fraction  F
    MethodParameters:
                 Name  Flags
      currentPlayTime  
      lastPlayTime     
      inReverse        

  void skipToEndValue(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // boolean inReverse
         0: .line 1398
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.initAnimation:()V
         1: .line 1399
            iload 1 /* inReverse */
            ifeq 2
            fconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: fconst_1
      StackMap locals:
      StackMap stack: float
         3: fstore 2 /* endFraction */
        start local 2 // float endFraction
         4: .line 1400
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatCount:I
            iconst_2
            irem
            iconst_1
            if_icmpne 6
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRepeatMode:I
            iconst_2
            if_icmpne 6
         5: .line 1402
            fconst_0
            fstore 2 /* endFraction */
         6: .line 1404
      StackMap locals: float
      StackMap stack:
            aload 0 /* this */
            fload 2 /* endFraction */
            invokevirtual android.animation.ValueAnimator.animateValue:(F)V
         7: .line 1405
            return
        end local 2 // float endFraction
        end local 1 // boolean inReverse
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Landroid/animation/ValueAnimator;
            0    8     1    inReverse  Z
            4    8     2  endFraction  F
    MethodParameters:
           Name  Flags
      inReverse  

  boolean isInitialized();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1409
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mInitialized:Z
            ireturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/ValueAnimator;

  public final boolean doAnimationFrame(long);
    descriptor: (J)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // long frameTime
         0: .line 1420
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mStartTime:J
            lconst_0
            lcmp
            ifge 5
         1: .line 1423
            aload 0 /* this */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mReversing:Z
            ifeq 3
         2: .line 1424
            lload 1 /* frameTime */
            goto 4
         3: .line 1425
      StackMap locals:
      StackMap stack: android.animation.ValueAnimator
            lload 1 /* frameTime */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mStartDelay:J
            l2f
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.resolveDurationScale:()F
            fmul
            f2l
            ladd
         4: .line 1423
      StackMap locals: android.animation.ValueAnimator long
      StackMap stack: android.animation.ValueAnimator long
            putfield android.animation.ValueAnimator.mStartTime:J
         5: .line 1429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mPaused:Z
            ifeq 9
         6: .line 1430
            aload 0 /* this */
            lload 1 /* frameTime */
            putfield android.animation.ValueAnimator.mPauseTime:J
         7: .line 1431
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.removeAnimationCallback:()V
         8: .line 1432
            iconst_0
            ireturn
         9: .line 1433
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mResumed:Z
            ifeq 13
        10: .line 1434
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mResumed:Z
        11: .line 1435
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mPauseTime:J
            lconst_0
            lcmp
            ifle 13
        12: .line 1437
            aload 0 /* this */
            dup
            getfield android.animation.ValueAnimator.mStartTime:J
            lload 1 /* frameTime */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mPauseTime:J
            lsub
            ladd
            putfield android.animation.ValueAnimator.mStartTime:J
        13: .line 1441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mRunning:Z
            ifne 18
        14: .line 1444
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mStartTime:J
            lload 1 /* frameTime */
            lcmp
            ifle 16
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSeekFraction:F
            ldc -1.0
            fcmpl
            ifne 16
        15: .line 1448
            iconst_0
            ireturn
        16: .line 1452
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.animation.ValueAnimator.mRunning:Z
        17: .line 1453
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.startAnimation:()V
        18: .line 1457
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mLastFrameTime:J
            lconst_0
            lcmp
            ifge 24
        19: .line 1458
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSeekFraction:F
            fconst_0
            fcmpl
            iflt 23
        20: .line 1459
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.getScaledDuration:()J
            l2f
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSeekFraction:F
            fmul
            f2l
            lstore 3 /* seekTime */
        start local 3 // long seekTime
        21: .line 1460
            aload 0 /* this */
            lload 1 /* frameTime */
            lload 3 /* seekTime */
            lsub
            putfield android.animation.ValueAnimator.mStartTime:J
        22: .line 1461
            aload 0 /* this */
            ldc -1.0
            putfield android.animation.ValueAnimator.mSeekFraction:F
        end local 3 // long seekTime
        23: .line 1463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.animation.ValueAnimator.mStartTimeCommitted:Z
        24: .line 1465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* frameTime */
            putfield android.animation.ValueAnimator.mLastFrameTime:J
        25: .line 1470
            lload 1 /* frameTime */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mStartTime:J
            invokestatic java.lang.Math.max:(JJ)J
            lstore 3 /* currentTime */
        start local 3 // long currentTime
        26: .line 1471
            aload 0 /* this */
            lload 3 /* currentTime */
            invokevirtual android.animation.ValueAnimator.animateBasedOnTime:(J)Z
            istore 5 /* finished */
        start local 5 // boolean finished
        27: .line 1473
            iload 5 /* finished */
            ifeq 29
        28: .line 1474
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.endAnimation:()V
        29: .line 1476
      StackMap locals: long int
      StackMap stack:
            iload 5 /* finished */
            ireturn
        end local 5 // boolean finished
        end local 3 // long currentTime
        end local 1 // long frameTime
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   30     0         this  Landroid/animation/ValueAnimator;
            0   30     1    frameTime  J
           21   23     3     seekTime  J
           26   30     3  currentTime  J
           27   30     5     finished  Z
    MethodParameters:
           Name  Flags
      frameTime  

  boolean pulseAnimationFrame(long);
    descriptor: (J)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // long frameTime
         0: .line 1481
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSelfPulse:Z
            ifeq 2
         1: .line 1488
            iconst_0
            ireturn
         2: .line 1490
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* frameTime */
            invokevirtual android.animation.ValueAnimator.doAnimationFrame:(J)Z
            ireturn
        end local 1 // long frameTime
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Landroid/animation/ValueAnimator;
            0    3     1  frameTime  J
    MethodParameters:
           Name  Flags
      frameTime  

  private void addOneShotCommitCallback();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1494
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSelfPulse:Z
            ifne 2
         1: .line 1495
            return
         2: .line 1497
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.getAnimationHandler:()Landroid/animation/AnimationHandler;
            aload 0 /* this */
            invokevirtual android.animation.AnimationHandler.addOneShotCommitCallback:(Landroid/animation/AnimationHandler$AnimationFrameCallback;)V
         3: .line 1498
            return
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/animation/ValueAnimator;

  private void removeAnimationCallback();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1501
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSelfPulse:Z
            ifne 2
         1: .line 1502
            return
         2: .line 1504
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.getAnimationHandler:()Landroid/animation/AnimationHandler;
            aload 0 /* this */
            invokevirtual android.animation.AnimationHandler.removeCallback:(Landroid/animation/AnimationHandler$AnimationFrameCallback;)V
         3: .line 1505
            return
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/animation/ValueAnimator;

  private void addAnimationCallback(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // long delay
         0: .line 1508
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mSelfPulse:Z
            ifne 2
         1: .line 1509
            return
         2: .line 1511
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.animation.ValueAnimator.getAnimationHandler:()Landroid/animation/AnimationHandler;
            aload 0 /* this */
            lload 1 /* delay */
            invokevirtual android.animation.AnimationHandler.addAnimationFrameCallback:(Landroid/animation/AnimationHandler$AnimationFrameCallback;J)V
         3: .line 1512
            return
        end local 1 // long delay
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Landroid/animation/ValueAnimator;
            0    4     1  delay  J
    MethodParameters:
       Name  Flags
      delay  

  public float getAnimatedFraction();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1521
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mCurrentFraction:F
            freturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/ValueAnimator;

  void animateValue(float);
    descriptor: (F)V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // float fraction
         0: .line 1538
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mInterpolator:Landroid/animation/TimeInterpolator;
            fload 1 /* fraction */
            invokeinterface android.animation.TimeInterpolator.getInterpolation:(F)F
            fstore 1 /* fraction */
         1: .line 1539
            aload 0 /* this */
            fload 1 /* fraction */
            putfield android.animation.ValueAnimator.mCurrentFraction:F
         2: .line 1540
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            arraylength
            istore 2 /* numValues */
        start local 2 // int numValues
         3: .line 1541
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 7
         5: .line 1542
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            iload 3 /* i */
            aaload
            fload 1 /* fraction */
            invokevirtual android.animation.PropertyValuesHolder.calculateValue:(F)V
         6: .line 1541
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            iload 2 /* numValues */
            if_icmplt 5
        end local 3 // int i
         8: .line 1544
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
            ifnull 15
         9: .line 1545
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 3 /* numListeners */
        start local 3 // int numListeners
        10: .line 1546
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        11: goto 14
        12: .line 1547
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
            iload 4 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.animation.ValueAnimator$AnimatorUpdateListener
            aload 0 /* this */
            invokeinterface android.animation.ValueAnimator$AnimatorUpdateListener.onAnimationUpdate:(Landroid/animation/ValueAnimator;)V
        13: .line 1546
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            iload 3 /* numListeners */
            if_icmplt 12
        end local 4 // int i
        end local 3 // int numListeners
        15: .line 1550
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int numValues
        end local 1 // float fraction
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Landroid/animation/ValueAnimator;
            0   16     1      fraction  F
            3   16     2     numValues  I
            4    8     3             i  I
           10   15     3  numListeners  I
           11   15     4             i  I
    MethodParameters:
          Name  Flags
      fraction  

  public android.animation.ValueAnimator clone();
    descriptor: ()Landroid/animation/ValueAnimator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1554
            aload 0 /* this */
            invokespecial android.animation.Animator.clone:()Landroid/animation/Animator;
            checkcast android.animation.ValueAnimator
            astore 1 /* anim */
        start local 1 // android.animation.ValueAnimator anim
         1: .line 1555
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
            ifnull 3
         2: .line 1556
            aload 1 /* anim */
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            putfield android.animation.ValueAnimator.mUpdateListeners:Ljava/util/ArrayList;
         3: .line 1558
      StackMap locals: android.animation.ValueAnimator
      StackMap stack:
            aload 1 /* anim */
            ldc -1.0
            putfield android.animation.ValueAnimator.mSeekFraction:F
         4: .line 1559
            aload 1 /* anim */
            iconst_0
            putfield android.animation.ValueAnimator.mReversing:Z
         5: .line 1560
            aload 1 /* anim */
            iconst_0
            putfield android.animation.ValueAnimator.mInitialized:Z
         6: .line 1561
            aload 1 /* anim */
            iconst_0
            putfield android.animation.ValueAnimator.mStarted:Z
         7: .line 1562
            aload 1 /* anim */
            iconst_0
            putfield android.animation.ValueAnimator.mRunning:Z
         8: .line 1563
            aload 1 /* anim */
            iconst_0
            putfield android.animation.ValueAnimator.mPaused:Z
         9: .line 1564
            aload 1 /* anim */
            iconst_0
            putfield android.animation.ValueAnimator.mResumed:Z
        10: .line 1565
            aload 1 /* anim */
            iconst_0
            putfield android.animation.ValueAnimator.mStartListenersCalled:Z
        11: .line 1566
            aload 1 /* anim */
            ldc -1
            putfield android.animation.ValueAnimator.mStartTime:J
        12: .line 1567
            aload 1 /* anim */
            iconst_0
            putfield android.animation.ValueAnimator.mStartTimeCommitted:Z
        13: .line 1568
            aload 1 /* anim */
            iconst_0
            putfield android.animation.ValueAnimator.mAnimationEndRequested:Z
        14: .line 1569
            aload 1 /* anim */
            ldc -1
            putfield android.animation.ValueAnimator.mPauseTime:J
        15: .line 1570
            aload 1 /* anim */
            ldc -1
            putfield android.animation.ValueAnimator.mLastFrameTime:J
        16: .line 1571
            aload 1 /* anim */
            ldc -1
            putfield android.animation.ValueAnimator.mFirstFrameTime:J
        17: .line 1572
            aload 1 /* anim */
            fconst_0
            putfield android.animation.ValueAnimator.mOverallFraction:F
        18: .line 1573
            aload 1 /* anim */
            fconst_0
            putfield android.animation.ValueAnimator.mCurrentFraction:F
        19: .line 1574
            aload 1 /* anim */
            iconst_1
            putfield android.animation.ValueAnimator.mSelfPulse:Z
        20: .line 1575
            aload 1 /* anim */
            iconst_0
            putfield android.animation.ValueAnimator.mSuppressSelfPulseRequested:Z
        21: .line 1577
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            astore 2 /* oldValues */
        start local 2 // android.animation.PropertyValuesHolder[] oldValues
        22: .line 1578
            aload 2 /* oldValues */
            ifnull 33
        23: .line 1579
            aload 2 /* oldValues */
            arraylength
            istore 3 /* numValues */
        start local 3 // int numValues
        24: .line 1580
            aload 1 /* anim */
            iload 3 /* numValues */
            anewarray android.animation.PropertyValuesHolder
            putfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
        25: .line 1581
            aload 1 /* anim */
            new java.util.HashMap
            dup
            iload 3 /* numValues */
            invokespecial java.util.HashMap.<init>:(I)V
            putfield android.animation.ValueAnimator.mValuesMap:Ljava/util/HashMap;
        26: .line 1582
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        27: goto 32
        28: .line 1583
      StackMap locals: android.animation.PropertyValuesHolder[] int int
      StackMap stack:
            aload 2 /* oldValues */
            iload 4 /* i */
            aaload
            invokevirtual android.animation.PropertyValuesHolder.clone:()Landroid/animation/PropertyValuesHolder;
            astore 5 /* newValuesHolder */
        start local 5 // android.animation.PropertyValuesHolder newValuesHolder
        29: .line 1584
            aload 1 /* anim */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            iload 4 /* i */
            aload 5 /* newValuesHolder */
            aastore
        30: .line 1585
            aload 1 /* anim */
            getfield android.animation.ValueAnimator.mValuesMap:Ljava/util/HashMap;
            aload 5 /* newValuesHolder */
            invokevirtual android.animation.PropertyValuesHolder.getPropertyName:()Ljava/lang/String;
            aload 5 /* newValuesHolder */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // android.animation.PropertyValuesHolder newValuesHolder
        31: .line 1582
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 4 /* i */
            iload 3 /* numValues */
            if_icmplt 28
        end local 4 // int i
        end local 3 // int numValues
        33: .line 1588
      StackMap locals:
      StackMap stack:
            aload 1 /* anim */
            areturn
        end local 2 // android.animation.PropertyValuesHolder[] oldValues
        end local 1 // android.animation.ValueAnimator anim
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   34     0             this  Landroid/animation/ValueAnimator;
            1   34     1             anim  Landroid/animation/ValueAnimator;
           22   34     2        oldValues  [Landroid/animation/PropertyValuesHolder;
           24   33     3        numValues  I
           27   33     4                i  I
           29   31     5  newValuesHolder  Landroid/animation/PropertyValuesHolder;

  public static int getCurrentAnimationsCount();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 1616
            invokestatic android.animation.AnimationHandler.getAnimationCount:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1621
            new java.lang.StringBuilder
            dup
            ldc "ValueAnimator@"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.Object.hashCode:()I
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* returnVal */
        start local 1 // java.lang.String returnVal
         1: .line 1622
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            ifnull 7
         2: .line 1623
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 6
         4: .line 1624
      StackMap locals: java.lang.String int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* returnVal */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n    "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            iload 2 /* i */
            aaload
            invokevirtual android.animation.PropertyValuesHolder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* returnVal */
         5: .line 1623
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* this */
            getfield android.animation.ValueAnimator.mValues:[Landroid/animation/PropertyValuesHolder;
            arraylength
            if_icmplt 4
        end local 2 // int i
         7: .line 1627
      StackMap locals:
      StackMap stack:
            aload 1 /* returnVal */
            areturn
        end local 1 // java.lang.String returnVal
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Landroid/animation/ValueAnimator;
            1    8     1  returnVal  Ljava/lang/String;
            3    7     2          i  I

  public void setAllowRunningAsynchronously(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // android.animation.ValueAnimator this
        start local 1 // boolean mayRunAsync
         0: .line 1667
            return
        end local 1 // boolean mayRunAsync
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Landroid/animation/ValueAnimator;
            0    1     1  mayRunAsync  Z
    MethodParameters:
             Name  Flags
      mayRunAsync  

  public android.animation.AnimationHandler getAnimationHandler();
    descriptor: ()Landroid/animation/AnimationHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.animation.ValueAnimator this
         0: .line 1674
            invokestatic android.animation.AnimationHandler.getInstance:()Landroid/animation/AnimationHandler;
            areturn
        end local 0 // android.animation.ValueAnimator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/ValueAnimator;

  public android.animation.Animator setDuration(long);
    descriptor: (J)Landroid/animation/Animator;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
         0: .line 1
            aload 0
            lload 1
            invokevirtual android.animation.ValueAnimator.setDuration:(J)Landroid/animation/ValueAnimator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public android.animation.Animator clone();
    descriptor: ()Landroid/animation/Animator;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual android.animation.ValueAnimator.clone:()Landroid/animation/ValueAnimator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual android.animation.ValueAnimator.clone:()Landroid/animation/ValueAnimator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.CloneNotSupportedException
}
SourceFile: "ValueAnimator.java"
NestMembers:
  android.animation.ValueAnimator$AnimatorUpdateListener  android.animation.ValueAnimator$RepeatMode
InnerClasses:
  abstract AnimationFrameCallback = android.animation.AnimationHandler$AnimationFrameCallback of android.animation.AnimationHandler
  public abstract AnimatorListener = android.animation.Animator$AnimatorListener of android.animation.Animator
  public abstract AnimatorUpdateListener = android.animation.ValueAnimator$AnimatorUpdateListener of android.animation.ValueAnimator
  public abstract RepeatMode = android.animation.ValueAnimator$RepeatMode of android.animation.ValueAnimator