public final class android.gesture.GestureUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.gesture.GestureUtils
  super_class: java.lang.Object
{
  private static final float SCALING_THRESHOLD;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.26

  private static final float NONUNIFORM_SCALE;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 42
            ldc 2.0
            invokestatic java.lang.Math.sqrt:(D)D
            d2f
            putstatic android.gesture.GestureUtils.NONUNIFORM_SCALE:F
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.gesture.GestureUtils this
         0: .line 44
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 45
            return
        end local 0 // android.gesture.GestureUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/gesture/GestureUtils;

  static void closeStream(java.io.Closeable);
    descriptor: (Ljava/io/Closeable;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.io.Closeable stream
         0: .line 53
            aload 0 /* stream */
            ifnull 5
         1: .line 55
            aload 0 /* stream */
            invokeinterface java.io.Closeable.close:()V
         2: .line 56
            goto 5
      StackMap locals:
      StackMap stack: java.io.IOException
         3: astore 1 /* e */
        start local 1 // java.io.IOException e
         4: .line 57
            ldc "Gestures"
            ldc "Could not close stream"
            aload 1 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 1 // java.io.IOException e
         5: .line 60
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.io.Closeable stream
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  stream  Ljava/io/Closeable;
            4    5     1       e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
    MethodParameters:
        Name  Flags
      stream  

  public static float[] spatialSampling(android.gesture.Gesture, int);
    descriptor: (Landroid/gesture/Gesture;I)[F
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.gesture.Gesture gesture
        start local 1 // int bitmapSize
         0: .line 74
            aload 0 /* gesture */
            iload 1 /* bitmapSize */
            iconst_0
            invokestatic android.gesture.GestureUtils.spatialSampling:(Landroid/gesture/Gesture;IZ)[F
            areturn
        end local 1 // int bitmapSize
        end local 0 // android.gesture.Gesture gesture
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0     gesture  Landroid/gesture/Gesture;
            0    1     1  bitmapSize  I
    MethodParameters:
            Name  Flags
      gesture     
      bitmapSize  

  public static float[] spatialSampling(android.gesture.Gesture, int, boolean);
    descriptor: (Landroid/gesture/Gesture;IZ)[F
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=29, args_size=3
        start local 0 // android.gesture.Gesture gesture
        start local 1 // int bitmapSize
        start local 2 // boolean keepAspectRatio
         0: .line 92
            iload 1 /* bitmapSize */
            iconst_1
            isub
            i2f
            fstore 3 /* targetPatchSize */
        start local 3 // float targetPatchSize
         1: .line 93
            iload 1 /* bitmapSize */
            iload 1 /* bitmapSize */
            imul
            newarray 6
            astore 4 /* sample */
        start local 4 // float[] sample
         2: .line 94
            aload 4 /* sample */
            fconst_0
            invokestatic java.util.Arrays.fill:([FF)V
         3: .line 96
            aload 0 /* gesture */
            invokevirtual android.gesture.Gesture.getBoundingBox:()Landroid/graphics/RectF;
            astore 5 /* rect */
        start local 5 // android.graphics.RectF rect
         4: .line 97
            aload 5 /* rect */
            invokevirtual android.graphics.RectF.width:()F
            fstore 6 /* gestureWidth */
        start local 6 // float gestureWidth
         5: .line 98
            aload 5 /* rect */
            invokevirtual android.graphics.RectF.height:()F
            fstore 7 /* gestureHeight */
        start local 7 // float gestureHeight
         6: .line 99
            fload 3 /* targetPatchSize */
            fload 6 /* gestureWidth */
            fdiv
            fstore 8 /* sx */
        start local 8 // float sx
         7: .line 100
            fload 3 /* targetPatchSize */
            fload 7 /* gestureHeight */
            fdiv
            fstore 9 /* sy */
        start local 9 // float sy
         8: .line 102
            iload 2 /* keepAspectRatio */
            ifeq 15
         9: .line 103
            fload 8 /* sx */
            fload 9 /* sy */
            fcmpg
            ifge 10
            fload 8 /* sx */
            goto 11
      StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float
      StackMap stack:
        10: fload 9 /* sy */
      StackMap locals:
      StackMap stack: float
        11: fstore 10 /* scale */
        start local 10 // float scale
        12: .line 104
            fload 10 /* scale */
            fstore 8 /* sx */
        13: .line 105
            fload 10 /* scale */
            fstore 9 /* sy */
        end local 10 // float scale
        14: .line 106
            goto 33
        15: .line 108
      StackMap locals:
      StackMap stack:
            fload 6 /* gestureWidth */
            fload 7 /* gestureHeight */
            fdiv
            fstore 10 /* aspectRatio */
        start local 10 // float aspectRatio
        16: .line 109
            fload 10 /* aspectRatio */
            fconst_1
            fcmpl
            ifle 18
        17: .line 110
            fconst_1
            fload 10 /* aspectRatio */
            fdiv
            fstore 10 /* aspectRatio */
        18: .line 112
      StackMap locals: float
      StackMap stack:
            fload 10 /* aspectRatio */
            ldc 0.26
            fcmpg
            ifge 25
        19: .line 113
            fload 8 /* sx */
            fload 9 /* sy */
            fcmpg
            ifge 20
            fload 8 /* sx */
            goto 21
      StackMap locals:
      StackMap stack:
        20: fload 9 /* sy */
      StackMap locals:
      StackMap stack: float
        21: fstore 11 /* scale */
        start local 11 // float scale
        22: .line 114
            fload 11 /* scale */
            fstore 8 /* sx */
        23: .line 115
            fload 11 /* scale */
            fstore 9 /* sy */
        end local 11 // float scale
        24: .line 116
            goto 33
        25: .line 117
      StackMap locals:
      StackMap stack:
            fload 8 /* sx */
            fload 9 /* sy */
            fcmpl
            ifle 30
        26: .line 118
            fload 9 /* sy */
            getstatic android.gesture.GestureUtils.NONUNIFORM_SCALE:F
            fmul
            fstore 11 /* scale */
        start local 11 // float scale
        27: .line 119
            fload 11 /* scale */
            fload 8 /* sx */
            fcmpg
            ifge 33
        28: .line 120
            fload 11 /* scale */
            fstore 8 /* sx */
        end local 11 // float scale
        29: .line 122
            goto 33
        30: .line 123
      StackMap locals:
      StackMap stack:
            fload 8 /* sx */
            getstatic android.gesture.GestureUtils.NONUNIFORM_SCALE:F
            fmul
            fstore 11 /* scale */
        start local 11 // float scale
        31: .line 124
            fload 11 /* scale */
            fload 9 /* sy */
            fcmpg
            ifge 33
        32: .line 125
            fload 11 /* scale */
            fstore 9 /* sy */
        end local 11 // float scale
        end local 10 // float aspectRatio
        33: .line 130
      StackMap locals:
      StackMap stack:
            aload 5 /* rect */
            invokevirtual android.graphics.RectF.centerX:()F
            fneg
            fstore 10 /* preDx */
        start local 10 // float preDx
        34: .line 131
            aload 5 /* rect */
            invokevirtual android.graphics.RectF.centerY:()F
            fneg
            fstore 11 /* preDy */
        start local 11 // float preDy
        35: .line 132
            fload 3 /* targetPatchSize */
            fconst_2
            fdiv
            fstore 12 /* postDx */
        start local 12 // float postDx
        36: .line 133
            fload 3 /* targetPatchSize */
            fconst_2
            fdiv
            fstore 13 /* postDy */
        start local 13 // float postDy
        37: .line 134
            aload 0 /* gesture */
            invokevirtual android.gesture.Gesture.getStrokes:()Ljava/util/ArrayList;
            astore 14 /* strokes */
        start local 14 // java.util.ArrayList strokes
        38: .line 135
            aload 14 /* strokes */
            invokevirtual java.util.ArrayList.size:()I
            istore 15 /* count */
        start local 15 // int count
        39: .line 139
            iconst_0
            istore 19 /* index */
        start local 19 // int index
        40: goto 114
        41: .line 140
      StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int top top top int
      StackMap stack:
            aload 14 /* strokes */
            iload 19 /* index */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.gesture.GestureStroke
            astore 20 /* stroke */
        start local 20 // android.gesture.GestureStroke stroke
        42: .line 141
            aload 20 /* stroke */
            getfield android.gesture.GestureStroke.points:[F
            astore 21 /* strokepoints */
        start local 21 // float[] strokepoints
        43: .line 142
            aload 21 /* strokepoints */
            arraylength
            istore 16 /* size */
        start local 16 // int size
        44: .line 143
            iload 16 /* size */
            newarray 6
            astore 22 /* pts */
        start local 22 // float[] pts
        45: .line 144
            iconst_0
            istore 23 /* i */
        start local 23 // int i
        46: goto 50
        47: .line 145
      StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int top top int android.gesture.GestureStroke float[] float[] int
      StackMap stack:
            aload 22 /* pts */
            iload 23 /* i */
            aload 21 /* strokepoints */
            iload 23 /* i */
            faload
            fload 10 /* preDx */
            fadd
            fload 8 /* sx */
            fmul
            fload 12 /* postDx */
            fadd
            fastore
        48: .line 146
            aload 22 /* pts */
            iload 23 /* i */
            iconst_1
            iadd
            aload 21 /* strokepoints */
            iload 23 /* i */
            iconst_1
            iadd
            faload
            fload 11 /* preDy */
            fadd
            fload 9 /* sy */
            fmul
            fload 13 /* postDy */
            fadd
            fastore
        49: .line 144
            iinc 23 /* i */ 2
      StackMap locals:
      StackMap stack:
        50: iload 23 /* i */
            iload 16 /* size */
            if_icmplt 47
        end local 23 // int i
        51: .line 148
            ldc -1.0
            fstore 23 /* segmentEndX */
        start local 23 // float segmentEndX
        52: .line 149
            ldc -1.0
            fstore 24 /* segmentEndY */
        start local 24 // float segmentEndY
        53: .line 150
            iconst_0
            istore 25 /* i */
        start local 25 // int i
        54: goto 112
        55: .line 151
      StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int top top int android.gesture.GestureStroke float[] float[] float float int
      StackMap stack:
            aload 22 /* pts */
            iload 25 /* i */
            faload
            fconst_0
            fcmpg
            ifge 56
            fconst_0
            goto 57
      StackMap locals:
      StackMap stack:
        56: aload 22 /* pts */
            iload 25 /* i */
            faload
      StackMap locals:
      StackMap stack: float
        57: fstore 26 /* segmentStartX */
        start local 26 // float segmentStartX
        58: .line 152
            aload 22 /* pts */
            iload 25 /* i */
            iconst_1
            iadd
            faload
            fconst_0
            fcmpg
            ifge 59
            fconst_0
            goto 60
      StackMap locals: float
      StackMap stack:
        59: aload 22 /* pts */
            iload 25 /* i */
            iconst_1
            iadd
            faload
      StackMap locals:
      StackMap stack: float
        60: fstore 27 /* segmentStartY */
        start local 27 // float segmentStartY
        61: .line 153
            fload 26 /* segmentStartX */
            fload 3 /* targetPatchSize */
            fcmpl
            ifle 63
        62: .line 154
            fload 3 /* targetPatchSize */
            fstore 26 /* segmentStartX */
        63: .line 156
      StackMap locals: float
      StackMap stack:
            fload 27 /* segmentStartY */
            fload 3 /* targetPatchSize */
            fcmpl
            ifle 65
        64: .line 157
            fload 3 /* targetPatchSize */
            fstore 27 /* segmentStartY */
        65: .line 159
      StackMap locals:
      StackMap stack:
            fload 26 /* segmentStartX */
            fload 27 /* segmentStartY */
            aload 4 /* sample */
            iload 1 /* bitmapSize */
            invokestatic android.gesture.GestureUtils.plot:(FF[FI)V
        66: .line 160
            fload 23 /* segmentEndX */
            ldc -1.0
            fcmpl
            ifeq 109
        67: .line 162
            fload 23 /* segmentEndX */
            fload 26 /* segmentStartX */
            fcmpl
            ifle 78
        68: .line 163
            fload 26 /* segmentStartX */
            f2d
            invokestatic java.lang.Math.ceil:(D)D
            d2f
            fstore 17 /* xpos */
        start local 17 // float xpos
        69: .line 164
            fload 24 /* segmentEndY */
            fload 27 /* segmentStartY */
            fsub
        70: .line 165
            fload 23 /* segmentEndX */
            fload 26 /* segmentStartX */
            fsub
        71: .line 164
            fdiv
            fstore 28 /* slope */
        start local 28 // float slope
        72: .line 166
            goto 76
        73: .line 167
      StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int float top int android.gesture.GestureStroke float[] float[] float float int float float float
      StackMap stack:
            fload 28 /* slope */
            fload 17 /* xpos */
            fload 26 /* segmentStartX */
            fsub
            fmul
            fload 27 /* segmentStartY */
            fadd
            fstore 18 /* ypos */
        start local 18 // float ypos
        74: .line 168
            fload 17 /* xpos */
            fload 18 /* ypos */
            aload 4 /* sample */
            iload 1 /* bitmapSize */
            invokestatic android.gesture.GestureUtils.plot:(FF[FI)V
        75: .line 169
            fload 17 /* xpos */
            fconst_1
            fadd
            fstore 17 /* xpos */
        end local 18 // float ypos
        76: .line 166
      StackMap locals:
      StackMap stack:
            fload 17 /* xpos */
            fload 23 /* segmentEndX */
            fcmpg
            iflt 73
        end local 28 // float slope
        77: .line 171
            goto 88
        end local 17 // float xpos
      StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int top top int android.gesture.GestureStroke float[] float[] float float int float float
      StackMap stack:
        78: fload 23 /* segmentEndX */
            fload 26 /* segmentStartX */
            fcmpg
            ifge 88
        79: .line 172
            fload 23 /* segmentEndX */
            f2d
            invokestatic java.lang.Math.ceil:(D)D
            d2f
            fstore 17 /* xpos */
        start local 17 // float xpos
        80: .line 173
            fload 24 /* segmentEndY */
            fload 27 /* segmentStartY */
            fsub
        81: .line 174
            fload 23 /* segmentEndX */
            fload 26 /* segmentStartX */
            fsub
        82: .line 173
            fdiv
            fstore 28 /* slope */
        start local 28 // float slope
        83: .line 175
            goto 87
        84: .line 176
      StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int float top int android.gesture.GestureStroke float[] float[] float float int float float float
      StackMap stack:
            fload 28 /* slope */
            fload 17 /* xpos */
            fload 26 /* segmentStartX */
            fsub
            fmul
            fload 27 /* segmentStartY */
            fadd
            fstore 18 /* ypos */
        start local 18 // float ypos
        85: .line 177
            fload 17 /* xpos */
            fload 18 /* ypos */
            aload 4 /* sample */
            iload 1 /* bitmapSize */
            invokestatic android.gesture.GestureUtils.plot:(FF[FI)V
        86: .line 178
            fload 17 /* xpos */
            fconst_1
            fadd
            fstore 17 /* xpos */
        end local 18 // float ypos
        87: .line 175
      StackMap locals:
      StackMap stack:
            fload 17 /* xpos */
            fload 26 /* segmentStartX */
            fcmpg
            iflt 84
        end local 28 // float slope
        end local 17 // float xpos
        88: .line 182
      StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int top top int android.gesture.GestureStroke float[] float[] float float int float float
      StackMap stack:
            fload 24 /* segmentEndY */
            fload 27 /* segmentStartY */
            fcmpl
            ifle 99
        89: .line 183
            fload 27 /* segmentStartY */
            f2d
            invokestatic java.lang.Math.ceil:(D)D
            d2f
            fstore 18 /* ypos */
        start local 18 // float ypos
        90: .line 184
            fload 23 /* segmentEndX */
            fload 26 /* segmentStartX */
            fsub
        91: .line 185
            fload 24 /* segmentEndY */
            fload 27 /* segmentStartY */
            fsub
        92: .line 184
            fdiv
            fstore 28 /* invertSlope */
        start local 28 // float invertSlope
        93: .line 186
            goto 97
        94: .line 187
      StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int top float int android.gesture.GestureStroke float[] float[] float float int float float float
      StackMap stack:
            fload 28 /* invertSlope */
            fload 18 /* ypos */
            fload 27 /* segmentStartY */
            fsub
            fmul
            fload 26 /* segmentStartX */
            fadd
            fstore 17 /* xpos */
        start local 17 // float xpos
        95: .line 188
            fload 17 /* xpos */
            fload 18 /* ypos */
            aload 4 /* sample */
            iload 1 /* bitmapSize */
            invokestatic android.gesture.GestureUtils.plot:(FF[FI)V
        96: .line 189
            fload 18 /* ypos */
            fconst_1
            fadd
            fstore 18 /* ypos */
        end local 17 // float xpos
        97: .line 186
      StackMap locals:
      StackMap stack:
            fload 18 /* ypos */
            fload 24 /* segmentEndY */
            fcmpg
            iflt 94
        end local 28 // float invertSlope
        98: .line 191
            goto 109
        end local 18 // float ypos
      StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int top top int android.gesture.GestureStroke float[] float[] float float int float float
      StackMap stack:
        99: fload 24 /* segmentEndY */
            fload 27 /* segmentStartY */
            fcmpg
            ifge 109
       100: .line 192
            fload 24 /* segmentEndY */
            f2d
            invokestatic java.lang.Math.ceil:(D)D
            d2f
            fstore 18 /* ypos */
        start local 18 // float ypos
       101: .line 193
            fload 23 /* segmentEndX */
            fload 26 /* segmentStartX */
            fsub
       102: .line 194
            fload 24 /* segmentEndY */
            fload 27 /* segmentStartY */
            fsub
       103: .line 193
            fdiv
            fstore 28 /* invertSlope */
        start local 28 // float invertSlope
       104: .line 195
            goto 108
       105: .line 196
      StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int top float int android.gesture.GestureStroke float[] float[] float float int float float float
      StackMap stack:
            fload 28 /* invertSlope */
            fload 18 /* ypos */
            fload 27 /* segmentStartY */
            fsub
            fmul
            fload 26 /* segmentStartX */
            fadd
            fstore 17 /* xpos */
        start local 17 // float xpos
       106: .line 197
            fload 17 /* xpos */
            fload 18 /* ypos */
            aload 4 /* sample */
            iload 1 /* bitmapSize */
            invokestatic android.gesture.GestureUtils.plot:(FF[FI)V
       107: .line 198
            fload 18 /* ypos */
            fconst_1
            fadd
            fstore 18 /* ypos */
        end local 17 // float xpos
       108: .line 195
      StackMap locals:
      StackMap stack:
            fload 18 /* ypos */
            fload 27 /* segmentStartY */
            fcmpg
            iflt 105
        end local 28 // float invertSlope
        end local 18 // float ypos
       109: .line 202
      StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int int top top int android.gesture.GestureStroke float[] float[] float float int float float
      StackMap stack:
            fload 26 /* segmentStartX */
            fstore 23 /* segmentEndX */
       110: .line 203
            fload 27 /* segmentStartY */
            fstore 24 /* segmentEndY */
        end local 27 // float segmentStartY
        end local 26 // float segmentStartX
       111: .line 150
            iinc 25 /* i */ 2
      StackMap locals:
      StackMap stack:
       112: iload 25 /* i */
            iload 16 /* size */
            if_icmplt 55
        end local 25 // int i
        end local 24 // float segmentEndY
        end local 23 // float segmentEndX
        end local 22 // float[] pts
        end local 21 // float[] strokepoints
        end local 20 // android.gesture.GestureStroke stroke
       113: .line 139
            iinc 19 /* index */ 1
        end local 16 // int size
      StackMap locals: android.gesture.Gesture int int float float[] android.graphics.RectF float float float float float float float float java.util.ArrayList int top top top int
      StackMap stack:
       114: iload 19 /* index */
            iload 15 /* count */
            if_icmplt 41
        end local 19 // int index
       115: .line 206
            aload 4 /* sample */
            areturn
        end local 15 // int count
        end local 14 // java.util.ArrayList strokes
        end local 13 // float postDy
        end local 12 // float postDx
        end local 11 // float preDy
        end local 10 // float preDx
        end local 9 // float sy
        end local 8 // float sx
        end local 7 // float gestureHeight
        end local 6 // float gestureWidth
        end local 5 // android.graphics.RectF rect
        end local 4 // float[] sample
        end local 3 // float targetPatchSize
        end local 2 // boolean keepAspectRatio
        end local 1 // int bitmapSize
        end local 0 // android.gesture.Gesture gesture
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0  116     0          gesture  Landroid/gesture/Gesture;
            0  116     1       bitmapSize  I
            0  116     2  keepAspectRatio  Z
            1  116     3  targetPatchSize  F
            2  116     4           sample  [F
            4  116     5             rect  Landroid/graphics/RectF;
            5  116     6     gestureWidth  F
            6  116     7    gestureHeight  F
            7  116     8               sx  F
            8  116     9               sy  F
           12   14    10            scale  F
           16   33    10      aspectRatio  F
           22   24    11            scale  F
           27   29    11            scale  F
           31   33    11            scale  F
           34  116    10            preDx  F
           35  116    11            preDy  F
           36  116    12           postDx  F
           37  116    13           postDy  F
           38  116    14          strokes  Ljava/util/ArrayList<Landroid/gesture/GestureStroke;>;
           39  116    15            count  I
           44  114    16             size  I
           69   78    17             xpos  F
           80   88    17             xpos  F
           95   97    17             xpos  F
          106  108    17             xpos  F
           74   76    18             ypos  F
           85   87    18             ypos  F
           90   99    18             ypos  F
          101  109    18             ypos  F
           40  115    19            index  I
           42  113    20           stroke  Landroid/gesture/GestureStroke;
           43  113    21     strokepoints  [F
           45  113    22              pts  [F
           46   51    23                i  I
           52  113    23      segmentEndX  F
           53  113    24      segmentEndY  F
           54  113    25                i  I
           58  111    26    segmentStartX  F
           61  111    27    segmentStartY  F
           72   77    28            slope  F
           83   88    28            slope  F
           93   98    28      invertSlope  F
          104  109    28      invertSlope  F
    MethodParameters:
                 Name  Flags
      gesture          
      bitmapSize       
      keepAspectRatio  

  private static void plot(float, float, float[], int);
    descriptor: (FF[FI)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=23, args_size=4
        start local 0 // float x
        start local 1 // float y
        start local 2 // float[] sample
        start local 3 // int sampleSize
         0: .line 210
            fload 0 /* x */
            fconst_0
            fcmpg
            ifge 1
            fconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: fload 0 /* x */
      StackMap locals:
      StackMap stack: float
         2: fstore 0 /* x */
         3: .line 211
            fload 1 /* y */
            fconst_0
            fcmpg
            ifge 4
            fconst_0
            goto 5
      StackMap locals:
      StackMap stack:
         4: fload 1 /* y */
      StackMap locals:
      StackMap stack: float
         5: fstore 1 /* y */
         6: .line 212
            fload 0 /* x */
            f2d
            invokestatic java.lang.Math.floor:(D)D
            d2i
            istore 4 /* xFloor */
        start local 4 // int xFloor
         7: .line 213
            fload 0 /* x */
            f2d
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            istore 5 /* xCeiling */
        start local 5 // int xCeiling
         8: .line 214
            fload 1 /* y */
            f2d
            invokestatic java.lang.Math.floor:(D)D
            d2i
            istore 6 /* yFloor */
        start local 6 // int yFloor
         9: .line 215
            fload 1 /* y */
            f2d
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            istore 7 /* yCeiling */
        start local 7 // int yCeiling
        10: .line 218
            fload 0 /* x */
            iload 4 /* xFloor */
            i2f
            fcmpl
            ifne 15
            fload 1 /* y */
            iload 6 /* yFloor */
            i2f
            fcmpl
            ifne 15
        11: .line 219
            iload 7 /* yCeiling */
            iload 3 /* sampleSize */
            imul
            iload 5 /* xCeiling */
            iadd
            istore 8 /* index */
        start local 8 // int index
        12: .line 220
            aload 2 /* sample */
            iload 8 /* index */
            faload
            fconst_1
            fcmpg
            ifge 40
        13: .line 221
            aload 2 /* sample */
            iload 8 /* index */
            fconst_1
            fastore
        end local 8 // int index
        14: .line 223
            goto 40
        15: .line 224
      StackMap locals: float float float[] int int int int int
      StackMap stack:
            iload 4 /* xFloor */
            i2f
            fload 0 /* x */
            fsub
            f2d
            ldc 2.0
            invokestatic java.lang.Math.pow:(DD)D
            dstore 8 /* xFloorSq */
        start local 8 // double xFloorSq
        16: .line 225
            iload 6 /* yFloor */
            i2f
            fload 1 /* y */
            fsub
            f2d
            ldc 2.0
            invokestatic java.lang.Math.pow:(DD)D
            dstore 10 /* yFloorSq */
        start local 10 // double yFloorSq
        17: .line 226
            iload 5 /* xCeiling */
            i2f
            fload 0 /* x */
            fsub
            f2d
            ldc 2.0
            invokestatic java.lang.Math.pow:(DD)D
            dstore 12 /* xCeilingSq */
        start local 12 // double xCeilingSq
        18: .line 227
            iload 7 /* yCeiling */
            i2f
            fload 1 /* y */
            fsub
            f2d
            ldc 2.0
            invokestatic java.lang.Math.pow:(DD)D
            dstore 14 /* yCeilingSq */
        start local 14 // double yCeilingSq
        19: .line 228
            dload 8 /* xFloorSq */
            dload 10 /* yFloorSq */
            dadd
            invokestatic java.lang.Math.sqrt:(D)D
            d2f
            fstore 16 /* topLeft */
        start local 16 // float topLeft
        20: .line 229
            dload 12 /* xCeilingSq */
            dload 10 /* yFloorSq */
            dadd
            invokestatic java.lang.Math.sqrt:(D)D
            d2f
            fstore 17 /* topRight */
        start local 17 // float topRight
        21: .line 230
            dload 8 /* xFloorSq */
            dload 14 /* yCeilingSq */
            dadd
            invokestatic java.lang.Math.sqrt:(D)D
            d2f
            fstore 18 /* btmLeft */
        start local 18 // float btmLeft
        22: .line 231
            dload 12 /* xCeilingSq */
            dload 14 /* yCeilingSq */
            dadd
            invokestatic java.lang.Math.sqrt:(D)D
            d2f
            fstore 19 /* btmRight */
        start local 19 // float btmRight
        23: .line 232
            fload 16 /* topLeft */
            fload 17 /* topRight */
            fadd
            fload 18 /* btmLeft */
            fadd
            fload 19 /* btmRight */
            fadd
            fstore 20 /* sum */
        start local 20 // float sum
        24: .line 234
            fload 16 /* topLeft */
            fload 20 /* sum */
            fdiv
            fstore 21 /* value */
        start local 21 // float value
        25: .line 235
            iload 6 /* yFloor */
            iload 3 /* sampleSize */
            imul
            iload 4 /* xFloor */
            iadd
            istore 22 /* index */
        start local 22 // int index
        26: .line 236
            fload 21 /* value */
            aload 2 /* sample */
            iload 22 /* index */
            faload
            fcmpl
            ifle 28
        27: .line 237
            aload 2 /* sample */
            iload 22 /* index */
            fload 21 /* value */
            fastore
        28: .line 240
      StackMap locals: float float float[] int int int int int double double double double float float float float float float int
      StackMap stack:
            fload 17 /* topRight */
            fload 20 /* sum */
            fdiv
            fstore 21 /* value */
        29: .line 241
            iload 6 /* yFloor */
            iload 3 /* sampleSize */
            imul
            iload 5 /* xCeiling */
            iadd
            istore 22 /* index */
        30: .line 242
            fload 21 /* value */
            aload 2 /* sample */
            iload 22 /* index */
            faload
            fcmpl
            ifle 32
        31: .line 243
            aload 2 /* sample */
            iload 22 /* index */
            fload 21 /* value */
            fastore
        32: .line 246
      StackMap locals:
      StackMap stack:
            fload 18 /* btmLeft */
            fload 20 /* sum */
            fdiv
            fstore 21 /* value */
        33: .line 247
            iload 7 /* yCeiling */
            iload 3 /* sampleSize */
            imul
            iload 4 /* xFloor */
            iadd
            istore 22 /* index */
        34: .line 248
            fload 21 /* value */
            aload 2 /* sample */
            iload 22 /* index */
            faload
            fcmpl
            ifle 36
        35: .line 249
            aload 2 /* sample */
            iload 22 /* index */
            fload 21 /* value */
            fastore
        36: .line 252
      StackMap locals:
      StackMap stack:
            fload 19 /* btmRight */
            fload 20 /* sum */
            fdiv
            fstore 21 /* value */
        37: .line 253
            iload 7 /* yCeiling */
            iload 3 /* sampleSize */
            imul
            iload 5 /* xCeiling */
            iadd
            istore 22 /* index */
        38: .line 254
            fload 21 /* value */
            aload 2 /* sample */
            iload 22 /* index */
            faload
            fcmpl
            ifle 40
        39: .line 255
            aload 2 /* sample */
            iload 22 /* index */
            fload 21 /* value */
            fastore
        end local 22 // int index
        end local 21 // float value
        end local 20 // float sum
        end local 19 // float btmRight
        end local 18 // float btmLeft
        end local 17 // float topRight
        end local 16 // float topLeft
        end local 14 // double yCeilingSq
        end local 12 // double xCeilingSq
        end local 10 // double yFloorSq
        end local 8 // double xFloorSq
        40: .line 258
      StackMap locals: float float float[] int int int int int
      StackMap stack:
            return
        end local 7 // int yCeiling
        end local 6 // int yFloor
        end local 5 // int xCeiling
        end local 4 // int xFloor
        end local 3 // int sampleSize
        end local 2 // float[] sample
        end local 1 // float y
        end local 0 // float x
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   41     0           x  F
            0   41     1           y  F
            0   41     2      sample  [F
            0   41     3  sampleSize  I
            7   41     4      xFloor  I
            8   41     5    xCeiling  I
            9   41     6      yFloor  I
           10   41     7    yCeiling  I
           12   14     8       index  I
           16   40     8    xFloorSq  D
           17   40    10    yFloorSq  D
           18   40    12  xCeilingSq  D
           19   40    14  yCeilingSq  D
           20   40    16     topLeft  F
           21   40    17    topRight  F
           22   40    18     btmLeft  F
           23   40    19    btmRight  F
           24   40    20         sum  F
           25   40    21       value  F
           26   40    22       index  I
    MethodParameters:
            Name  Flags
      x           
      y           
      sample      
      sampleSize  

  public static float[] temporalSampling(android.gesture.GestureStroke, int);
    descriptor: (Landroid/gesture/GestureStroke;I)[F
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=20, args_size=2
        start local 0 // android.gesture.GestureStroke stroke
        start local 1 // int numPoints
         0: .line 269
            aload 0 /* stroke */
            getfield android.gesture.GestureStroke.length:F
            iload 1 /* numPoints */
            iconst_1
            isub
            i2f
            fdiv
            fstore 2 /* increment */
        start local 2 // float increment
         1: .line 270
            iload 1 /* numPoints */
            iconst_2
            imul
            istore 3 /* vectorLength */
        start local 3 // int vectorLength
         2: .line 271
            iload 3 /* vectorLength */
            newarray 6
            astore 4 /* vector */
        start local 4 // float[] vector
         3: .line 272
            fconst_0
            fstore 5 /* distanceSoFar */
        start local 5 // float distanceSoFar
         4: .line 273
            aload 0 /* stroke */
            getfield android.gesture.GestureStroke.points:[F
            astore 6 /* pts */
        start local 6 // float[] pts
         5: .line 274
            aload 6 /* pts */
            iconst_0
            faload
            fstore 7 /* lstPointX */
        start local 7 // float lstPointX
         6: .line 275
            aload 6 /* pts */
            iconst_1
            faload
            fstore 8 /* lstPointY */
        start local 8 // float lstPointY
         7: .line 276
            iconst_0
            istore 9 /* index */
        start local 9 // int index
         8: .line 277
            ldc 1.4E-45
            fstore 10 /* currentPointX */
        start local 10 // float currentPointX
         9: .line 278
            ldc 1.4E-45
            fstore 11 /* currentPointY */
        start local 11 // float currentPointY
        10: .line 279
            aload 4 /* vector */
            iload 9 /* index */
            fload 7 /* lstPointX */
            fastore
        11: .line 280
            iinc 9 /* index */ 1
        12: .line 281
            aload 4 /* vector */
            iload 9 /* index */
            fload 8 /* lstPointY */
            fastore
        13: .line 282
            iinc 9 /* index */ 1
        14: .line 283
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        15: .line 284
            aload 6 /* pts */
            arraylength
            iconst_2
            idiv
            istore 13 /* count */
        start local 13 // int count
        16: .line 285
            goto 43
        17: .line 286
      StackMap locals: android.gesture.GestureStroke int float int float[] float float[] float float int float float int int
      StackMap stack:
            fload 10 /* currentPointX */
            ldc 1.4E-45
            fcmpl
            ifne 23
        18: .line 287
            iinc 12 /* i */ 1
        19: .line 288
            iload 12 /* i */
            iload 13 /* count */
            if_icmplt 21
        20: .line 289
            goto 44
        21: .line 291
      StackMap locals:
      StackMap stack:
            aload 6 /* pts */
            iload 12 /* i */
            iconst_2
            imul
            faload
            fstore 10 /* currentPointX */
        22: .line 292
            aload 6 /* pts */
            iload 12 /* i */
            iconst_2
            imul
            iconst_1
            iadd
            faload
            fstore 11 /* currentPointY */
        23: .line 294
      StackMap locals:
      StackMap stack:
            fload 10 /* currentPointX */
            fload 7 /* lstPointX */
            fsub
            fstore 14 /* deltaX */
        start local 14 // float deltaX
        24: .line 295
            fload 11 /* currentPointY */
            fload 8 /* lstPointY */
            fsub
            fstore 15 /* deltaY */
        start local 15 // float deltaY
        25: .line 296
            fload 14 /* deltaX */
            f2d
            fload 15 /* deltaY */
            f2d
            invokestatic java.lang.Math.hypot:(DD)D
            d2f
            fstore 16 /* distance */
        start local 16 // float distance
        26: .line 297
            fload 5 /* distanceSoFar */
            fload 16 /* distance */
            fadd
            fload 2 /* increment */
            fcmpl
            iflt 38
        27: .line 298
            fload 2 /* increment */
            fload 5 /* distanceSoFar */
            fsub
            fload 16 /* distance */
            fdiv
            fstore 17 /* ratio */
        start local 17 // float ratio
        28: .line 299
            fload 7 /* lstPointX */
            fload 17 /* ratio */
            fload 14 /* deltaX */
            fmul
            fadd
            fstore 18 /* nx */
        start local 18 // float nx
        29: .line 300
            fload 8 /* lstPointY */
            fload 17 /* ratio */
            fload 15 /* deltaY */
            fmul
            fadd
            fstore 19 /* ny */
        start local 19 // float ny
        30: .line 301
            aload 4 /* vector */
            iload 9 /* index */
            fload 18 /* nx */
            fastore
        31: .line 302
            iinc 9 /* index */ 1
        32: .line 303
            aload 4 /* vector */
            iload 9 /* index */
            fload 19 /* ny */
            fastore
        33: .line 304
            iinc 9 /* index */ 1
        34: .line 305
            fload 18 /* nx */
            fstore 7 /* lstPointX */
        35: .line 306
            fload 19 /* ny */
            fstore 8 /* lstPointY */
        36: .line 307
            fconst_0
            fstore 5 /* distanceSoFar */
        end local 19 // float ny
        end local 18 // float nx
        end local 17 // float ratio
        37: .line 308
            goto 43
        38: .line 309
      StackMap locals: float float float
      StackMap stack:
            fload 10 /* currentPointX */
            fstore 7 /* lstPointX */
        39: .line 310
            fload 11 /* currentPointY */
            fstore 8 /* lstPointY */
        40: .line 311
            ldc 1.4E-45
            fstore 10 /* currentPointX */
        41: .line 312
            ldc 1.4E-45
            fstore 11 /* currentPointY */
        42: .line 313
            fload 5 /* distanceSoFar */
            fload 16 /* distance */
            fadd
            fstore 5 /* distanceSoFar */
        end local 16 // float distance
        end local 15 // float deltaY
        end local 14 // float deltaX
        43: .line 285
      StackMap locals:
      StackMap stack:
            iload 12 /* i */
            iload 13 /* count */
            if_icmplt 17
        44: .line 317
      StackMap locals:
      StackMap stack:
            iload 9 /* index */
            istore 12 /* i */
            goto 48
        45: .line 318
      StackMap locals:
      StackMap stack:
            aload 4 /* vector */
            iload 12 /* i */
            fload 7 /* lstPointX */
            fastore
        46: .line 319
            aload 4 /* vector */
            iload 12 /* i */
            iconst_1
            iadd
            fload 8 /* lstPointY */
            fastore
        47: .line 317
            iinc 12 /* i */ 2
      StackMap locals:
      StackMap stack:
        48: iload 12 /* i */
            iload 3 /* vectorLength */
            if_icmplt 45
        49: .line 321
            aload 4 /* vector */
            areturn
        end local 13 // int count
        end local 12 // int i
        end local 11 // float currentPointY
        end local 10 // float currentPointX
        end local 9 // int index
        end local 8 // float lstPointY
        end local 7 // float lstPointX
        end local 6 // float[] pts
        end local 5 // float distanceSoFar
        end local 4 // float[] vector
        end local 3 // int vectorLength
        end local 2 // float increment
        end local 1 // int numPoints
        end local 0 // android.gesture.GestureStroke stroke
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   50     0         stroke  Landroid/gesture/GestureStroke;
            0   50     1      numPoints  I
            1   50     2      increment  F
            2   50     3   vectorLength  I
            3   50     4         vector  [F
            4   50     5  distanceSoFar  F
            5   50     6            pts  [F
            6   50     7      lstPointX  F
            7   50     8      lstPointY  F
            8   50     9          index  I
            9   50    10  currentPointX  F
           10   50    11  currentPointY  F
           15   50    12              i  I
           16   50    13          count  I
           24   43    14         deltaX  F
           25   43    15         deltaY  F
           26   43    16       distance  F
           28   37    17          ratio  F
           29   37    18             nx  F
           30   37    19             ny  F
    MethodParameters:
           Name  Flags
      stroke     
      numPoints  

  static float[] computeCentroid(float[]);
    descriptor: ([F)[F
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // float[] points
         0: .line 331
            fconst_0
            fstore 1 /* centerX */
        start local 1 // float centerX
         1: .line 332
            fconst_0
            fstore 2 /* centerY */
        start local 2 // float centerY
         2: .line 333
            aload 0 /* points */
            arraylength
            istore 3 /* count */
        start local 3 // int count
         3: .line 334
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 9
         5: .line 335
      StackMap locals: float[] float float int int
      StackMap stack:
            fload 1 /* centerX */
            aload 0 /* points */
            iload 4 /* i */
            faload
            fadd
            fstore 1 /* centerX */
         6: .line 336
            iinc 4 /* i */ 1
         7: .line 337
            fload 2 /* centerY */
            aload 0 /* points */
            iload 4 /* i */
            faload
            fadd
            fstore 2 /* centerY */
         8: .line 334
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            iload 3 /* count */
            if_icmplt 5
        end local 4 // int i
        10: .line 339
            iconst_2
            newarray 6
            astore 4 /* center */
        start local 4 // float[] center
        11: .line 340
            aload 4 /* center */
            iconst_0
            fconst_2
            fload 1 /* centerX */
            fmul
            iload 3 /* count */
            i2f
            fdiv
            fastore
        12: .line 341
            aload 4 /* center */
            iconst_1
            fconst_2
            fload 2 /* centerY */
            fmul
            iload 3 /* count */
            i2f
            fdiv
            fastore
        13: .line 343
            aload 4 /* center */
            areturn
        end local 4 // float[] center
        end local 3 // int count
        end local 2 // float centerY
        end local 1 // float centerX
        end local 0 // float[] points
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0   points  [F
            1   14     1  centerX  F
            2   14     2  centerY  F
            3   14     3    count  I
            4   10     4        i  I
           11   14     4   center  [F
    MethodParameters:
        Name  Flags
      points  

  private static float[][] computeCoVariance(float[]);
    descriptor: ([F)[[F
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // float[] points
         0: .line 353
            iconst_2
            iconst_2
            multianewarray [[F 2
            astore 1 /* array */
        start local 1 // float[][] array
         1: .line 354
            aload 1 /* array */
            iconst_0
            aaload
            iconst_0
            fconst_0
            fastore
         2: .line 355
            aload 1 /* array */
            iconst_0
            aaload
            iconst_1
            fconst_0
            fastore
         3: .line 356
            aload 1 /* array */
            iconst_1
            aaload
            iconst_0
            fconst_0
            fastore
         4: .line 357
            aload 1 /* array */
            iconst_1
            aaload
            iconst_1
            fconst_0
            fastore
         5: .line 358
            aload 0 /* points */
            arraylength
            istore 2 /* count */
        start local 2 // int count
         6: .line 359
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         7: goto 16
         8: .line 360
      StackMap locals: float[][] int int
      StackMap stack:
            aload 0 /* points */
            iload 3 /* i */
            faload
            fstore 4 /* x */
        start local 4 // float x
         9: .line 361
            iinc 3 /* i */ 1
        10: .line 362
            aload 0 /* points */
            iload 3 /* i */
            faload
            fstore 5 /* y */
        start local 5 // float y
        11: .line 363
            aload 1 /* array */
            iconst_0
            aaload
            iconst_0
            dup2
            faload
            fload 4 /* x */
            fload 4 /* x */
            fmul
            fadd
            fastore
        12: .line 364
            aload 1 /* array */
            iconst_0
            aaload
            iconst_1
            dup2
            faload
            fload 4 /* x */
            fload 5 /* y */
            fmul
            fadd
            fastore
        13: .line 365
            aload 1 /* array */
            iconst_1
            aaload
            iconst_0
            aload 1 /* array */
            iconst_0
            aaload
            iconst_1
            faload
            fastore
        14: .line 366
            aload 1 /* array */
            iconst_1
            aaload
            iconst_1
            dup2
            faload
            fload 5 /* y */
            fload 5 /* y */
            fmul
            fadd
            fastore
        end local 5 // float y
        end local 4 // float x
        15: .line 359
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 3 /* i */
            iload 2 /* count */
            if_icmplt 8
        end local 3 // int i
        17: .line 368
            aload 1 /* array */
            iconst_0
            aaload
            iconst_0
            dup2
            faload
            iload 2 /* count */
            iconst_2
            idiv
            i2f
            fdiv
            fastore
        18: .line 369
            aload 1 /* array */
            iconst_0
            aaload
            iconst_1
            dup2
            faload
            iload 2 /* count */
            iconst_2
            idiv
            i2f
            fdiv
            fastore
        19: .line 370
            aload 1 /* array */
            iconst_1
            aaload
            iconst_0
            dup2
            faload
            iload 2 /* count */
            iconst_2
            idiv
            i2f
            fdiv
            fastore
        20: .line 371
            aload 1 /* array */
            iconst_1
            aaload
            iconst_1
            dup2
            faload
            iload 2 /* count */
            iconst_2
            idiv
            i2f
            fdiv
            fastore
        21: .line 373
            aload 1 /* array */
            areturn
        end local 2 // int count
        end local 1 // float[][] array
        end local 0 // float[] points
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   22     0  points  [F
            1   22     1   array  [[F
            6   22     2   count  I
            7   17     3       i  I
            9   15     4       x  F
           11   15     5       y  F
    MethodParameters:
        Name  Flags
      points  

  static float computeTotalLength(float[]);
    descriptor: ([F)F
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=6, args_size=1
        start local 0 // float[] points
         0: .line 377
            fconst_0
            fstore 1 /* sum */
        start local 1 // float sum
         1: .line 378
            aload 0 /* points */
            arraylength
            iconst_4
            isub
            istore 2 /* count */
        start local 2 // int count
         2: .line 379
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 8
         4: .line 380
      StackMap locals: float int int
      StackMap stack:
            aload 0 /* points */
            iload 3 /* i */
            iconst_2
            iadd
            faload
            aload 0 /* points */
            iload 3 /* i */
            faload
            fsub
            fstore 4 /* dx */
        start local 4 // float dx
         5: .line 381
            aload 0 /* points */
            iload 3 /* i */
            iconst_3
            iadd
            faload
            aload 0 /* points */
            iload 3 /* i */
            iconst_1
            iadd
            faload
            fsub
            fstore 5 /* dy */
        start local 5 // float dy
         6: .line 382
            fload 1 /* sum */
            f2d
            fload 4 /* dx */
            f2d
            fload 5 /* dy */
            f2d
            invokestatic java.lang.Math.hypot:(DD)D
            dadd
            d2f
            fstore 1 /* sum */
        end local 5 // float dy
        end local 4 // float dx
         7: .line 379
            iinc 3 /* i */ 2
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 2 /* count */
            if_icmplt 4
        end local 3 // int i
         9: .line 384
            fload 1 /* sum */
            freturn
        end local 2 // int count
        end local 1 // float sum
        end local 0 // float[] points
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0  points  [F
            1   10     1     sum  F
            2   10     2   count  I
            3    9     3       i  I
            5    7     4      dx  F
            6    7     5      dy  F
    MethodParameters:
        Name  Flags
      points  

  static float computeStraightness(float[]);
    descriptor: ([F)F
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // float[] points
         0: .line 388
            aload 0 /* points */
            invokestatic android.gesture.GestureUtils.computeTotalLength:([F)F
            fstore 1 /* totalLen */
        start local 1 // float totalLen
         1: .line 389
            aload 0 /* points */
            iconst_2
            faload
            aload 0 /* points */
            iconst_0
            faload
            fsub
            fstore 2 /* dx */
        start local 2 // float dx
         2: .line 390
            aload 0 /* points */
            iconst_3
            faload
            aload 0 /* points */
            iconst_1
            faload
            fsub
            fstore 3 /* dy */
        start local 3 // float dy
         3: .line 391
            fload 2 /* dx */
            f2d
            fload 3 /* dy */
            f2d
            invokestatic java.lang.Math.hypot:(DD)D
            d2f
            fload 1 /* totalLen */
            fdiv
            freturn
        end local 3 // float dy
        end local 2 // float dx
        end local 1 // float totalLen
        end local 0 // float[] points
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0    points  [F
            1    4     1  totalLen  F
            2    4     2        dx  F
            3    4     3        dy  F
    MethodParameters:
        Name  Flags
      points  

  static float computeStraightness(float[], float);
    descriptor: ([FF)F
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // float[] points
        start local 1 // float totalLen
         0: .line 395
            aload 0 /* points */
            iconst_2
            faload
            aload 0 /* points */
            iconst_0
            faload
            fsub
            fstore 2 /* dx */
        start local 2 // float dx
         1: .line 396
            aload 0 /* points */
            iconst_3
            faload
            aload 0 /* points */
            iconst_1
            faload
            fsub
            fstore 3 /* dy */
        start local 3 // float dy
         2: .line 397
            fload 2 /* dx */
            f2d
            fload 3 /* dy */
            f2d
            invokestatic java.lang.Math.hypot:(DD)D
            d2f
            fload 1 /* totalLen */
            fdiv
            freturn
        end local 3 // float dy
        end local 2 // float dx
        end local 1 // float totalLen
        end local 0 // float[] points
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0    points  [F
            0    3     1  totalLen  F
            1    3     2        dx  F
            2    3     3        dy  F
    MethodParameters:
          Name  Flags
      points    
      totalLen  

  static float squaredEuclideanDistance(float[], float[]);
    descriptor: ([F[F)F
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // float[] vector1
        start local 1 // float[] vector2
         0: .line 408
            fconst_0
            fstore 2 /* squaredDistance */
        start local 2 // float squaredDistance
         1: .line 409
            aload 0 /* vector1 */
            arraylength
            istore 3 /* size */
        start local 3 // int size
         2: .line 410
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 7
         4: .line 411
      StackMap locals: float int int
      StackMap stack:
            aload 0 /* vector1 */
            iload 4 /* i */
            faload
            aload 1 /* vector2 */
            iload 4 /* i */
            faload
            fsub
            fstore 5 /* difference */
        start local 5 // float difference
         5: .line 412
            fload 2 /* squaredDistance */
            fload 5 /* difference */
            fload 5 /* difference */
            fmul
            fadd
            fstore 2 /* squaredDistance */
        end local 5 // float difference
         6: .line 410
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            iload 3 /* size */
            if_icmplt 4
        end local 4 // int i
         8: .line 414
            fload 2 /* squaredDistance */
            iload 3 /* size */
            i2f
            fdiv
            freturn
        end local 3 // int size
        end local 2 // float squaredDistance
        end local 1 // float[] vector2
        end local 0 // float[] vector1
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0          vector1  [F
            0    9     1          vector2  [F
            1    9     2  squaredDistance  F
            2    9     3             size  I
            3    8     4                i  I
            5    6     5       difference  F
    MethodParameters:
         Name  Flags
      vector1  
      vector2  

  static float cosineDistance(float[], float[]);
    descriptor: ([F[F)F
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // float[] vector1
        start local 1 // float[] vector2
         0: .line 425
            fconst_0
            fstore 2 /* sum */
        start local 2 // float sum
         1: .line 426
            aload 0 /* vector1 */
            arraylength
            istore 3 /* len */
        start local 3 // int len
         2: .line 427
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 428
      StackMap locals: float int int
      StackMap stack:
            fload 2 /* sum */
            aload 0 /* vector1 */
            iload 4 /* i */
            faload
            aload 1 /* vector2 */
            iload 4 /* i */
            faload
            fmul
            fadd
            fstore 2 /* sum */
         5: .line 427
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            iload 3 /* len */
            if_icmplt 4
        end local 4 // int i
         7: .line 430
            fload 2 /* sum */
            f2d
            invokestatic java.lang.Math.acos:(D)D
            d2f
            freturn
        end local 3 // int len
        end local 2 // float sum
        end local 1 // float[] vector2
        end local 0 // float[] vector1
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0  vector1  [F
            0    8     1  vector2  [F
            1    8     2      sum  F
            2    8     3      len  I
            3    7     4        i  I
    MethodParameters:
         Name  Flags
      vector1  
      vector2  

  static float minimumCosineDistance(float[], float[], int);
    descriptor: ([F[FI)F
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=13, args_size=3
        start local 0 // float[] vector1
        start local 1 // float[] vector2
        start local 2 // int numOrientations
         0: .line 442
            aload 0 /* vector1 */
            arraylength
            istore 3 /* len */
        start local 3 // int len
         1: .line 443
            fconst_0
            fstore 4 /* a */
        start local 4 // float a
         2: .line 444
            fconst_0
            fstore 5 /* b */
        start local 5 // float b
         3: .line 445
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 8
         5: .line 446
      StackMap locals: float[] float[] int int float float int
      StackMap stack:
            fload 4 /* a */
            aload 0 /* vector1 */
            iload 6 /* i */
            faload
            aload 1 /* vector2 */
            iload 6 /* i */
            faload
            fmul
            aload 0 /* vector1 */
            iload 6 /* i */
            iconst_1
            iadd
            faload
            aload 1 /* vector2 */
            iload 6 /* i */
            iconst_1
            iadd
            faload
            fmul
            fadd
            fadd
            fstore 4 /* a */
         6: .line 447
            fload 5 /* b */
            aload 0 /* vector1 */
            iload 6 /* i */
            faload
            aload 1 /* vector2 */
            iload 6 /* i */
            iconst_1
            iadd
            faload
            fmul
            aload 0 /* vector1 */
            iload 6 /* i */
            iconst_1
            iadd
            faload
            aload 1 /* vector2 */
            iload 6 /* i */
            faload
            fmul
            fsub
            fadd
            fstore 5 /* b */
         7: .line 445
            iinc 6 /* i */ 2
      StackMap locals:
      StackMap stack:
         8: iload 6 /* i */
            iload 3 /* len */
            if_icmplt 5
        end local 6 // int i
         9: .line 449
            fload 4 /* a */
            fconst_0
            fcmpl
            ifeq 17
        10: .line 450
            fload 5 /* b */
            fload 4 /* a */
            fdiv
            fstore 6 /* tan */
        start local 6 // float tan
        11: .line 451
            fload 6 /* tan */
            f2d
            invokestatic java.lang.Math.atan:(D)D
            dstore 7 /* angle */
        start local 7 // double angle
        12: .line 452
            iload 2 /* numOrientations */
            iconst_2
            if_icmple 14
            dload 7 /* angle */
            invokestatic java.lang.Math.abs:(D)D
            ldc 3.141592653589793
            iload 2 /* numOrientations */
            i2d
            ddiv
            dcmpl
            iflt 14
        13: .line 453
            fload 4 /* a */
            f2d
            invokestatic java.lang.Math.acos:(D)D
            d2f
            freturn
        14: .line 455
      StackMap locals: float[] float[] int int float float float double
      StackMap stack:
            dload 7 /* angle */
            invokestatic java.lang.Math.cos:(D)D
            dstore 9 /* cosine */
        start local 9 // double cosine
        15: .line 456
            dload 9 /* cosine */
            fload 6 /* tan */
            f2d
            dmul
            dstore 11 /* sine */
        start local 11 // double sine
        16: .line 457
            fload 4 /* a */
            f2d
            dload 9 /* cosine */
            dmul
            fload 5 /* b */
            f2d
            dload 11 /* sine */
            dmul
            dadd
            invokestatic java.lang.Math.acos:(D)D
            d2f
            freturn
        end local 11 // double sine
        end local 9 // double cosine
        end local 7 // double angle
        end local 6 // float tan
        17: .line 460
      StackMap locals:
      StackMap stack:
            ldc 1.5707964
            freturn
        end local 5 // float b
        end local 4 // float a
        end local 3 // int len
        end local 2 // int numOrientations
        end local 1 // float[] vector2
        end local 0 // float[] vector1
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0          vector1  [F
            0   18     1          vector2  [F
            0   18     2  numOrientations  I
            1   18     3              len  I
            2   18     4                a  F
            3   18     5                b  F
            4    9     6                i  I
           11   17     6              tan  F
           12   17     7            angle  D
           15   17     9           cosine  D
           16   17    11             sine  D
    MethodParameters:
                 Name  Flags
      vector1          
      vector2          
      numOrientations  

  public static android.gesture.OrientedBoundingBox computeOrientedBoundingBox(java.util.ArrayList<android.gesture.GesturePoint>);
    descriptor: (Ljava/util/ArrayList;)Landroid/gesture/OrientedBoundingBox;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // java.util.ArrayList originalPoints
         0: .line 471
            aload 0 /* originalPoints */
            invokevirtual java.util.ArrayList.size:()I
            istore 1 /* count */
        start local 1 // int count
         1: .line 472
            iload 1 /* count */
            iconst_2
            imul
            newarray 6
            astore 2 /* points */
        start local 2 // float[] points
         2: .line 473
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 9
         4: .line 474
      StackMap locals: int float[] int
      StackMap stack:
            aload 0 /* originalPoints */
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.gesture.GesturePoint
            astore 4 /* point */
        start local 4 // android.gesture.GesturePoint point
         5: .line 475
            iload 3 /* i */
            iconst_2
            imul
            istore 5 /* index */
        start local 5 // int index
         6: .line 476
            aload 2 /* points */
            iload 5 /* index */
            aload 4 /* point */
            getfield android.gesture.GesturePoint.x:F
            fastore
         7: .line 477
            aload 2 /* points */
            iload 5 /* index */
            iconst_1
            iadd
            aload 4 /* point */
            getfield android.gesture.GesturePoint.y:F
            fastore
        end local 5 // int index
        end local 4 // android.gesture.GesturePoint point
         8: .line 473
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            iload 1 /* count */
            if_icmplt 4
        end local 3 // int i
        10: .line 479
            aload 2 /* points */
            invokestatic android.gesture.GestureUtils.computeCentroid:([F)[F
            astore 3 /* meanVector */
        start local 3 // float[] meanVector
        11: .line 480
            aload 2 /* points */
            aload 3 /* meanVector */
            invokestatic android.gesture.GestureUtils.computeOrientedBoundingBox:([F[F)Landroid/gesture/OrientedBoundingBox;
            areturn
        end local 3 // float[] meanVector
        end local 2 // float[] points
        end local 1 // int count
        end local 0 // java.util.ArrayList originalPoints
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0  originalPoints  Ljava/util/ArrayList<Landroid/gesture/GesturePoint;>;
            1   12     1           count  I
            2   12     2          points  [F
            3   10     3               i  I
            5    8     4           point  Landroid/gesture/GesturePoint;
            6    8     5           index  I
           11   12     3      meanVector  [F
    Signature: (Ljava/util/ArrayList<Landroid/gesture/GesturePoint;>;)Landroid/gesture/OrientedBoundingBox;
    MethodParameters:
                Name  Flags
      originalPoints  

  public static android.gesture.OrientedBoundingBox computeOrientedBoundingBox(float[]);
    descriptor: ([F)Landroid/gesture/OrientedBoundingBox;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // float[] originalPoints
         0: .line 490
            aload 0 /* originalPoints */
            arraylength
            istore 1 /* size */
        start local 1 // int size
         1: .line 491
            iload 1 /* size */
            newarray 6
            astore 2 /* points */
        start local 2 // float[] points
         2: .line 492
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 493
      StackMap locals: int float[] int
      StackMap stack:
            aload 2 /* points */
            iload 3 /* i */
            aload 0 /* originalPoints */
            iload 3 /* i */
            faload
            fastore
         5: .line 492
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            iload 1 /* size */
            if_icmplt 4
        end local 3 // int i
         7: .line 495
            aload 2 /* points */
            invokestatic android.gesture.GestureUtils.computeCentroid:([F)[F
            astore 3 /* meanVector */
        start local 3 // float[] meanVector
         8: .line 496
            aload 2 /* points */
            aload 3 /* meanVector */
            invokestatic android.gesture.GestureUtils.computeOrientedBoundingBox:([F[F)Landroid/gesture/OrientedBoundingBox;
            areturn
        end local 3 // float[] meanVector
        end local 2 // float[] points
        end local 1 // int size
        end local 0 // float[] originalPoints
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0  originalPoints  [F
            1    9     1            size  I
            2    9     2          points  [F
            3    7     3               i  I
            8    9     3      meanVector  [F
    MethodParameters:
                Name  Flags
      originalPoints  

  private static android.gesture.OrientedBoundingBox computeOrientedBoundingBox(float[], float[]);
    descriptor: ([F[F)Landroid/gesture/OrientedBoundingBox;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=11, args_size=2
        start local 0 // float[] points
        start local 1 // float[] centroid
         0: .line 500
            aload 0 /* points */
            aload 1 /* centroid */
            iconst_0
            faload
            fneg
            aload 1 /* centroid */
            iconst_1
            faload
            fneg
            invokestatic android.gesture.GestureUtils.translate:([FFF)[F
            pop
         1: .line 502
            aload 0 /* points */
            invokestatic android.gesture.GestureUtils.computeCoVariance:([F)[[F
            astore 2 /* array */
        start local 2 // float[][] array
         2: .line 503
            aload 2 /* array */
            invokestatic android.gesture.GestureUtils.computeOrientation:([[F)[F
            astore 3 /* targetVector */
        start local 3 // float[] targetVector
         3: .line 506
            aload 3 /* targetVector */
            iconst_0
            faload
            fconst_0
            fcmpl
            ifne 6
            aload 3 /* targetVector */
            iconst_1
            faload
            fconst_0
            fcmpl
            ifne 6
         4: .line 507
            ldc -1.5707964
            fstore 4 /* angle */
        start local 4 // float angle
         5: .line 508
            goto 8
        end local 4 // float angle
         6: .line 509
      StackMap locals: float[][] float[]
      StackMap stack:
            aload 3 /* targetVector */
            iconst_1
            faload
            f2d
            aload 3 /* targetVector */
            iconst_0
            faload
            f2d
            invokestatic java.lang.Math.atan2:(DD)D
            d2f
            fstore 4 /* angle */
        start local 4 // float angle
         7: .line 510
            aload 0 /* points */
            fload 4 /* angle */
            fneg
            invokestatic android.gesture.GestureUtils.rotate:([FF)[F
            pop
         8: .line 513
      StackMap locals: float
      StackMap stack:
            ldc 3.4028235E38
            fstore 5 /* minx */
        start local 5 // float minx
         9: .line 514
            ldc 3.4028235E38
            fstore 6 /* miny */
        start local 6 // float miny
        10: .line 515
            ldc 1.4E-45
            fstore 7 /* maxx */
        start local 7 // float maxx
        11: .line 516
            ldc 1.4E-45
            fstore 8 /* maxy */
        start local 8 // float maxy
        12: .line 517
            aload 0 /* points */
            arraylength
            istore 9 /* count */
        start local 9 // int count
        13: .line 518
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        14: goto 25
        15: .line 519
      StackMap locals: float[] float[] float[][] float[] float float float float float int int
      StackMap stack:
            aload 0 /* points */
            iload 10 /* i */
            faload
            fload 5 /* minx */
            fcmpg
            ifge 17
        16: .line 520
            aload 0 /* points */
            iload 10 /* i */
            faload
            fstore 5 /* minx */
        17: .line 522
      StackMap locals:
      StackMap stack:
            aload 0 /* points */
            iload 10 /* i */
            faload
            fload 7 /* maxx */
            fcmpl
            ifle 19
        18: .line 523
            aload 0 /* points */
            iload 10 /* i */
            faload
            fstore 7 /* maxx */
        19: .line 525
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
        20: .line 526
            aload 0 /* points */
            iload 10 /* i */
            faload
            fload 6 /* miny */
            fcmpg
            ifge 22
        21: .line 527
            aload 0 /* points */
            iload 10 /* i */
            faload
            fstore 6 /* miny */
        22: .line 529
      StackMap locals:
      StackMap stack:
            aload 0 /* points */
            iload 10 /* i */
            faload
            fload 8 /* maxy */
            fcmpl
            ifle 24
        23: .line 530
            aload 0 /* points */
            iload 10 /* i */
            faload
            fstore 8 /* maxy */
        24: .line 518
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 10 /* i */
            iload 9 /* count */
            if_icmplt 15
        end local 10 // int i
        26: .line 534
            new android.gesture.OrientedBoundingBox
            dup
            fload 4 /* angle */
            ldc 180.0
            fmul
            f2d
            ldc 3.141592653589793
            ddiv
            d2f
            aload 1 /* centroid */
            iconst_0
            faload
            aload 1 /* centroid */
            iconst_1
            faload
            fload 7 /* maxx */
            fload 5 /* minx */
            fsub
            fload 8 /* maxy */
            fload 6 /* miny */
            fsub
            invokespecial android.gesture.OrientedBoundingBox.<init>:(FFFFF)V
            areturn
        end local 9 // int count
        end local 8 // float maxy
        end local 7 // float maxx
        end local 6 // float miny
        end local 5 // float minx
        end local 4 // float angle
        end local 3 // float[] targetVector
        end local 2 // float[][] array
        end local 1 // float[] centroid
        end local 0 // float[] points
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   27     0        points  [F
            0   27     1      centroid  [F
            2   27     2         array  [[F
            3   27     3  targetVector  [F
            5    6     4         angle  F
            7   27     4         angle  F
            9   27     5          minx  F
           10   27     6          miny  F
           11   27     7          maxx  F
           12   27     8          maxy  F
           13   27     9         count  I
           14   26    10             i  I
    MethodParameters:
          Name  Flags
      points    
      centroid  

  private static float[] computeOrientation(float[][]);
    descriptor: ([[F)[F
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=1
        start local 0 // float[][] covarianceMatrix
         0: .line 538
            iconst_2
            newarray 6
            astore 1 /* targetVector */
        start local 1 // float[] targetVector
         1: .line 539
            aload 0 /* covarianceMatrix */
            iconst_0
            aaload
            iconst_1
            faload
            fconst_0
            fcmpl
            ifeq 2
            aload 0 /* covarianceMatrix */
            iconst_1
            aaload
            iconst_0
            faload
            fconst_0
            fcmpl
            ifne 4
         2: .line 540
      StackMap locals: float[]
      StackMap stack:
            aload 1 /* targetVector */
            iconst_0
            fconst_1
            fastore
         3: .line 541
            aload 1 /* targetVector */
            iconst_1
            fconst_0
            fastore
         4: .line 544
      StackMap locals:
      StackMap stack:
            aload 0 /* covarianceMatrix */
            iconst_0
            aaload
            iconst_0
            faload
            fneg
            aload 0 /* covarianceMatrix */
            iconst_1
            aaload
            iconst_1
            faload
            fsub
            fstore 2 /* a */
        start local 2 // float a
         5: .line 545
            aload 0 /* covarianceMatrix */
            iconst_0
            aaload
            iconst_0
            faload
            aload 0 /* covarianceMatrix */
            iconst_1
            aaload
            iconst_1
            faload
            fmul
            aload 0 /* covarianceMatrix */
            iconst_0
            aaload
            iconst_1
            faload
         6: .line 546
            aload 0 /* covarianceMatrix */
            iconst_1
            aaload
            iconst_0
            faload
            fmul
         7: .line 545
            fsub
            fstore 3 /* b */
        start local 3 // float b
         8: .line 547
            fload 2 /* a */
            fconst_2
            fdiv
            fstore 4 /* value */
        start local 4 // float value
         9: .line 548
            fload 4 /* value */
            f2d
            ldc 2.0
            invokestatic java.lang.Math.pow:(DD)D
            fload 3 /* b */
            f2d
            dsub
            invokestatic java.lang.Math.sqrt:(D)D
            d2f
            fstore 5 /* rightside */
        start local 5 // float rightside
        10: .line 549
            fload 4 /* value */
            fneg
            fload 5 /* rightside */
            fadd
            fstore 6 /* lambda1 */
        start local 6 // float lambda1
        11: .line 550
            fload 4 /* value */
            fneg
            fload 5 /* rightside */
            fsub
            fstore 7 /* lambda2 */
        start local 7 // float lambda2
        12: .line 551
            fload 6 /* lambda1 */
            fload 7 /* lambda2 */
            fcmpl
            ifne 16
        13: .line 552
            aload 1 /* targetVector */
            iconst_0
            fconst_0
            fastore
        14: .line 553
            aload 1 /* targetVector */
            iconst_1
            fconst_0
            fastore
        15: .line 554
            goto 21
        16: .line 555
      StackMap locals: float[][] float[] float float float float float float
      StackMap stack:
            fload 6 /* lambda1 */
            fload 7 /* lambda2 */
            fcmpl
            ifle 17
            fload 6 /* lambda1 */
            goto 18
      StackMap locals:
      StackMap stack:
        17: fload 7 /* lambda2 */
      StackMap locals:
      StackMap stack: float
        18: fstore 8 /* lambda */
        start local 8 // float lambda
        19: .line 556
            aload 1 /* targetVector */
            iconst_0
            fconst_1
            fastore
        20: .line 557
            aload 1 /* targetVector */
            iconst_1
            fload 8 /* lambda */
            aload 0 /* covarianceMatrix */
            iconst_0
            aaload
            iconst_0
            faload
            fsub
            aload 0 /* covarianceMatrix */
            iconst_0
            aaload
            iconst_1
            faload
            fdiv
            fastore
        end local 8 // float lambda
        21: .line 559
      StackMap locals:
      StackMap stack:
            aload 1 /* targetVector */
            areturn
        end local 7 // float lambda2
        end local 6 // float lambda1
        end local 5 // float rightside
        end local 4 // float value
        end local 3 // float b
        end local 2 // float a
        end local 1 // float[] targetVector
        end local 0 // float[][] covarianceMatrix
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0  covarianceMatrix  [[F
            1   22     1      targetVector  [F
            5   22     2                 a  F
            8   22     3                 b  F
            9   22     4             value  F
           10   22     5         rightside  F
           11   22     6           lambda1  F
           12   22     7           lambda2  F
           19   21     8            lambda  F
    MethodParameters:
                  Name  Flags
      covarianceMatrix  

  static float[] rotate(float[], float);
    descriptor: ([FF)[F
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // float[] points
        start local 1 // float angle
         0: .line 564
            fload 1 /* angle */
            f2d
            invokestatic java.lang.Math.cos:(D)D
            d2f
            fstore 2 /* cos */
        start local 2 // float cos
         1: .line 565
            fload 1 /* angle */
            f2d
            invokestatic java.lang.Math.sin:(D)D
            d2f
            fstore 3 /* sin */
        start local 3 // float sin
         2: .line 566
            aload 0 /* points */
            arraylength
            istore 4 /* size */
        start local 4 // int size
         3: .line 567
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 10
         5: .line 568
      StackMap locals: float[] float float float int int
      StackMap stack:
            aload 0 /* points */
            iload 5 /* i */
            faload
            fload 2 /* cos */
            fmul
            aload 0 /* points */
            iload 5 /* i */
            iconst_1
            iadd
            faload
            fload 3 /* sin */
            fmul
            fsub
            fstore 6 /* x */
        start local 6 // float x
         6: .line 569
            aload 0 /* points */
            iload 5 /* i */
            faload
            fload 3 /* sin */
            fmul
            aload 0 /* points */
            iload 5 /* i */
            iconst_1
            iadd
            faload
            fload 2 /* cos */
            fmul
            fadd
            fstore 7 /* y */
        start local 7 // float y
         7: .line 570
            aload 0 /* points */
            iload 5 /* i */
            fload 6 /* x */
            fastore
         8: .line 571
            aload 0 /* points */
            iload 5 /* i */
            iconst_1
            iadd
            fload 7 /* y */
            fastore
        end local 7 // float y
        end local 6 // float x
         9: .line 567
            iinc 5 /* i */ 2
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            iload 4 /* size */
            if_icmplt 5
        end local 5 // int i
        11: .line 573
            aload 0 /* points */
            areturn
        end local 4 // int size
        end local 3 // float sin
        end local 2 // float cos
        end local 1 // float angle
        end local 0 // float[] points
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0  points  [F
            0   12     1   angle  F
            1   12     2     cos  F
            2   12     3     sin  F
            3   12     4    size  I
            4   11     5       i  I
            6    9     6       x  F
            7    9     7       y  F
    MethodParameters:
        Name  Flags
      points  
      angle   

  static float[] translate(float[], float, float);
    descriptor: ([FFF)[F
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // float[] points
        start local 1 // float dx
        start local 2 // float dy
         0: .line 577
            aload 0 /* points */
            arraylength
            istore 3 /* size */
        start local 3 // int size
         1: .line 578
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 6
         3: .line 579
      StackMap locals: int int
      StackMap stack:
            aload 0 /* points */
            iload 4 /* i */
            dup2
            faload
            fload 1 /* dx */
            fadd
            fastore
         4: .line 580
            aload 0 /* points */
            iload 4 /* i */
            iconst_1
            iadd
            dup2
            faload
            fload 2 /* dy */
            fadd
            fastore
         5: .line 578
            iinc 4 /* i */ 2
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            iload 3 /* size */
            if_icmplt 3
        end local 4 // int i
         7: .line 582
            aload 0 /* points */
            areturn
        end local 3 // int size
        end local 2 // float dy
        end local 1 // float dx
        end local 0 // float[] points
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  points  [F
            0    8     1      dx  F
            0    8     2      dy  F
            1    8     3    size  I
            2    7     4       i  I
    MethodParameters:
        Name  Flags
      points  
      dx      
      dy      

  static float[] scale(float[], float, float);
    descriptor: ([FFF)[F
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // float[] points
        start local 1 // float sx
        start local 2 // float sy
         0: .line 586
            aload 0 /* points */
            arraylength
            istore 3 /* size */
        start local 3 // int size
         1: .line 587
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 6
         3: .line 588
      StackMap locals: int int
      StackMap stack:
            aload 0 /* points */
            iload 4 /* i */
            dup2
            faload
            fload 1 /* sx */
            fmul
            fastore
         4: .line 589
            aload 0 /* points */
            iload 4 /* i */
            iconst_1
            iadd
            dup2
            faload
            fload 2 /* sy */
            fmul
            fastore
         5: .line 587
            iinc 4 /* i */ 2
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            iload 3 /* size */
            if_icmplt 3
        end local 4 // int i
         7: .line 591
            aload 0 /* points */
            areturn
        end local 3 // int size
        end local 2 // float sy
        end local 1 // float sx
        end local 0 // float[] points
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  points  [F
            0    8     1      sx  F
            0    8     2      sy  F
            1    8     3    size  I
            2    7     4       i  I
    MethodParameters:
        Name  Flags
      points  
      sx      
      sy      
}
SourceFile: "GestureUtils.java"