public abstract class android.text.Layout
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: android.text.Layout
  super_class: java.lang.Object
{
  public static final int BREAK_STRATEGY_SIMPLE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

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

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

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

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

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

  private static final android.text.style.ParagraphStyle[] NO_PARA_SPANS;
    descriptor: [Landroid/text/style/ParagraphStyle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

  public static final float DEFAULT_LINESPACING_MULTIPLIER;
    descriptor: F
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1.0

  public static final float DEFAULT_LINESPACING_ADDITION;
    descriptor: F
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.0

  private java.lang.CharSequence mText;
    descriptor: Ljava/lang/CharSequence;
    flags: (0x0002) ACC_PRIVATE

  private android.text.TextPaint mPaint;
    descriptor: Landroid/text/TextPaint;
    flags: (0x0002) ACC_PRIVATE

  private android.text.TextPaint mWorkPaint;
    descriptor: Landroid/text/TextPaint;
    flags: (0x0002) ACC_PRIVATE

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

  private android.text.Layout$Alignment mAlignment;
    descriptor: Landroid/text/Layout$Alignment;
    flags: (0x0002) ACC_PRIVATE

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

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

  private static final android.graphics.Rect sTempRect;
    descriptor: Landroid/graphics/Rect;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private android.text.TextDirectionHeuristic mTextDir;
    descriptor: Landroid/text/TextDirectionHeuristic;
    flags: (0x0002) ACC_PRIVATE

  private android.text.SpanSet<android.text.style.LineBackgroundSpan> mLineBackgroundSpans;
    descriptor: Landroid/text/SpanSet;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/text/SpanSet<Landroid/text/style/LineBackgroundSpan;>;

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

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

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

  static final int DIR_REQUEST_LTR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int DIR_REQUEST_RTL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  static final int DIR_REQUEST_DEFAULT_LTR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int DIR_REQUEST_DEFAULT_RTL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -2

  static final int RUN_LENGTH_MASK;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 67108863

  static final int RUN_LEVEL_SHIFT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 26

  static final int RUN_LEVEL_MASK;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 63

  static final int RUN_RTL_FLAG;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 67108864

  private static final int TAB_INCREMENT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 20

  public static final android.text.Layout$Directions DIRS_ALL_LEFT_TO_RIGHT;
    descriptor: Landroid/text/Layout$Directions;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting(visibility = com.android.internal.annotations.VisibleForTesting$Visibility.PACKAGE:Lcom/android/internal/annotations/VisibleForTesting$Visibility;)

  public static final android.text.Layout$Directions DIRS_ALL_RIGHT_TO_LEFT;
    descriptor: Landroid/text/Layout$Directions;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting(visibility = com.android.internal.annotations.VisibleForTesting$Visibility.PACKAGE:Lcom/android/internal/annotations/VisibleForTesting$Visibility;)

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

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

  private static volatile int[] $SWITCH_TABLE$android$text$Layout$Alignment;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 112
            ldc Landroid/text/style/ParagraphStyle;
            invokestatic com.android.internal.util.ArrayUtils.emptyArray:(Ljava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.ParagraphStyle[]
         1: .line 111
            putstatic android.text.Layout.NO_PARA_SPANS:[Landroid/text/style/ParagraphStyle;
         2: .line 2431
            new android.graphics.Rect
            dup
            invokespecial android.graphics.Rect.<init>:()V
            putstatic android.text.Layout.sTempRect:Landroid/graphics/Rect;
         3: .line 2473
            new android.text.Layout$Directions
            dup
            iconst_2
            newarray 10
            dup
            iconst_1
            ldc 67108863
            iastore
            invokespecial android.text.Layout$Directions.<init>:([I)V
         4: .line 2472
            putstatic android.text.Layout.DIRS_ALL_LEFT_TO_RIGHT:Landroid/text/Layout$Directions;
         5: .line 2478
            new android.text.Layout$Directions
            dup
            iconst_2
            newarray 10
            dup
            iconst_1
            ldc 134217727
            iastore
            invokespecial android.text.Layout$Directions.<init>:([I)V
         6: .line 2477
            putstatic android.text.Layout.DIRS_ALL_RIGHT_TO_LEFT:Landroid/text/Layout$Directions;
         7: .line 2491
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static float getDesiredWidth(java.lang.CharSequence, android.text.TextPaint);
    descriptor: (Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.CharSequence source
        start local 1 // android.text.TextPaint paint
         0: .line 152
            aload 0 /* source */
            iconst_0
            aload 0 /* source */
            invokeinterface java.lang.CharSequence.length:()I
            aload 1 /* paint */
            invokestatic android.text.Layout.getDesiredWidth:(Ljava/lang/CharSequence;IILandroid/text/TextPaint;)F
            freturn
        end local 1 // android.text.TextPaint paint
        end local 0 // java.lang.CharSequence source
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  source  Ljava/lang/CharSequence;
            0    1     1   paint  Landroid/text/TextPaint;
    MethodParameters:
        Name  Flags
      source  
      paint   

  public static float getDesiredWidth(java.lang.CharSequence, int, int, android.text.TextPaint);
    descriptor: (Ljava/lang/CharSequence;IILandroid/text/TextPaint;)F
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.lang.CharSequence source
        start local 1 // int start
        start local 2 // int end
        start local 3 // android.text.TextPaint paint
         0: .line 164
            aload 0 /* source */
            iload 1 /* start */
            iload 2 /* end */
            aload 3 /* paint */
            getstatic android.text.TextDirectionHeuristics.FIRSTSTRONG_LTR:Landroid/text/TextDirectionHeuristic;
            invokestatic android.text.Layout.getDesiredWidth:(Ljava/lang/CharSequence;IILandroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;)F
            freturn
        end local 3 // android.text.TextPaint paint
        end local 2 // int end
        end local 1 // int start
        end local 0 // java.lang.CharSequence source
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  source  Ljava/lang/CharSequence;
            0    1     1   start  I
            0    1     2     end  I
            0    1     3   paint  Landroid/text/TextPaint;
    MethodParameters:
        Name  Flags
      source  
      start   
      end     
      paint   

  public static float getDesiredWidth(java.lang.CharSequence, int, int, android.text.TextPaint, android.text.TextDirectionHeuristic);
    descriptor: (Ljava/lang/CharSequence;IILandroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;)F
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // java.lang.CharSequence source
        start local 1 // int start
        start local 2 // int end
        start local 3 // android.text.TextPaint paint
        start local 4 // android.text.TextDirectionHeuristic textDir
         0: .line 175
            aload 0 /* source */
            iload 1 /* start */
            iload 2 /* end */
            aload 3 /* paint */
            aload 4 /* textDir */
            ldc 3.4028235E38
            invokestatic android.text.Layout.getDesiredWidthWithLimit:(Ljava/lang/CharSequence;IILandroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;F)F
            freturn
        end local 4 // android.text.TextDirectionHeuristic textDir
        end local 3 // android.text.TextPaint paint
        end local 2 // int end
        end local 1 // int start
        end local 0 // java.lang.CharSequence source
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0   source  Ljava/lang/CharSequence;
            0    1     1    start  I
            0    1     2      end  I
            0    1     3    paint  Landroid/text/TextPaint;
            0    1     4  textDir  Landroid/text/TextDirectionHeuristic;
    MethodParameters:
         Name  Flags
      source   
      start    
      end      
      paint    
      textDir  

  public static float getDesiredWidthWithLimit(java.lang.CharSequence, int, int, android.text.TextPaint, android.text.TextDirectionHeuristic, float);
    descriptor: (Ljava/lang/CharSequence;IILandroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;F)F
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=6
        start local 0 // java.lang.CharSequence source
        start local 1 // int start
        start local 2 // int end
        start local 3 // android.text.TextPaint paint
        start local 4 // android.text.TextDirectionHeuristic textDir
        start local 5 // float upperLimit
         0: .line 186
            fconst_0
            fstore 6 /* need */
        start local 6 // float need
         1: .line 189
            iload 1 /* start */
            istore 8 /* i */
        start local 8 // int i
         2: goto 13
         3: .line 190
      StackMap locals: java.lang.CharSequence int int android.text.TextPaint android.text.TextDirectionHeuristic float float top int
      StackMap stack:
            aload 0 /* source */
            bipush 10
            iload 8 /* i */
            iload 2 /* end */
            invokestatic android.text.TextUtils.indexOf:(Ljava/lang/CharSequence;CII)I
            istore 7 /* next */
        start local 7 // int next
         4: .line 192
            iload 7 /* next */
            ifge 6
         5: .line 193
            iload 2 /* end */
            istore 7 /* next */
         6: .line 196
      StackMap locals: java.lang.CharSequence int int android.text.TextPaint android.text.TextDirectionHeuristic float float int int
      StackMap stack:
            aload 3 /* paint */
            aload 0 /* source */
            iload 8 /* i */
            iload 7 /* next */
            aload 4 /* textDir */
            invokestatic android.text.Layout.measurePara:(Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;)F
            fstore 9 /* w */
        start local 9 // float w
         7: .line 197
            fload 9 /* w */
            fload 5 /* upperLimit */
            fcmpl
            ifle 9
         8: .line 198
            fload 5 /* upperLimit */
            freturn
         9: .line 201
      StackMap locals: float
      StackMap stack:
            fload 9 /* w */
            fload 6 /* need */
            fcmpl
            ifle 11
        10: .line 202
            fload 9 /* w */
            fstore 6 /* need */
        11: .line 204
      StackMap locals:
      StackMap stack:
            iinc 7 /* next */ 1
        end local 9 // float w
        12: .line 189
            iload 7 /* next */
            istore 8 /* i */
        end local 7 // int next
      StackMap locals: java.lang.CharSequence int int android.text.TextPaint android.text.TextDirectionHeuristic float float top int
      StackMap stack:
        13: iload 8 /* i */
            iload 2 /* end */
            if_icmple 3
        end local 8 // int i
        14: .line 207
            fload 6 /* need */
            freturn
        end local 6 // float need
        end local 5 // float upperLimit
        end local 4 // android.text.TextDirectionHeuristic textDir
        end local 3 // android.text.TextPaint paint
        end local 2 // int end
        end local 1 // int start
        end local 0 // java.lang.CharSequence source
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0      source  Ljava/lang/CharSequence;
            0   15     1       start  I
            0   15     2         end  I
            0   15     3       paint  Landroid/text/TextPaint;
            0   15     4     textDir  Landroid/text/TextDirectionHeuristic;
            0   15     5  upperLimit  F
            1   15     6        need  F
            4   13     7        next  I
            2   14     8           i  I
            7   12     9           w  F
    MethodParameters:
            Name  Flags
      source      
      start       
      end         
      paint       
      textDir     
      upperLimit  

  protected void <init>(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout$Alignment, float, float);
    descriptor: (Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // android.text.Layout this
        start local 1 // java.lang.CharSequence text
        start local 2 // android.text.TextPaint paint
        start local 3 // int width
        start local 4 // android.text.Layout$Alignment align
        start local 5 // float spacingMult
        start local 6 // float spacingAdd
         0: .line 226
            aload 0 /* this */
            aload 1 /* text */
            aload 2 /* paint */
            iload 3 /* width */
            aload 4 /* align */
            getstatic android.text.TextDirectionHeuristics.FIRSTSTRONG_LTR:Landroid/text/TextDirectionHeuristic;
         1: .line 227
            fload 5 /* spacingMult */
            fload 6 /* spacingAdd */
            invokespecial android.text.Layout.<init>:(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;Landroid/text/TextDirectionHeuristic;FF)V
         2: .line 228
            return
        end local 6 // float spacingAdd
        end local 5 // float spacingMult
        end local 4 // android.text.Layout$Alignment align
        end local 3 // int width
        end local 2 // android.text.TextPaint paint
        end local 1 // java.lang.CharSequence text
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Landroid/text/Layout;
            0    3     1         text  Ljava/lang/CharSequence;
            0    3     2        paint  Landroid/text/TextPaint;
            0    3     3        width  I
            0    3     4        align  Landroid/text/Layout$Alignment;
            0    3     5  spacingMult  F
            0    3     6   spacingAdd  F
    MethodParameters:
             Name  Flags
      text         
      paint        
      width        
      align        
      spacingMult  
      spacingAdd   

  protected void <init>(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout$Alignment, android.text.TextDirectionHeuristic, float, float);
    descriptor: (Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;Landroid/text/TextDirectionHeuristic;FF)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=8
        start local 0 // android.text.Layout this
        start local 1 // java.lang.CharSequence text
        start local 2 // android.text.TextPaint paint
        start local 3 // int width
        start local 4 // android.text.Layout$Alignment align
        start local 5 // android.text.TextDirectionHeuristic textDir
        start local 6 // float spacingMult
        start local 7 // float spacingAdd
         0: .line 245
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 2426
            aload 0 /* this */
            new android.text.TextPaint
            dup
            invokespecial android.text.TextPaint.<init>:()V
            putfield android.text.Layout.mWorkPaint:Landroid/text/TextPaint;
         2: .line 2428
            aload 0 /* this */
            getstatic android.text.Layout$Alignment.ALIGN_NORMAL:Landroid/text/Layout$Alignment;
            putfield android.text.Layout.mAlignment:Landroid/text/Layout$Alignment;
         3: .line 249
            iload 3 /* width */
            ifge 5
         4: .line 250
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Layout: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* width */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " < 0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 256
      StackMap locals: android.text.Layout java.lang.CharSequence android.text.TextPaint int android.text.Layout$Alignment android.text.TextDirectionHeuristic float float
      StackMap stack:
            aload 2 /* paint */
            ifnull 8
         6: .line 257
            aload 2 /* paint */
            iconst_0
            putfield android.text.TextPaint.bgColor:I
         7: .line 258
            aload 2 /* paint */
            iconst_0
            putfield android.text.TextPaint.baselineShift:I
         8: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* text */
            putfield android.text.Layout.mText:Ljava/lang/CharSequence;
         9: .line 262
            aload 0 /* this */
            aload 2 /* paint */
            putfield android.text.Layout.mPaint:Landroid/text/TextPaint;
        10: .line 263
            aload 0 /* this */
            iload 3 /* width */
            putfield android.text.Layout.mWidth:I
        11: .line 264
            aload 0 /* this */
            aload 4 /* align */
            putfield android.text.Layout.mAlignment:Landroid/text/Layout$Alignment;
        12: .line 265
            aload 0 /* this */
            fload 6 /* spacingMult */
            putfield android.text.Layout.mSpacingMult:F
        13: .line 266
            aload 0 /* this */
            fload 7 /* spacingAdd */
            putfield android.text.Layout.mSpacingAdd:F
        14: .line 267
            aload 0 /* this */
            aload 1 /* text */
            instanceof android.text.Spanned
            putfield android.text.Layout.mSpannedText:Z
        15: .line 268
            aload 0 /* this */
            aload 5 /* textDir */
            putfield android.text.Layout.mTextDir:Landroid/text/TextDirectionHeuristic;
        16: .line 269
            return
        end local 7 // float spacingAdd
        end local 6 // float spacingMult
        end local 5 // android.text.TextDirectionHeuristic textDir
        end local 4 // android.text.Layout$Alignment align
        end local 3 // int width
        end local 2 // android.text.TextPaint paint
        end local 1 // java.lang.CharSequence text
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         this  Landroid/text/Layout;
            0   17     1         text  Ljava/lang/CharSequence;
            0   17     2        paint  Landroid/text/TextPaint;
            0   17     3        width  I
            0   17     4        align  Landroid/text/Layout$Alignment;
            0   17     5      textDir  Landroid/text/TextDirectionHeuristic;
            0   17     6  spacingMult  F
            0   17     7   spacingAdd  F
    MethodParameters:
             Name  Flags
      text         
      paint        
      width        
      align        
      textDir      
      spacingMult  
      spacingAdd   

  protected void setJustificationMode(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int justificationMode
         0: .line 273
            aload 0 /* this */
            iload 1 /* justificationMode */
            putfield android.text.Layout.mJustificationMode:I
         1: .line 274
            return
        end local 1 // int justificationMode
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Landroid/text/Layout;
            0    2     1  justificationMode  I
    MethodParameters:
                   Name  Flags
      justificationMode  

  void replaceWith(java.lang.CharSequence, android.text.TextPaint, int, android.text.Layout$Alignment, float, float);
    descriptor: (Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=7
        start local 0 // android.text.Layout this
        start local 1 // java.lang.CharSequence text
        start local 2 // android.text.TextPaint paint
        start local 3 // int width
        start local 4 // android.text.Layout$Alignment align
        start local 5 // float spacingmult
        start local 6 // float spacingadd
         0: .line 282
            iload 3 /* width */
            ifge 2
         1: .line 283
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Layout: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* width */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " < 0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 286
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* text */
            putfield android.text.Layout.mText:Ljava/lang/CharSequence;
         3: .line 287
            aload 0 /* this */
            aload 2 /* paint */
            putfield android.text.Layout.mPaint:Landroid/text/TextPaint;
         4: .line 288
            aload 0 /* this */
            iload 3 /* width */
            putfield android.text.Layout.mWidth:I
         5: .line 289
            aload 0 /* this */
            aload 4 /* align */
            putfield android.text.Layout.mAlignment:Landroid/text/Layout$Alignment;
         6: .line 290
            aload 0 /* this */
            fload 5 /* spacingmult */
            putfield android.text.Layout.mSpacingMult:F
         7: .line 291
            aload 0 /* this */
            fload 6 /* spacingadd */
            putfield android.text.Layout.mSpacingAdd:F
         8: .line 292
            aload 0 /* this */
            aload 1 /* text */
            instanceof android.text.Spanned
            putfield android.text.Layout.mSpannedText:Z
         9: .line 293
            return
        end local 6 // float spacingadd
        end local 5 // float spacingmult
        end local 4 // android.text.Layout$Alignment align
        end local 3 // int width
        end local 2 // android.text.TextPaint paint
        end local 1 // java.lang.CharSequence text
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Landroid/text/Layout;
            0   10     1         text  Ljava/lang/CharSequence;
            0   10     2        paint  Landroid/text/TextPaint;
            0   10     3        width  I
            0   10     4        align  Landroid/text/Layout$Alignment;
            0   10     5  spacingmult  F
            0   10     6   spacingadd  F
    MethodParameters:
             Name  Flags
      text         
      paint        
      width        
      align        
      spacingmult  
      spacingadd   

  public void draw(android.graphics.Canvas);
    descriptor: (Landroid/graphics/Canvas;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // android.graphics.Canvas c
         0: .line 299
            aload 0 /* this */
            aload 1 /* c */
            aconst_null
            aconst_null
            iconst_0
            invokevirtual android.text.Layout.draw:(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
         1: .line 300
            return
        end local 1 // android.graphics.Canvas c
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/text/Layout;
            0    2     1     c  Landroid/graphics/Canvas;
    MethodParameters:
      Name  Flags
      c     

  public void draw(android.graphics.Canvas, android.graphics.Path, android.graphics.Paint, int);
    descriptor: (Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // android.text.Layout this
        start local 1 // android.graphics.Canvas canvas
        start local 2 // android.graphics.Path highlight
        start local 3 // android.graphics.Paint highlightPaint
        start local 4 // int cursorOffsetVertical
         0: .line 314
            aload 0 /* this */
            aload 1 /* canvas */
            invokevirtual android.text.Layout.getLineRangeForDraw:(Landroid/graphics/Canvas;)J
            lstore 5 /* lineRange */
        start local 5 // long lineRange
         1: .line 315
            lload 5 /* lineRange */
            invokestatic android.text.TextUtils.unpackRangeStartFromLong:(J)I
            istore 7 /* firstLine */
        start local 7 // int firstLine
         2: .line 316
            lload 5 /* lineRange */
            invokestatic android.text.TextUtils.unpackRangeEndFromLong:(J)I
            istore 8 /* lastLine */
        start local 8 // int lastLine
         3: .line 317
            iload 8 /* lastLine */
            ifge 4
            return
         4: .line 319
      StackMap locals: long int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* canvas */
            aload 2 /* highlight */
            aload 3 /* highlightPaint */
            iload 4 /* cursorOffsetVertical */
         5: .line 320
            iload 7 /* firstLine */
            iload 8 /* lastLine */
         6: .line 319
            invokevirtual android.text.Layout.drawBackground:(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;III)V
         7: .line 321
            aload 0 /* this */
            aload 1 /* canvas */
            iload 7 /* firstLine */
            iload 8 /* lastLine */
            invokevirtual android.text.Layout.drawText:(Landroid/graphics/Canvas;II)V
         8: .line 322
            return
        end local 8 // int lastLine
        end local 7 // int firstLine
        end local 5 // long lineRange
        end local 4 // int cursorOffsetVertical
        end local 3 // android.graphics.Paint highlightPaint
        end local 2 // android.graphics.Path highlight
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    9     0                  this  Landroid/text/Layout;
            0    9     1                canvas  Landroid/graphics/Canvas;
            0    9     2             highlight  Landroid/graphics/Path;
            0    9     3        highlightPaint  Landroid/graphics/Paint;
            0    9     4  cursorOffsetVertical  I
            1    9     5             lineRange  J
            2    9     7             firstLine  I
            3    9     8              lastLine  I
    MethodParameters:
                      Name  Flags
      canvas                
      highlight             
      highlightPaint        
      cursorOffsetVertical  

  private boolean isJustificationRequired(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int lineNum
         0: .line 325
            aload 0 /* this */
            getfield android.text.Layout.mJustificationMode:I
            ifne 1
            iconst_0
            ireturn
         1: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* lineNum */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            istore 2 /* lineEnd */
        start local 2 // int lineEnd
         2: .line 327
            iload 2 /* lineEnd */
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
            if_icmpge 3
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            iload 2 /* lineEnd */
            iconst_1
            isub
            invokeinterface java.lang.CharSequence.charAt:(I)C
            bipush 10
            if_icmpeq 3
            iconst_1
            ireturn
      StackMap locals: int
      StackMap stack:
         3: iconst_0
            ireturn
        end local 2 // int lineEnd
        end local 1 // int lineNum
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Landroid/text/Layout;
            0    4     1  lineNum  I
            2    4     2  lineEnd  I
    MethodParameters:
         Name  Flags
      lineNum  

  private float getJustifyWidth(int);
    descriptor: (I)F
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=15, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int lineNum
         0: .line 331
            aload 0 /* this */
            getfield android.text.Layout.mAlignment:Landroid/text/Layout$Alignment;
            astore 2 /* paraAlign */
        start local 2 // android.text.Layout$Alignment paraAlign
         1: .line 333
            iconst_0
            istore 3 /* left */
        start local 3 // int left
         2: .line 334
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            istore 4 /* right */
        start local 4 // int right
         3: .line 336
            aload 0 /* this */
            iload 1 /* lineNum */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            istore 5 /* dir */
        start local 5 // int dir
         4: .line 338
            getstatic android.text.Layout.NO_PARA_SPANS:[Landroid/text/style/ParagraphStyle;
            astore 6 /* spans */
        start local 6 // android.text.style.ParagraphStyle[] spans
         5: .line 339
            aload 0 /* this */
            getfield android.text.Layout.mSpannedText:Z
            ifeq 45
         6: .line 340
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            checkcast android.text.Spanned
            astore 7 /* sp */
        start local 7 // android.text.Spanned sp
         7: .line 341
            aload 0 /* this */
            iload 1 /* lineNum */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 8 /* start */
        start local 8 // int start
         8: .line 343
            iload 8 /* start */
            ifeq 9
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            iload 8 /* start */
            iconst_1
            isub
            invokeinterface java.lang.CharSequence.charAt:(I)C
            bipush 10
            if_icmpeq 9
            iconst_0
            goto 10
      StackMap locals: android.text.Layout int android.text.Layout$Alignment int int int android.text.style.ParagraphStyle[] android.text.Spanned int
      StackMap stack:
         9: iconst_1
      StackMap locals:
      StackMap stack: int
        10: istore 9 /* isFirstParaLine */
        start local 9 // boolean isFirstParaLine
        11: .line 345
            iload 9 /* isFirstParaLine */
            ifeq 23
        12: .line 346
            aload 7 /* sp */
            iload 8 /* start */
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.length:()I
        13: .line 347
            ldc Landroid/text/style/ParagraphStyle;
        14: .line 346
            invokeinterface android.text.Spanned.nextSpanTransition:(IILjava/lang/Class;)I
            istore 10 /* spanEnd */
        start local 10 // int spanEnd
        15: .line 348
            aload 7 /* sp */
            iload 8 /* start */
            iload 10 /* spanEnd */
            ldc Landroid/text/style/ParagraphStyle;
            invokestatic android.text.Layout.getParagraphSpans:(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.ParagraphStyle[]
            astore 6 /* spans */
        16: .line 350
            aload 6 /* spans */
            arraylength
            iconst_1
            isub
            istore 11 /* n */
        start local 11 // int n
        17: goto 22
        18: .line 351
      StackMap locals: int int int
      StackMap stack:
            aload 6 /* spans */
            iload 11 /* n */
            aaload
            instanceof android.text.style.AlignmentSpan
            ifeq 21
        19: .line 352
            aload 6 /* spans */
            iload 11 /* n */
            aaload
            checkcast android.text.style.AlignmentSpan
            invokeinterface android.text.style.AlignmentSpan.getAlignment:()Landroid/text/Layout$Alignment;
            astore 2 /* paraAlign */
        20: .line 353
            goto 23
        21: .line 350
      StackMap locals:
      StackMap stack:
            iinc 11 /* n */ -1
      StackMap locals:
      StackMap stack:
        22: iload 11 /* n */
            ifge 18
        end local 11 // int n
        end local 10 // int spanEnd
        23: .line 358
      StackMap locals:
      StackMap stack:
            aload 6 /* spans */
            arraylength
            istore 10 /* length */
        start local 10 // int length
        24: .line 359
            iload 9 /* isFirstParaLine */
            istore 11 /* useFirstLineMargin */
        start local 11 // boolean useFirstLineMargin
        25: .line 360
            iconst_0
            istore 12 /* n */
        start local 12 // int n
        26: goto 34
        27: .line 361
      StackMap locals: int int int
      StackMap stack:
            aload 6 /* spans */
            iload 12 /* n */
            aaload
            instanceof android.text.style.LeadingMarginSpan$LeadingMarginSpan2
            ifeq 33
        28: .line 362
            aload 6 /* spans */
            iload 12 /* n */
            aaload
            checkcast android.text.style.LeadingMarginSpan$LeadingMarginSpan2
            invokeinterface android.text.style.LeadingMarginSpan$LeadingMarginSpan2.getLeadingMarginLineCount:()I
            istore 13 /* count */
        start local 13 // int count
        29: .line 363
            aload 0 /* this */
            aload 7 /* sp */
            aload 6 /* spans */
            iload 12 /* n */
            aaload
            invokeinterface android.text.Spanned.getSpanStart:(Ljava/lang/Object;)I
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 14 /* startLine */
        start local 14 // int startLine
        30: .line 364
            iload 1 /* lineNum */
            iload 14 /* startLine */
            iload 13 /* count */
            iadd
            if_icmpge 33
        31: .line 365
            iconst_1
            istore 11 /* useFirstLineMargin */
        32: .line 366
            goto 35
        end local 14 // int startLine
        end local 13 // int count
        33: .line 360
      StackMap locals:
      StackMap stack:
            iinc 12 /* n */ 1
      StackMap locals:
      StackMap stack:
        34: iload 12 /* n */
            iload 10 /* length */
            if_icmplt 27
        end local 12 // int n
        35: .line 370
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 12 /* n */
        start local 12 // int n
        36: goto 44
        37: .line 371
      StackMap locals: int
      StackMap stack:
            aload 6 /* spans */
            iload 12 /* n */
            aaload
            instanceof android.text.style.LeadingMarginSpan
            ifeq 43
        38: .line 372
            aload 6 /* spans */
            iload 12 /* n */
            aaload
            checkcast android.text.style.LeadingMarginSpan
            astore 13 /* margin */
        start local 13 // android.text.style.LeadingMarginSpan margin
        39: .line 373
            iload 5 /* dir */
            iconst_m1
            if_icmpne 42
        40: .line 374
            iload 4 /* right */
            aload 13 /* margin */
            iload 11 /* useFirstLineMargin */
            invokeinterface android.text.style.LeadingMarginSpan.getLeadingMargin:(Z)I
            isub
            istore 4 /* right */
        41: .line 375
            goto 43
        42: .line 376
      StackMap locals: android.text.style.LeadingMarginSpan
      StackMap stack:
            iload 3 /* left */
            aload 13 /* margin */
            iload 11 /* useFirstLineMargin */
            invokeinterface android.text.style.LeadingMarginSpan.getLeadingMargin:(Z)I
            iadd
            istore 3 /* left */
        end local 13 // android.text.style.LeadingMarginSpan margin
        43: .line 370
      StackMap locals:
      StackMap stack:
            iinc 12 /* n */ 1
      StackMap locals:
      StackMap stack:
        44: iload 12 /* n */
            iload 10 /* length */
            if_icmplt 37
        end local 12 // int n
        end local 11 // boolean useFirstLineMargin
        end local 10 // int length
        end local 9 // boolean isFirstParaLine
        end local 8 // int start
        end local 7 // android.text.Spanned sp
        45: .line 383
      StackMap locals: android.text.Layout int android.text.Layout$Alignment int int int android.text.style.ParagraphStyle[]
      StackMap stack:
            aload 2 /* paraAlign */
            getstatic android.text.Layout$Alignment.ALIGN_LEFT:Landroid/text/Layout$Alignment;
            if_acmpne 50
        46: .line 384
            iload 5 /* dir */
            iconst_1
            if_icmpne 47
            getstatic android.text.Layout$Alignment.ALIGN_NORMAL:Landroid/text/Layout$Alignment;
            goto 48
      StackMap locals:
      StackMap stack:
        47: getstatic android.text.Layout$Alignment.ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;
      StackMap locals:
      StackMap stack: android.text.Layout$Alignment
        48: astore 7 /* align */
        start local 7 // android.text.Layout$Alignment align
        49: .line 385
            goto 56
        end local 7 // android.text.Layout$Alignment align
      StackMap locals:
      StackMap stack:
        50: aload 2 /* paraAlign */
            getstatic android.text.Layout$Alignment.ALIGN_RIGHT:Landroid/text/Layout$Alignment;
            if_acmpne 55
        51: .line 386
            iload 5 /* dir */
            iconst_1
            if_icmpne 52
            getstatic android.text.Layout$Alignment.ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;
            goto 53
      StackMap locals:
      StackMap stack:
        52: getstatic android.text.Layout$Alignment.ALIGN_NORMAL:Landroid/text/Layout$Alignment;
      StackMap locals:
      StackMap stack: android.text.Layout$Alignment
        53: astore 7 /* align */
        start local 7 // android.text.Layout$Alignment align
        54: .line 387
            goto 56
        end local 7 // android.text.Layout$Alignment align
        55: .line 388
      StackMap locals:
      StackMap stack:
            aload 2 /* paraAlign */
            astore 7 /* align */
        start local 7 // android.text.Layout$Alignment align
        56: .line 392
      StackMap locals: android.text.Layout$Alignment
      StackMap stack:
            aload 7 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_NORMAL:Landroid/text/Layout$Alignment;
            if_acmpne 62
        57: .line 393
            iload 5 /* dir */
            iconst_1
            if_icmpne 60
        58: .line 394
            aload 0 /* this */
            iload 1 /* lineNum */
            getstatic android.text.Layout$Alignment.ALIGN_LEFT:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout.getIndentAdjust:(ILandroid/text/Layout$Alignment;)I
            istore 8 /* indentWidth */
        start local 8 // int indentWidth
        59: .line 395
            goto 69
        end local 8 // int indentWidth
        60: .line 396
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* lineNum */
            getstatic android.text.Layout$Alignment.ALIGN_RIGHT:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout.getIndentAdjust:(ILandroid/text/Layout$Alignment;)I
            ineg
            istore 8 /* indentWidth */
        start local 8 // int indentWidth
        61: .line 398
            goto 69
        end local 8 // int indentWidth
      StackMap locals:
      StackMap stack:
        62: aload 7 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;
            if_acmpne 68
        63: .line 399
            iload 5 /* dir */
            iconst_1
            if_icmpne 66
        64: .line 400
            aload 0 /* this */
            iload 1 /* lineNum */
            getstatic android.text.Layout$Alignment.ALIGN_RIGHT:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout.getIndentAdjust:(ILandroid/text/Layout$Alignment;)I
            ineg
            istore 8 /* indentWidth */
        start local 8 // int indentWidth
        65: .line 401
            goto 69
        end local 8 // int indentWidth
        66: .line 402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* lineNum */
            getstatic android.text.Layout$Alignment.ALIGN_LEFT:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout.getIndentAdjust:(ILandroid/text/Layout$Alignment;)I
            istore 8 /* indentWidth */
        start local 8 // int indentWidth
        67: .line 404
            goto 69
        end local 8 // int indentWidth
        68: .line 405
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* lineNum */
            getstatic android.text.Layout$Alignment.ALIGN_CENTER:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout.getIndentAdjust:(ILandroid/text/Layout$Alignment;)I
            istore 8 /* indentWidth */
        start local 8 // int indentWidth
        69: .line 408
      StackMap locals: int
      StackMap stack:
            iload 4 /* right */
            iload 3 /* left */
            isub
            iload 8 /* indentWidth */
            isub
            i2f
            freturn
        end local 8 // int indentWidth
        end local 7 // android.text.Layout$Alignment align
        end local 6 // android.text.style.ParagraphStyle[] spans
        end local 5 // int dir
        end local 4 // int right
        end local 3 // int left
        end local 2 // android.text.Layout$Alignment paraAlign
        end local 1 // int lineNum
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   70     0                this  Landroid/text/Layout;
            0   70     1             lineNum  I
            1   70     2           paraAlign  Landroid/text/Layout$Alignment;
            2   70     3                left  I
            3   70     4               right  I
            4   70     5                 dir  I
            5   70     6               spans  [Landroid/text/style/ParagraphStyle;
            7   45     7                  sp  Landroid/text/Spanned;
            8   45     8               start  I
           11   45     9     isFirstParaLine  Z
           15   23    10             spanEnd  I
           17   23    11                   n  I
           24   45    10              length  I
           25   45    11  useFirstLineMargin  Z
           26   35    12                   n  I
           29   33    13               count  I
           30   33    14           startLine  I
           36   45    12                   n  I
           39   43    13              margin  Landroid/text/style/LeadingMarginSpan;
           49   50     7               align  Landroid/text/Layout$Alignment;
           54   55     7               align  Landroid/text/Layout$Alignment;
           56   70     7               align  Landroid/text/Layout$Alignment;
           59   60     8         indentWidth  I
           61   62     8         indentWidth  I
           65   66     8         indentWidth  I
           67   68     8         indentWidth  I
           69   70     8         indentWidth  I
    MethodParameters:
         Name  Flags
      lineNum  

  public void drawText(android.graphics.Canvas, int, int);
    descriptor: (Landroid/graphics/Canvas;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=13, locals=32, args_size=4
        start local 0 // android.text.Layout this
        start local 1 // android.graphics.Canvas canvas
        start local 2 // int firstLine
        start local 3 // int lastLine
         0: .line 415
            aload 0 /* this */
            iload 2 /* firstLine */
            invokevirtual android.text.Layout.getLineTop:(I)I
            istore 4 /* previousLineBottom */
        start local 4 // int previousLineBottom
         1: .line 416
            aload 0 /* this */
            iload 2 /* firstLine */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 5 /* previousLineEnd */
        start local 5 // int previousLineEnd
         2: .line 417
            getstatic android.text.Layout.NO_PARA_SPANS:[Landroid/text/style/ParagraphStyle;
            astore 6 /* spans */
        start local 6 // android.text.style.ParagraphStyle[] spans
         3: .line 418
            iconst_0
            istore 7 /* spanEnd */
        start local 7 // int spanEnd
         4: .line 419
            aload 0 /* this */
            getfield android.text.Layout.mWorkPaint:Landroid/text/TextPaint;
            astore 8 /* paint */
        start local 8 // android.text.TextPaint paint
         5: .line 420
            aload 8 /* paint */
            aload 0 /* this */
            getfield android.text.Layout.mPaint:Landroid/text/TextPaint;
            invokevirtual android.text.TextPaint.set:(Landroid/text/TextPaint;)V
         6: .line 421
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            astore 9 /* buf */
        start local 9 // java.lang.CharSequence buf
         7: .line 423
            aload 0 /* this */
            getfield android.text.Layout.mAlignment:Landroid/text/Layout$Alignment;
            astore 10 /* paraAlign */
        start local 10 // android.text.Layout$Alignment paraAlign
         8: .line 424
            aconst_null
            astore 11 /* tabStops */
        start local 11 // android.text.Layout$TabStops tabStops
         9: .line 425
            iconst_0
            istore 12 /* tabStopsIsInitialized */
        start local 12 // boolean tabStopsIsInitialized
        10: .line 427
            invokestatic android.text.TextLine.obtain:()Landroid/text/TextLine;
            astore 13 /* tl */
        start local 13 // android.text.TextLine tl
        11: .line 431
            iload 2 /* firstLine */
            istore 14 /* lineNum */
        start local 14 // int lineNum
        12: goto 123
        13: .line 432
      StackMap locals: android.text.Layout android.graphics.Canvas int int int int android.text.style.ParagraphStyle[] int android.text.TextPaint java.lang.CharSequence android.text.Layout$Alignment android.text.Layout$TabStops int android.text.TextLine int
      StackMap stack:
            iload 5 /* previousLineEnd */
            istore 15 /* start */
        start local 15 // int start
        14: .line 433
            aload 0 /* this */
            iload 14 /* lineNum */
            iconst_1
            iadd
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 5 /* previousLineEnd */
        15: .line 434
            aload 0 /* this */
            iload 14 /* lineNum */
            invokevirtual android.text.Layout.isJustificationRequired:(I)Z
            istore 16 /* justify */
        start local 16 // boolean justify
        16: .line 435
            aload 0 /* this */
            iload 14 /* lineNum */
            iload 15 /* start */
            iload 5 /* previousLineEnd */
            invokevirtual android.text.Layout.getLineVisibleEnd:(III)I
            istore 17 /* end */
        start local 17 // int end
        17: .line 436
            aload 8 /* paint */
            aload 0 /* this */
            iload 14 /* lineNum */
            invokevirtual android.text.Layout.getHyphen:(I)I
            invokevirtual android.text.TextPaint.setHyphenEdit:(I)V
        18: .line 438
            iload 4 /* previousLineBottom */
            istore 18 /* ltop */
        start local 18 // int ltop
        19: .line 439
            aload 0 /* this */
            iload 14 /* lineNum */
            iconst_1
            iadd
            invokevirtual android.text.Layout.getLineTop:(I)I
            istore 19 /* lbottom */
        start local 19 // int lbottom
        20: .line 440
            iload 19 /* lbottom */
            istore 4 /* previousLineBottom */
        21: .line 441
            iload 19 /* lbottom */
            aload 0 /* this */
            iload 14 /* lineNum */
            invokevirtual android.text.Layout.getLineDescent:(I)I
            isub
            istore 20 /* lbaseline */
        start local 20 // int lbaseline
        22: .line 443
            aload 0 /* this */
            iload 14 /* lineNum */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            istore 21 /* dir */
        start local 21 // int dir
        23: .line 444
            iconst_0
            istore 22 /* left */
        start local 22 // int left
        24: .line 445
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            istore 23 /* right */
        start local 23 // int right
        25: .line 447
            aload 0 /* this */
            getfield android.text.Layout.mSpannedText:Z
            ifeq 75
        26: .line 448
            aload 9 /* buf */
            checkcast android.text.Spanned
            astore 24 /* sp */
        start local 24 // android.text.Spanned sp
        27: .line 449
            aload 9 /* buf */
            invokeinterface java.lang.CharSequence.length:()I
            istore 25 /* textLength */
        start local 25 // int textLength
        28: .line 450
            iload 15 /* start */
            ifeq 29
            aload 9 /* buf */
            iload 15 /* start */
            iconst_1
            isub
            invokeinterface java.lang.CharSequence.charAt:(I)C
            bipush 10
            if_icmpeq 29
            iconst_0
            goto 30
      StackMap locals: android.text.Layout android.graphics.Canvas int int int int android.text.style.ParagraphStyle[] int android.text.TextPaint java.lang.CharSequence android.text.Layout$Alignment android.text.Layout$TabStops int android.text.TextLine int int int int int int int int int int android.text.Spanned int
      StackMap stack:
        29: iconst_1
      StackMap locals:
      StackMap stack: int
        30: istore 26 /* isFirstParaLine */
        start local 26 // boolean isFirstParaLine
        31: .line 462
            iload 15 /* start */
            iload 7 /* spanEnd */
            if_icmplt 45
            iload 14 /* lineNum */
            iload 2 /* firstLine */
            if_icmpeq 32
            iload 26 /* isFirstParaLine */
            ifeq 45
        32: .line 463
      StackMap locals: int
      StackMap stack:
            aload 24 /* sp */
            iload 15 /* start */
            iload 25 /* textLength */
        33: .line 464
            ldc Landroid/text/style/ParagraphStyle;
        34: .line 463
            invokeinterface android.text.Spanned.nextSpanTransition:(IILjava/lang/Class;)I
            istore 7 /* spanEnd */
        35: .line 465
            aload 24 /* sp */
            iload 15 /* start */
            iload 7 /* spanEnd */
            ldc Landroid/text/style/ParagraphStyle;
            invokestatic android.text.Layout.getParagraphSpans:(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.ParagraphStyle[]
            astore 6 /* spans */
        36: .line 467
            aload 0 /* this */
            getfield android.text.Layout.mAlignment:Landroid/text/Layout$Alignment;
            astore 10 /* paraAlign */
        37: .line 468
            aload 6 /* spans */
            arraylength
            iconst_1
            isub
            istore 27 /* n */
        start local 27 // int n
        38: goto 43
        39: .line 469
      StackMap locals: int
      StackMap stack:
            aload 6 /* spans */
            iload 27 /* n */
            aaload
            instanceof android.text.style.AlignmentSpan
            ifeq 42
        40: .line 470
            aload 6 /* spans */
            iload 27 /* n */
            aaload
            checkcast android.text.style.AlignmentSpan
            invokeinterface android.text.style.AlignmentSpan.getAlignment:()Landroid/text/Layout$Alignment;
            astore 10 /* paraAlign */
        41: .line 471
            goto 44
        42: .line 468
      StackMap locals:
      StackMap stack:
            iinc 27 /* n */ -1
      StackMap locals:
      StackMap stack:
        43: iload 27 /* n */
            ifge 39
        end local 27 // int n
        44: .line 475
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 12 /* tabStopsIsInitialized */
        45: .line 480
      StackMap locals:
      StackMap stack:
            aload 6 /* spans */
            arraylength
            istore 27 /* length */
        start local 27 // int length
        46: .line 481
            iload 26 /* isFirstParaLine */
            istore 28 /* useFirstLineMargin */
        start local 28 // boolean useFirstLineMargin
        47: .line 482
            iconst_0
            istore 29 /* n */
        start local 29 // int n
        48: goto 56
        49: .line 483
      StackMap locals: int int int
      StackMap stack:
            aload 6 /* spans */
            iload 29 /* n */
            aaload
            instanceof android.text.style.LeadingMarginSpan$LeadingMarginSpan2
            ifeq 55
        50: .line 484
            aload 6 /* spans */
            iload 29 /* n */
            aaload
            checkcast android.text.style.LeadingMarginSpan$LeadingMarginSpan2
            invokeinterface android.text.style.LeadingMarginSpan$LeadingMarginSpan2.getLeadingMarginLineCount:()I
            istore 30 /* count */
        start local 30 // int count
        51: .line 485
            aload 0 /* this */
            aload 24 /* sp */
            aload 6 /* spans */
            iload 29 /* n */
            aaload
            invokeinterface android.text.Spanned.getSpanStart:(Ljava/lang/Object;)I
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 31 /* startLine */
        start local 31 // int startLine
        52: .line 488
            iload 14 /* lineNum */
            iload 31 /* startLine */
            iload 30 /* count */
            iadd
            if_icmpge 55
        53: .line 489
            iconst_1
            istore 28 /* useFirstLineMargin */
        54: .line 490
            goto 57
        end local 31 // int startLine
        end local 30 // int count
        55: .line 482
      StackMap locals:
      StackMap stack:
            iinc 29 /* n */ 1
      StackMap locals:
      StackMap stack:
        56: iload 29 /* n */
            iload 27 /* length */
            if_icmplt 49
        end local 29 // int n
        57: .line 494
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 29 /* n */
        start local 29 // int n
        58: goto 74
        59: .line 495
      StackMap locals: int
      StackMap stack:
            aload 6 /* spans */
            iload 29 /* n */
            aaload
            instanceof android.text.style.LeadingMarginSpan
            ifeq 73
        60: .line 496
            aload 6 /* spans */
            iload 29 /* n */
            aaload
            checkcast android.text.style.LeadingMarginSpan
            astore 30 /* margin */
        start local 30 // android.text.style.LeadingMarginSpan margin
        61: .line 497
            iload 21 /* dir */
            iconst_m1
            if_icmpne 68
        62: .line 498
            aload 30 /* margin */
            aload 1 /* canvas */
            aload 8 /* paint */
            iload 23 /* right */
            iload 21 /* dir */
            iload 18 /* ltop */
        63: .line 499
            iload 20 /* lbaseline */
            iload 19 /* lbottom */
            aload 9 /* buf */
        64: .line 500
            iload 15 /* start */
            iload 17 /* end */
            iload 26 /* isFirstParaLine */
            aload 0 /* this */
        65: .line 498
            invokeinterface android.text.style.LeadingMarginSpan.drawLeadingMargin:(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;IIZLandroid/text/Layout;)V
        66: .line 501
            iload 23 /* right */
            aload 30 /* margin */
            iload 28 /* useFirstLineMargin */
            invokeinterface android.text.style.LeadingMarginSpan.getLeadingMargin:(Z)I
            isub
            istore 23 /* right */
        67: .line 502
            goto 73
        68: .line 503
      StackMap locals: android.text.style.LeadingMarginSpan
      StackMap stack:
            aload 30 /* margin */
            aload 1 /* canvas */
            aload 8 /* paint */
            iload 22 /* left */
            iload 21 /* dir */
            iload 18 /* ltop */
        69: .line 504
            iload 20 /* lbaseline */
            iload 19 /* lbottom */
            aload 9 /* buf */
        70: .line 505
            iload 15 /* start */
            iload 17 /* end */
            iload 26 /* isFirstParaLine */
            aload 0 /* this */
        71: .line 503
            invokeinterface android.text.style.LeadingMarginSpan.drawLeadingMargin:(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;IIZLandroid/text/Layout;)V
        72: .line 506
            iload 22 /* left */
            aload 30 /* margin */
            iload 28 /* useFirstLineMargin */
            invokeinterface android.text.style.LeadingMarginSpan.getLeadingMargin:(Z)I
            iadd
            istore 22 /* left */
        end local 30 // android.text.style.LeadingMarginSpan margin
        73: .line 494
      StackMap locals:
      StackMap stack:
            iinc 29 /* n */ 1
      StackMap locals:
      StackMap stack:
        74: iload 29 /* n */
            iload 27 /* length */
            if_icmplt 59
        end local 29 // int n
        end local 28 // boolean useFirstLineMargin
        end local 27 // int length
        end local 26 // boolean isFirstParaLine
        end local 25 // int textLength
        end local 24 // android.text.Spanned sp
        75: .line 512
      StackMap locals: android.text.Layout android.graphics.Canvas int int int int android.text.style.ParagraphStyle[] int android.text.TextPaint java.lang.CharSequence android.text.Layout$Alignment android.text.Layout$TabStops int android.text.TextLine int int int int int int int int int int
      StackMap stack:
            aload 0 /* this */
            iload 14 /* lineNum */
            invokevirtual android.text.Layout.getLineContainsTab:(I)Z
            istore 24 /* hasTab */
        start local 24 // boolean hasTab
        76: .line 514
            iload 24 /* hasTab */
            ifeq 82
            iload 12 /* tabStopsIsInitialized */
            ifne 82
        77: .line 515
            aload 11 /* tabStops */
            ifnonnull 80
        78: .line 516
            new android.text.Layout$TabStops
            dup
            bipush 20
            aload 6 /* spans */
            invokespecial android.text.Layout$TabStops.<init>:(I[Ljava/lang/Object;)V
            astore 11 /* tabStops */
        79: .line 517
            goto 81
        80: .line 518
      StackMap locals: int
      StackMap stack:
            aload 11 /* tabStops */
            bipush 20
            aload 6 /* spans */
            invokevirtual android.text.Layout$TabStops.reset:(I[Ljava/lang/Object;)V
        81: .line 520
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 12 /* tabStopsIsInitialized */
        82: .line 524
      StackMap locals:
      StackMap stack:
            aload 10 /* paraAlign */
            astore 25 /* align */
        start local 25 // android.text.Layout$Alignment align
        83: .line 525
            aload 25 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_LEFT:Landroid/text/Layout$Alignment;
            if_acmpne 89
        84: .line 526
            iload 21 /* dir */
            iconst_1
            if_icmpne 86
        85: .line 527
            getstatic android.text.Layout$Alignment.ALIGN_NORMAL:Landroid/text/Layout$Alignment;
            goto 87
      StackMap locals: android.text.Layout$Alignment
      StackMap stack:
        86: getstatic android.text.Layout$Alignment.ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;
        87: .line 526
      StackMap locals:
      StackMap stack: android.text.Layout$Alignment
            astore 25 /* align */
        88: .line 528
            goto 94
      StackMap locals:
      StackMap stack:
        89: aload 25 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_RIGHT:Landroid/text/Layout$Alignment;
            if_acmpne 94
        90: .line 529
            iload 21 /* dir */
            iconst_1
            if_icmpne 92
        91: .line 530
            getstatic android.text.Layout$Alignment.ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;
            goto 93
      StackMap locals:
      StackMap stack:
        92: getstatic android.text.Layout$Alignment.ALIGN_NORMAL:Landroid/text/Layout$Alignment;
        93: .line 529
      StackMap locals:
      StackMap stack: android.text.Layout$Alignment
            astore 25 /* align */
        94: .line 535
      StackMap locals:
      StackMap stack:
            aload 25 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_NORMAL:Landroid/text/Layout$Alignment;
            if_acmpne 102
        95: .line 536
            iload 21 /* dir */
            iconst_1
            if_icmpne 99
        96: .line 537
            aload 0 /* this */
            iload 14 /* lineNum */
            getstatic android.text.Layout$Alignment.ALIGN_LEFT:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout.getIndentAdjust:(ILandroid/text/Layout$Alignment;)I
            istore 27 /* indentWidth */
        start local 27 // int indentWidth
        97: .line 538
            iload 22 /* left */
            iload 27 /* indentWidth */
            iadd
            istore 26 /* x */
        start local 26 // int x
        98: .line 539
            goto 114
        end local 27 // int indentWidth
        end local 26 // int x
        99: .line 540
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 14 /* lineNum */
            getstatic android.text.Layout$Alignment.ALIGN_RIGHT:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout.getIndentAdjust:(ILandroid/text/Layout$Alignment;)I
            ineg
            istore 27 /* indentWidth */
        start local 27 // int indentWidth
       100: .line 541
            iload 23 /* right */
            iload 27 /* indentWidth */
            isub
            istore 26 /* x */
        start local 26 // int x
       101: .line 543
            goto 114
        end local 27 // int indentWidth
        end local 26 // int x
       102: .line 544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 14 /* lineNum */
            aload 11 /* tabStops */
            iconst_0
            invokevirtual android.text.Layout.getLineExtent:(ILandroid/text/Layout$TabStops;Z)F
            f2i
            istore 28 /* max */
        start local 28 // int max
       103: .line 545
            aload 25 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;
            if_acmpne 111
       104: .line 546
            iload 21 /* dir */
            iconst_1
            if_icmpne 108
       105: .line 547
            aload 0 /* this */
            iload 14 /* lineNum */
            getstatic android.text.Layout$Alignment.ALIGN_RIGHT:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout.getIndentAdjust:(ILandroid/text/Layout$Alignment;)I
            ineg
            istore 27 /* indentWidth */
        start local 27 // int indentWidth
       106: .line 548
            iload 23 /* right */
            iload 28 /* max */
            isub
            iload 27 /* indentWidth */
            isub
            istore 26 /* x */
        start local 26 // int x
       107: .line 549
            goto 114
        end local 27 // int indentWidth
        end local 26 // int x
       108: .line 550
      StackMap locals: android.text.Layout android.graphics.Canvas int int int int android.text.style.ParagraphStyle[] int android.text.TextPaint java.lang.CharSequence android.text.Layout$Alignment android.text.Layout$TabStops int android.text.TextLine int int int int int int int int int int int android.text.Layout$Alignment top top int
      StackMap stack:
            aload 0 /* this */
            iload 14 /* lineNum */
            getstatic android.text.Layout$Alignment.ALIGN_LEFT:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout.getIndentAdjust:(ILandroid/text/Layout$Alignment;)I
            istore 27 /* indentWidth */
        start local 27 // int indentWidth
       109: .line 551
            iload 22 /* left */
            iload 28 /* max */
            isub
            iload 27 /* indentWidth */
            iadd
            istore 26 /* x */
        start local 26 // int x
       110: .line 553
            goto 114
        end local 27 // int indentWidth
        end local 26 // int x
       111: .line 554
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 14 /* lineNum */
            getstatic android.text.Layout$Alignment.ALIGN_CENTER:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout.getIndentAdjust:(ILandroid/text/Layout$Alignment;)I
            istore 27 /* indentWidth */
        start local 27 // int indentWidth
       112: .line 555
            iload 28 /* max */
            bipush -2
            iand
            istore 28 /* max */
       113: .line 556
            iload 23 /* right */
            iload 22 /* left */
            iadd
            iload 28 /* max */
            isub
            iconst_1
            ishr
            iload 27 /* indentWidth */
            iadd
            istore 26 /* x */
        end local 28 // int max
        start local 26 // int x
       114: .line 560
      StackMap locals: android.text.Layout android.graphics.Canvas int int int int android.text.style.ParagraphStyle[] int android.text.TextPaint java.lang.CharSequence android.text.Layout$Alignment android.text.Layout$TabStops int android.text.TextLine int int int int int int int int int int int android.text.Layout$Alignment int int
      StackMap stack:
            aload 0 /* this */
            iload 14 /* lineNum */
            invokevirtual android.text.Layout.getLineDirections:(I)Landroid/text/Layout$Directions;
            astore 28 /* directions */
        start local 28 // android.text.Layout$Directions directions
       115: .line 561
            aload 28 /* directions */
            getstatic android.text.Layout.DIRS_ALL_LEFT_TO_RIGHT:Landroid/text/Layout$Directions;
            if_acmpne 118
            aload 0 /* this */
            getfield android.text.Layout.mSpannedText:Z
            ifne 118
            iload 24 /* hasTab */
            ifne 118
            iload 16 /* justify */
            ifne 118
       116: .line 563
            aload 1 /* canvas */
            aload 9 /* buf */
            iload 15 /* start */
            iload 17 /* end */
            iload 26 /* x */
            i2f
            iload 20 /* lbaseline */
            i2f
            aload 8 /* paint */
            invokevirtual android.graphics.Canvas.drawText:(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V
       117: .line 564
            goto 122
       118: .line 565
      StackMap locals: android.text.Layout$Directions
      StackMap stack:
            aload 13 /* tl */
            aload 8 /* paint */
            aload 9 /* buf */
            iload 15 /* start */
            iload 17 /* end */
            iload 21 /* dir */
            aload 28 /* directions */
            iload 24 /* hasTab */
            aload 11 /* tabStops */
            invokevirtual android.text.TextLine.set:(Landroid/text/TextPaint;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;ZLandroid/text/Layout$TabStops;)V
       119: .line 566
            iload 16 /* justify */
            ifeq 121
       120: .line 567
            aload 13 /* tl */
            iload 23 /* right */
            iload 22 /* left */
            isub
            iload 27 /* indentWidth */
            isub
            i2f
            invokevirtual android.text.TextLine.justify:(F)V
       121: .line 569
      StackMap locals:
      StackMap stack:
            aload 13 /* tl */
            aload 1 /* canvas */
            iload 26 /* x */
            i2f
            iload 18 /* ltop */
            iload 20 /* lbaseline */
            iload 19 /* lbottom */
            invokevirtual android.text.TextLine.draw:(Landroid/graphics/Canvas;FIII)V
        end local 28 // android.text.Layout$Directions directions
        end local 27 // int indentWidth
        end local 26 // int x
        end local 25 // android.text.Layout$Alignment align
        end local 24 // boolean hasTab
        end local 23 // int right
        end local 22 // int left
        end local 21 // int dir
        end local 20 // int lbaseline
        end local 19 // int lbottom
        end local 18 // int ltop
        end local 17 // int end
        end local 16 // boolean justify
        end local 15 // int start
       122: .line 431
      StackMap locals: android.text.Layout android.graphics.Canvas int int int int android.text.style.ParagraphStyle[] int android.text.TextPaint java.lang.CharSequence android.text.Layout$Alignment android.text.Layout$TabStops int android.text.TextLine int
      StackMap stack:
            iinc 14 /* lineNum */ 1
      StackMap locals:
      StackMap stack:
       123: iload 14 /* lineNum */
            iload 3 /* lastLine */
            if_icmple 13
        end local 14 // int lineNum
       124: .line 573
            aload 13 /* tl */
            invokestatic android.text.TextLine.recycle:(Landroid/text/TextLine;)Landroid/text/TextLine;
            pop
       125: .line 574
            return
        end local 13 // android.text.TextLine tl
        end local 12 // boolean tabStopsIsInitialized
        end local 11 // android.text.Layout$TabStops tabStops
        end local 10 // android.text.Layout$Alignment paraAlign
        end local 9 // java.lang.CharSequence buf
        end local 8 // android.text.TextPaint paint
        end local 7 // int spanEnd
        end local 6 // android.text.style.ParagraphStyle[] spans
        end local 5 // int previousLineEnd
        end local 4 // int previousLineBottom
        end local 3 // int lastLine
        end local 2 // int firstLine
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0  126     0                   this  Landroid/text/Layout;
            0  126     1                 canvas  Landroid/graphics/Canvas;
            0  126     2              firstLine  I
            0  126     3               lastLine  I
            1  126     4     previousLineBottom  I
            2  126     5        previousLineEnd  I
            3  126     6                  spans  [Landroid/text/style/ParagraphStyle;
            4  126     7                spanEnd  I
            5  126     8                  paint  Landroid/text/TextPaint;
            7  126     9                    buf  Ljava/lang/CharSequence;
            8  126    10              paraAlign  Landroid/text/Layout$Alignment;
            9  126    11               tabStops  Landroid/text/Layout$TabStops;
           10  126    12  tabStopsIsInitialized  Z
           11  126    13                     tl  Landroid/text/TextLine;
           12  124    14                lineNum  I
           14  122    15                  start  I
           16  122    16                justify  Z
           17  122    17                    end  I
           19  122    18                   ltop  I
           20  122    19                lbottom  I
           22  122    20              lbaseline  I
           23  122    21                    dir  I
           24  122    22                   left  I
           25  122    23                  right  I
           27   75    24                     sp  Landroid/text/Spanned;
           28   75    25             textLength  I
           31   75    26        isFirstParaLine  Z
           38   44    27                      n  I
           46   75    27                 length  I
           47   75    28     useFirstLineMargin  Z
           48   57    29                      n  I
           51   55    30                  count  I
           52   55    31              startLine  I
           58   75    29                      n  I
           61   73    30                 margin  Landroid/text/style/LeadingMarginSpan;
           76  122    24                 hasTab  Z
           83  122    25                  align  Landroid/text/Layout$Alignment;
           98   99    26                      x  I
          101  102    26                      x  I
          107  108    26                      x  I
          110  111    26                      x  I
          114  122    26                      x  I
           97   99    27            indentWidth  I
          100  102    27            indentWidth  I
          106  108    27            indentWidth  I
          109  111    27            indentWidth  I
          112  122    27            indentWidth  I
          103  114    28                    max  I
          115  122    28             directions  Landroid/text/Layout$Directions;
    MethodParameters:
           Name  Flags
      canvas     
      firstLine  
      lastLine   

  public void drawBackground(android.graphics.Canvas, android.graphics.Path, android.graphics.Paint, int, int, int);
    descriptor: (Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=24, args_size=7
        start local 0 // android.text.Layout this
        start local 1 // android.graphics.Canvas canvas
        start local 2 // android.graphics.Path highlight
        start local 3 // android.graphics.Paint highlightPaint
        start local 4 // int cursorOffsetVertical
        start local 5 // int firstLine
        start local 6 // int lastLine
         0: .line 585
            aload 0 /* this */
            getfield android.text.Layout.mSpannedText:Z
            ifeq 48
         1: .line 586
            aload 0 /* this */
            getfield android.text.Layout.mLineBackgroundSpans:Landroid/text/SpanSet;
            ifnonnull 3
         2: .line 587
            aload 0 /* this */
            new android.text.SpanSet
            dup
            ldc Landroid/text/style/LineBackgroundSpan;
            invokespecial android.text.SpanSet.<init>:(Ljava/lang/Class;)V
            putfield android.text.Layout.mLineBackgroundSpans:Landroid/text/SpanSet;
         3: .line 590
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            checkcast android.text.Spanned
            astore 7 /* buffer */
        start local 7 // android.text.Spanned buffer
         4: .line 591
            aload 7 /* buffer */
            invokeinterface android.text.Spanned.length:()I
            istore 8 /* textLength */
        start local 8 // int textLength
         5: .line 592
            aload 0 /* this */
            getfield android.text.Layout.mLineBackgroundSpans:Landroid/text/SpanSet;
            aload 7 /* buffer */
            iconst_0
            iload 8 /* textLength */
            invokevirtual android.text.SpanSet.init:(Landroid/text/Spanned;II)V
         6: .line 594
            aload 0 /* this */
            getfield android.text.Layout.mLineBackgroundSpans:Landroid/text/SpanSet;
            getfield android.text.SpanSet.numberOfSpans:I
            ifle 47
         7: .line 595
            aload 0 /* this */
            iload 5 /* firstLine */
            invokevirtual android.text.Layout.getLineTop:(I)I
            istore 9 /* previousLineBottom */
        start local 9 // int previousLineBottom
         8: .line 596
            aload 0 /* this */
            iload 5 /* firstLine */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 10 /* previousLineEnd */
        start local 10 // int previousLineEnd
         9: .line 597
            getstatic android.text.Layout.NO_PARA_SPANS:[Landroid/text/style/ParagraphStyle;
            astore 11 /* spans */
        start local 11 // android.text.style.ParagraphStyle[] spans
        10: .line 598
            iconst_0
            istore 12 /* spansLength */
        start local 12 // int spansLength
        11: .line 599
            aload 0 /* this */
            getfield android.text.Layout.mPaint:Landroid/text/TextPaint;
            astore 13 /* paint */
        start local 13 // android.text.TextPaint paint
        12: .line 600
            iconst_0
            istore 14 /* spanEnd */
        start local 14 // int spanEnd
        13: .line 601
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            istore 15 /* width */
        start local 15 // int width
        14: .line 602
            iload 5 /* firstLine */
            istore 16 /* i */
        start local 16 // int i
        15: goto 46
        16: .line 603
      StackMap locals: android.text.Layout android.graphics.Canvas android.graphics.Path android.graphics.Paint int int int android.text.Spanned int int int android.text.style.ParagraphStyle[] int android.text.TextPaint int int int
      StackMap stack:
            iload 10 /* previousLineEnd */
            istore 17 /* start */
        start local 17 // int start
        17: .line 604
            aload 0 /* this */
            iload 16 /* i */
            iconst_1
            iadd
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 18 /* end */
        start local 18 // int end
        18: .line 605
            iload 18 /* end */
            istore 10 /* previousLineEnd */
        19: .line 607
            iload 9 /* previousLineBottom */
            istore 19 /* ltop */
        start local 19 // int ltop
        20: .line 608
            aload 0 /* this */
            iload 16 /* i */
            iconst_1
            iadd
            invokevirtual android.text.Layout.getLineTop:(I)I
            istore 20 /* lbottom */
        start local 20 // int lbottom
        21: .line 609
            iload 20 /* lbottom */
            istore 9 /* previousLineBottom */
        22: .line 610
            iload 20 /* lbottom */
            aload 0 /* this */
            iload 16 /* i */
            invokevirtual android.text.Layout.getLineDescent:(I)I
            isub
            istore 21 /* lbaseline */
        start local 21 // int lbaseline
        23: .line 612
            iload 17 /* start */
            iload 14 /* spanEnd */
            if_icmplt 36
        24: .line 615
            aload 0 /* this */
            getfield android.text.Layout.mLineBackgroundSpans:Landroid/text/SpanSet;
            iload 17 /* start */
            iload 8 /* textLength */
            invokevirtual android.text.SpanSet.getNextTransition:(II)I
            istore 14 /* spanEnd */
        25: .line 617
            iconst_0
            istore 12 /* spansLength */
        26: .line 619
            iload 17 /* start */
            iload 18 /* end */
            if_icmpne 27
            iload 17 /* start */
            ifne 36
        27: .line 622
      StackMap locals: android.text.Layout android.graphics.Canvas android.graphics.Path android.graphics.Paint int int int android.text.Spanned int int int android.text.style.ParagraphStyle[] int android.text.TextPaint int int int int int int int int
      StackMap stack:
            iconst_0
            istore 22 /* j */
        start local 22 // int j
        28: goto 35
        29: .line 625
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.text.Layout.mLineBackgroundSpans:Landroid/text/SpanSet;
            getfield android.text.SpanSet.spanStarts:[I
            iload 22 /* j */
            iaload
            iload 18 /* end */
            if_icmpge 34
        30: .line 626
            aload 0 /* this */
            getfield android.text.Layout.mLineBackgroundSpans:Landroid/text/SpanSet;
            getfield android.text.SpanSet.spanEnds:[I
            iload 22 /* j */
            iaload
            iload 17 /* start */
            if_icmpgt 31
            goto 34
        31: .line 628
      StackMap locals:
      StackMap stack:
            aload 11 /* spans */
            iload 12 /* spansLength */
            aload 0 /* this */
            getfield android.text.Layout.mLineBackgroundSpans:Landroid/text/SpanSet;
            getfield android.text.SpanSet.spans:[Ljava/lang/Object;
            checkcast android.text.style.LineBackgroundSpan[]
            iload 22 /* j */
            aaload
        32: .line 627
            invokestatic com.android.internal.util.GrowingArrayUtils.append:([Ljava/lang/Object;ILjava/lang/Object;)[Ljava/lang/Object;
            checkcast android.text.style.ParagraphStyle[]
            astore 11 /* spans */
        33: .line 629
            iinc 12 /* spansLength */ 1
        34: .line 622
      StackMap locals:
      StackMap stack:
            iinc 22 /* j */ 1
      StackMap locals:
      StackMap stack:
        35: iload 22 /* j */
            aload 0 /* this */
            getfield android.text.Layout.mLineBackgroundSpans:Landroid/text/SpanSet;
            getfield android.text.SpanSet.numberOfSpans:I
            if_icmplt 29
        end local 22 // int j
        36: .line 634
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 22 /* n */
        start local 22 // int n
        37: goto 44
        38: .line 635
      StackMap locals: int
      StackMap stack:
            aload 11 /* spans */
            iload 22 /* n */
            aaload
            checkcast android.text.style.LineBackgroundSpan
            astore 23 /* lineBackgroundSpan */
        start local 23 // android.text.style.LineBackgroundSpan lineBackgroundSpan
        39: .line 636
            aload 23 /* lineBackgroundSpan */
            aload 1 /* canvas */
            aload 13 /* paint */
            iconst_0
            iload 15 /* width */
        40: .line 637
            iload 19 /* ltop */
            iload 21 /* lbaseline */
            iload 20 /* lbottom */
        41: .line 638
            aload 7 /* buffer */
            iload 17 /* start */
            iload 18 /* end */
            iload 16 /* i */
        42: .line 636
            invokeinterface android.text.style.LineBackgroundSpan.drawBackground:(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;III)V
        end local 23 // android.text.style.LineBackgroundSpan lineBackgroundSpan
        43: .line 634
            iinc 22 /* n */ 1
      StackMap locals:
      StackMap stack:
        44: iload 22 /* n */
            iload 12 /* spansLength */
            if_icmplt 38
        end local 22 // int n
        end local 21 // int lbaseline
        end local 20 // int lbottom
        end local 19 // int ltop
        end local 18 // int end
        end local 17 // int start
        45: .line 602
            iinc 16 /* i */ 1
      StackMap locals: android.text.Layout android.graphics.Canvas android.graphics.Path android.graphics.Paint int int int android.text.Spanned int int int android.text.style.ParagraphStyle[] int android.text.TextPaint int int int
      StackMap stack:
        46: iload 16 /* i */
            iload 6 /* lastLine */
            if_icmple 16
        end local 16 // int i
        end local 15 // int width
        end local 14 // int spanEnd
        end local 13 // android.text.TextPaint paint
        end local 12 // int spansLength
        end local 11 // android.text.style.ParagraphStyle[] spans
        end local 10 // int previousLineEnd
        end local 9 // int previousLineBottom
        47: .line 642
      StackMap locals: android.text.Layout android.graphics.Canvas android.graphics.Path android.graphics.Paint int int int android.text.Spanned int
      StackMap stack:
            aload 0 /* this */
            getfield android.text.Layout.mLineBackgroundSpans:Landroid/text/SpanSet;
            invokevirtual android.text.SpanSet.recycle:()V
        end local 8 // int textLength
        end local 7 // android.text.Spanned buffer
        48: .line 647
      StackMap locals:
      StackMap stack:
            aload 2 /* highlight */
            ifnull 52
        49: .line 648
            iload 4 /* cursorOffsetVertical */
            ifeq 50
            aload 1 /* canvas */
            fconst_0
            iload 4 /* cursorOffsetVertical */
            i2f
            invokevirtual android.graphics.Canvas.translate:(FF)V
        50: .line 649
      StackMap locals:
      StackMap stack:
            aload 1 /* canvas */
            aload 2 /* highlight */
            aload 3 /* highlightPaint */
            invokevirtual android.graphics.Canvas.drawPath:(Landroid/graphics/Path;Landroid/graphics/Paint;)V
        51: .line 650
            iload 4 /* cursorOffsetVertical */
            ifeq 52
            aload 1 /* canvas */
            fconst_0
            iload 4 /* cursorOffsetVertical */
            ineg
            i2f
            invokevirtual android.graphics.Canvas.translate:(FF)V
        52: .line 652
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int lastLine
        end local 5 // int firstLine
        end local 4 // int cursorOffsetVertical
        end local 3 // android.graphics.Paint highlightPaint
        end local 2 // android.graphics.Path highlight
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   53     0                  this  Landroid/text/Layout;
            0   53     1                canvas  Landroid/graphics/Canvas;
            0   53     2             highlight  Landroid/graphics/Path;
            0   53     3        highlightPaint  Landroid/graphics/Paint;
            0   53     4  cursorOffsetVertical  I
            0   53     5             firstLine  I
            0   53     6              lastLine  I
            4   48     7                buffer  Landroid/text/Spanned;
            5   48     8            textLength  I
            8   47     9    previousLineBottom  I
            9   47    10       previousLineEnd  I
           10   47    11                 spans  [Landroid/text/style/ParagraphStyle;
           11   47    12           spansLength  I
           12   47    13                 paint  Landroid/text/TextPaint;
           13   47    14               spanEnd  I
           14   47    15                 width  I
           15   47    16                     i  I
           17   45    17                 start  I
           18   45    18                   end  I
           20   45    19                  ltop  I
           21   45    20               lbottom  I
           23   45    21             lbaseline  I
           28   36    22                     j  I
           37   45    22                     n  I
           39   43    23    lineBackgroundSpan  Landroid/text/style/LineBackgroundSpan;
    MethodParameters:
                      Name  Flags
      canvas                
      highlight             
      highlightPaint        
      cursorOffsetVertical  
      firstLine             
      lastLine              

  public long getLineRangeForDraw(android.graphics.Canvas);
    descriptor: (Landroid/graphics/Canvas;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // android.graphics.Canvas canvas
         0: .line 662
            getstatic android.text.Layout.sTempRect:Landroid/graphics/Rect;
            dup
            astore 4
            monitorenter
         1: .line 663
            aload 1 /* canvas */
            getstatic android.text.Layout.sTempRect:Landroid/graphics/Rect;
            invokevirtual android.graphics.Canvas.getClipBounds:(Landroid/graphics/Rect;)Z
            ifne 4
         2: .line 665
            iconst_0
            iconst_m1
            invokestatic android.text.TextUtils.packRangeInLong:(II)J
            aload 4
            monitorexit
         3: lreturn
         4: .line 668
      StackMap locals: android.text.Layout android.graphics.Canvas top top android.graphics.Rect
      StackMap stack:
            getstatic android.text.Layout.sTempRect:Landroid/graphics/Rect;
            getfield android.graphics.Rect.top:I
            istore 2 /* dtop */
        start local 2 // int dtop
         5: .line 669
            getstatic android.text.Layout.sTempRect:Landroid/graphics/Rect;
            getfield android.graphics.Rect.bottom:I
            istore 3 /* dbottom */
        start local 3 // int dbottom
         6: .line 662
            aload 4
            monitorexit
         7: goto 10
        end local 3 // int dbottom
        end local 2 // int dtop
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 4
            monitorexit
         9: athrow
        start local 2 // int dtop
        start local 3 // int dbottom
        10: .line 672
      StackMap locals: android.text.Layout android.graphics.Canvas int int
      StackMap stack:
            iload 2 /* dtop */
            iconst_0
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* top */
        start local 4 // int top
        11: .line 673
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual android.text.Layout.getLineCount:()I
            invokevirtual android.text.Layout.getLineTop:(I)I
            iload 3 /* dbottom */
            invokestatic java.lang.Math.min:(II)I
            istore 5 /* bottom */
        start local 5 // int bottom
        12: .line 675
            iload 4 /* top */
            iload 5 /* bottom */
            if_icmplt 13
            iconst_0
            iconst_m1
            invokestatic android.text.TextUtils.packRangeInLong:(II)J
            lreturn
        13: .line 676
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* top */
            invokevirtual android.text.Layout.getLineForVertical:(I)I
            aload 0 /* this */
            iload 5 /* bottom */
            invokevirtual android.text.Layout.getLineForVertical:(I)I
            invokestatic android.text.TextUtils.packRangeInLong:(II)J
            lreturn
        end local 5 // int bottom
        end local 4 // int top
        end local 3 // int dbottom
        end local 2 // int dtop
        end local 1 // android.graphics.Canvas canvas
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Landroid/text/Layout;
            0   14     1   canvas  Landroid/graphics/Canvas;
            5    8     2     dtop  I
           10   14     2     dtop  I
            6    8     3  dbottom  I
           10   14     3  dbottom  I
           11   14     4      top  I
           12   14     5   bottom  I
      Exception table:
        from    to  target  type
           1     3       8  any
           4     7       8  any
           8     9       8  any
    MethodParameters:
        Name  Flags
      canvas  

  private int getLineStartPos(int, int, int);
    descriptor: (III)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=4
        start local 0 // android.text.Layout this
        start local 1 // int line
        start local 2 // int left
        start local 3 // int right
         0: .line 691
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphAlignment:(I)Landroid/text/Layout$Alignment;
            astore 4 /* align */
        start local 4 // android.text.Layout$Alignment align
         1: .line 692
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            istore 5 /* dir */
        start local 5 // int dir
         2: .line 694
            aload 4 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_LEFT:Landroid/text/Layout$Alignment;
            if_acmpne 7
         3: .line 695
            iload 5 /* dir */
            iconst_1
            if_icmpne 4
            getstatic android.text.Layout$Alignment.ALIGN_NORMAL:Landroid/text/Layout$Alignment;
            goto 5
      StackMap locals: android.text.Layout$Alignment int
      StackMap stack:
         4: getstatic android.text.Layout$Alignment.ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;
      StackMap locals:
      StackMap stack: android.text.Layout$Alignment
         5: astore 4 /* align */
         6: .line 696
            goto 11
      StackMap locals:
      StackMap stack:
         7: aload 4 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_RIGHT:Landroid/text/Layout$Alignment;
            if_acmpne 11
         8: .line 697
            iload 5 /* dir */
            iconst_1
            if_icmpne 9
            getstatic android.text.Layout$Alignment.ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;
            goto 10
      StackMap locals:
      StackMap stack:
         9: getstatic android.text.Layout$Alignment.ALIGN_NORMAL:Landroid/text/Layout$Alignment;
      StackMap locals:
      StackMap stack: android.text.Layout$Alignment
        10: astore 4 /* align */
        11: .line 701
      StackMap locals:
      StackMap stack:
            aload 4 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_NORMAL:Landroid/text/Layout$Alignment;
            if_acmpne 17
        12: .line 702
            iload 5 /* dir */
            iconst_1
            if_icmpne 15
        13: .line 703
            iload 2 /* left */
            aload 0 /* this */
            iload 1 /* line */
            getstatic android.text.Layout$Alignment.ALIGN_LEFT:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout.getIndentAdjust:(ILandroid/text/Layout$Alignment;)I
            iadd
            istore 6 /* x */
        start local 6 // int x
        14: .line 704
            goto 38
        end local 6 // int x
        15: .line 705
      StackMap locals:
      StackMap stack:
            iload 3 /* right */
            aload 0 /* this */
            iload 1 /* line */
            getstatic android.text.Layout$Alignment.ALIGN_RIGHT:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout.getIndentAdjust:(ILandroid/text/Layout$Alignment;)I
            iadd
            istore 6 /* x */
        start local 6 // int x
        16: .line 707
            goto 38
        end local 6 // int x
        17: .line 708
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* tabStops */
        start local 7 // android.text.Layout$TabStops tabStops
        18: .line 709
            aload 0 /* this */
            getfield android.text.Layout.mSpannedText:Z
            ifeq 29
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineContainsTab:(I)Z
            ifeq 29
        19: .line 710
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            checkcast android.text.Spanned
            astore 8 /* spanned */
        start local 8 // android.text.Spanned spanned
        20: .line 711
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 9 /* start */
        start local 9 // int start
        21: .line 712
            aload 8 /* spanned */
            iload 9 /* start */
            aload 8 /* spanned */
            invokeinterface android.text.Spanned.length:()I
        22: .line 713
            ldc Landroid/text/style/TabStopSpan;
        23: .line 712
            invokeinterface android.text.Spanned.nextSpanTransition:(IILjava/lang/Class;)I
            istore 10 /* spanEnd */
        start local 10 // int spanEnd
        24: .line 714
            aload 8 /* spanned */
            iload 9 /* start */
            iload 10 /* spanEnd */
        25: .line 715
            ldc Landroid/text/style/TabStopSpan;
        26: .line 714
            invokestatic android.text.Layout.getParagraphSpans:(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.TabStopSpan[]
            astore 11 /* tabSpans */
        start local 11 // android.text.style.TabStopSpan[] tabSpans
        27: .line 716
            aload 11 /* tabSpans */
            arraylength
            ifle 29
        28: .line 717
            new android.text.Layout$TabStops
            dup
            bipush 20
            aload 11 /* tabSpans */
            invokespecial android.text.Layout$TabStops.<init>:(I[Ljava/lang/Object;)V
            astore 7 /* tabStops */
        end local 11 // android.text.style.TabStopSpan[] tabSpans
        end local 10 // int spanEnd
        end local 9 // int start
        end local 8 // android.text.Spanned spanned
        29: .line 720
      StackMap locals: android.text.Layout int int int android.text.Layout$Alignment int top android.text.Layout$TabStops
      StackMap stack:
            aload 0 /* this */
            iload 1 /* line */
            aload 7 /* tabStops */
            iconst_0
            invokevirtual android.text.Layout.getLineExtent:(ILandroid/text/Layout$TabStops;Z)F
            f2i
            istore 8 /* max */
        start local 8 // int max
        30: .line 721
            aload 4 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;
            if_acmpne 36
        31: .line 722
            iload 5 /* dir */
            iconst_1
            if_icmpne 34
        32: .line 723
            iload 3 /* right */
            iload 8 /* max */
            isub
            aload 0 /* this */
            iload 1 /* line */
            getstatic android.text.Layout$Alignment.ALIGN_RIGHT:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout.getIndentAdjust:(ILandroid/text/Layout$Alignment;)I
            iadd
            istore 6 /* x */
        start local 6 // int x
        33: .line 724
            goto 38
        end local 6 // int x
        34: .line 726
      StackMap locals: int
      StackMap stack:
            iload 2 /* left */
            iload 8 /* max */
            isub
            aload 0 /* this */
            iload 1 /* line */
            getstatic android.text.Layout$Alignment.ALIGN_LEFT:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout.getIndentAdjust:(ILandroid/text/Layout$Alignment;)I
            iadd
            istore 6 /* x */
        start local 6 // int x
        35: .line 728
            goto 38
        end local 6 // int x
        36: .line 729
      StackMap locals:
      StackMap stack:
            iload 8 /* max */
            bipush -2
            iand
            istore 8 /* max */
        37: .line 730
            iload 2 /* left */
            iload 3 /* right */
            iadd
            iload 8 /* max */
            isub
            iconst_1
            aload 0 /* this */
            iload 1 /* line */
            getstatic android.text.Layout$Alignment.ALIGN_CENTER:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout.getIndentAdjust:(ILandroid/text/Layout$Alignment;)I
            iadd
            ishr
            istore 6 /* x */
        end local 8 // int max
        end local 7 // android.text.Layout$TabStops tabStops
        start local 6 // int x
        38: .line 733
      StackMap locals: android.text.Layout int int int android.text.Layout$Alignment int int
      StackMap stack:
            iload 6 /* x */
            ireturn
        end local 6 // int x
        end local 5 // int dir
        end local 4 // android.text.Layout$Alignment align
        end local 3 // int right
        end local 2 // int left
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   39     0      this  Landroid/text/Layout;
            0   39     1      line  I
            0   39     2      left  I
            0   39     3     right  I
            1   39     4     align  Landroid/text/Layout$Alignment;
            2   39     5       dir  I
           14   15     6         x  I
           16   17     6         x  I
           33   34     6         x  I
           35   36     6         x  I
           38   39     6         x  I
           18   38     7  tabStops  Landroid/text/Layout$TabStops;
           20   29     8   spanned  Landroid/text/Spanned;
           21   29     9     start  I
           24   29    10   spanEnd  I
           27   29    11  tabSpans  [Landroid/text/style/TabStopSpan;
           30   38     8       max  I
    MethodParameters:
       Name  Flags
      line   
      left   
      right  

  public final java.lang.CharSequence getText();
    descriptor: ()Ljava/lang/CharSequence;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.Layout this
         0: .line 740
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            areturn
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;

  public final android.text.TextPaint getPaint();
    descriptor: ()Landroid/text/TextPaint;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.Layout this
         0: .line 749
            aload 0 /* this */
            getfield android.text.Layout.mPaint:Landroid/text/TextPaint;
            areturn
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;

  public final int getWidth();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.Layout this
         0: .line 756
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            ireturn
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;

  public int getEllipsizedWidth();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.Layout this
         0: .line 764
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            ireturn
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;

  public final void increaseWidthTo(int);
    descriptor: (I)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int wid
         0: .line 773
            iload 1 /* wid */
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            if_icmpge 2
         1: .line 774
            new java.lang.RuntimeException
            dup
            ldc "attempted to reduce Layout width"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 777
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* wid */
            putfield android.text.Layout.mWidth:I
         3: .line 778
            return
        end local 1 // int wid
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/text/Layout;
            0    4     1   wid  I
    MethodParameters:
      Name  Flags
      wid   

  public int getHeight();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.text.Layout this
         0: .line 784
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual android.text.Layout.getLineCount:()I
            invokevirtual android.text.Layout.getLineTop:(I)I
            ireturn
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;

  public int getHeight(boolean);
    descriptor: (Z)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // boolean cap
         0: .line 795
            aload 0 /* this */
            invokevirtual android.text.Layout.getHeight:()I
            ireturn
        end local 1 // boolean cap
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;
            0    1     1   cap  Z
    MethodParameters:
      Name  Flags
      cap   

  public final android.text.Layout$Alignment getAlignment();
    descriptor: ()Landroid/text/Layout$Alignment;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.Layout this
         0: .line 802
            aload 0 /* this */
            getfield android.text.Layout.mAlignment:Landroid/text/Layout$Alignment;
            areturn
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;

  public final float getSpacingMultiplier();
    descriptor: ()F
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.Layout this
         0: .line 809
            aload 0 /* this */
            getfield android.text.Layout.mSpacingMult:F
            freturn
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;

  public final float getSpacingAdd();
    descriptor: ()F
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.Layout this
         0: .line 816
            aload 0 /* this */
            getfield android.text.Layout.mSpacingAdd:F
            freturn
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;

  public final android.text.TextDirectionHeuristic getTextDirectionHeuristic();
    descriptor: ()Landroid/text/TextDirectionHeuristic;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.Layout this
         0: .line 824
            aload 0 /* this */
            getfield android.text.Layout.mTextDir:Landroid/text/TextDirectionHeuristic;
            areturn
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;

  public abstract int getLineCount();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public int getLineBounds(int, android.graphics.Rect);
    descriptor: (ILandroid/graphics/Rect;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.text.Layout this
        start local 1 // int line
        start local 2 // android.graphics.Rect bounds
         0: .line 841
            aload 2 /* bounds */
            ifnull 5
         1: .line 842
            aload 2 /* bounds */
            iconst_0
            putfield android.graphics.Rect.left:I
         2: .line 843
            aload 2 /* bounds */
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineTop:(I)I
            putfield android.graphics.Rect.top:I
         3: .line 844
            aload 2 /* bounds */
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            putfield android.graphics.Rect.right:I
         4: .line 845
            aload 2 /* bounds */
            aload 0 /* this */
            iload 1 /* line */
            iconst_1
            iadd
            invokevirtual android.text.Layout.getLineTop:(I)I
            putfield android.graphics.Rect.bottom:I
         5: .line 847
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineBaseline:(I)I
            ireturn
        end local 2 // android.graphics.Rect bounds
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Landroid/text/Layout;
            0    6     1    line  I
            0    6     2  bounds  Landroid/graphics/Rect;
    MethodParameters:
        Name  Flags
      line    
      bounds  

  public abstract int getLineTop(int);
    descriptor: (I)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      line  

  public abstract int getLineDescent(int);
    descriptor: (I)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      line  

  public abstract int getLineStart(int);
    descriptor: (I)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      line  

  public abstract int getParagraphDirection(int);
    descriptor: (I)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      line  

  public abstract boolean getLineContainsTab(int);
    descriptor: (I)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      line  

  public abstract android.text.Layout$Directions getLineDirections(int);
    descriptor: (I)Landroid/text/Layout$Directions;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      line  

  public abstract int getTopPadding();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract int getBottomPadding();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public int getHyphen(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 910
            iconst_0
            ireturn
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;
            0    1     1  line  I
    MethodParameters:
      Name  Flags
      line  

  public int getIndentAdjust(int, android.text.Layout$Alignment);
    descriptor: (ILandroid/text/Layout$Alignment;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // android.text.Layout this
        start local 1 // int line
        start local 2 // android.text.Layout$Alignment alignment
         0: .line 919
            iconst_0
            ireturn
        end local 2 // android.text.Layout$Alignment alignment
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Landroid/text/Layout;
            0    1     1       line  I
            0    1     2  alignment  Landroid/text/Layout$Alignment;
    MethodParameters:
           Name  Flags
      line       
      alignment  

  public boolean isLevelBoundary(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=9, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int offset
         0: .line 930
            aload 0 /* this */
            iload 1 /* offset */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 2 /* line */
        start local 2 // int line
         1: .line 931
            aload 0 /* this */
            iload 2 /* line */
            invokevirtual android.text.Layout.getLineDirections:(I)Landroid/text/Layout$Directions;
            astore 3 /* dirs */
        start local 3 // android.text.Layout$Directions dirs
         2: .line 932
            aload 3 /* dirs */
            getstatic android.text.Layout.DIRS_ALL_LEFT_TO_RIGHT:Landroid/text/Layout$Directions;
            if_acmpeq 3
            aload 3 /* dirs */
            getstatic android.text.Layout.DIRS_ALL_RIGHT_TO_LEFT:Landroid/text/Layout$Directions;
            if_acmpne 4
         3: .line 933
      StackMap locals: int android.text.Layout$Directions
      StackMap stack:
            iconst_0
            ireturn
         4: .line 936
      StackMap locals:
      StackMap stack:
            aload 3 /* dirs */
            getfield android.text.Layout$Directions.mDirections:[I
            astore 4 /* runs */
        start local 4 // int[] runs
         5: .line 937
            aload 0 /* this */
            iload 2 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 5 /* lineStart */
        start local 5 // int lineStart
         6: .line 938
            aload 0 /* this */
            iload 2 /* line */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            istore 6 /* lineEnd */
        start local 6 // int lineEnd
         7: .line 939
            iload 1 /* offset */
            iload 5 /* lineStart */
            if_icmpeq 8
            iload 1 /* offset */
            iload 6 /* lineEnd */
            if_icmpne 16
         8: .line 940
      StackMap locals: int[] int int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            iconst_1
            if_icmpne 9
            iconst_0
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_1
      StackMap locals:
      StackMap stack: int
        10: istore 7 /* paraLevel */
        start local 7 // int paraLevel
        11: .line 941
            iload 1 /* offset */
            iload 5 /* lineStart */
            if_icmpne 12
            iconst_0
            goto 13
      StackMap locals: int
      StackMap stack:
        12: aload 4 /* runs */
            arraylength
            iconst_2
            isub
      StackMap locals:
      StackMap stack: int
        13: istore 8 /* runIndex */
        start local 8 // int runIndex
        14: .line 942
            aload 4 /* runs */
            iload 8 /* runIndex */
            iconst_1
            iadd
            iaload
            bipush 26
            iushr
            bipush 63
            iand
            iload 7 /* paraLevel */
            if_icmpeq 15
            iconst_1
            ireturn
      StackMap locals: int
      StackMap stack:
        15: iconst_0
            ireturn
        end local 8 // int runIndex
        end local 7 // int paraLevel
        16: .line 945
      StackMap locals:
      StackMap stack:
            iload 1 /* offset */
            iload 5 /* lineStart */
            isub
            istore 1 /* offset */
        17: .line 946
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        18: goto 22
        19: .line 947
      StackMap locals: int
      StackMap stack:
            iload 1 /* offset */
            aload 4 /* runs */
            iload 7 /* i */
            iaload
            if_icmpne 21
        20: .line 948
            iconst_1
            ireturn
        21: .line 946
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 2
      StackMap locals:
      StackMap stack:
        22: iload 7 /* i */
            aload 4 /* runs */
            arraylength
            if_icmplt 19
        end local 7 // int i
        23: .line 951
            iconst_0
            ireturn
        end local 6 // int lineEnd
        end local 5 // int lineStart
        end local 4 // int[] runs
        end local 3 // android.text.Layout$Directions dirs
        end local 2 // int line
        end local 1 // int offset
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0       this  Landroid/text/Layout;
            0   24     1     offset  I
            1   24     2       line  I
            2   24     3       dirs  Landroid/text/Layout$Directions;
            5   24     4       runs  [I
            6   24     5  lineStart  I
            7   24     6    lineEnd  I
           11   16     7  paraLevel  I
           14   16     8   runIndex  I
           18   23     7          i  I
    MethodParameters:
        Name  Flags
      offset  

  public boolean isRtlCharAt(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int offset
         0: .line 960
            aload 0 /* this */
            iload 1 /* offset */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 2 /* line */
        start local 2 // int line
         1: .line 961
            aload 0 /* this */
            iload 2 /* line */
            invokevirtual android.text.Layout.getLineDirections:(I)Landroid/text/Layout$Directions;
            astore 3 /* dirs */
        start local 3 // android.text.Layout$Directions dirs
         2: .line 962
            aload 3 /* dirs */
            getstatic android.text.Layout.DIRS_ALL_LEFT_TO_RIGHT:Landroid/text/Layout$Directions;
            if_acmpne 4
         3: .line 963
            iconst_0
            ireturn
         4: .line 965
      StackMap locals: int android.text.Layout$Directions
      StackMap stack:
            aload 3 /* dirs */
            getstatic android.text.Layout.DIRS_ALL_RIGHT_TO_LEFT:Landroid/text/Layout$Directions;
            if_acmpne 6
         5: .line 966
            iconst_1
            ireturn
         6: .line 968
      StackMap locals:
      StackMap stack:
            aload 3 /* dirs */
            getfield android.text.Layout$Directions.mDirections:[I
            astore 4 /* runs */
        start local 4 // int[] runs
         7: .line 969
            aload 0 /* this */
            iload 2 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 5 /* lineStart */
        start local 5 // int lineStart
         8: .line 970
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         9: goto 17
        10: .line 971
      StackMap locals: int[] int int
      StackMap stack:
            iload 5 /* lineStart */
            aload 4 /* runs */
            iload 6 /* i */
            iaload
            iadd
            istore 7 /* start */
        start local 7 // int start
        11: .line 972
            iload 7 /* start */
            aload 4 /* runs */
            iload 6 /* i */
            iconst_1
            iadd
            iaload
            ldc 67108863
            iand
            iadd
            istore 8 /* limit */
        start local 8 // int limit
        12: .line 973
            iload 1 /* offset */
            iload 7 /* start */
            if_icmplt 16
            iload 1 /* offset */
            iload 8 /* limit */
            if_icmpge 16
        13: .line 974
            aload 4 /* runs */
            iload 6 /* i */
            iconst_1
            iadd
            iaload
            bipush 26
            iushr
            bipush 63
            iand
            istore 9 /* level */
        start local 9 // int level
        14: .line 975
            iload 9 /* level */
            iconst_1
            iand
            ifeq 15
            iconst_1
            ireturn
      StackMap locals: int int int
      StackMap stack:
        15: iconst_0
            ireturn
        end local 9 // int level
        end local 8 // int limit
        end local 7 // int start
        16: .line 970
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 2
      StackMap locals:
      StackMap stack:
        17: iload 6 /* i */
            aload 4 /* runs */
            arraylength
            if_icmplt 10
        end local 6 // int i
        18: .line 979
            iconst_0
            ireturn
        end local 5 // int lineStart
        end local 4 // int[] runs
        end local 3 // android.text.Layout$Directions dirs
        end local 2 // int line
        end local 1 // int offset
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0       this  Landroid/text/Layout;
            0   19     1     offset  I
            1   19     2       line  I
            2   19     3       dirs  Landroid/text/Layout$Directions;
            7   19     4       runs  [I
            8   19     5  lineStart  I
            9   18     6          i  I
           11   16     7      start  I
           12   16     8      limit  I
           14   16     9      level  I
    MethodParameters:
        Name  Flags
      offset  

  public long getRunRange(int);
    descriptor: (I)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int offset
         0: .line 989
            aload 0 /* this */
            iload 1 /* offset */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 2 /* line */
        start local 2 // int line
         1: .line 990
            aload 0 /* this */
            iload 2 /* line */
            invokevirtual android.text.Layout.getLineDirections:(I)Landroid/text/Layout$Directions;
            astore 3 /* dirs */
        start local 3 // android.text.Layout$Directions dirs
         2: .line 991
            aload 3 /* dirs */
            getstatic android.text.Layout.DIRS_ALL_LEFT_TO_RIGHT:Landroid/text/Layout$Directions;
            if_acmpeq 3
            aload 3 /* dirs */
            getstatic android.text.Layout.DIRS_ALL_RIGHT_TO_LEFT:Landroid/text/Layout$Directions;
            if_acmpne 4
         3: .line 992
      StackMap locals: int android.text.Layout$Directions
      StackMap stack:
            iconst_0
            aload 0 /* this */
            iload 2 /* line */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            invokestatic android.text.TextUtils.packRangeInLong:(II)J
            lreturn
         4: .line 994
      StackMap locals:
      StackMap stack:
            aload 3 /* dirs */
            getfield android.text.Layout$Directions.mDirections:[I
            astore 4 /* runs */
        start local 4 // int[] runs
         5: .line 995
            aload 0 /* this */
            iload 2 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 5 /* lineStart */
        start local 5 // int lineStart
         6: .line 996
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         7: goto 13
         8: .line 997
      StackMap locals: int[] int int
      StackMap stack:
            iload 5 /* lineStart */
            aload 4 /* runs */
            iload 6 /* i */
            iaload
            iadd
            istore 7 /* start */
        start local 7 // int start
         9: .line 998
            iload 7 /* start */
            aload 4 /* runs */
            iload 6 /* i */
            iconst_1
            iadd
            iaload
            ldc 67108863
            iand
            iadd
            istore 8 /* limit */
        start local 8 // int limit
        10: .line 999
            iload 1 /* offset */
            iload 7 /* start */
            if_icmplt 12
            iload 1 /* offset */
            iload 8 /* limit */
            if_icmpge 12
        11: .line 1000
            iload 7 /* start */
            iload 8 /* limit */
            invokestatic android.text.TextUtils.packRangeInLong:(II)J
            lreturn
        end local 8 // int limit
        end local 7 // int start
        12: .line 996
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 2
      StackMap locals:
      StackMap stack:
        13: iload 6 /* i */
            aload 4 /* runs */
            arraylength
            if_icmplt 8
        end local 6 // int i
        14: .line 1004
            iconst_0
            aload 0 /* this */
            iload 2 /* line */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            invokestatic android.text.TextUtils.packRangeInLong:(II)J
            lreturn
        end local 5 // int lineStart
        end local 4 // int[] runs
        end local 3 // android.text.Layout$Directions dirs
        end local 2 // int line
        end local 1 // int offset
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Landroid/text/Layout;
            0   15     1     offset  I
            1   15     2       line  I
            2   15     3       dirs  Landroid/text/Layout$Directions;
            5   15     4       runs  [I
            6   15     5  lineStart  I
            7   14     6          i  I
            9   12     7      start  I
           10   12     8      limit  I
    MethodParameters:
        Name  Flags
      offset  

  private boolean primaryIsTrailingPrevious(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=11, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int offset
         0: .line 1034
            aload 0 /* this */
            iload 1 /* offset */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 2 /* line */
        start local 2 // int line
         1: .line 1035
            aload 0 /* this */
            iload 2 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 3 /* lineStart */
        start local 3 // int lineStart
         2: .line 1036
            aload 0 /* this */
            iload 2 /* line */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            istore 4 /* lineEnd */
        start local 4 // int lineEnd
         3: .line 1037
            aload 0 /* this */
            iload 2 /* line */
            invokevirtual android.text.Layout.getLineDirections:(I)Landroid/text/Layout$Directions;
            getfield android.text.Layout$Directions.mDirections:[I
            astore 5 /* runs */
        start local 5 // int[] runs
         4: .line 1039
            iconst_m1
            istore 6 /* levelAt */
        start local 6 // int levelAt
         5: .line 1040
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         6: goto 17
         7: .line 1041
      StackMap locals: android.text.Layout int int int int int[] int int
      StackMap stack:
            iload 3 /* lineStart */
            aload 5 /* runs */
            iload 7 /* i */
            iaload
            iadd
            istore 8 /* start */
        start local 8 // int start
         8: .line 1042
            iload 8 /* start */
            aload 5 /* runs */
            iload 7 /* i */
            iconst_1
            iadd
            iaload
            ldc 67108863
            iand
            iadd
            istore 9 /* limit */
        start local 9 // int limit
         9: .line 1043
            iload 9 /* limit */
            iload 4 /* lineEnd */
            if_icmple 11
        10: .line 1044
            iload 4 /* lineEnd */
            istore 9 /* limit */
        11: .line 1046
      StackMap locals: int int
      StackMap stack:
            iload 1 /* offset */
            iload 8 /* start */
            if_icmplt 16
            iload 1 /* offset */
            iload 9 /* limit */
            if_icmpge 16
        12: .line 1047
            iload 1 /* offset */
            iload 8 /* start */
            if_icmple 14
        13: .line 1049
            iconst_0
            ireturn
        14: .line 1051
      StackMap locals:
      StackMap stack:
            aload 5 /* runs */
            iload 7 /* i */
            iconst_1
            iadd
            iaload
            bipush 26
            iushr
            bipush 63
            iand
            istore 6 /* levelAt */
        15: .line 1052
            goto 18
        end local 9 // int limit
        end local 8 // int start
        16: .line 1040
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 2
      StackMap locals:
      StackMap stack:
        17: iload 7 /* i */
            aload 5 /* runs */
            arraylength
            if_icmplt 7
        end local 7 // int i
        18: .line 1055
      StackMap locals:
      StackMap stack:
            iload 6 /* levelAt */
            iconst_m1
            if_icmpne 22
        19: .line 1057
            aload 0 /* this */
            iload 2 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            iconst_1
            if_icmpne 20
            iconst_0
            goto 21
      StackMap locals:
      StackMap stack:
        20: iconst_1
      StackMap locals:
      StackMap stack: int
        21: istore 6 /* levelAt */
        22: .line 1061
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 7 /* levelBefore */
        start local 7 // int levelBefore
        23: .line 1062
            iload 1 /* offset */
            iload 3 /* lineStart */
            if_icmpne 28
        24: .line 1063
            aload 0 /* this */
            iload 2 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            iconst_1
            if_icmpne 25
            iconst_0
            goto 26
      StackMap locals: int
      StackMap stack:
        25: iconst_1
      StackMap locals:
      StackMap stack: int
        26: istore 7 /* levelBefore */
        27: .line 1064
            goto 40
        28: .line 1065
      StackMap locals:
      StackMap stack:
            iinc 1 /* offset */ -1
        29: .line 1066
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        30: goto 39
        31: .line 1067
      StackMap locals: int
      StackMap stack:
            iload 3 /* lineStart */
            aload 5 /* runs */
            iload 8 /* i */
            iaload
            iadd
            istore 9 /* start */
        start local 9 // int start
        32: .line 1068
            iload 9 /* start */
            aload 5 /* runs */
            iload 8 /* i */
            iconst_1
            iadd
            iaload
            ldc 67108863
            iand
            iadd
            istore 10 /* limit */
        start local 10 // int limit
        33: .line 1069
            iload 10 /* limit */
            iload 4 /* lineEnd */
            if_icmple 35
        34: .line 1070
            iload 4 /* lineEnd */
            istore 10 /* limit */
        35: .line 1072
      StackMap locals: int int
      StackMap stack:
            iload 1 /* offset */
            iload 9 /* start */
            if_icmplt 38
            iload 1 /* offset */
            iload 10 /* limit */
            if_icmpge 38
        36: .line 1073
            aload 5 /* runs */
            iload 8 /* i */
            iconst_1
            iadd
            iaload
            bipush 26
            iushr
            bipush 63
            iand
            istore 7 /* levelBefore */
        37: .line 1074
            goto 40
        end local 10 // int limit
        end local 9 // int start
        38: .line 1066
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 2
      StackMap locals:
      StackMap stack:
        39: iload 8 /* i */
            aload 5 /* runs */
            arraylength
            if_icmplt 31
        end local 8 // int i
        40: .line 1079
      StackMap locals:
      StackMap stack:
            iload 7 /* levelBefore */
            iload 6 /* levelAt */
            if_icmpge 41
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        41: iconst_0
            ireturn
        end local 7 // int levelBefore
        end local 6 // int levelAt
        end local 5 // int[] runs
        end local 4 // int lineEnd
        end local 3 // int lineStart
        end local 2 // int line
        end local 1 // int offset
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   42     0         this  Landroid/text/Layout;
            0   42     1       offset  I
            1   42     2         line  I
            2   42     3    lineStart  I
            3   42     4      lineEnd  I
            4   42     5         runs  [I
            5   42     6      levelAt  I
            6   18     7            i  I
            8   16     8        start  I
            9   16     9        limit  I
           23   42     7  levelBefore  I
           30   40     8            i  I
           32   38     9        start  I
           33   38    10        limit  I
    MethodParameters:
        Name  Flags
      offset  

  private boolean[] primaryIsTrailingPreviousAllLineOffsets(int);
    descriptor: (I)[Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 1089
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 2 /* lineStart */
        start local 2 // int lineStart
         1: .line 1090
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            istore 3 /* lineEnd */
        start local 3 // int lineEnd
         2: .line 1091
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineDirections:(I)Landroid/text/Layout$Directions;
            getfield android.text.Layout$Directions.mDirections:[I
            astore 4 /* runs */
        start local 4 // int[] runs
         3: .line 1093
            iload 3 /* lineEnd */
            iload 2 /* lineStart */
            isub
            iconst_1
            iadd
            newarray 4
            astore 5 /* trailing */
        start local 5 // boolean[] trailing
         4: .line 1095
            iload 3 /* lineEnd */
            iload 2 /* lineStart */
            isub
            iconst_1
            iadd
            newarray 8
            astore 6 /* level */
        start local 6 // byte[] level
         5: .line 1096
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         6: goto 15
         7: .line 1097
      StackMap locals: android.text.Layout int int int int[] boolean[] byte[] int
      StackMap stack:
            iload 2 /* lineStart */
            aload 4 /* runs */
            iload 7 /* i */
            iaload
            iadd
            istore 8 /* start */
        start local 8 // int start
         8: .line 1098
            iload 8 /* start */
            aload 4 /* runs */
            iload 7 /* i */
            iconst_1
            iadd
            iaload
            ldc 67108863
            iand
            iadd
            istore 9 /* limit */
        start local 9 // int limit
         9: .line 1099
            iload 9 /* limit */
            iload 3 /* lineEnd */
            if_icmple 11
        10: .line 1100
            iload 3 /* lineEnd */
            istore 9 /* limit */
        11: .line 1102
      StackMap locals: int int
      StackMap stack:
            aload 6 /* level */
            iload 9 /* limit */
            iload 2 /* lineStart */
            isub
            iconst_1
            isub
        12: .line 1103
            aload 4 /* runs */
            iload 7 /* i */
            iconst_1
            iadd
            iaload
            bipush 26
            iushr
            bipush 63
            iand
            i2b
        13: .line 1102
            bastore
        end local 9 // int limit
        end local 8 // int start
        14: .line 1096
            iinc 7 /* i */ 2
      StackMap locals:
      StackMap stack:
        15: iload 7 /* i */
            aload 4 /* runs */
            arraylength
            if_icmplt 7
        end local 7 // int i
        16: .line 1106
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        17: goto 28
        18: .line 1107
      StackMap locals:
      StackMap stack:
            iload 2 /* lineStart */
            aload 4 /* runs */
            iload 7 /* i */
            iaload
            iadd
            istore 8 /* start */
        start local 8 // int start
        19: .line 1108
            aload 4 /* runs */
            iload 7 /* i */
            iconst_1
            iadd
            iaload
            bipush 26
            iushr
            bipush 63
            iand
            i2b
            istore 9 /* currentLevel */
        start local 9 // byte currentLevel
        20: .line 1109
            aload 5 /* trailing */
            iload 8 /* start */
            iload 2 /* lineStart */
            isub
            iload 9 /* currentLevel */
            iload 8 /* start */
            iload 2 /* lineStart */
            if_icmpne 23
        21: .line 1110
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            iconst_1
            if_icmpne 22
            iconst_0
            goto 24
      StackMap locals: android.text.Layout int int int int[] boolean[] byte[] int int int
      StackMap stack: boolean[] int int
        22: iconst_1
            goto 24
        23: .line 1111
      StackMap locals: android.text.Layout int int int int[] boolean[] byte[] int int int
      StackMap stack: boolean[] int int
            aload 6 /* level */
            iload 8 /* start */
            iload 2 /* lineStart */
            isub
            iconst_1
            isub
            baload
      StackMap locals: android.text.Layout int int int int[] boolean[] byte[] int int int
      StackMap stack: boolean[] int int int
        24: if_icmple 25
            iconst_1
            goto 26
      StackMap locals: android.text.Layout int int int int[] boolean[] byte[] int int int
      StackMap stack: boolean[] int
        25: iconst_0
        26: .line 1109
      StackMap locals: android.text.Layout int int int int[] boolean[] byte[] int int int
      StackMap stack: boolean[] int int
            bastore
        end local 9 // byte currentLevel
        end local 8 // int start
        27: .line 1106
            iinc 7 /* i */ 2
      StackMap locals:
      StackMap stack:
        28: iload 7 /* i */
            aload 4 /* runs */
            arraylength
            if_icmplt 18
        end local 7 // int i
        29: .line 1114
            aload 5 /* trailing */
            areturn
        end local 6 // byte[] level
        end local 5 // boolean[] trailing
        end local 4 // int[] runs
        end local 3 // int lineEnd
        end local 2 // int lineStart
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   30     0          this  Landroid/text/Layout;
            0   30     1          line  I
            1   30     2     lineStart  I
            2   30     3       lineEnd  I
            3   30     4          runs  [I
            4   30     5      trailing  [Z
            5   30     6         level  [B
            6   16     7             i  I
            8   14     8         start  I
            9   14     9         limit  I
           17   29     7             i  I
           19   27     8         start  I
           20   27     9  currentLevel  B
    MethodParameters:
      Name  Flags
      line  

  public float getPrimaryHorizontal(int);
    descriptor: (I)F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int offset
         0: .line 1123
            aload 0 /* this */
            iload 1 /* offset */
            iconst_0
            invokevirtual android.text.Layout.getPrimaryHorizontal:(IZ)F
            freturn
        end local 1 // int offset
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/text/Layout;
            0    1     1  offset  I
    MethodParameters:
        Name  Flags
      offset  

  public float getPrimaryHorizontal(int, boolean);
    descriptor: (IZ)F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // android.text.Layout this
        start local 1 // int offset
        start local 2 // boolean clamped
         0: .line 1132
            aload 0 /* this */
            iload 1 /* offset */
            invokevirtual android.text.Layout.primaryIsTrailingPrevious:(I)Z
            istore 3 /* trailing */
        start local 3 // boolean trailing
         1: .line 1133
            aload 0 /* this */
            iload 1 /* offset */
            iload 3 /* trailing */
            iload 2 /* clamped */
            invokevirtual android.text.Layout.getHorizontal:(IZZ)F
            freturn
        end local 3 // boolean trailing
        end local 2 // boolean clamped
        end local 1 // int offset
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/text/Layout;
            0    2     1    offset  I
            0    2     2   clamped  Z
            1    2     3  trailing  Z
    MethodParameters:
         Name  Flags
      offset   
      clamped  

  public float getSecondaryHorizontal(int);
    descriptor: (I)F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int offset
         0: .line 1142
            aload 0 /* this */
            iload 1 /* offset */
            iconst_0
            invokevirtual android.text.Layout.getSecondaryHorizontal:(IZ)F
            freturn
        end local 1 // int offset
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/text/Layout;
            0    1     1  offset  I
    MethodParameters:
        Name  Flags
      offset  

  public float getSecondaryHorizontal(int, boolean);
    descriptor: (IZ)F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // android.text.Layout this
        start local 1 // int offset
        start local 2 // boolean clamped
         0: .line 1151
            aload 0 /* this */
            iload 1 /* offset */
            invokevirtual android.text.Layout.primaryIsTrailingPrevious:(I)Z
            istore 3 /* trailing */
        start local 3 // boolean trailing
         1: .line 1152
            aload 0 /* this */
            iload 1 /* offset */
            iload 3 /* trailing */
            ifeq 2
            iconst_0
            goto 3
      StackMap locals: android.text.Layout int int int
      StackMap stack: android.text.Layout int
         2: iconst_1
      StackMap locals: android.text.Layout int int int
      StackMap stack: android.text.Layout int int
         3: iload 2 /* clamped */
            invokevirtual android.text.Layout.getHorizontal:(IZZ)F
            freturn
        end local 3 // boolean trailing
        end local 2 // boolean clamped
        end local 1 // int offset
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Landroid/text/Layout;
            0    4     1    offset  I
            0    4     2   clamped  Z
            1    4     3  trailing  Z
    MethodParameters:
         Name  Flags
      offset   
      clamped  

  private float getHorizontal(int, boolean);
    descriptor: (IZ)F
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.text.Layout this
        start local 1 // int offset
        start local 2 // boolean primary
         0: .line 1156
            iload 2 /* primary */
            ifeq 1
            aload 0 /* this */
            iload 1 /* offset */
            invokevirtual android.text.Layout.getPrimaryHorizontal:(I)F
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            iload 1 /* offset */
            invokevirtual android.text.Layout.getSecondaryHorizontal:(I)F
      StackMap locals:
      StackMap stack: float
         2: freturn
        end local 2 // boolean primary
        end local 1 // int offset
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Landroid/text/Layout;
            0    3     1   offset  I
            0    3     2  primary  Z
    MethodParameters:
         Name  Flags
      offset   
      primary  

  private float getHorizontal(int, boolean, boolean);
    descriptor: (IZZ)F
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // android.text.Layout this
        start local 1 // int offset
        start local 2 // boolean trailing
        start local 3 // boolean clamped
         0: .line 1160
            aload 0 /* this */
            iload 1 /* offset */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 4 /* line */
        start local 4 // int line
         1: .line 1162
            aload 0 /* this */
            iload 1 /* offset */
            iload 2 /* trailing */
            iload 4 /* line */
            iload 3 /* clamped */
            invokevirtual android.text.Layout.getHorizontal:(IZIZ)F
            freturn
        end local 4 // int line
        end local 3 // boolean clamped
        end local 2 // boolean trailing
        end local 1 // int offset
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/text/Layout;
            0    2     1    offset  I
            0    2     2  trailing  Z
            0    2     3   clamped  Z
            1    2     4      line  I
    MethodParameters:
          Name  Flags
      offset    
      trailing  
      clamped   

  private float getHorizontal(int, boolean, int, boolean);
    descriptor: (IZIZ)F
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=15, args_size=5
        start local 0 // android.text.Layout this
        start local 1 // int offset
        start local 2 // boolean trailing
        start local 3 // int line
        start local 4 // boolean clamped
         0: .line 1166
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 5 /* start */
        start local 5 // int start
         1: .line 1167
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            istore 6 /* end */
        start local 6 // int end
         2: .line 1168
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            istore 7 /* dir */
        start local 7 // int dir
         3: .line 1169
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getLineContainsTab:(I)Z
            istore 8 /* hasTab */
        start local 8 // boolean hasTab
         4: .line 1170
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getLineDirections:(I)Landroid/text/Layout$Directions;
            astore 9 /* directions */
        start local 9 // android.text.Layout$Directions directions
         5: .line 1172
            aconst_null
            astore 10 /* tabStops */
        start local 10 // android.text.Layout$TabStops tabStops
         6: .line 1173
            iload 8 /* hasTab */
            ifeq 10
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            instanceof android.text.Spanned
            ifeq 10
         7: .line 1176
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            checkcast android.text.Spanned
            iload 5 /* start */
            iload 6 /* end */
            ldc Landroid/text/style/TabStopSpan;
            invokestatic android.text.Layout.getParagraphSpans:(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.TabStopSpan[]
            astore 11 /* tabs */
        start local 11 // android.text.style.TabStopSpan[] tabs
         8: .line 1177
            aload 11 /* tabs */
            arraylength
            ifle 10
         9: .line 1178
            new android.text.Layout$TabStops
            dup
            bipush 20
            aload 11 /* tabs */
            invokespecial android.text.Layout$TabStops.<init>:(I[Ljava/lang/Object;)V
            astore 10 /* tabStops */
        end local 11 // android.text.style.TabStopSpan[] tabs
        10: .line 1182
      StackMap locals: android.text.Layout int int int int int int int int android.text.Layout$Directions android.text.Layout$TabStops
      StackMap stack:
            invokestatic android.text.TextLine.obtain:()Landroid/text/TextLine;
            astore 11 /* tl */
        start local 11 // android.text.TextLine tl
        11: .line 1183
            aload 11 /* tl */
            aload 0 /* this */
            getfield android.text.Layout.mPaint:Landroid/text/TextPaint;
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            iload 5 /* start */
            iload 6 /* end */
            iload 7 /* dir */
            aload 9 /* directions */
            iload 8 /* hasTab */
            aload 10 /* tabStops */
            invokevirtual android.text.TextLine.set:(Landroid/text/TextPaint;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;ZLandroid/text/Layout$TabStops;)V
        12: .line 1184
            aload 11 /* tl */
            iload 1 /* offset */
            iload 5 /* start */
            isub
            iload 2 /* trailing */
            aconst_null
            invokevirtual android.text.TextLine.measure:(IZLandroid/graphics/Paint$FontMetricsInt;)F
            fstore 12 /* wid */
        start local 12 // float wid
        13: .line 1185
            aload 11 /* tl */
            invokestatic android.text.TextLine.recycle:(Landroid/text/TextLine;)Landroid/text/TextLine;
            pop
        14: .line 1187
            iload 4 /* clamped */
            ifeq 16
            fload 12 /* wid */
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            i2f
            fcmpl
            ifle 16
        15: .line 1188
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            i2f
            fstore 12 /* wid */
        16: .line 1190
      StackMap locals: android.text.TextLine float
      StackMap stack:
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getParagraphLeft:(I)I
            istore 13 /* left */
        start local 13 // int left
        17: .line 1191
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getParagraphRight:(I)I
            istore 14 /* right */
        start local 14 // int right
        18: .line 1193
            aload 0 /* this */
            iload 3 /* line */
            iload 13 /* left */
            iload 14 /* right */
            invokevirtual android.text.Layout.getLineStartPos:(III)I
            i2f
            fload 12 /* wid */
            fadd
            freturn
        end local 14 // int right
        end local 13 // int left
        end local 12 // float wid
        end local 11 // android.text.TextLine tl
        end local 10 // android.text.Layout$TabStops tabStops
        end local 9 // android.text.Layout$Directions directions
        end local 8 // boolean hasTab
        end local 7 // int dir
        end local 6 // int end
        end local 5 // int start
        end local 4 // boolean clamped
        end local 3 // int line
        end local 2 // boolean trailing
        end local 1 // int offset
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Landroid/text/Layout;
            0   19     1      offset  I
            0   19     2    trailing  Z
            0   19     3        line  I
            0   19     4     clamped  Z
            1   19     5       start  I
            2   19     6         end  I
            3   19     7         dir  I
            4   19     8      hasTab  Z
            5   19     9  directions  Landroid/text/Layout$Directions;
            6   19    10    tabStops  Landroid/text/Layout$TabStops;
            8   10    11        tabs  [Landroid/text/style/TabStopSpan;
           11   19    11          tl  Landroid/text/TextLine;
           13   19    12         wid  F
           17   19    13        left  I
           18   19    14       right  I
    MethodParameters:
          Name  Flags
      offset    
      trailing  
      line      
      clamped   

  private float[] getLineHorizontals(int, boolean, boolean);
    descriptor: (IZZ)[F
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=18, args_size=4
        start local 0 // android.text.Layout this
        start local 1 // int line
        start local 2 // boolean clamped
        start local 3 // boolean primary
         0: .line 1205
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 4 /* start */
        start local 4 // int start
         1: .line 1206
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            istore 5 /* end */
        start local 5 // int end
         2: .line 1207
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            istore 6 /* dir */
        start local 6 // int dir
         3: .line 1208
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineContainsTab:(I)Z
            istore 7 /* hasTab */
        start local 7 // boolean hasTab
         4: .line 1209
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineDirections:(I)Landroid/text/Layout$Directions;
            astore 8 /* directions */
        start local 8 // android.text.Layout$Directions directions
         5: .line 1211
            aconst_null
            astore 9 /* tabStops */
        start local 9 // android.text.Layout$TabStops tabStops
         6: .line 1212
            iload 7 /* hasTab */
            ifeq 10
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            instanceof android.text.Spanned
            ifeq 10
         7: .line 1215
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            checkcast android.text.Spanned
            iload 4 /* start */
            iload 5 /* end */
            ldc Landroid/text/style/TabStopSpan;
            invokestatic android.text.Layout.getParagraphSpans:(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.TabStopSpan[]
            astore 10 /* tabs */
        start local 10 // android.text.style.TabStopSpan[] tabs
         8: .line 1216
            aload 10 /* tabs */
            arraylength
            ifle 10
         9: .line 1217
            new android.text.Layout$TabStops
            dup
            bipush 20
            aload 10 /* tabs */
            invokespecial android.text.Layout$TabStops.<init>:(I[Ljava/lang/Object;)V
            astore 9 /* tabStops */
        end local 10 // android.text.style.TabStopSpan[] tabs
        10: .line 1221
      StackMap locals: android.text.Layout int int int int int int int android.text.Layout$Directions android.text.Layout$TabStops
      StackMap stack:
            invokestatic android.text.TextLine.obtain:()Landroid/text/TextLine;
            astore 10 /* tl */
        start local 10 // android.text.TextLine tl
        11: .line 1222
            aload 10 /* tl */
            aload 0 /* this */
            getfield android.text.Layout.mPaint:Landroid/text/TextPaint;
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            iload 4 /* start */
            iload 5 /* end */
            iload 6 /* dir */
            aload 8 /* directions */
            iload 7 /* hasTab */
            aload 9 /* tabStops */
            invokevirtual android.text.TextLine.set:(Landroid/text/TextPaint;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;ZLandroid/text/Layout$TabStops;)V
        12: .line 1223
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.primaryIsTrailingPreviousAllLineOffsets:(I)[Z
            astore 11 /* trailings */
        start local 11 // boolean[] trailings
        13: .line 1224
            iload 3 /* primary */
            ifne 21
        14: .line 1225
            iconst_0
            istore 12 /* offset */
        start local 12 // int offset
        15: goto 20
        16: .line 1226
      StackMap locals: android.text.TextLine boolean[] int
      StackMap stack:
            aload 11 /* trailings */
            iload 12 /* offset */
            aload 11 /* trailings */
            iload 12 /* offset */
            baload
            ifeq 17
            iconst_0
            goto 18
      StackMap locals: android.text.Layout int int int int int int int android.text.Layout$Directions android.text.Layout$TabStops android.text.TextLine boolean[] int
      StackMap stack: boolean[] int
        17: iconst_1
      StackMap locals: android.text.Layout int int int int int int int android.text.Layout$Directions android.text.Layout$TabStops android.text.TextLine boolean[] int
      StackMap stack: boolean[] int int
        18: bastore
        19: .line 1225
            iinc 12 /* offset */ 1
      StackMap locals:
      StackMap stack:
        20: iload 12 /* offset */
            aload 11 /* trailings */
            arraylength
            if_icmplt 16
        end local 12 // int offset
        21: .line 1229
      StackMap locals:
      StackMap stack:
            aload 10 /* tl */
            aload 11 /* trailings */
            aconst_null
            invokevirtual android.text.TextLine.measureAllOffsets:([ZLandroid/graphics/Paint$FontMetricsInt;)[F
            astore 12 /* wid */
        start local 12 // float[] wid
        22: .line 1230
            aload 10 /* tl */
            invokestatic android.text.TextLine.recycle:(Landroid/text/TextLine;)Landroid/text/TextLine;
            pop
        23: .line 1232
            iload 2 /* clamped */
            ifeq 30
        24: .line 1233
            iconst_0
            istore 13 /* offset */
        start local 13 // int offset
        25: goto 29
        26: .line 1234
      StackMap locals: float[] int
      StackMap stack:
            aload 12 /* wid */
            iload 13 /* offset */
            faload
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            i2f
            fcmpl
            ifle 28
        27: .line 1235
            aload 12 /* wid */
            iload 13 /* offset */
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            i2f
            fastore
        28: .line 1233
      StackMap locals:
      StackMap stack:
            iinc 13 /* offset */ 1
      StackMap locals:
      StackMap stack:
        29: iload 13 /* offset */
            aload 12 /* wid */
            arraylength
            if_icmple 26
        end local 13 // int offset
        30: .line 1239
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphLeft:(I)I
            istore 13 /* left */
        start local 13 // int left
        31: .line 1240
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphRight:(I)I
            istore 14 /* right */
        start local 14 // int right
        32: .line 1242
            aload 0 /* this */
            iload 1 /* line */
            iload 13 /* left */
            iload 14 /* right */
            invokevirtual android.text.Layout.getLineStartPos:(III)I
            istore 15 /* lineStartPos */
        start local 15 // int lineStartPos
        33: .line 1243
            iload 5 /* end */
            iload 4 /* start */
            isub
            iconst_1
            iadd
            newarray 6
            astore 16 /* horizontal */
        start local 16 // float[] horizontal
        34: .line 1244
            iconst_0
            istore 17 /* offset */
        start local 17 // int offset
        35: goto 38
        36: .line 1245
      StackMap locals: android.text.Layout int int int int int int int android.text.Layout$Directions android.text.Layout$TabStops android.text.TextLine boolean[] float[] int int int float[] int
      StackMap stack:
            aload 16 /* horizontal */
            iload 17 /* offset */
            iload 15 /* lineStartPos */
            i2f
            aload 12 /* wid */
            iload 17 /* offset */
            faload
            fadd
            fastore
        37: .line 1244
            iinc 17 /* offset */ 1
      StackMap locals:
      StackMap stack:
        38: iload 17 /* offset */
            aload 16 /* horizontal */
            arraylength
            if_icmplt 36
        end local 17 // int offset
        39: .line 1247
            aload 16 /* horizontal */
            areturn
        end local 16 // float[] horizontal
        end local 15 // int lineStartPos
        end local 14 // int right
        end local 13 // int left
        end local 12 // float[] wid
        end local 11 // boolean[] trailings
        end local 10 // android.text.TextLine tl
        end local 9 // android.text.Layout$TabStops tabStops
        end local 8 // android.text.Layout$Directions directions
        end local 7 // boolean hasTab
        end local 6 // int dir
        end local 5 // int end
        end local 4 // int start
        end local 3 // boolean primary
        end local 2 // boolean clamped
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   40     0          this  Landroid/text/Layout;
            0   40     1          line  I
            0   40     2       clamped  Z
            0   40     3       primary  Z
            1   40     4         start  I
            2   40     5           end  I
            3   40     6           dir  I
            4   40     7        hasTab  Z
            5   40     8    directions  Landroid/text/Layout$Directions;
            6   40     9      tabStops  Landroid/text/Layout$TabStops;
            8   10    10          tabs  [Landroid/text/style/TabStopSpan;
           11   40    10            tl  Landroid/text/TextLine;
           13   40    11     trailings  [Z
           15   21    12        offset  I
           22   40    12           wid  [F
           25   30    13        offset  I
           31   40    13          left  I
           32   40    14         right  I
           33   40    15  lineStartPos  I
           34   40    16    horizontal  [F
           35   39    17        offset  I
    MethodParameters:
         Name  Flags
      line     
      clamped  
      primary  

  public float getLineLeft(int);
    descriptor: (I)F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 1255
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            istore 2 /* dir */
        start local 2 // int dir
         1: .line 1256
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphAlignment:(I)Landroid/text/Layout$Alignment;
            astore 3 /* align */
        start local 3 // android.text.Layout$Alignment align
         2: .line 1258
            aload 3 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_LEFT:Landroid/text/Layout$Alignment;
            if_acmpne 4
         3: .line 1259
            fconst_0
            freturn
         4: .line 1260
      StackMap locals: int android.text.Layout$Alignment
      StackMap stack:
            aload 3 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_NORMAL:Landroid/text/Layout$Alignment;
            if_acmpne 8
         5: .line 1261
            iload 2 /* dir */
            iconst_m1
            if_icmpne 7
         6: .line 1262
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphRight:(I)I
            i2f
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineMax:(I)F
            fsub
            freturn
         7: .line 1264
      StackMap locals:
      StackMap stack:
            fconst_0
            freturn
         8: .line 1265
      StackMap locals:
      StackMap stack:
            aload 3 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_RIGHT:Landroid/text/Layout$Alignment;
            if_acmpne 10
         9: .line 1266
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            i2f
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineMax:(I)F
            fsub
            freturn
        10: .line 1267
      StackMap locals:
      StackMap stack:
            aload 3 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;
            if_acmpne 14
        11: .line 1268
            iload 2 /* dir */
            iconst_m1
            if_icmpne 13
        12: .line 1269
            fconst_0
            freturn
        13: .line 1271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            i2f
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineMax:(I)F
            fsub
            freturn
        14: .line 1273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphLeft:(I)I
            istore 4 /* left */
        start local 4 // int left
        15: .line 1274
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphRight:(I)I
            istore 5 /* right */
        start local 5 // int right
        16: .line 1275
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineMax:(I)F
            f2i
            bipush -2
            iand
            istore 6 /* max */
        start local 6 // int max
        17: .line 1277
            iload 4 /* left */
            iload 5 /* right */
            iload 4 /* left */
            isub
            iload 6 /* max */
            isub
            iconst_2
            idiv
            iadd
            i2f
            freturn
        end local 6 // int max
        end local 5 // int right
        end local 4 // int left
        end local 3 // android.text.Layout$Alignment align
        end local 2 // int dir
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Landroid/text/Layout;
            0   18     1   line  I
            1   18     2    dir  I
            2   18     3  align  Landroid/text/Layout$Alignment;
           15   18     4   left  I
           16   18     5  right  I
           17   18     6    max  I
    MethodParameters:
      Name  Flags
      line  

  public float getLineRight(int);
    descriptor: (I)F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 1286
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            istore 2 /* dir */
        start local 2 // int dir
         1: .line 1287
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphAlignment:(I)Landroid/text/Layout$Alignment;
            astore 3 /* align */
        start local 3 // android.text.Layout$Alignment align
         2: .line 1289
            aload 3 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_LEFT:Landroid/text/Layout$Alignment;
            if_acmpne 4
         3: .line 1290
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphLeft:(I)I
            i2f
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineMax:(I)F
            fadd
            freturn
         4: .line 1291
      StackMap locals: int android.text.Layout$Alignment
      StackMap stack:
            aload 3 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_NORMAL:Landroid/text/Layout$Alignment;
            if_acmpne 8
         5: .line 1292
            iload 2 /* dir */
            iconst_m1
            if_icmpne 7
         6: .line 1293
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            i2f
            freturn
         7: .line 1295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphLeft:(I)I
            i2f
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineMax:(I)F
            fadd
            freturn
         8: .line 1296
      StackMap locals:
      StackMap stack:
            aload 3 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_RIGHT:Landroid/text/Layout$Alignment;
            if_acmpne 10
         9: .line 1297
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            i2f
            freturn
        10: .line 1298
      StackMap locals:
      StackMap stack:
            aload 3 /* align */
            getstatic android.text.Layout$Alignment.ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;
            if_acmpne 14
        11: .line 1299
            iload 2 /* dir */
            iconst_m1
            if_icmpne 13
        12: .line 1300
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineMax:(I)F
            freturn
        13: .line 1302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            i2f
            freturn
        14: .line 1304
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphLeft:(I)I
            istore 4 /* left */
        start local 4 // int left
        15: .line 1305
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphRight:(I)I
            istore 5 /* right */
        start local 5 // int right
        16: .line 1306
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineMax:(I)F
            f2i
            bipush -2
            iand
            istore 6 /* max */
        start local 6 // int max
        17: .line 1308
            iload 5 /* right */
            iload 5 /* right */
            iload 4 /* left */
            isub
            iload 6 /* max */
            isub
            iconst_2
            idiv
            isub
            i2f
            freturn
        end local 6 // int max
        end local 5 // int right
        end local 4 // int left
        end local 3 // android.text.Layout$Alignment align
        end local 2 // int dir
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Landroid/text/Layout;
            0   18     1   line  I
            1   18     2    dir  I
            2   18     3  align  Landroid/text/Layout$Alignment;
           15   18     4   left  I
           16   18     5  right  I
           17   18     6    max  I
    MethodParameters:
      Name  Flags
      line  

  public float getLineMax(int);
    descriptor: (I)F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 1317
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphLeadingMargin:(I)I
            i2f
            fstore 2 /* margin */
        start local 2 // float margin
         1: .line 1318
            aload 0 /* this */
            iload 1 /* line */
            iconst_0
            invokevirtual android.text.Layout.getLineExtent:(IZ)F
            fstore 3 /* signedExtent */
        start local 3 // float signedExtent
         2: .line 1319
            fload 2 /* margin */
            fload 3 /* signedExtent */
            fconst_0
            fcmpl
            iflt 3
            fload 3 /* signedExtent */
            goto 4
      StackMap locals: android.text.Layout int float float
      StackMap stack: float
         3: fload 3 /* signedExtent */
            fneg
      StackMap locals: android.text.Layout int float float
      StackMap stack: float float
         4: fadd
            freturn
        end local 3 // float signedExtent
        end local 2 // float margin
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Landroid/text/Layout;
            0    5     1          line  I
            1    5     2        margin  F
            2    5     3  signedExtent  F
    MethodParameters:
      Name  Flags
      line  

  public float getLineWidth(int);
    descriptor: (I)F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 1327
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphLeadingMargin:(I)I
            i2f
            fstore 2 /* margin */
        start local 2 // float margin
         1: .line 1328
            aload 0 /* this */
            iload 1 /* line */
            iconst_1
            invokevirtual android.text.Layout.getLineExtent:(IZ)F
            fstore 3 /* signedExtent */
        start local 3 // float signedExtent
         2: .line 1329
            fload 2 /* margin */
            fload 3 /* signedExtent */
            fconst_0
            fcmpl
            iflt 3
            fload 3 /* signedExtent */
            goto 4
      StackMap locals: android.text.Layout int float float
      StackMap stack: float
         3: fload 3 /* signedExtent */
            fneg
      StackMap locals: android.text.Layout int float float
      StackMap stack: float float
         4: fadd
            freturn
        end local 3 // float signedExtent
        end local 2 // float margin
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Landroid/text/Layout;
            0    5     1          line  I
            1    5     2        margin  F
            2    5     3  signedExtent  F
    MethodParameters:
      Name  Flags
      line  

  private float getLineExtent(int, boolean);
    descriptor: (IZ)F
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=12, args_size=3
        start local 0 // android.text.Layout this
        start local 1 // int line
        start local 2 // boolean full
         0: .line 1340
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 3 /* start */
        start local 3 // int start
         1: .line 1341
            iload 2 /* full */
            ifeq 2
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            goto 3
      StackMap locals: int
      StackMap stack:
         2: aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineVisibleEnd:(I)I
      StackMap locals:
      StackMap stack: int
         3: istore 4 /* end */
        start local 4 // int end
         4: .line 1343
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineContainsTab:(I)Z
            istore 5 /* hasTabs */
        start local 5 // boolean hasTabs
         5: .line 1344
            aconst_null
            astore 6 /* tabStops */
        start local 6 // android.text.Layout$TabStops tabStops
         6: .line 1345
            iload 5 /* hasTabs */
            ifeq 10
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            instanceof android.text.Spanned
            ifeq 10
         7: .line 1348
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            checkcast android.text.Spanned
            iload 3 /* start */
            iload 4 /* end */
            ldc Landroid/text/style/TabStopSpan;
            invokestatic android.text.Layout.getParagraphSpans:(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.TabStopSpan[]
            astore 7 /* tabs */
        start local 7 // android.text.style.TabStopSpan[] tabs
         8: .line 1349
            aload 7 /* tabs */
            arraylength
            ifle 10
         9: .line 1350
            new android.text.Layout$TabStops
            dup
            bipush 20
            aload 7 /* tabs */
            invokespecial android.text.Layout$TabStops.<init>:(I[Ljava/lang/Object;)V
            astore 6 /* tabStops */
        end local 7 // android.text.style.TabStopSpan[] tabs
        10: .line 1353
      StackMap locals: int int android.text.Layout$TabStops
      StackMap stack:
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineDirections:(I)Landroid/text/Layout$Directions;
            astore 7 /* directions */
        start local 7 // android.text.Layout$Directions directions
        11: .line 1355
            aload 7 /* directions */
            ifnonnull 13
        12: .line 1356
            fconst_0
            freturn
        13: .line 1358
      StackMap locals: android.text.Layout$Directions
      StackMap stack:
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            istore 8 /* dir */
        start local 8 // int dir
        14: .line 1360
            invokestatic android.text.TextLine.obtain:()Landroid/text/TextLine;
            astore 9 /* tl */
        start local 9 // android.text.TextLine tl
        15: .line 1361
            aload 0 /* this */
            getfield android.text.Layout.mWorkPaint:Landroid/text/TextPaint;
            astore 10 /* paint */
        start local 10 // android.text.TextPaint paint
        16: .line 1362
            aload 10 /* paint */
            aload 0 /* this */
            getfield android.text.Layout.mPaint:Landroid/text/TextPaint;
            invokevirtual android.text.TextPaint.set:(Landroid/text/TextPaint;)V
        17: .line 1363
            aload 10 /* paint */
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getHyphen:(I)I
            invokevirtual android.text.TextPaint.setHyphenEdit:(I)V
        18: .line 1364
            aload 9 /* tl */
            aload 10 /* paint */
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            iload 3 /* start */
            iload 4 /* end */
            iload 8 /* dir */
            aload 7 /* directions */
            iload 5 /* hasTabs */
            aload 6 /* tabStops */
            invokevirtual android.text.TextLine.set:(Landroid/text/TextPaint;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;ZLandroid/text/Layout$TabStops;)V
        19: .line 1365
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.isJustificationRequired:(I)Z
            ifeq 21
        20: .line 1366
            aload 9 /* tl */
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getJustifyWidth:(I)F
            invokevirtual android.text.TextLine.justify:(F)V
        21: .line 1368
      StackMap locals: int android.text.TextLine android.text.TextPaint
      StackMap stack:
            aload 9 /* tl */
            aconst_null
            invokevirtual android.text.TextLine.metrics:(Landroid/graphics/Paint$FontMetricsInt;)F
            fstore 11 /* width */
        start local 11 // float width
        22: .line 1369
            aload 9 /* tl */
            invokestatic android.text.TextLine.recycle:(Landroid/text/TextLine;)Landroid/text/TextLine;
            pop
        23: .line 1370
            fload 11 /* width */
            freturn
        end local 11 // float width
        end local 10 // android.text.TextPaint paint
        end local 9 // android.text.TextLine tl
        end local 8 // int dir
        end local 7 // android.text.Layout$Directions directions
        end local 6 // android.text.Layout$TabStops tabStops
        end local 5 // boolean hasTabs
        end local 4 // int end
        end local 3 // int start
        end local 2 // boolean full
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0        this  Landroid/text/Layout;
            0   24     1        line  I
            0   24     2        full  Z
            1   24     3       start  I
            4   24     4         end  I
            5   24     5     hasTabs  Z
            6   24     6    tabStops  Landroid/text/Layout$TabStops;
            8   10     7        tabs  [Landroid/text/style/TabStopSpan;
           11   24     7  directions  Landroid/text/Layout$Directions;
           14   24     8         dir  I
           15   24     9          tl  Landroid/text/TextLine;
           16   24    10       paint  Landroid/text/TextPaint;
           22   24    11       width  F
    MethodParameters:
      Name  Flags
      line  
      full  

  private float getLineExtent(int, android.text.Layout$TabStops, boolean);
    descriptor: (ILandroid/text/Layout$TabStops;Z)F
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=12, args_size=4
        start local 0 // android.text.Layout this
        start local 1 // int line
        start local 2 // android.text.Layout$TabStops tabStops
        start local 3 // boolean full
         0: .line 1382
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 4 /* start */
        start local 4 // int start
         1: .line 1383
            iload 3 /* full */
            ifeq 2
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            goto 3
      StackMap locals: int
      StackMap stack:
         2: aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineVisibleEnd:(I)I
      StackMap locals:
      StackMap stack: int
         3: istore 5 /* end */
        start local 5 // int end
         4: .line 1384
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineContainsTab:(I)Z
            istore 6 /* hasTabs */
        start local 6 // boolean hasTabs
         5: .line 1385
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineDirections:(I)Landroid/text/Layout$Directions;
            astore 7 /* directions */
        start local 7 // android.text.Layout$Directions directions
         6: .line 1386
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            istore 8 /* dir */
        start local 8 // int dir
         7: .line 1388
            invokestatic android.text.TextLine.obtain:()Landroid/text/TextLine;
            astore 9 /* tl */
        start local 9 // android.text.TextLine tl
         8: .line 1389
            aload 0 /* this */
            getfield android.text.Layout.mWorkPaint:Landroid/text/TextPaint;
            astore 10 /* paint */
        start local 10 // android.text.TextPaint paint
         9: .line 1390
            aload 10 /* paint */
            aload 0 /* this */
            getfield android.text.Layout.mPaint:Landroid/text/TextPaint;
            invokevirtual android.text.TextPaint.set:(Landroid/text/TextPaint;)V
        10: .line 1391
            aload 10 /* paint */
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getHyphen:(I)I
            invokevirtual android.text.TextPaint.setHyphenEdit:(I)V
        11: .line 1392
            aload 9 /* tl */
            aload 10 /* paint */
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            iload 4 /* start */
            iload 5 /* end */
            iload 8 /* dir */
            aload 7 /* directions */
            iload 6 /* hasTabs */
            aload 2 /* tabStops */
            invokevirtual android.text.TextLine.set:(Landroid/text/TextPaint;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;ZLandroid/text/Layout$TabStops;)V
        12: .line 1393
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.isJustificationRequired:(I)Z
            ifeq 14
        13: .line 1394
            aload 9 /* tl */
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getJustifyWidth:(I)F
            invokevirtual android.text.TextLine.justify:(F)V
        14: .line 1396
      StackMap locals: android.text.Layout int android.text.Layout$TabStops int int int int android.text.Layout$Directions int android.text.TextLine android.text.TextPaint
      StackMap stack:
            aload 9 /* tl */
            aconst_null
            invokevirtual android.text.TextLine.metrics:(Landroid/graphics/Paint$FontMetricsInt;)F
            fstore 11 /* width */
        start local 11 // float width
        15: .line 1397
            aload 9 /* tl */
            invokestatic android.text.TextLine.recycle:(Landroid/text/TextLine;)Landroid/text/TextLine;
            pop
        16: .line 1398
            fload 11 /* width */
            freturn
        end local 11 // float width
        end local 10 // android.text.TextPaint paint
        end local 9 // android.text.TextLine tl
        end local 8 // int dir
        end local 7 // android.text.Layout$Directions directions
        end local 6 // boolean hasTabs
        end local 5 // int end
        end local 4 // int start
        end local 3 // boolean full
        end local 2 // android.text.Layout$TabStops tabStops
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Landroid/text/Layout;
            0   17     1        line  I
            0   17     2    tabStops  Landroid/text/Layout$TabStops;
            0   17     3        full  Z
            1   17     4       start  I
            4   17     5         end  I
            5   17     6     hasTabs  Z
            6   17     7  directions  Landroid/text/Layout$Directions;
            7   17     8         dir  I
            8   17     9          tl  Landroid/text/TextLine;
            9   17    10       paint  Landroid/text/TextPaint;
           15   17    11       width  F
    MethodParameters:
          Name  Flags
      line      
      tabStops  
      full      

  public int getLineForVertical(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int vertical
         0: .line 1408
            aload 0 /* this */
            invokevirtual android.text.Layout.getLineCount:()I
            istore 2 /* high */
        start local 2 // int high
         1: iconst_m1
            istore 3 /* low */
        start local 3 // int low
         2: .line 1410
            goto 7
         3: .line 1411
      StackMap locals: int int
      StackMap stack:
            iload 2 /* high */
            iload 3 /* low */
            iadd
            iconst_2
            idiv
            istore 4 /* guess */
        start local 4 // int guess
         4: .line 1413
            aload 0 /* this */
            iload 4 /* guess */
            invokevirtual android.text.Layout.getLineTop:(I)I
            iload 1 /* vertical */
            if_icmple 6
         5: .line 1414
            iload 4 /* guess */
            istore 2 /* high */
            goto 7
         6: .line 1416
      StackMap locals: int
      StackMap stack:
            iload 4 /* guess */
            istore 3 /* low */
        end local 4 // int guess
         7: .line 1410
      StackMap locals:
      StackMap stack:
            iload 2 /* high */
            iload 3 /* low */
            isub
            iconst_1
            if_icmpgt 3
         8: .line 1419
            iload 3 /* low */
            ifge 10
         9: .line 1420
            iconst_0
            ireturn
        10: .line 1422
      StackMap locals:
      StackMap stack:
            iload 3 /* low */
            ireturn
        end local 3 // int low
        end local 2 // int high
        end local 1 // int vertical
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Landroid/text/Layout;
            0   11     1  vertical  I
            1   11     2      high  I
            2   11     3       low  I
            4    7     4     guess  I
    MethodParameters:
          Name  Flags
      vertical  

  public int getLineForOffset(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int offset
         0: .line 1431
            aload 0 /* this */
            invokevirtual android.text.Layout.getLineCount:()I
            istore 2 /* high */
        start local 2 // int high
         1: iconst_m1
            istore 3 /* low */
        start local 3 // int low
         2: .line 1433
            goto 7
         3: .line 1434
      StackMap locals: int int
      StackMap stack:
            iload 2 /* high */
            iload 3 /* low */
            iadd
            iconst_2
            idiv
            istore 4 /* guess */
        start local 4 // int guess
         4: .line 1436
            aload 0 /* this */
            iload 4 /* guess */
            invokevirtual android.text.Layout.getLineStart:(I)I
            iload 1 /* offset */
            if_icmple 6
         5: .line 1437
            iload 4 /* guess */
            istore 2 /* high */
            goto 7
         6: .line 1439
      StackMap locals: int
      StackMap stack:
            iload 4 /* guess */
            istore 3 /* low */
        end local 4 // int guess
         7: .line 1433
      StackMap locals:
      StackMap stack:
            iload 2 /* high */
            iload 3 /* low */
            isub
            iconst_1
            if_icmpgt 3
         8: .line 1442
            iload 3 /* low */
            ifge 10
         9: .line 1443
            iconst_0
            ireturn
        10: .line 1445
      StackMap locals:
      StackMap stack:
            iload 3 /* low */
            ireturn
        end local 3 // int low
        end local 2 // int high
        end local 1 // int offset
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Landroid/text/Layout;
            0   11     1  offset  I
            1   11     2    high  I
            2   11     3     low  I
            4    7     4   guess  I
    MethodParameters:
        Name  Flags
      offset  

  public int getOffsetForHorizontal(int, float);
    descriptor: (IF)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.text.Layout this
        start local 1 // int line
        start local 2 // float horiz
         0: .line 1454
            aload 0 /* this */
            iload 1 /* line */
            fload 2 /* horiz */
            iconst_1
            invokevirtual android.text.Layout.getOffsetForHorizontal:(IFZ)I
            ireturn
        end local 2 // float horiz
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Landroid/text/Layout;
            0    1     1   line  I
            0    1     2  horiz  F
    MethodParameters:
       Name  Flags
      line   
      horiz  

  public int getOffsetForHorizontal(int, float, boolean);
    descriptor: (IFZ)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=23, args_size=4
        start local 0 // android.text.Layout this
        start local 1 // int line
        start local 2 // float horiz
        start local 3 // boolean primary
         0: .line 1469
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            istore 4 /* lineEndOffset */
        start local 4 // int lineEndOffset
         1: .line 1470
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 5 /* lineStartOffset */
        start local 5 // int lineStartOffset
         2: .line 1472
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineDirections:(I)Landroid/text/Layout$Directions;
            astore 6 /* dirs */
        start local 6 // android.text.Layout$Directions dirs
         3: .line 1474
            invokestatic android.text.TextLine.obtain:()Landroid/text/TextLine;
            astore 7 /* tl */
        start local 7 // android.text.TextLine tl
         4: .line 1476
            aload 7 /* tl */
            aload 0 /* this */
            getfield android.text.Layout.mPaint:Landroid/text/TextPaint;
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            iload 5 /* lineStartOffset */
            iload 4 /* lineEndOffset */
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            aload 6 /* dirs */
         5: .line 1477
            iconst_0
            aconst_null
         6: .line 1476
            invokevirtual android.text.TextLine.set:(Landroid/text/TextPaint;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;ZLandroid/text/Layout$TabStops;)V
         7: .line 1479
            new android.text.Layout$HorizontalMeasurementProvider
            dup
            aload 0 /* this */
            iload 1 /* line */
            iload 3 /* primary */
            invokespecial android.text.Layout$HorizontalMeasurementProvider.<init>:(Landroid/text/Layout;IZ)V
         8: .line 1478
            astore 8 /* horizontal */
        start local 8 // android.text.Layout$HorizontalMeasurementProvider horizontal
         9: .line 1482
            iload 1 /* line */
            aload 0 /* this */
            invokevirtual android.text.Layout.getLineCount:()I
            iconst_1
            isub
            if_icmpne 12
        10: .line 1483
            iload 4 /* lineEndOffset */
            istore 9 /* max */
        start local 9 // int max
        11: .line 1484
            goto 18
        end local 9 // int max
        12: .line 1485
      StackMap locals: android.text.Layout int float int int int android.text.Layout$Directions android.text.TextLine android.text.Layout$HorizontalMeasurementProvider
      StackMap stack:
            aload 7 /* tl */
            iload 4 /* lineEndOffset */
            iload 5 /* lineStartOffset */
            isub
        13: .line 1486
            aload 0 /* this */
            iload 4 /* lineEndOffset */
            iconst_1
            isub
            invokevirtual android.text.Layout.isRtlCharAt:(I)Z
            ifeq 14
            iconst_0
            goto 15
      StackMap locals: android.text.Layout int float int int int android.text.Layout$Directions android.text.TextLine android.text.Layout$HorizontalMeasurementProvider
      StackMap stack: android.text.TextLine int
        14: iconst_1
        15: .line 1485
      StackMap locals: android.text.Layout int float int int int android.text.Layout$Directions android.text.TextLine android.text.Layout$HorizontalMeasurementProvider
      StackMap stack: android.text.TextLine int int
            invokevirtual android.text.TextLine.getOffsetToLeftRightOf:(IZ)I
        16: .line 1486
            iload 5 /* lineStartOffset */
        17: .line 1485
            iadd
            istore 9 /* max */
        start local 9 // int max
        18: .line 1488
      StackMap locals: int
      StackMap stack:
            iload 5 /* lineStartOffset */
            istore 10 /* best */
        start local 10 // int best
        19: .line 1489
            aload 8 /* horizontal */
            iload 5 /* lineStartOffset */
            invokevirtual android.text.Layout$HorizontalMeasurementProvider.get:(I)F
            fload 2 /* horiz */
            fsub
            invokestatic java.lang.Math.abs:(F)F
            fstore 11 /* bestdist */
        start local 11 // float bestdist
        20: .line 1491
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        21: goto 64
        22: .line 1492
      StackMap locals: int float int
      StackMap stack:
            iload 5 /* lineStartOffset */
            aload 6 /* dirs */
            getfield android.text.Layout$Directions.mDirections:[I
            iload 12 /* i */
            iaload
            iadd
            istore 13 /* here */
        start local 13 // int here
        23: .line 1493
            iload 13 /* here */
            aload 6 /* dirs */
            getfield android.text.Layout$Directions.mDirections:[I
            iload 12 /* i */
            iconst_1
            iadd
            iaload
            ldc 67108863
            iand
            iadd
            istore 14 /* there */
        start local 14 // int there
        24: .line 1494
            aload 6 /* dirs */
            getfield android.text.Layout$Directions.mDirections:[I
            iload 12 /* i */
            iconst_1
            iadd
            iaload
            ldc 67108864
            iand
            ifeq 25
            iconst_1
            goto 26
      StackMap locals: int int
      StackMap stack:
        25: iconst_0
      StackMap locals:
      StackMap stack: int
        26: istore 15 /* isRtl */
        start local 15 // boolean isRtl
        27: .line 1495
            iload 15 /* isRtl */
            ifeq 28
            iconst_m1
            goto 29
      StackMap locals: int
      StackMap stack:
        28: iconst_1
      StackMap locals:
      StackMap stack: int
        29: istore 16 /* swap */
        start local 16 // int swap
        30: .line 1497
            iload 14 /* there */
            iload 9 /* max */
            if_icmple 32
        31: .line 1498
            iload 9 /* max */
            istore 14 /* there */
        32: .line 1499
      StackMap locals: int
      StackMap stack:
            iload 14 /* there */
            iconst_1
            isub
            iconst_1
            iadd
            istore 17 /* high */
        start local 17 // int high
        33: iload 13 /* here */
            iconst_1
            iadd
            iconst_1
            isub
            istore 18 /* low */
        start local 18 // int low
        34: .line 1501
            goto 41
        35: .line 1502
      StackMap locals: int int
      StackMap stack:
            iload 17 /* high */
            iload 18 /* low */
            iadd
            iconst_2
            idiv
            istore 19 /* guess */
        start local 19 // int guess
        36: .line 1503
            aload 0 /* this */
            iload 19 /* guess */
            invokevirtual android.text.Layout.getOffsetAtStartOf:(I)I
            istore 20 /* adguess */
        start local 20 // int adguess
        37: .line 1505
            aload 8 /* horizontal */
            iload 20 /* adguess */
            invokevirtual android.text.Layout$HorizontalMeasurementProvider.get:(I)F
            iload 16 /* swap */
            i2f
            fmul
            fload 2 /* horiz */
            iload 16 /* swap */
            i2f
            fmul
            fcmpl
            iflt 40
        38: .line 1506
            iload 19 /* guess */
            istore 17 /* high */
        39: .line 1507
            goto 41
        40: .line 1508
      StackMap locals: int int
      StackMap stack:
            iload 19 /* guess */
            istore 18 /* low */
        end local 20 // int adguess
        end local 19 // int guess
        41: .line 1501
      StackMap locals:
      StackMap stack:
            iload 17 /* high */
            iload 18 /* low */
            isub
            iconst_1
            if_icmpgt 35
        42: .line 1512
            iload 18 /* low */
            iload 13 /* here */
            iconst_1
            iadd
            if_icmpge 44
        43: .line 1513
            iload 13 /* here */
            iconst_1
            iadd
            istore 18 /* low */
        44: .line 1515
      StackMap locals:
      StackMap stack:
            iload 18 /* low */
            iload 14 /* there */
            if_icmpge 59
        45: .line 1516
            aload 7 /* tl */
            iload 18 /* low */
            iload 5 /* lineStartOffset */
            isub
            iload 15 /* isRtl */
            invokevirtual android.text.TextLine.getOffsetToLeftRightOf:(IZ)I
            iload 5 /* lineStartOffset */
            iadd
            istore 20 /* aft */
        start local 20 // int aft
        46: .line 1517
            aload 7 /* tl */
            iload 20 /* aft */
            iload 5 /* lineStartOffset */
            isub
            iload 15 /* isRtl */
            ifeq 47
            iconst_0
            goto 48
      StackMap locals: android.text.Layout int float int int int android.text.Layout$Directions android.text.TextLine android.text.Layout$HorizontalMeasurementProvider int int float int int int int int int int top int
      StackMap stack: android.text.TextLine int
        47: iconst_1
      StackMap locals: android.text.Layout int float int int int android.text.Layout$Directions android.text.TextLine android.text.Layout$HorizontalMeasurementProvider int int float int int int int int int int top int
      StackMap stack: android.text.TextLine int int
        48: invokevirtual android.text.TextLine.getOffsetToLeftRightOf:(IZ)I
            iload 5 /* lineStartOffset */
            iadd
            istore 18 /* low */
        49: .line 1518
            iload 18 /* low */
            iload 13 /* here */
            if_icmplt 59
            iload 18 /* low */
            iload 14 /* there */
            if_icmpge 59
        50: .line 1519
            aload 8 /* horizontal */
            iload 18 /* low */
            invokevirtual android.text.Layout$HorizontalMeasurementProvider.get:(I)F
            fload 2 /* horiz */
            fsub
            invokestatic java.lang.Math.abs:(F)F
            fstore 21 /* dist */
        start local 21 // float dist
        51: .line 1520
            iload 20 /* aft */
            iload 14 /* there */
            if_icmpge 56
        52: .line 1521
            aload 8 /* horizontal */
            iload 20 /* aft */
            invokevirtual android.text.Layout$HorizontalMeasurementProvider.get:(I)F
            fload 2 /* horiz */
            fsub
            invokestatic java.lang.Math.abs:(F)F
            fstore 22 /* other */
        start local 22 // float other
        53: .line 1523
            fload 22 /* other */
            fload 21 /* dist */
            fcmpg
            ifge 56
        54: .line 1524
            fload 22 /* other */
            fstore 21 /* dist */
        55: .line 1525
            iload 20 /* aft */
            istore 18 /* low */
        end local 22 // float other
        56: .line 1529
      StackMap locals: float
      StackMap stack:
            fload 21 /* dist */
            fload 11 /* bestdist */
            fcmpg
            ifge 59
        57: .line 1530
            fload 21 /* dist */
            fstore 11 /* bestdist */
        58: .line 1531
            iload 18 /* low */
            istore 10 /* best */
        end local 21 // float dist
        end local 20 // int aft
        59: .line 1536
      StackMap locals: android.text.Layout int float int int int android.text.Layout$Directions android.text.TextLine android.text.Layout$HorizontalMeasurementProvider int int float int int int int int int int
      StackMap stack:
            aload 8 /* horizontal */
            iload 13 /* here */
            invokevirtual android.text.Layout$HorizontalMeasurementProvider.get:(I)F
            fload 2 /* horiz */
            fsub
            invokestatic java.lang.Math.abs:(F)F
            fstore 20 /* dist */
        start local 20 // float dist
        60: .line 1538
            fload 20 /* dist */
            fload 11 /* bestdist */
            fcmpg
            ifge 63
        61: .line 1539
            fload 20 /* dist */
            fstore 11 /* bestdist */
        62: .line 1540
            iload 13 /* here */
            istore 10 /* best */
        end local 20 // float dist
        end local 18 // int low
        end local 17 // int high
        end local 16 // int swap
        end local 15 // boolean isRtl
        end local 14 // int there
        end local 13 // int here
        63: .line 1491
      StackMap locals: android.text.Layout int float int int int android.text.Layout$Directions android.text.TextLine android.text.Layout$HorizontalMeasurementProvider int int float int
      StackMap stack:
            iinc 12 /* i */ 2
      StackMap locals:
      StackMap stack:
        64: iload 12 /* i */
            aload 6 /* dirs */
            getfield android.text.Layout$Directions.mDirections:[I
            arraylength
            if_icmplt 22
        end local 12 // int i
        65: .line 1544
            aload 8 /* horizontal */
            iload 9 /* max */
            invokevirtual android.text.Layout$HorizontalMeasurementProvider.get:(I)F
            fload 2 /* horiz */
            fsub
            invokestatic java.lang.Math.abs:(F)F
            fstore 12 /* dist */
        start local 12 // float dist
        66: .line 1546
            fload 12 /* dist */
            fload 11 /* bestdist */
            fcmpg
            ifgt 68
        67: .line 1547
            iload 9 /* max */
            istore 10 /* best */
        68: .line 1550
      StackMap locals: android.text.Layout int float int int int android.text.Layout$Directions android.text.TextLine android.text.Layout$HorizontalMeasurementProvider int int float float
      StackMap stack:
            aload 7 /* tl */
            invokestatic android.text.TextLine.recycle:(Landroid/text/TextLine;)Landroid/text/TextLine;
            pop
        69: .line 1551
            iload 10 /* best */
            ireturn
        end local 12 // float dist
        end local 11 // float bestdist
        end local 10 // int best
        end local 9 // int max
        end local 8 // android.text.Layout$HorizontalMeasurementProvider horizontal
        end local 7 // android.text.TextLine tl
        end local 6 // android.text.Layout$Directions dirs
        end local 5 // int lineStartOffset
        end local 4 // int lineEndOffset
        end local 3 // boolean primary
        end local 2 // float horiz
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   70     0             this  Landroid/text/Layout;
            0   70     1             line  I
            0   70     2            horiz  F
            0   70     3          primary  Z
            1   70     4    lineEndOffset  I
            2   70     5  lineStartOffset  I
            3   70     6             dirs  Landroid/text/Layout$Directions;
            4   70     7               tl  Landroid/text/TextLine;
            9   70     8       horizontal  Landroid/text/Layout$HorizontalMeasurementProvider;
           11   12     9              max  I
           18   70     9              max  I
           19   70    10             best  I
           20   70    11         bestdist  F
           21   65    12                i  I
           23   63    13             here  I
           24   63    14            there  I
           27   63    15            isRtl  Z
           30   63    16             swap  I
           33   63    17             high  I
           34   63    18              low  I
           36   41    19            guess  I
           37   41    20          adguess  I
           46   59    20              aft  I
           51   59    21             dist  F
           53   56    22            other  F
           60   63    20             dist  F
           66   70    12             dist  F
    MethodParameters:
         Name  Flags
      line     
      horiz    
      primary  

  public final int getLineEnd(int);
    descriptor: (I)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 1599
            aload 0 /* this */
            iload 1 /* line */
            iconst_1
            iadd
            invokevirtual android.text.Layout.getLineStart:(I)I
            ireturn
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;
            0    1     1  line  I
    MethodParameters:
      Name  Flags
      line  

  public int getLineVisibleEnd(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 1607
            aload 0 /* this */
            iload 1 /* line */
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            aload 0 /* this */
            iload 1 /* line */
            iconst_1
            iadd
            invokevirtual android.text.Layout.getLineStart:(I)I
            invokevirtual android.text.Layout.getLineVisibleEnd:(III)I
            ireturn
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;
            0    1     1  line  I
    MethodParameters:
      Name  Flags
      line  

  private int getLineVisibleEnd(int, int, int);
    descriptor: (III)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // android.text.Layout this
        start local 1 // int line
        start local 2 // int start
        start local 3 // int end
         0: .line 1611
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            astore 4 /* text */
        start local 4 // java.lang.CharSequence text
         1: .line 1613
            iload 1 /* line */
            aload 0 /* this */
            invokevirtual android.text.Layout.getLineCount:()I
            iconst_1
            isub
            if_icmpne 9
         2: .line 1614
            iload 3 /* end */
            ireturn
         3: .line 1618
      StackMap locals: java.lang.CharSequence
      StackMap stack:
            aload 4 /* text */
            iload 3 /* end */
            iconst_1
            isub
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 5 /* ch */
        start local 5 // char ch
         4: .line 1620
            iload 5 /* ch */
            bipush 10
            if_icmpne 6
         5: .line 1621
            iload 3 /* end */
            iconst_1
            isub
            ireturn
         6: .line 1624
      StackMap locals: int
      StackMap stack:
            iload 5 /* ch */
            invokestatic android.text.TextLine.isLineEndSpace:(C)Z
            ifne 8
         7: .line 1625
            goto 10
         8: .line 1617
      StackMap locals:
      StackMap stack:
            iinc 3 /* end */ -1
        end local 5 // char ch
      StackMap locals:
      StackMap stack:
         9: iload 3 /* end */
            iload 2 /* start */
            if_icmpgt 3
        10: .line 1630
      StackMap locals:
      StackMap stack:
            iload 3 /* end */
            ireturn
        end local 4 // java.lang.CharSequence text
        end local 3 // int end
        end local 2 // int start
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Landroid/text/Layout;
            0   11     1   line  I
            0   11     2  start  I
            0   11     3    end  I
            1   11     4   text  Ljava/lang/CharSequence;
            4    9     5     ch  C
    MethodParameters:
       Name  Flags
      line   
      start  
      end    

  public final int getLineBottom(int);
    descriptor: (I)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 1637
            aload 0 /* this */
            iload 1 /* line */
            iconst_1
            iadd
            invokevirtual android.text.Layout.getLineTop:(I)I
            ireturn
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;
            0    1     1  line  I
    MethodParameters:
      Name  Flags
      line  

  public final int getLineBottomWithoutSpacing(int);
    descriptor: (I)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 1647
            aload 0 /* this */
            iload 1 /* line */
            iconst_1
            iadd
            invokevirtual android.text.Layout.getLineTop:(I)I
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineExtra:(I)I
            isub
            ireturn
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;
            0    1     1  line  I
    MethodParameters:
      Name  Flags
      line  

  public final int getLineBaseline(int);
    descriptor: (I)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 1655
            aload 0 /* this */
            iload 1 /* line */
            iconst_1
            iadd
            invokevirtual android.text.Layout.getLineTop:(I)I
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineDescent:(I)I
            isub
            ireturn
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;
            0    1     1  line  I
    MethodParameters:
      Name  Flags
      line  

  public final int getLineAscent(int);
    descriptor: (I)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 1664
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineTop:(I)I
            aload 0 /* this */
            iload 1 /* line */
            iconst_1
            iadd
            invokevirtual android.text.Layout.getLineTop:(I)I
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineDescent:(I)I
            isub
            isub
            ireturn
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;
            0    1     1  line  I
    MethodParameters:
      Name  Flags
      line  

  public int getLineExtra(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 1675
            iconst_0
            ireturn
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;
            0    1     1  line  I
    MethodParameters:
      Name  Flags
      line  

  public int getOffsetToLeftOf(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int offset
         0: .line 1679
            aload 0 /* this */
            iload 1 /* offset */
            iconst_1
            invokevirtual android.text.Layout.getOffsetToLeftRightOf:(IZ)I
            ireturn
        end local 1 // int offset
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/text/Layout;
            0    1     1  offset  I
    MethodParameters:
        Name  Flags
      offset  

  public int getOffsetToRightOf(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int offset
         0: .line 1683
            aload 0 /* this */
            iload 1 /* offset */
            iconst_0
            invokevirtual android.text.Layout.getOffsetToLeftRightOf:(IZ)I
            ireturn
        end local 1 // int offset
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/text/Layout;
            0    1     1  offset  I
    MethodParameters:
        Name  Flags
      offset  

  private int getOffsetToLeftRightOf(int, boolean);
    descriptor: (IZ)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=11, args_size=3
        start local 0 // android.text.Layout this
        start local 1 // int caret
        start local 2 // boolean toLeft
         0: .line 1687
            aload 0 /* this */
            iload 1 /* caret */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 3 /* line */
        start local 3 // int line
         1: .line 1688
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 4 /* lineStart */
        start local 4 // int lineStart
         2: .line 1689
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            istore 5 /* lineEnd */
        start local 5 // int lineEnd
         3: .line 1690
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            istore 6 /* lineDir */
        start local 6 // int lineDir
         4: .line 1692
            iconst_0
            istore 7 /* lineChanged */
        start local 7 // boolean lineChanged
         5: .line 1693
            iload 2 /* toLeft */
            iload 6 /* lineDir */
            iconst_m1
            if_icmpne 6
            iconst_1
            goto 7
      StackMap locals: android.text.Layout int int int int int int int
      StackMap stack: int
         6: iconst_0
      StackMap locals: android.text.Layout int int int int int int int
      StackMap stack: int int
         7: if_icmpne 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 8 /* advance */
        start local 8 // boolean advance
        10: .line 1695
            iload 8 /* advance */
            ifeq 17
        11: .line 1696
            iload 1 /* caret */
            iload 5 /* lineEnd */
            if_icmpne 23
        12: .line 1697
            iload 3 /* line */
            aload 0 /* this */
            invokevirtual android.text.Layout.getLineCount:()I
            iconst_1
            isub
            if_icmpge 16
        13: .line 1698
            iconst_1
            istore 7 /* lineChanged */
        14: .line 1699
            iinc 3 /* line */ 1
        15: .line 1700
            goto 23
        16: .line 1701
      StackMap locals: int
      StackMap stack:
            iload 1 /* caret */
            ireturn
        17: .line 1705
      StackMap locals:
      StackMap stack:
            iload 1 /* caret */
            iload 4 /* lineStart */
            if_icmpne 23
        18: .line 1706
            iload 3 /* line */
            ifle 22
        19: .line 1707
            iconst_1
            istore 7 /* lineChanged */
        20: .line 1708
            iinc 3 /* line */ -1
        21: .line 1709
            goto 23
        22: .line 1710
      StackMap locals:
      StackMap stack:
            iload 1 /* caret */
            ireturn
        23: .line 1715
      StackMap locals:
      StackMap stack:
            iload 7 /* lineChanged */
            ifeq 32
        24: .line 1716
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 4 /* lineStart */
        25: .line 1717
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            istore 5 /* lineEnd */
        26: .line 1718
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            istore 9 /* newDir */
        start local 9 // int newDir
        27: .line 1719
            iload 9 /* newDir */
            iload 6 /* lineDir */
            if_icmpeq 32
        28: .line 1723
            iload 2 /* toLeft */
            ifeq 29
            iconst_0
            goto 30
      StackMap locals: int
      StackMap stack:
        29: iconst_1
      StackMap locals:
      StackMap stack: int
        30: istore 2 /* toLeft */
        31: .line 1724
            iload 9 /* newDir */
            istore 6 /* lineDir */
        end local 9 // int newDir
        32: .line 1728
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getLineDirections:(I)Landroid/text/Layout$Directions;
            astore 9 /* directions */
        start local 9 // android.text.Layout$Directions directions
        33: .line 1730
            invokestatic android.text.TextLine.obtain:()Landroid/text/TextLine;
            astore 10 /* tl */
        start local 10 // android.text.TextLine tl
        34: .line 1732
            aload 10 /* tl */
            aload 0 /* this */
            getfield android.text.Layout.mPaint:Landroid/text/TextPaint;
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            iload 4 /* lineStart */
            iload 5 /* lineEnd */
            iload 6 /* lineDir */
            aload 9 /* directions */
            iconst_0
            aconst_null
            invokevirtual android.text.TextLine.set:(Landroid/text/TextPaint;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;ZLandroid/text/Layout$TabStops;)V
        35: .line 1733
            iload 4 /* lineStart */
            aload 10 /* tl */
            iload 1 /* caret */
            iload 4 /* lineStart */
            isub
            iload 2 /* toLeft */
            invokevirtual android.text.TextLine.getOffsetToLeftRightOf:(IZ)I
            iadd
            istore 1 /* caret */
        36: .line 1734
            aload 10 /* tl */
            invokestatic android.text.TextLine.recycle:(Landroid/text/TextLine;)Landroid/text/TextLine;
            pop
        37: .line 1735
            iload 1 /* caret */
            ireturn
        end local 10 // android.text.TextLine tl
        end local 9 // android.text.Layout$Directions directions
        end local 8 // boolean advance
        end local 7 // boolean lineChanged
        end local 6 // int lineDir
        end local 5 // int lineEnd
        end local 4 // int lineStart
        end local 3 // int line
        end local 2 // boolean toLeft
        end local 1 // int caret
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   38     0         this  Landroid/text/Layout;
            0   38     1        caret  I
            0   38     2       toLeft  Z
            1   38     3         line  I
            2   38     4    lineStart  I
            3   38     5      lineEnd  I
            4   38     6      lineDir  I
            5   38     7  lineChanged  Z
           10   38     8      advance  Z
           27   32     9       newDir  I
           33   38     9   directions  Landroid/text/Layout$Directions;
           34   38    10           tl  Landroid/text/TextLine;
    MethodParameters:
        Name  Flags
      caret   
      toLeft  

  private int getOffsetAtStartOf(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int offset
         0: .line 1741
            iload 1 /* offset */
            ifne 2
         1: .line 1742
            iconst_0
            ireturn
         2: .line 1744
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            astore 2 /* text */
        start local 2 // java.lang.CharSequence text
         3: .line 1745
            aload 2 /* text */
            iload 1 /* offset */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 3 /* c */
        start local 3 // char c
         4: .line 1747
            iload 3 /* c */
            ldc 56320
            if_icmplt 8
            iload 3 /* c */
            ldc 57343
            if_icmpgt 8
         5: .line 1748
            aload 2 /* text */
            iload 1 /* offset */
            iconst_1
            isub
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 4 /* c1 */
        start local 4 // char c1
         6: .line 1750
            iload 4 /* c1 */
            ldc 55296
            if_icmplt 8
            iload 4 /* c1 */
            ldc 56319
            if_icmpgt 8
         7: .line 1751
            iinc 1 /* offset */ -1
        end local 4 // char c1
         8: .line 1754
      StackMap locals: java.lang.CharSequence int
      StackMap stack:
            aload 0 /* this */
            getfield android.text.Layout.mSpannedText:Z
            ifeq 20
         9: .line 1755
            aload 2 /* text */
            checkcast android.text.Spanned
            iload 1 /* offset */
            iload 1 /* offset */
        10: .line 1756
            ldc Landroid/text/style/ReplacementSpan;
        11: .line 1755
            invokeinterface android.text.Spanned.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.ReplacementSpan[]
            astore 4 /* spans */
        start local 4 // android.text.style.ReplacementSpan[] spans
        12: .line 1758
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        13: goto 19
        14: .line 1759
      StackMap locals: android.text.style.ReplacementSpan[] int
      StackMap stack:
            aload 2 /* text */
            checkcast android.text.Spanned
            aload 4 /* spans */
            iload 5 /* i */
            aaload
            invokeinterface android.text.Spanned.getSpanStart:(Ljava/lang/Object;)I
            istore 6 /* start */
        start local 6 // int start
        15: .line 1760
            aload 2 /* text */
            checkcast android.text.Spanned
            aload 4 /* spans */
            iload 5 /* i */
            aaload
            invokeinterface android.text.Spanned.getSpanEnd:(Ljava/lang/Object;)I
            istore 7 /* end */
        start local 7 // int end
        16: .line 1762
            iload 6 /* start */
            iload 1 /* offset */
            if_icmpge 18
            iload 7 /* end */
            iload 1 /* offset */
            if_icmple 18
        17: .line 1763
            iload 6 /* start */
            istore 1 /* offset */
        end local 7 // int end
        end local 6 // int start
        18: .line 1758
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 5 /* i */
            aload 4 /* spans */
            arraylength
            if_icmplt 14
        end local 5 // int i
        end local 4 // android.text.style.ReplacementSpan[] spans
        20: .line 1767
      StackMap locals:
      StackMap stack:
            iload 1 /* offset */
            ireturn
        end local 3 // char c
        end local 2 // java.lang.CharSequence text
        end local 1 // int offset
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   21     0    this  Landroid/text/Layout;
            0   21     1  offset  I
            3   21     2    text  Ljava/lang/CharSequence;
            4   21     3       c  C
            6    8     4      c1  C
           12   20     4   spans  [Landroid/text/style/ReplacementSpan;
           13   20     5       i  I
           15   18     6   start  I
           16   18     7     end  I
    MethodParameters:
        Name  Flags
      offset  

  public boolean shouldClampCursor(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 1777
            invokestatic android.text.Layout.$SWITCH_TABLE$android$text$Layout$Alignment:()[I
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphAlignment:(I)Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout$Alignment.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 2
                    2: 4
                    3: 4
                    4: 1
              default: 4
          }
         1: .line 1779
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 1781
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            ifle 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
         4: .line 1783
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/text/Layout;
            0    5     1  line  I
    MethodParameters:
      Name  Flags
      line  

  public void getCursorPath(int, android.graphics.Path, java.lang.CharSequence);
    descriptor: (ILandroid/graphics/Path;Ljava/lang/CharSequence;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=13, args_size=4
        start local 0 // android.text.Layout this
        start local 1 // int point
        start local 2 // android.graphics.Path dest
        start local 3 // java.lang.CharSequence editingBuffer
         0: .line 1794
            aload 2 /* dest */
            invokevirtual android.graphics.Path.reset:()V
         1: .line 1796
            aload 0 /* this */
            iload 1 /* point */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 4 /* line */
        start local 4 // int line
         2: .line 1797
            aload 0 /* this */
            iload 4 /* line */
            invokevirtual android.text.Layout.getLineTop:(I)I
            istore 5 /* top */
        start local 5 // int top
         3: .line 1798
            aload 0 /* this */
            iload 4 /* line */
            invokevirtual android.text.Layout.getLineBottomWithoutSpacing:(I)I
            istore 6 /* bottom */
        start local 6 // int bottom
         4: .line 1800
            aload 0 /* this */
            iload 4 /* line */
            invokevirtual android.text.Layout.shouldClampCursor:(I)Z
            istore 7 /* clamped */
        start local 7 // boolean clamped
         5: .line 1801
            aload 0 /* this */
            iload 1 /* point */
            iload 7 /* clamped */
            invokevirtual android.text.Layout.getPrimaryHorizontal:(IZ)F
            ldc 0.5
            fsub
            fstore 8 /* h1 */
        start local 8 // float h1
         6: .line 1802
            aload 0 /* this */
            iload 1 /* point */
            invokevirtual android.text.Layout.isLevelBoundary:(I)Z
            ifeq 7
            aload 0 /* this */
            iload 1 /* point */
            iload 7 /* clamped */
            invokevirtual android.text.Layout.getSecondaryHorizontal:(IZ)F
            ldc 0.5
            fsub
            goto 8
      StackMap locals: android.text.Layout int android.graphics.Path java.lang.CharSequence int int int int float
      StackMap stack:
         7: fload 8 /* h1 */
      StackMap locals:
      StackMap stack: float
         8: fstore 9 /* h2 */
        start local 9 // float h2
         9: .line 1804
            aload 3 /* editingBuffer */
            iconst_1
            invokestatic android.text.method.TextKeyListener.getMetaState:(Ljava/lang/CharSequence;I)I
        10: .line 1805
            aload 3 /* editingBuffer */
            sipush 2048
            invokestatic android.text.method.TextKeyListener.getMetaState:(Ljava/lang/CharSequence;I)I
        11: .line 1804
            ior
            istore 10 /* caps */
        start local 10 // int caps
        12: .line 1806
            aload 3 /* editingBuffer */
            iconst_2
            invokestatic android.text.method.TextKeyListener.getMetaState:(Ljava/lang/CharSequence;I)I
            istore 11 /* fn */
        start local 11 // int fn
        13: .line 1807
            iconst_0
            istore 12 /* dist */
        start local 12 // int dist
        14: .line 1809
            iload 10 /* caps */
            ifne 15
            iload 11 /* fn */
            ifeq 20
        15: .line 1810
      StackMap locals: android.text.Layout int android.graphics.Path java.lang.CharSequence int int int int float float int int int
      StackMap stack:
            iload 6 /* bottom */
            iload 5 /* top */
            isub
            iconst_2
            ishr
            istore 12 /* dist */
        16: .line 1812
            iload 11 /* fn */
            ifeq 18
        17: .line 1813
            iload 5 /* top */
            iload 12 /* dist */
            iadd
            istore 5 /* top */
        18: .line 1814
      StackMap locals:
      StackMap stack:
            iload 10 /* caps */
            ifeq 20
        19: .line 1815
            iload 6 /* bottom */
            iload 12 /* dist */
            isub
            istore 6 /* bottom */
        20: .line 1818
      StackMap locals:
      StackMap stack:
            fload 8 /* h1 */
            ldc 0.5
            fcmpg
            ifge 22
        21: .line 1819
            ldc 0.5
            fstore 8 /* h1 */
        22: .line 1820
      StackMap locals:
      StackMap stack:
            fload 9 /* h2 */
            ldc 0.5
            fcmpg
            ifge 24
        23: .line 1821
            ldc 0.5
            fstore 9 /* h2 */
        24: .line 1823
      StackMap locals:
      StackMap stack:
            fload 8 /* h1 */
            fload 9 /* h2 */
            invokestatic java.lang.Float.compare:(FF)I
            ifne 28
        25: .line 1824
            aload 2 /* dest */
            fload 8 /* h1 */
            iload 5 /* top */
            i2f
            invokevirtual android.graphics.Path.moveTo:(FF)V
        26: .line 1825
            aload 2 /* dest */
            fload 8 /* h1 */
            iload 6 /* bottom */
            i2f
            invokevirtual android.graphics.Path.lineTo:(FF)V
        27: .line 1826
            goto 32
        28: .line 1827
      StackMap locals:
      StackMap stack:
            aload 2 /* dest */
            fload 8 /* h1 */
            iload 5 /* top */
            i2f
            invokevirtual android.graphics.Path.moveTo:(FF)V
        29: .line 1828
            aload 2 /* dest */
            fload 8 /* h1 */
            iload 5 /* top */
            iload 6 /* bottom */
            iadd
            iconst_1
            ishr
            i2f
            invokevirtual android.graphics.Path.lineTo:(FF)V
        30: .line 1830
            aload 2 /* dest */
            fload 9 /* h2 */
            iload 5 /* top */
            iload 6 /* bottom */
            iadd
            iconst_1
            ishr
            i2f
            invokevirtual android.graphics.Path.moveTo:(FF)V
        31: .line 1831
            aload 2 /* dest */
            fload 9 /* h2 */
            iload 6 /* bottom */
            i2f
            invokevirtual android.graphics.Path.lineTo:(FF)V
        32: .line 1834
      StackMap locals:
      StackMap stack:
            iload 10 /* caps */
            iconst_2
            if_icmpne 38
        33: .line 1835
            aload 2 /* dest */
            fload 9 /* h2 */
            iload 6 /* bottom */
            i2f
            invokevirtual android.graphics.Path.moveTo:(FF)V
        34: .line 1836
            aload 2 /* dest */
            fload 9 /* h2 */
            iload 12 /* dist */
            i2f
            fsub
            iload 6 /* bottom */
            iload 12 /* dist */
            iadd
            i2f
            invokevirtual android.graphics.Path.lineTo:(FF)V
        35: .line 1837
            aload 2 /* dest */
            fload 9 /* h2 */
            iload 6 /* bottom */
            i2f
            invokevirtual android.graphics.Path.lineTo:(FF)V
        36: .line 1838
            aload 2 /* dest */
            fload 9 /* h2 */
            iload 12 /* dist */
            i2f
            fadd
            iload 6 /* bottom */
            iload 12 /* dist */
            iadd
            i2f
            invokevirtual android.graphics.Path.lineTo:(FF)V
        37: .line 1839
            goto 45
      StackMap locals:
      StackMap stack:
        38: iload 10 /* caps */
            iconst_1
            if_icmpne 45
        39: .line 1840
            aload 2 /* dest */
            fload 9 /* h2 */
            iload 6 /* bottom */
            i2f
            invokevirtual android.graphics.Path.moveTo:(FF)V
        40: .line 1841
            aload 2 /* dest */
            fload 9 /* h2 */
            iload 12 /* dist */
            i2f
            fsub
            iload 6 /* bottom */
            iload 12 /* dist */
            iadd
            i2f
            invokevirtual android.graphics.Path.lineTo:(FF)V
        41: .line 1843
            aload 2 /* dest */
            fload 9 /* h2 */
            iload 12 /* dist */
            i2f
            fsub
            iload 6 /* bottom */
            iload 12 /* dist */
            iadd
            i2f
            ldc 0.5
            fsub
            invokevirtual android.graphics.Path.moveTo:(FF)V
        42: .line 1844
            aload 2 /* dest */
            fload 9 /* h2 */
            iload 12 /* dist */
            i2f
            fadd
            iload 6 /* bottom */
            iload 12 /* dist */
            iadd
            i2f
            ldc 0.5
            fsub
            invokevirtual android.graphics.Path.lineTo:(FF)V
        43: .line 1846
            aload 2 /* dest */
            fload 9 /* h2 */
            iload 12 /* dist */
            i2f
            fadd
            iload 6 /* bottom */
            iload 12 /* dist */
            iadd
            i2f
            invokevirtual android.graphics.Path.moveTo:(FF)V
        44: .line 1847
            aload 2 /* dest */
            fload 9 /* h2 */
            iload 6 /* bottom */
            i2f
            invokevirtual android.graphics.Path.lineTo:(FF)V
        45: .line 1850
      StackMap locals:
      StackMap stack:
            iload 11 /* fn */
            iconst_2
            if_icmpne 51
        46: .line 1851
            aload 2 /* dest */
            fload 8 /* h1 */
            iload 5 /* top */
            i2f
            invokevirtual android.graphics.Path.moveTo:(FF)V
        47: .line 1852
            aload 2 /* dest */
            fload 8 /* h1 */
            iload 12 /* dist */
            i2f
            fsub
            iload 5 /* top */
            iload 12 /* dist */
            isub
            i2f
            invokevirtual android.graphics.Path.lineTo:(FF)V
        48: .line 1853
            aload 2 /* dest */
            fload 8 /* h1 */
            iload 5 /* top */
            i2f
            invokevirtual android.graphics.Path.lineTo:(FF)V
        49: .line 1854
            aload 2 /* dest */
            fload 8 /* h1 */
            iload 12 /* dist */
            i2f
            fadd
            iload 5 /* top */
            iload 12 /* dist */
            isub
            i2f
            invokevirtual android.graphics.Path.lineTo:(FF)V
        50: .line 1855
            goto 58
      StackMap locals:
      StackMap stack:
        51: iload 11 /* fn */
            iconst_1
            if_icmpne 58
        52: .line 1856
            aload 2 /* dest */
            fload 8 /* h1 */
            iload 5 /* top */
            i2f
            invokevirtual android.graphics.Path.moveTo:(FF)V
        53: .line 1857
            aload 2 /* dest */
            fload 8 /* h1 */
            iload 12 /* dist */
            i2f
            fsub
            iload 5 /* top */
            iload 12 /* dist */
            isub
            i2f
            invokevirtual android.graphics.Path.lineTo:(FF)V
        54: .line 1859
            aload 2 /* dest */
            fload 8 /* h1 */
            iload 12 /* dist */
            i2f
            fsub
            iload 5 /* top */
            iload 12 /* dist */
            isub
            i2f
            ldc 0.5
            fadd
            invokevirtual android.graphics.Path.moveTo:(FF)V
        55: .line 1860
            aload 2 /* dest */
            fload 8 /* h1 */
            iload 12 /* dist */
            i2f
            fadd
            iload 5 /* top */
            iload 12 /* dist */
            isub
            i2f
            ldc 0.5
            fadd
            invokevirtual android.graphics.Path.lineTo:(FF)V
        56: .line 1862
            aload 2 /* dest */
            fload 8 /* h1 */
            iload 12 /* dist */
            i2f
            fadd
            iload 5 /* top */
            iload 12 /* dist */
            isub
            i2f
            invokevirtual android.graphics.Path.moveTo:(FF)V
        57: .line 1863
            aload 2 /* dest */
            fload 8 /* h1 */
            iload 5 /* top */
            i2f
            invokevirtual android.graphics.Path.lineTo:(FF)V
        58: .line 1865
      StackMap locals:
      StackMap stack:
            return
        end local 12 // int dist
        end local 11 // int fn
        end local 10 // int caps
        end local 9 // float h2
        end local 8 // float h1
        end local 7 // boolean clamped
        end local 6 // int bottom
        end local 5 // int top
        end local 4 // int line
        end local 3 // java.lang.CharSequence editingBuffer
        end local 2 // android.graphics.Path dest
        end local 1 // int point
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   59     0           this  Landroid/text/Layout;
            0   59     1          point  I
            0   59     2           dest  Landroid/graphics/Path;
            0   59     3  editingBuffer  Ljava/lang/CharSequence;
            2   59     4           line  I
            3   59     5            top  I
            4   59     6         bottom  I
            5   59     7        clamped  Z
            6   59     8             h1  F
            9   59     9             h2  F
           12   59    10           caps  I
           13   59    11             fn  I
           14   59    12           dist  I
    MethodParameters:
               Name  Flags
      point          final
      dest           final
      editingBuffer  final

  private void addSelection(int, int, int, int, int, android.text.Layout$SelectionRectangleConsumer);
    descriptor: (IIIIILandroid/text/Layout$SelectionRectangleConsumer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=20, args_size=7
        start local 0 // android.text.Layout this
        start local 1 // int line
        start local 2 // int start
        start local 3 // int end
        start local 4 // int top
        start local 5 // int bottom
        start local 6 // android.text.Layout$SelectionRectangleConsumer consumer
         0: .line 1869
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 7 /* linestart */
        start local 7 // int linestart
         1: .line 1870
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            istore 8 /* lineend */
        start local 8 // int lineend
         2: .line 1871
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineDirections:(I)Landroid/text/Layout$Directions;
            astore 9 /* dirs */
        start local 9 // android.text.Layout$Directions dirs
         3: .line 1873
            iload 8 /* lineend */
            iload 7 /* linestart */
            if_icmple 5
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            iload 8 /* lineend */
            iconst_1
            isub
            invokeinterface java.lang.CharSequence.charAt:(I)C
            bipush 10
            if_icmpne 5
         4: .line 1874
            iinc 8 /* lineend */ -1
         5: .line 1877
      StackMap locals: int int android.text.Layout$Directions
      StackMap stack:
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         6: goto 25
         7: .line 1878
      StackMap locals: int
      StackMap stack:
            iload 7 /* linestart */
            aload 9 /* dirs */
            getfield android.text.Layout$Directions.mDirections:[I
            iload 10 /* i */
            iaload
            iadd
            istore 11 /* here */
        start local 11 // int here
         8: .line 1879
            iload 11 /* here */
            aload 9 /* dirs */
            getfield android.text.Layout$Directions.mDirections:[I
            iload 10 /* i */
            iconst_1
            iadd
            iaload
            ldc 67108863
            iand
            iadd
            istore 12 /* there */
        start local 12 // int there
         9: .line 1881
            iload 12 /* there */
            iload 8 /* lineend */
            if_icmple 11
        10: .line 1882
            iload 8 /* lineend */
            istore 12 /* there */
        11: .line 1885
      StackMap locals: int int
      StackMap stack:
            iload 2 /* start */
            iload 12 /* there */
            if_icmpgt 24
            iload 3 /* end */
            iload 11 /* here */
            if_icmplt 24
        12: .line 1886
            iload 2 /* start */
            iload 11 /* here */
            invokestatic java.lang.Math.max:(II)I
            istore 13 /* st */
        start local 13 // int st
        13: .line 1887
            iload 3 /* end */
            iload 12 /* there */
            invokestatic java.lang.Math.min:(II)I
            istore 14 /* en */
        start local 14 // int en
        14: .line 1889
            iload 13 /* st */
            iload 14 /* en */
            if_icmpeq 24
        15: .line 1890
            aload 0 /* this */
            iload 13 /* st */
            iconst_0
            iload 1 /* line */
            iconst_0
            invokevirtual android.text.Layout.getHorizontal:(IZIZ)F
            fstore 15 /* h1 */
        start local 15 // float h1
        16: .line 1891
            aload 0 /* this */
            iload 14 /* en */
            iconst_1
            iload 1 /* line */
            iconst_0
            invokevirtual android.text.Layout.getHorizontal:(IZIZ)F
            fstore 16 /* h2 */
        start local 16 // float h2
        17: .line 1893
            fload 15 /* h1 */
            fload 16 /* h2 */
            invokestatic java.lang.Math.min:(FF)F
            fstore 17 /* left */
        start local 17 // float left
        18: .line 1894
            fload 15 /* h1 */
            fload 16 /* h2 */
            invokestatic java.lang.Math.max:(FF)F
            fstore 18 /* right */
        start local 18 // float right
        19: .line 1897
            aload 9 /* dirs */
            getfield android.text.Layout$Directions.mDirections:[I
            iload 10 /* i */
            iconst_1
            iadd
            iaload
            ldc 67108864
            iand
            ifeq 21
        20: .line 1898
            iconst_0
            goto 22
        21: .line 1899
      StackMap locals: android.text.Layout int int int int int android.text.Layout$SelectionRectangleConsumer int int android.text.Layout$Directions int int int int int float float float float
      StackMap stack:
            iconst_1
        22: .line 1896
      StackMap locals:
      StackMap stack: int
            istore 19 /* layout */
        start local 19 // int layout
        23: .line 1901
            aload 6 /* consumer */
            fload 17 /* left */
            iload 4 /* top */
            i2f
            fload 18 /* right */
            iload 5 /* bottom */
            i2f
            iload 19 /* layout */
            invokeinterface android.text.Layout$SelectionRectangleConsumer.accept:(FFFFI)V
        end local 19 // int layout
        end local 18 // float right
        end local 17 // float left
        end local 16 // float h2
        end local 15 // float h1
        end local 14 // int en
        end local 13 // int st
        end local 12 // int there
        end local 11 // int here
        24: .line 1877
      StackMap locals: android.text.Layout int int int int int android.text.Layout$SelectionRectangleConsumer int int android.text.Layout$Directions int
      StackMap stack:
            iinc 10 /* i */ 2
      StackMap locals:
      StackMap stack:
        25: iload 10 /* i */
            aload 9 /* dirs */
            getfield android.text.Layout$Directions.mDirections:[I
            arraylength
            if_icmplt 7
        end local 10 // int i
        26: .line 1905
            return
        end local 9 // android.text.Layout$Directions dirs
        end local 8 // int lineend
        end local 7 // int linestart
        end local 6 // android.text.Layout$SelectionRectangleConsumer consumer
        end local 5 // int bottom
        end local 4 // int top
        end local 3 // int end
        end local 2 // int start
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   27     0       this  Landroid/text/Layout;
            0   27     1       line  I
            0   27     2      start  I
            0   27     3        end  I
            0   27     4        top  I
            0   27     5     bottom  I
            0   27     6   consumer  Landroid/text/Layout$SelectionRectangleConsumer;
            1   27     7  linestart  I
            2   27     8    lineend  I
            3   27     9       dirs  Landroid/text/Layout$Directions;
            6   26    10          i  I
            8   24    11       here  I
            9   24    12      there  I
           13   24    13         st  I
           14   24    14         en  I
           16   24    15         h1  F
           17   24    16         h2  F
           18   24    17       left  F
           19   24    18      right  F
           23   24    19     layout  I
    MethodParameters:
          Name  Flags
      line      
      start     
      end       
      top       
      bottom    
      consumer  

  public void getSelectionPath(int, int, android.graphics.Path);
    descriptor: (IILandroid/graphics/Path;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.text.Layout this
        start local 1 // int start
        start local 2 // int end
        start local 3 // android.graphics.Path dest
         0: .line 1914
            aload 3 /* dest */
            invokevirtual android.graphics.Path.reset:()V
         1: .line 1915
            aload 0 /* this */
            iload 1 /* start */
            iload 2 /* end */
            aload 3 /* dest */
            invokedynamic accept(Landroid/graphics/Path;)Landroid/text/Layout$SelectionRectangleConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (FFFFI)V
                  android/text/Layout.lambda$0(Landroid/graphics/Path;FFFFI)V (6)
                  (FFFFI)V
            invokevirtual android.text.Layout.getSelection:(IILandroid/text/Layout$SelectionRectangleConsumer;)V
         2: .line 1917
            return
        end local 3 // android.graphics.Path dest
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Landroid/text/Layout;
            0    3     1  start  I
            0    3     2    end  I
            0    3     3   dest  Landroid/graphics/Path;
    MethodParameters:
       Name  Flags
      start  
      end    
      dest   

  public final void getSelection(int, int, android.text.Layout$SelectionRectangleConsumer);
    descriptor: (IILandroid/text/Layout$SelectionRectangleConsumer;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=7, locals=10, args_size=4
        start local 0 // android.text.Layout this
        start local 1 // int start
        start local 2 // int end
        start local 3 // android.text.Layout$SelectionRectangleConsumer consumer
         0: .line 1931
            iload 1 /* start */
            iload 2 /* end */
            if_icmpne 2
         1: .line 1932
            return
         2: .line 1935
      StackMap locals:
      StackMap stack:
            iload 2 /* end */
            iload 1 /* start */
            if_icmpge 6
         3: .line 1936
            iload 2 /* end */
            istore 4 /* temp */
        start local 4 // int temp
         4: .line 1937
            iload 1 /* start */
            istore 2 /* end */
         5: .line 1938
            iload 4 /* temp */
            istore 1 /* start */
        end local 4 // int temp
         6: .line 1941
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* start */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 4 /* startline */
        start local 4 // int startline
         7: .line 1942
            aload 0 /* this */
            iload 2 /* end */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 5 /* endline */
        start local 5 // int endline
         8: .line 1944
            aload 0 /* this */
            iload 4 /* startline */
            invokevirtual android.text.Layout.getLineTop:(I)I
            istore 6 /* top */
        start local 6 // int top
         9: .line 1945
            aload 0 /* this */
            iload 5 /* endline */
            invokevirtual android.text.Layout.getLineBottomWithoutSpacing:(I)I
            istore 7 /* bottom */
        start local 7 // int bottom
        10: .line 1947
            iload 4 /* startline */
            iload 5 /* endline */
            if_icmpne 13
        11: .line 1948
            aload 0 /* this */
            iload 4 /* startline */
            iload 1 /* start */
            iload 2 /* end */
            iload 6 /* top */
            iload 7 /* bottom */
            aload 3 /* consumer */
            invokevirtual android.text.Layout.addSelection:(IIIIILandroid/text/Layout$SelectionRectangleConsumer;)V
        12: .line 1949
            goto 46
        13: .line 1950
      StackMap locals: android.text.Layout int int android.text.Layout$SelectionRectangleConsumer int int int int
      StackMap stack:
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            i2f
            fstore 8 /* width */
        start local 8 // float width
        14: .line 1952
            aload 0 /* this */
            iload 4 /* startline */
            iload 1 /* start */
            aload 0 /* this */
            iload 4 /* startline */
            invokevirtual android.text.Layout.getLineEnd:(I)I
        15: .line 1953
            iload 6 /* top */
            aload 0 /* this */
            iload 4 /* startline */
            invokevirtual android.text.Layout.getLineBottom:(I)I
            aload 3 /* consumer */
        16: .line 1952
            invokevirtual android.text.Layout.addSelection:(IIIIILandroid/text/Layout$SelectionRectangleConsumer;)V
        17: .line 1955
            aload 0 /* this */
            iload 4 /* startline */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            iconst_m1
            if_icmpne 22
        18: .line 1956
            aload 3 /* consumer */
            aload 0 /* this */
            iload 4 /* startline */
            invokevirtual android.text.Layout.getLineLeft:(I)F
            iload 6 /* top */
            i2f
            fconst_0
            aload 0 /* this */
            iload 4 /* startline */
            invokevirtual android.text.Layout.getLineBottom:(I)I
            i2f
        19: .line 1957
            iconst_0
        20: .line 1956
            invokeinterface android.text.Layout$SelectionRectangleConsumer.accept:(FFFFI)V
        21: .line 1958
            goto 25
        22: .line 1959
      StackMap locals: float
      StackMap stack:
            aload 3 /* consumer */
            aload 0 /* this */
            iload 4 /* startline */
            invokevirtual android.text.Layout.getLineRight:(I)F
            iload 6 /* top */
            i2f
            fload 8 /* width */
            aload 0 /* this */
            iload 4 /* startline */
            invokevirtual android.text.Layout.getLineBottom:(I)I
            i2f
        23: .line 1960
            iconst_1
        24: .line 1959
            invokeinterface android.text.Layout$SelectionRectangleConsumer.accept:(FFFFI)V
        25: .line 1963
      StackMap locals:
      StackMap stack:
            iload 4 /* startline */
            iconst_1
            iadd
            istore 9 /* i */
        start local 9 // int i
        26: goto 34
        27: .line 1964
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 9 /* i */
            invokevirtual android.text.Layout.getLineTop:(I)I
            istore 6 /* top */
        28: .line 1965
            aload 0 /* this */
            iload 9 /* i */
            invokevirtual android.text.Layout.getLineBottom:(I)I
            istore 7 /* bottom */
        29: .line 1966
            aload 0 /* this */
            iload 9 /* i */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            iconst_m1
            if_icmpne 32
        30: .line 1967
            aload 3 /* consumer */
            fconst_0
            iload 6 /* top */
            i2f
            fload 8 /* width */
            iload 7 /* bottom */
            i2f
            iconst_0
            invokeinterface android.text.Layout$SelectionRectangleConsumer.accept:(FFFFI)V
        31: .line 1968
            goto 33
        32: .line 1969
      StackMap locals:
      StackMap stack:
            aload 3 /* consumer */
            fconst_0
            iload 6 /* top */
            i2f
            fload 8 /* width */
            iload 7 /* bottom */
            i2f
            iconst_1
            invokeinterface android.text.Layout$SelectionRectangleConsumer.accept:(FFFFI)V
        33: .line 1963
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 9 /* i */
            iload 5 /* endline */
            if_icmplt 27
        end local 9 // int i
        35: .line 1973
            aload 0 /* this */
            iload 5 /* endline */
            invokevirtual android.text.Layout.getLineTop:(I)I
            istore 6 /* top */
        36: .line 1974
            aload 0 /* this */
            iload 5 /* endline */
            invokevirtual android.text.Layout.getLineBottomWithoutSpacing:(I)I
            istore 7 /* bottom */
        37: .line 1976
            aload 0 /* this */
            iload 5 /* endline */
            aload 0 /* this */
            iload 5 /* endline */
            invokevirtual android.text.Layout.getLineStart:(I)I
            iload 2 /* end */
            iload 6 /* top */
            iload 7 /* bottom */
            aload 3 /* consumer */
            invokevirtual android.text.Layout.addSelection:(IIIIILandroid/text/Layout$SelectionRectangleConsumer;)V
        38: .line 1978
            aload 0 /* this */
            iload 5 /* endline */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            iconst_m1
            if_icmpne 43
        39: .line 1979
            aload 3 /* consumer */
            fload 8 /* width */
            iload 6 /* top */
            i2f
            aload 0 /* this */
            iload 5 /* endline */
            invokevirtual android.text.Layout.getLineRight:(I)F
            iload 7 /* bottom */
            i2f
        40: .line 1980
            iconst_0
        41: .line 1979
            invokeinterface android.text.Layout$SelectionRectangleConsumer.accept:(FFFFI)V
        42: .line 1981
            goto 46
        43: .line 1982
      StackMap locals:
      StackMap stack:
            aload 3 /* consumer */
            fconst_0
            iload 6 /* top */
            i2f
            aload 0 /* this */
            iload 5 /* endline */
            invokevirtual android.text.Layout.getLineLeft:(I)F
            iload 7 /* bottom */
            i2f
        44: .line 1983
            iconst_1
        45: .line 1982
            invokeinterface android.text.Layout$SelectionRectangleConsumer.accept:(FFFFI)V
        end local 8 // float width
        46: .line 1986
      StackMap locals:
      StackMap stack:
            return
        end local 7 // int bottom
        end local 6 // int top
        end local 5 // int endline
        end local 4 // int startline
        end local 3 // android.text.Layout$SelectionRectangleConsumer consumer
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   47     0       this  Landroid/text/Layout;
            0   47     1      start  I
            0   47     2        end  I
            0   47     3   consumer  Landroid/text/Layout$SelectionRectangleConsumer;
            4    6     4       temp  I
            7   47     4  startline  I
            8   47     5    endline  I
            9   47     6        top  I
           10   47     7     bottom  I
           14   46     8      width  F
           26   35     9          i  I
    MethodParameters:
          Name  Flags
      start     
      end       
      consumer  final

  public final android.text.Layout$Alignment getParagraphAlignment(int);
    descriptor: (I)Landroid/text/Layout$Alignment;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 1993
            aload 0 /* this */
            getfield android.text.Layout.mAlignment:Landroid/text/Layout$Alignment;
            astore 2 /* align */
        start local 2 // android.text.Layout$Alignment align
         1: .line 1995
            aload 0 /* this */
            getfield android.text.Layout.mSpannedText:Z
            ifeq 10
         2: .line 1996
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            checkcast android.text.Spanned
            astore 3 /* sp */
        start local 3 // android.text.Spanned sp
         3: .line 1997
            aload 3 /* sp */
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
         4: .line 1998
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineEnd:(I)I
         5: .line 1999
            ldc Landroid/text/style/AlignmentSpan;
         6: .line 1997
            invokestatic android.text.Layout.getParagraphSpans:(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.AlignmentSpan[]
            astore 4 /* spans */
        start local 4 // android.text.style.AlignmentSpan[] spans
         7: .line 2001
            aload 4 /* spans */
            arraylength
            istore 5 /* spanLength */
        start local 5 // int spanLength
         8: .line 2002
            iload 5 /* spanLength */
            ifle 10
         9: .line 2003
            aload 4 /* spans */
            iload 5 /* spanLength */
            iconst_1
            isub
            aaload
            invokeinterface android.text.style.AlignmentSpan.getAlignment:()Landroid/text/Layout$Alignment;
            astore 2 /* align */
        end local 5 // int spanLength
        end local 4 // android.text.style.AlignmentSpan[] spans
        end local 3 // android.text.Spanned sp
        10: .line 2007
      StackMap locals: android.text.Layout$Alignment
      StackMap stack:
            aload 2 /* align */
            areturn
        end local 2 // android.text.Layout$Alignment align
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Landroid/text/Layout;
            0   11     1        line  I
            1   11     2       align  Landroid/text/Layout$Alignment;
            3   10     3          sp  Landroid/text/Spanned;
            7   10     4       spans  [Landroid/text/style/AlignmentSpan;
            8   10     5  spanLength  I
    MethodParameters:
      Name  Flags
      line  

  public final int getParagraphLeft(int);
    descriptor: (I)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 2014
            iconst_0
            istore 2 /* left */
        start local 2 // int left
         1: .line 2015
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            istore 3 /* dir */
        start local 3 // int dir
         2: .line 2016
            iload 3 /* dir */
            iconst_m1
            if_icmpeq 3
            aload 0 /* this */
            getfield android.text.Layout.mSpannedText:Z
            ifne 4
         3: .line 2017
      StackMap locals: int int
      StackMap stack:
            iload 2 /* left */
            ireturn
         4: .line 2019
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphLeadingMargin:(I)I
            ireturn
        end local 3 // int dir
        end local 2 // int left
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/text/Layout;
            0    5     1  line  I
            1    5     2  left  I
            2    5     3   dir  I
    MethodParameters:
      Name  Flags
      line  

  public final int getParagraphRight(int);
    descriptor: (I)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 2026
            aload 0 /* this */
            getfield android.text.Layout.mWidth:I
            istore 2 /* right */
        start local 2 // int right
         1: .line 2027
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            istore 3 /* dir */
        start local 3 // int dir
         2: .line 2028
            iload 3 /* dir */
            iconst_1
            if_icmpeq 3
            aload 0 /* this */
            getfield android.text.Layout.mSpannedText:Z
            ifne 4
         3: .line 2029
      StackMap locals: int int
      StackMap stack:
            iload 2 /* right */
            ireturn
         4: .line 2031
      StackMap locals:
      StackMap stack:
            iload 2 /* right */
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getParagraphLeadingMargin:(I)I
            isub
            ireturn
        end local 3 // int dir
        end local 2 // int right
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Landroid/text/Layout;
            0    5     1   line  I
            1    5     2  right  I
            2    5     3    dir  I
    MethodParameters:
      Name  Flags
      line  

  private int getParagraphLeadingMargin(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=13, args_size=2
        start local 0 // android.text.Layout this
        start local 1 // int line
         0: .line 2041
            aload 0 /* this */
            getfield android.text.Layout.mSpannedText:Z
            ifne 2
         1: .line 2042
            iconst_0
            ireturn
         2: .line 2044
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.text.Layout.mText:Ljava/lang/CharSequence;
            checkcast android.text.Spanned
            astore 2 /* spanned */
        start local 2 // android.text.Spanned spanned
         3: .line 2046
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 3 /* lineStart */
        start local 3 // int lineStart
         4: .line 2047
            aload 0 /* this */
            iload 1 /* line */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            istore 4 /* lineEnd */
        start local 4 // int lineEnd
         5: .line 2048
            aload 2 /* spanned */
            iload 3 /* lineStart */
            iload 4 /* lineEnd */
         6: .line 2049
            ldc Landroid/text/style/LeadingMarginSpan;
         7: .line 2048
            invokeinterface android.text.Spanned.nextSpanTransition:(IILjava/lang/Class;)I
            istore 5 /* spanEnd */
        start local 5 // int spanEnd
         8: .line 2050
            aload 2 /* spanned */
            iload 3 /* lineStart */
            iload 5 /* spanEnd */
         9: .line 2051
            ldc Landroid/text/style/LeadingMarginSpan;
        10: .line 2050
            invokestatic android.text.Layout.getParagraphSpans:(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.LeadingMarginSpan[]
            astore 6 /* spans */
        start local 6 // android.text.style.LeadingMarginSpan[] spans
        11: .line 2052
            aload 6 /* spans */
            arraylength
            ifne 13
        12: .line 2053
            iconst_0
            ireturn
        13: .line 2056
      StackMap locals: android.text.Layout int android.text.Spanned int int int android.text.style.LeadingMarginSpan[]
      StackMap stack:
            iconst_0
            istore 7 /* margin */
        start local 7 // int margin
        14: .line 2058
            iload 3 /* lineStart */
            ifeq 15
            aload 2 /* spanned */
            iload 3 /* lineStart */
            iconst_1
            isub
            invokeinterface android.text.Spanned.charAt:(I)C
            bipush 10
            if_icmpeq 15
            iconst_0
            goto 16
      StackMap locals: int
      StackMap stack:
        15: iconst_1
      StackMap locals:
      StackMap stack: int
        16: istore 8 /* useFirstLineMargin */
        start local 8 // boolean useFirstLineMargin
        17: .line 2059
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        18: goto 27
        19: .line 2060
      StackMap locals: int int
      StackMap stack:
            aload 6 /* spans */
            iload 9 /* i */
            aaload
            instanceof android.text.style.LeadingMarginSpan$LeadingMarginSpan2
            ifeq 26
        20: .line 2061
            aload 2 /* spanned */
            aload 6 /* spans */
            iload 9 /* i */
            aaload
            invokeinterface android.text.Spanned.getSpanStart:(Ljava/lang/Object;)I
            istore 10 /* spStart */
        start local 10 // int spStart
        21: .line 2062
            aload 0 /* this */
            iload 10 /* spStart */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 11 /* spanLine */
        start local 11 // int spanLine
        22: .line 2063
            aload 6 /* spans */
            iload 9 /* i */
            aaload
            checkcast android.text.style.LeadingMarginSpan$LeadingMarginSpan2
            invokeinterface android.text.style.LeadingMarginSpan$LeadingMarginSpan2.getLeadingMarginLineCount:()I
            istore 12 /* count */
        start local 12 // int count
        23: .line 2065
            iload 8 /* useFirstLineMargin */
            iload 1 /* line */
            iload 11 /* spanLine */
            iload 12 /* count */
            iadd
            if_icmpge 24
            iconst_1
            goto 25
      StackMap locals: android.text.Layout int android.text.Spanned int int int android.text.style.LeadingMarginSpan[] int int int int int int
      StackMap stack: int
        24: iconst_0
      StackMap locals: android.text.Layout int android.text.Spanned int int int android.text.style.LeadingMarginSpan[] int int int int int int
      StackMap stack: int int
        25: ior
            istore 8 /* useFirstLineMargin */
        end local 12 // int count
        end local 11 // int spanLine
        end local 10 // int spStart
        26: .line 2059
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 9 /* i */
            aload 6 /* spans */
            arraylength
            if_icmplt 19
        end local 9 // int i
        28: .line 2068
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        29: goto 33
        30: .line 2069
      StackMap locals:
      StackMap stack:
            aload 6 /* spans */
            iload 9 /* i */
            aaload
            astore 10 /* span */
        start local 10 // android.text.style.LeadingMarginSpan span
        31: .line 2070
            iload 7 /* margin */
            aload 10 /* span */
            iload 8 /* useFirstLineMargin */
            invokeinterface android.text.style.LeadingMarginSpan.getLeadingMargin:(Z)I
            iadd
            istore 7 /* margin */
        end local 10 // android.text.style.LeadingMarginSpan span
        32: .line 2068
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 9 /* i */
            aload 6 /* spans */
            arraylength
            if_icmplt 30
        end local 9 // int i
        34: .line 2073
            iload 7 /* margin */
            ireturn
        end local 8 // boolean useFirstLineMargin
        end local 7 // int margin
        end local 6 // android.text.style.LeadingMarginSpan[] spans
        end local 5 // int spanEnd
        end local 4 // int lineEnd
        end local 3 // int lineStart
        end local 2 // android.text.Spanned spanned
        end local 1 // int line
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   35     0                this  Landroid/text/Layout;
            0   35     1                line  I
            3   35     2             spanned  Landroid/text/Spanned;
            4   35     3           lineStart  I
            5   35     4             lineEnd  I
            8   35     5             spanEnd  I
           11   35     6               spans  [Landroid/text/style/LeadingMarginSpan;
           14   35     7              margin  I
           17   35     8  useFirstLineMargin  Z
           18   28     9                   i  I
           21   26    10             spStart  I
           22   26    11            spanLine  I
           23   26    12               count  I
           29   34     9                   i  I
           31   32    10                span  Landroid/text/style/LeadingMarginSpan;
    MethodParameters:
      Name  Flags
      line  

  private static float measurePara(android.text.TextPaint, java.lang.CharSequence, int, int, android.text.TextDirectionHeuristic);
    descriptor: (Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;)F
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=22, args_size=5
        start local 0 // android.text.TextPaint paint
        start local 1 // java.lang.CharSequence text
        start local 2 // int start
        start local 3 // int end
        start local 4 // android.text.TextDirectionHeuristic textDir
         0: .line 2078
            aconst_null
            astore 5 /* mt */
        start local 5 // android.text.MeasuredParagraph mt
         1: .line 2079
            invokestatic android.text.TextLine.obtain:()Landroid/text/TextLine;
            astore 6 /* tl */
        start local 6 // android.text.TextLine tl
         2: .line 2081
            aload 1 /* text */
            iload 2 /* start */
            iload 3 /* end */
            aload 4 /* textDir */
            aload 5 /* mt */
            invokestatic android.text.MeasuredParagraph.buildForBidi:(Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;Landroid/text/MeasuredParagraph;)Landroid/text/MeasuredParagraph;
            astore 5 /* mt */
         3: .line 2082
            aload 5 /* mt */
            invokevirtual android.text.MeasuredParagraph.getChars:()[C
            astore 7 /* chars */
        start local 7 // char[] chars
         4: .line 2083
            aload 7 /* chars */
            arraylength
            istore 8 /* len */
        start local 8 // int len
         5: .line 2084
            aload 5 /* mt */
            iconst_0
            iload 8 /* len */
            invokevirtual android.text.MeasuredParagraph.getDirections:(II)Landroid/text/Layout$Directions;
            astore 9 /* directions */
        start local 9 // android.text.Layout$Directions directions
         6: .line 2085
            aload 5 /* mt */
            invokevirtual android.text.MeasuredParagraph.getParagraphDir:()I
            istore 10 /* dir */
        start local 10 // int dir
         7: .line 2086
            iconst_0
            istore 11 /* hasTabs */
        start local 11 // boolean hasTabs
         8: .line 2087
            aconst_null
            astore 12 /* tabStops */
        start local 12 // android.text.Layout$TabStops tabStops
         9: .line 2089
            iconst_0
            istore 13 /* margin */
        start local 13 // int margin
        10: .line 2090
            aload 1 /* text */
            instanceof android.text.Spanned
            ifeq 20
        11: .line 2091
            aload 1 /* text */
            checkcast android.text.Spanned
            astore 14 /* spanned */
        start local 14 // android.text.Spanned spanned
        12: .line 2092
            aload 14 /* spanned */
            iload 2 /* start */
            iload 3 /* end */
        13: .line 2093
            ldc Landroid/text/style/LeadingMarginSpan;
        14: .line 2092
            invokestatic android.text.Layout.getParagraphSpans:(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.LeadingMarginSpan[]
            astore 15 /* spans */
        start local 15 // android.text.style.LeadingMarginSpan[] spans
        15: .line 2094
            aload 15 /* spans */
            dup
            astore 19
            arraylength
            istore 18
            iconst_0
            istore 17
            goto 19
      StackMap locals: android.text.TextPaint java.lang.CharSequence int int android.text.TextDirectionHeuristic android.text.MeasuredParagraph android.text.TextLine char[] int android.text.Layout$Directions int int android.text.Layout$TabStops int android.text.Spanned android.text.style.LeadingMarginSpan[] top int int android.text.style.LeadingMarginSpan[]
      StackMap stack:
        16: aload 19
            iload 17
            aaload
            astore 16 /* lms */
        start local 16 // android.text.style.LeadingMarginSpan lms
        17: .line 2095
            iload 13 /* margin */
            aload 16 /* lms */
            iconst_1
            invokeinterface android.text.style.LeadingMarginSpan.getLeadingMargin:(Z)I
            iadd
            istore 13 /* margin */
        end local 16 // android.text.style.LeadingMarginSpan lms
        18: .line 2094
            iinc 17 1
      StackMap locals:
      StackMap stack:
        19: iload 17
            iload 18
            if_icmplt 16
        end local 15 // android.text.style.LeadingMarginSpan[] spans
        end local 14 // android.text.Spanned spanned
        20: .line 2098
      StackMap locals: android.text.TextPaint java.lang.CharSequence int int android.text.TextDirectionHeuristic android.text.MeasuredParagraph android.text.TextLine char[] int android.text.Layout$Directions int int android.text.Layout$TabStops int
      StackMap stack:
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        21: goto 36
        22: .line 2099
      StackMap locals: int
      StackMap stack:
            aload 7 /* chars */
            iload 14 /* i */
            caload
            bipush 9
            if_icmpne 35
        23: .line 2100
            iconst_1
            istore 11 /* hasTabs */
        24: .line 2101
            aload 1 /* text */
            instanceof android.text.Spanned
            ifeq 37
        25: .line 2102
            aload 1 /* text */
            checkcast android.text.Spanned
            astore 15 /* spanned */
        start local 15 // android.text.Spanned spanned
        26: .line 2103
            aload 15 /* spanned */
            iload 2 /* start */
            iload 3 /* end */
        27: .line 2104
            ldc Landroid/text/style/TabStopSpan;
        28: .line 2103
            invokeinterface android.text.Spanned.nextSpanTransition:(IILjava/lang/Class;)I
            istore 16 /* spanEnd */
        start local 16 // int spanEnd
        29: .line 2105
            aload 15 /* spanned */
            iload 2 /* start */
            iload 16 /* spanEnd */
        30: .line 2106
            ldc Landroid/text/style/TabStopSpan;
        31: .line 2105
            invokestatic android.text.Layout.getParagraphSpans:(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.TabStopSpan[]
            astore 17 /* spans */
        start local 17 // android.text.style.TabStopSpan[] spans
        32: .line 2107
            aload 17 /* spans */
            arraylength
            ifle 37
        33: .line 2108
            new android.text.Layout$TabStops
            dup
            bipush 20
            aload 17 /* spans */
            invokespecial android.text.Layout$TabStops.<init>:(I[Ljava/lang/Object;)V
            astore 12 /* tabStops */
        end local 17 // android.text.style.TabStopSpan[] spans
        end local 16 // int spanEnd
        end local 15 // android.text.Spanned spanned
        34: .line 2111
            goto 37
        35: .line 2098
      StackMap locals:
      StackMap stack:
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        36: iload 14 /* i */
            iload 8 /* len */
            if_icmplt 22
        end local 14 // int i
        37: .line 2114
      StackMap locals:
      StackMap stack:
            aload 6 /* tl */
            aload 0 /* paint */
            aload 1 /* text */
            iload 2 /* start */
            iload 3 /* end */
            iload 10 /* dir */
            aload 9 /* directions */
            iload 11 /* hasTabs */
            aload 12 /* tabStops */
            invokevirtual android.text.TextLine.set:(Landroid/text/TextPaint;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;ZLandroid/text/Layout$TabStops;)V
        38: .line 2115
            iload 13 /* margin */
            i2f
            aload 6 /* tl */
            aconst_null
            invokevirtual android.text.TextLine.metrics:(Landroid/graphics/Paint$FontMetricsInt;)F
            invokestatic java.lang.Math.abs:(F)F
            fadd
            fstore 21
        39: .line 2117
            aload 6 /* tl */
            invokestatic android.text.TextLine.recycle:(Landroid/text/TextLine;)Landroid/text/TextLine;
            pop
        40: .line 2118
            aload 5 /* mt */
            ifnull 42
        41: .line 2119
            aload 5 /* mt */
            invokevirtual android.text.MeasuredParagraph.recycle:()V
        42: .line 2115
      StackMap locals: android.text.TextPaint java.lang.CharSequence int int android.text.TextDirectionHeuristic android.text.MeasuredParagraph android.text.TextLine char[] int android.text.Layout$Directions int int android.text.Layout$TabStops int top top top top top top top float
      StackMap stack:
            fload 21
            freturn
        end local 13 // int margin
        end local 12 // android.text.Layout$TabStops tabStops
        end local 11 // boolean hasTabs
        end local 10 // int dir
        end local 9 // android.text.Layout$Directions directions
        end local 8 // int len
        end local 7 // char[] chars
        43: .line 2116
      StackMap locals: android.text.TextPaint java.lang.CharSequence int int android.text.TextDirectionHeuristic android.text.MeasuredParagraph android.text.TextLine
      StackMap stack: java.lang.Throwable
            astore 20
        44: .line 2117
            aload 6 /* tl */
            invokestatic android.text.TextLine.recycle:(Landroid/text/TextLine;)Landroid/text/TextLine;
            pop
        45: .line 2118
            aload 5 /* mt */
            ifnull 47
        46: .line 2119
            aload 5 /* mt */
            invokevirtual android.text.MeasuredParagraph.recycle:()V
        47: .line 2121
      StackMap locals: android.text.TextPaint java.lang.CharSequence int int android.text.TextDirectionHeuristic android.text.MeasuredParagraph android.text.TextLine top top top top top top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 20
            athrow
        end local 6 // android.text.TextLine tl
        end local 5 // android.text.MeasuredParagraph mt
        end local 4 // android.text.TextDirectionHeuristic textDir
        end local 3 // int end
        end local 2 // int start
        end local 1 // java.lang.CharSequence text
        end local 0 // android.text.TextPaint paint
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   48     0       paint  Landroid/text/TextPaint;
            0   48     1        text  Ljava/lang/CharSequence;
            0   48     2       start  I
            0   48     3         end  I
            0   48     4     textDir  Landroid/text/TextDirectionHeuristic;
            1   48     5          mt  Landroid/text/MeasuredParagraph;
            2   48     6          tl  Landroid/text/TextLine;
            4   43     7       chars  [C
            5   43     8         len  I
            6   43     9  directions  Landroid/text/Layout$Directions;
            7   43    10         dir  I
            8   43    11     hasTabs  Z
            9   43    12    tabStops  Landroid/text/Layout$TabStops;
           10   43    13      margin  I
           12   20    14     spanned  Landroid/text/Spanned;
           15   20    15       spans  [Landroid/text/style/LeadingMarginSpan;
           17   18    16         lms  Landroid/text/style/LeadingMarginSpan;
           21   37    14           i  I
           26   34    15     spanned  Landroid/text/Spanned;
           29   34    16     spanEnd  I
           32   34    17       spans  [Landroid/text/style/TabStopSpan;
      Exception table:
        from    to  target  type
           2    39      43  any
    MethodParameters:
         Name  Flags
      paint    
      text     
      start    
      end      
      textDir  

  static float nextTab(java.lang.CharSequence, int, int, float, java.lang.Object[]);
    descriptor: (Ljava/lang/CharSequence;IIF[Ljava/lang/Object;)F
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=9, args_size=5
        start local 0 // java.lang.CharSequence text
        start local 1 // int start
        start local 2 // int end
        start local 3 // float h
        start local 4 // java.lang.Object[] tabs
         0: .line 2199
            ldc 3.4028235E38
            fstore 5 /* nh */
        start local 5 // float nh
         1: .line 2200
            iconst_0
            istore 6 /* alltabs */
        start local 6 // boolean alltabs
         2: .line 2202
            aload 0 /* text */
            instanceof android.text.Spanned
            ifeq 18
         3: .line 2203
            aload 4 /* tabs */
            ifnonnull 6
         4: .line 2204
            aload 0 /* text */
            checkcast android.text.Spanned
            iload 1 /* start */
            iload 2 /* end */
            ldc Landroid/text/style/TabStopSpan;
            invokestatic android.text.Layout.getParagraphSpans:(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;
            astore 4 /* tabs */
         5: .line 2205
            iconst_1
            istore 6 /* alltabs */
         6: .line 2208
      StackMap locals: float int
      StackMap stack:
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 15
         8: .line 2209
      StackMap locals: int
      StackMap stack:
            iload 6 /* alltabs */
            ifne 11
         9: .line 2210
            aload 4 /* tabs */
            iload 7 /* i */
            aaload
            instanceof android.text.style.TabStopSpan
            ifne 11
        10: .line 2211
            goto 14
        11: .line 2214
      StackMap locals:
      StackMap stack:
            aload 4 /* tabs */
            iload 7 /* i */
            aaload
            checkcast android.text.style.TabStopSpan
            invokeinterface android.text.style.TabStopSpan.getTabStop:()I
            istore 8 /* where */
        start local 8 // int where
        12: .line 2216
            iload 8 /* where */
            i2f
            fload 5 /* nh */
            fcmpg
            ifge 14
            iload 8 /* where */
            i2f
            fload 3 /* h */
            fcmpl
            ifle 14
        13: .line 2217
            iload 8 /* where */
            i2f
            fstore 5 /* nh */
        end local 8 // int where
        14: .line 2208
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 7 /* i */
            aload 4 /* tabs */
            arraylength
            if_icmplt 8
        end local 7 // int i
        16: .line 2220
            fload 5 /* nh */
            ldc 3.4028235E38
            fcmpl
            ifeq 18
        17: .line 2221
            fload 5 /* nh */
            freturn
        18: .line 2224
      StackMap locals:
      StackMap stack:
            fload 3 /* h */
            ldc 20.0
            fadd
            ldc 20.0
            fdiv
            f2i
            bipush 20
            imul
            i2f
            freturn
        end local 6 // boolean alltabs
        end local 5 // float nh
        end local 4 // java.lang.Object[] tabs
        end local 3 // float h
        end local 2 // int end
        end local 1 // int start
        end local 0 // java.lang.CharSequence text
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     text  Ljava/lang/CharSequence;
            0   19     1    start  I
            0   19     2      end  I
            0   19     3        h  F
            0   19     4     tabs  [Ljava/lang/Object;
            1   19     5       nh  F
            2   19     6  alltabs  Z
            7   16     7        i  I
           12   14     8    where  I
    MethodParameters:
       Name  Flags
      text   
      start  
      end    
      h      
      tabs   

  protected final boolean isSpanned();
    descriptor: ()Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.Layout this
         0: .line 2228
            aload 0 /* this */
            getfield android.text.Layout.mSpannedText:Z
            ireturn
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Layout;

  static <T> T[] getParagraphSpans(android.text.Spanned, int, int, java.lang.Class<T>);
    descriptor: (Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // android.text.Spanned text
        start local 1 // int start
        start local 2 // int end
        start local 3 // java.lang.Class type
         0: .line 2256
            iload 1 /* start */
            iload 2 /* end */
            if_icmpne 2
            iload 1 /* start */
            ifle 2
         1: .line 2257
            aload 3 /* type */
            invokestatic com.android.internal.util.ArrayUtils.emptyArray:(Ljava/lang/Class;)[Ljava/lang/Object;
            areturn
         2: .line 2260
      StackMap locals:
      StackMap stack:
            aload 0 /* text */
            instanceof android.text.SpannableStringBuilder
            ifeq 4
         3: .line 2261
            aload 0 /* text */
            checkcast android.text.SpannableStringBuilder
            iload 1 /* start */
            iload 2 /* end */
            aload 3 /* type */
            iconst_0
            invokevirtual android.text.SpannableStringBuilder.getSpans:(IILjava/lang/Class;Z)[Ljava/lang/Object;
            areturn
         4: .line 2263
      StackMap locals:
      StackMap stack:
            aload 0 /* text */
            iload 1 /* start */
            iload 2 /* end */
            aload 3 /* type */
            invokeinterface android.text.Spanned.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Class type
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.text.Spanned text
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   text  Landroid/text/Spanned;
            0    5     1  start  I
            0    5     2    end  I
            0    5     3   type  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Landroid/text/Spanned;IILjava/lang/Class<TT;>;)[TT;
    MethodParameters:
       Name  Flags
      text   
      start  
      end    
      type   

  private void ellipsize(int, int, int, char[], int, android.text.TextUtils$TruncateAt);
    descriptor: (III[CILandroid/text/TextUtils$TruncateAt;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=16, args_size=7
        start local 0 // android.text.Layout this
        start local 1 // int start
        start local 2 // int end
        start local 3 // int line
        start local 4 // char[] dest
        start local 5 // int destoff
        start local 6 // android.text.TextUtils$TruncateAt method
         0: .line 2269
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getEllipsisCount:(I)I
            istore 7 /* ellipsisCount */
        start local 7 // int ellipsisCount
         1: .line 2270
            iload 7 /* ellipsisCount */
            ifne 3
         2: .line 2271
            return
         3: .line 2273
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getEllipsisStart:(I)I
            istore 8 /* ellipsisStart */
        start local 8 // int ellipsisStart
         4: .line 2274
            aload 0 /* this */
            iload 3 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 9 /* lineStart */
        start local 9 // int lineStart
         5: .line 2276
            aload 6 /* method */
            invokestatic android.text.TextUtils.getEllipsisString:(Landroid/text/TextUtils$TruncateAt;)Ljava/lang/String;
            astore 10 /* ellipsisString */
        start local 10 // java.lang.String ellipsisString
         6: .line 2277
            aload 10 /* ellipsisString */
            invokevirtual java.lang.String.length:()I
            istore 11 /* ellipsisStringLen */
        start local 11 // int ellipsisStringLen
         7: .line 2279
            iload 7 /* ellipsisCount */
            iload 11 /* ellipsisStringLen */
            if_icmplt 8
            iconst_1
            goto 9
      StackMap locals: android.text.Layout int int int char[] int android.text.TextUtils$TruncateAt int int int java.lang.String int
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 12 /* useEllipsisString */
        start local 12 // boolean useEllipsisString
        10: .line 2280
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        11: goto 20
        12: .line 2282
      StackMap locals: int int
      StackMap stack:
            iload 12 /* useEllipsisString */
            ifeq 15
            iload 13 /* i */
            iload 11 /* ellipsisStringLen */
            if_icmpge 15
        13: .line 2283
            aload 10 /* ellipsisString */
            iload 13 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 14 /* c */
        start local 14 // char c
        14: .line 2284
            goto 16
        end local 14 // char c
        15: .line 2285
      StackMap locals:
      StackMap stack:
            ldc 65279
            istore 14 /* c */
        start local 14 // char c
        16: .line 2288
      StackMap locals: int
      StackMap stack:
            iload 13 /* i */
            iload 8 /* ellipsisStart */
            iadd
            iload 9 /* lineStart */
            iadd
            istore 15 /* a */
        start local 15 // int a
        17: .line 2289
            iload 1 /* start */
            iload 15 /* a */
            if_icmpgt 19
            iload 15 /* a */
            iload 2 /* end */
            if_icmpge 19
        18: .line 2290
            aload 4 /* dest */
            iload 5 /* destoff */
            iload 15 /* a */
            iadd
            iload 1 /* start */
            isub
            iload 14 /* c */
            castore
        end local 15 // int a
        end local 14 // char c
        19: .line 2280
      StackMap locals:
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 13 /* i */
            iload 7 /* ellipsisCount */
            if_icmplt 12
        end local 13 // int i
        21: .line 2293
            return
        end local 12 // boolean useEllipsisString
        end local 11 // int ellipsisStringLen
        end local 10 // java.lang.String ellipsisString
        end local 9 // int lineStart
        end local 8 // int ellipsisStart
        end local 7 // int ellipsisCount
        end local 6 // android.text.TextUtils$TruncateAt method
        end local 5 // int destoff
        end local 4 // char[] dest
        end local 3 // int line
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.text.Layout this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   22     0               this  Landroid/text/Layout;
            0   22     1              start  I
            0   22     2                end  I
            0   22     3               line  I
            0   22     4               dest  [C
            0   22     5            destoff  I
            0   22     6             method  Landroid/text/TextUtils$TruncateAt;
            1   22     7      ellipsisCount  I
            4   22     8      ellipsisStart  I
            5   22     9          lineStart  I
            6   22    10     ellipsisString  Ljava/lang/String;
            7   22    11  ellipsisStringLen  I
           10   22    12  useEllipsisString  Z
           11   21    13                  i  I
           14   15    14                  c  C
           16   19    14                  c  C
           17   19    15                  a  I
    MethodParameters:
         Name  Flags
      start    
      end      
      line     
      dest     
      destoff  
      method   

  public abstract int getEllipsisStart(int);
    descriptor: (I)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      line  

  public abstract int getEllipsisCount(int);
    descriptor: (I)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      line  

  static int[] $SWITCH_TABLE$android$text$Layout$Alignment();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 49
            getstatic android.text.Layout.$SWITCH_TABLE$android$text$Layout$Alignment:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic android.text.Layout$Alignment.values:()[Landroid/text/Layout$Alignment;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic android.text.Layout$Alignment.ALIGN_CENTER:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout$Alignment.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic android.text.Layout$Alignment.ALIGN_LEFT:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout$Alignment.ordinal:()I
            iconst_4
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic android.text.Layout$Alignment.ALIGN_NORMAL:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout$Alignment.ordinal:()I
            iconst_1
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic android.text.Layout$Alignment.ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout$Alignment.ordinal:()I
            iconst_2
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic android.text.Layout$Alignment.ALIGN_RIGHT:Landroid/text/Layout$Alignment;
            invokevirtual android.text.Layout$Alignment.ordinal:()I
            iconst_5
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic android.text.Layout.$SWITCH_TABLE$android$text$Layout$Alignment:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError

  private static void lambda$0(android.graphics.Path, float, float, float, float, int);
    descriptor: (Landroid/graphics/Path;FFFFI)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=6, args_size=6
        start local 1 // float left
        start local 2 // float top
        start local 3 // float right
        start local 4 // float bottom
        start local 5 // int textSelectionLayout
         0: .line 1916
            aload 0
            fload 1 /* left */
            fload 2 /* top */
            fload 3 /* right */
            fload 4 /* bottom */
            getstatic android.graphics.Path$Direction.CW:Landroid/graphics/Path$Direction;
            invokevirtual android.graphics.Path.addRect:(FFFFLandroid/graphics/Path$Direction;)V
            return
        end local 5 // int textSelectionLayout
        end local 4 // float bottom
        end local 3 // float right
        end local 2 // float top
        end local 1 // float left
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    1     1                 left  F
            0    1     2                  top  F
            0    1     3                right  F
            0    1     4               bottom  F
            0    1     5  textSelectionLayout  I
}
SourceFile: "Layout.java"
NestMembers:
  android.text.Layout$Alignment  android.text.Layout$BreakStrategy  android.text.Layout$Direction  android.text.Layout$Directions  android.text.Layout$Ellipsizer  android.text.Layout$HorizontalMeasurementProvider  android.text.Layout$HyphenationFrequency  android.text.Layout$JustificationMode  android.text.Layout$SelectionRectangleConsumer  android.text.Layout$SpannedEllipsizer  android.text.Layout$TabStops  android.text.Layout$TextSelectionLayout
InnerClasses:
  public FontMetricsInt = android.graphics.Paint$FontMetricsInt of android.graphics.Paint
  public final Direction = android.graphics.Path$Direction of android.graphics.Path
  public final Alignment = android.text.Layout$Alignment of android.text.Layout
  public abstract BreakStrategy = android.text.Layout$BreakStrategy of android.text.Layout
  public abstract Direction = android.text.Layout$Direction of android.text.Layout
  public Directions = android.text.Layout$Directions of android.text.Layout
  Ellipsizer = android.text.Layout$Ellipsizer of android.text.Layout
  private HorizontalMeasurementProvider = android.text.Layout$HorizontalMeasurementProvider of android.text.Layout
  public abstract HyphenationFrequency = android.text.Layout$HyphenationFrequency of android.text.Layout
  public abstract JustificationMode = android.text.Layout$JustificationMode of android.text.Layout
  public abstract SelectionRectangleConsumer = android.text.Layout$SelectionRectangleConsumer of android.text.Layout
  SpannedEllipsizer = android.text.Layout$SpannedEllipsizer of android.text.Layout
  TabStops = android.text.Layout$TabStops of android.text.Layout
  public abstract TextSelectionLayout = android.text.Layout$TextSelectionLayout of android.text.Layout
  public final TruncateAt = android.text.TextUtils$TruncateAt of android.text.TextUtils
  public abstract LeadingMarginSpan2 = android.text.style.LeadingMarginSpan$LeadingMarginSpan2 of android.text.style.LeadingMarginSpan
  public final Visibility = com.android.internal.annotations.VisibleForTesting$Visibility of com.android.internal.annotations.VisibleForTesting
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles