public final class android.location.Geofence implements android.os.Parcelable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.location.Geofence
  super_class: java.lang.Object
{
  public static final int TYPE_HORIZONTAL_CIRCLE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private final int mType;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final double mLatitude;
    descriptor: D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final double mLongitude;
    descriptor: D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final float mRadius;
    descriptor: F
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static final android.os.Parcelable$Creator<android.location.Geofence> CREATOR;
    descriptor: Landroid/os/Parcelable$Creator;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Landroid/os/Parcelable$Creator<Landroid/location/Geofence;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 101
            new android.location.Geofence$1
            dup
            invokespecial android.location.Geofence$1.<init>:()V
            putstatic android.location.Geofence.CREATOR:Landroid/os/Parcelable$Creator;
         1: .line 115
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static android.location.Geofence createCircle(double, double, float);
    descriptor: (DDF)Landroid/location/Geofence;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // double latitude
        start local 2 // double longitude
        start local 4 // float radius
         0: .line 48
            new android.location.Geofence
            dup
            dload 0 /* latitude */
            dload 2 /* longitude */
            fload 4 /* radius */
            invokespecial android.location.Geofence.<init>:(DDF)V
            areturn
        end local 4 // float radius
        end local 2 // double longitude
        end local 0 // double latitude
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0   latitude  D
            0    1     2  longitude  D
            0    1     4     radius  F
    MethodParameters:
           Name  Flags
      latitude   
      longitude  
      radius     

  private void <init>(double, double, float);
    descriptor: (DDF)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // android.location.Geofence this
        start local 1 // double latitude
        start local 3 // double longitude
        start local 5 // float radius
         0: .line 51
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 52
            fload 5 /* radius */
            invokestatic android.location.Geofence.checkRadius:(F)V
         2: .line 53
            dload 1 /* latitude */
            dload 3 /* longitude */
            invokestatic android.location.Geofence.checkLatLong:(DD)V
         3: .line 54
            aload 0 /* this */
            iconst_1
            putfield android.location.Geofence.mType:I
         4: .line 55
            aload 0 /* this */
            dload 1 /* latitude */
            putfield android.location.Geofence.mLatitude:D
         5: .line 56
            aload 0 /* this */
            dload 3 /* longitude */
            putfield android.location.Geofence.mLongitude:D
         6: .line 57
            aload 0 /* this */
            fload 5 /* radius */
            putfield android.location.Geofence.mRadius:F
         7: .line 58
            return
        end local 5 // float radius
        end local 3 // double longitude
        end local 1 // double latitude
        end local 0 // android.location.Geofence this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Landroid/location/Geofence;
            0    8     1   latitude  D
            0    8     3  longitude  D
            0    8     5     radius  F
    MethodParameters:
           Name  Flags
      latitude   
      longitude  
      radius     

  public int getType();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.location.Geofence this
         0: .line 62
            aload 0 /* this */
            getfield android.location.Geofence.mType:I
            ireturn
        end local 0 // android.location.Geofence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/location/Geofence;

  public double getLatitude();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.location.Geofence this
         0: .line 67
            aload 0 /* this */
            getfield android.location.Geofence.mLatitude:D
            dreturn
        end local 0 // android.location.Geofence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/location/Geofence;

  public double getLongitude();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.location.Geofence this
         0: .line 72
            aload 0 /* this */
            getfield android.location.Geofence.mLongitude:D
            dreturn
        end local 0 // android.location.Geofence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/location/Geofence;

  public float getRadius();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.location.Geofence this
         0: .line 77
            aload 0 /* this */
            getfield android.location.Geofence.mRadius:F
            freturn
        end local 0 // android.location.Geofence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/location/Geofence;

  private static void checkRadius(float);
    descriptor: (F)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // float radius
         0: .line 81
            fload 0 /* radius */
            fconst_0
            fcmpg
            ifgt 2
         1: .line 82
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid radius: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            fload 0 /* radius */
            invokevirtual java.lang.StringBuilder.append:(F)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 84
      StackMap locals:
      StackMap stack:
            return
        end local 0 // float radius
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  radius  F
    MethodParameters:
        Name  Flags
      radius  

  private static void checkLatLong(double, double);
    descriptor: (DD)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // double latitude
        start local 2 // double longitude
         0: .line 87
            dload 0 /* latitude */
            ldc 90.0
            dcmpl
            ifgt 1
            dload 0 /* latitude */
            ldc -90.0
            dcmpg
            ifge 2
         1: .line 88
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid latitude: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            dload 0 /* latitude */
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 90
      StackMap locals:
      StackMap stack:
            dload 2 /* longitude */
            ldc 180.0
            dcmpl
            ifgt 3
            dload 2 /* longitude */
            ldc -180.0
            dcmpg
            ifge 4
         3: .line 91
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid longitude: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            dload 2 /* longitude */
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 93
      StackMap locals:
      StackMap stack:
            return
        end local 2 // double longitude
        end local 0 // double latitude
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0   latitude  D
            0    5     2  longitude  D
    MethodParameters:
           Name  Flags
      latitude   
      longitude  

  private static void checkType(int);
    descriptor: (I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // int type
         0: .line 96
            iload 0 /* type */
            iconst_1
            if_icmpeq 2
         1: .line 97
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 99
      StackMap locals:
      StackMap stack:
            return
        end local 0 // int type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  type  I
    MethodParameters:
      Name  Flags
      type  

  public int describeContents();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.location.Geofence this
         0: .line 119
            iconst_0
            ireturn
        end local 0 // android.location.Geofence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/location/Geofence;

  public void writeToParcel(android.os.Parcel, int);
    descriptor: (Landroid/os/Parcel;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.location.Geofence this
        start local 1 // android.os.Parcel parcel
        start local 2 // int flags
         0: .line 124
            aload 1 /* parcel */
            aload 0 /* this */
            getfield android.location.Geofence.mType:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         1: .line 125
            aload 1 /* parcel */
            aload 0 /* this */
            getfield android.location.Geofence.mLatitude:D
            invokevirtual android.os.Parcel.writeDouble:(D)V
         2: .line 126
            aload 1 /* parcel */
            aload 0 /* this */
            getfield android.location.Geofence.mLongitude:D
            invokevirtual android.os.Parcel.writeDouble:(D)V
         3: .line 127
            aload 1 /* parcel */
            aload 0 /* this */
            getfield android.location.Geofence.mRadius:F
            invokevirtual android.os.Parcel.writeFloat:(F)V
         4: .line 128
            return
        end local 2 // int flags
        end local 1 // android.os.Parcel parcel
        end local 0 // android.location.Geofence this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/location/Geofence;
            0    5     1  parcel  Landroid/os/Parcel;
            0    5     2   flags  I
    MethodParameters:
        Name  Flags
      parcel  
      flags   

  private static java.lang.String typeToString(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int type
         0: .line 131
            iload 0 /* type */
            tableswitch { // 1 - 1
                    1: 1
              default: 2
          }
         1: .line 133
      StackMap locals:
      StackMap stack:
            ldc "CIRCLE"
            areturn
         2: .line 135
      StackMap locals:
      StackMap stack:
            iload 0 /* type */
            invokestatic android.location.Geofence.checkType:(I)V
         3: .line 136
            aconst_null
            areturn
        end local 0 // int type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  type  I
    MethodParameters:
      Name  Flags
      type  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // android.location.Geofence this
         0: .line 142
            ldc "Geofence[%s %.6f, %.6f %.0fm]"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 143
            aload 0 /* this */
            getfield android.location.Geofence.mType:I
            invokestatic android.location.Geofence.typeToString:(I)Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield android.location.Geofence.mLatitude:D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield android.location.Geofence.mLongitude:D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            getfield android.location.Geofence.mRadius:F
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            aastore
         2: .line 142
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // android.location.Geofence this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/location/Geofence;

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // android.location.Geofence this
         0: .line 149
            iconst_1
            istore 1 /* result */
        start local 1 // int result
         1: .line 151
            aload 0 /* this */
            getfield android.location.Geofence.mLatitude:D
            invokestatic java.lang.Double.doubleToLongBits:(D)J
            lstore 2 /* temp */
        start local 2 // long temp
         2: .line 152
            bipush 31
            iload 1 /* result */
            imul
            lload 2 /* temp */
            lload 2 /* temp */
            bipush 32
            lushr
            lxor
            l2i
            iadd
            istore 1 /* result */
         3: .line 153
            aload 0 /* this */
            getfield android.location.Geofence.mLongitude:D
            invokestatic java.lang.Double.doubleToLongBits:(D)J
            lstore 2 /* temp */
         4: .line 154
            bipush 31
            iload 1 /* result */
            imul
            lload 2 /* temp */
            lload 2 /* temp */
            bipush 32
            lushr
            lxor
            l2i
            iadd
            istore 1 /* result */
         5: .line 155
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield android.location.Geofence.mRadius:F
            invokestatic java.lang.Float.floatToIntBits:(F)I
            iadd
            istore 1 /* result */
         6: .line 156
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield android.location.Geofence.mType:I
            iadd
            istore 1 /* result */
         7: .line 157
            iload 1 /* result */
            ireturn
        end local 2 // long temp
        end local 1 // int result
        end local 0 // android.location.Geofence this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Landroid/location/Geofence;
            1    8     1  result  I
            2    8     2    temp  J

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.location.Geofence this
        start local 1 // java.lang.Object obj
         0: .line 165
            aload 0 /* this */
            aload 1 /* obj */
            if_acmpne 2
         1: .line 166
            iconst_1
            ireturn
         2: .line 167
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            ifnonnull 4
         3: .line 168
            iconst_0
            ireturn
         4: .line 169
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof android.location.Geofence
            ifne 6
         5: .line 170
            iconst_0
            ireturn
         6: .line 171
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast android.location.Geofence
            astore 2 /* other */
        start local 2 // android.location.Geofence other
         7: .line 172
            aload 0 /* this */
            getfield android.location.Geofence.mRadius:F
            aload 2 /* other */
            getfield android.location.Geofence.mRadius:F
            fcmpl
            ifeq 9
         8: .line 173
            iconst_0
            ireturn
         9: .line 174
      StackMap locals: android.location.Geofence
      StackMap stack:
            aload 0 /* this */
            getfield android.location.Geofence.mLatitude:D
            aload 2 /* other */
            getfield android.location.Geofence.mLatitude:D
            dcmpl
            ifeq 11
        10: .line 175
            iconst_0
            ireturn
        11: .line 176
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.location.Geofence.mLongitude:D
            aload 2 /* other */
            getfield android.location.Geofence.mLongitude:D
            dcmpl
            ifeq 13
        12: .line 177
            iconst_0
            ireturn
        13: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.location.Geofence.mType:I
            aload 2 /* other */
            getfield android.location.Geofence.mType:I
            if_icmpeq 15
        14: .line 179
            iconst_0
            ireturn
        15: .line 180
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // android.location.Geofence other
        end local 1 // java.lang.Object obj
        end local 0 // android.location.Geofence this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0   this  Landroid/location/Geofence;
            0   16     1    obj  Ljava/lang/Object;
            7   16     2  other  Landroid/location/Geofence;
    MethodParameters:
      Name  Flags
      obj   
}
SourceFile: "Geofence.java"
NestMembers:
  android.location.Geofence$1
InnerClasses:
  android.location.Geofence$1
  public abstract Creator = android.os.Parcelable$Creator of android.os.Parcelable