public class android.text.PrecomputedText implements android.text.Spannable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.text.PrecomputedText
  super_class: java.lang.Object
{
  private static final char LINE_FEED;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  private final android.text.SpannableString mText;
    descriptor: Landroid/text/SpannableString;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final android.text.PrecomputedText$Params mParams;
    descriptor: Landroid/text/PrecomputedText$Params;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.text.PrecomputedText$ParagraphInfo[] mParagraphInfo;
    descriptor: [Landroid/text/PrecomputedText$ParagraphInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static android.text.PrecomputedText create(java.lang.CharSequence, android.text.PrecomputedText$Params);
    descriptor: (Ljava/lang/CharSequence;Landroid/text/PrecomputedText$Params;)Landroid/text/PrecomputedText;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // java.lang.CharSequence text
        start local 1 // android.text.PrecomputedText$Params params
         0: .line 325
            aload 0 /* text */
            aload 1 /* params */
            iconst_0
            aload 0 /* text */
            invokeinterface java.lang.CharSequence.length:()I
            iconst_1
         1: .line 324
            invokestatic android.text.PrecomputedText.createMeasuredParagraphs:(Ljava/lang/CharSequence;Landroid/text/PrecomputedText$Params;IIZ)[Landroid/text/PrecomputedText$ParagraphInfo;
            astore 2 /* paraInfo */
        start local 2 // android.text.PrecomputedText$ParagraphInfo[] paraInfo
         2: .line 326
            new android.text.PrecomputedText
            dup
            aload 0 /* text */
            iconst_0
            aload 0 /* text */
            invokeinterface java.lang.CharSequence.length:()I
            aload 1 /* params */
            aload 2 /* paraInfo */
            invokespecial android.text.PrecomputedText.<init>:(Ljava/lang/CharSequence;IILandroid/text/PrecomputedText$Params;[Landroid/text/PrecomputedText$ParagraphInfo;)V
            areturn
        end local 2 // android.text.PrecomputedText$ParagraphInfo[] paraInfo
        end local 1 // android.text.PrecomputedText$Params params
        end local 0 // java.lang.CharSequence text
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      text  Ljava/lang/CharSequence;
            0    3     1    params  Landroid/text/PrecomputedText$Params;
            2    3     2  paraInfo  [Landroid/text/PrecomputedText$ParagraphInfo;
    MethodParameters:
        Name  Flags
      text    
      params  

  public static android.text.PrecomputedText$ParagraphInfo[] createMeasuredParagraphs(java.lang.CharSequence, android.text.PrecomputedText$Params, int, int, boolean);
    descriptor: (Ljava/lang/CharSequence;Landroid/text/PrecomputedText$Params;IIZ)[Landroid/text/PrecomputedText$ParagraphInfo;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=12, locals=9, args_size=5
        start local 0 // java.lang.CharSequence text
        start local 1 // android.text.PrecomputedText$Params params
        start local 2 // int start
        start local 3 // int end
        start local 4 // boolean computeLayout
         0: .line 333
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* result */
        start local 5 // java.util.ArrayList result
         1: .line 335
            aload 0 /* text */
            invokestatic com.android.internal.util.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 336
            aload 1 /* params */
            invokestatic com.android.internal.util.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 337
            aload 1 /* params */
            invokevirtual android.text.PrecomputedText$Params.getBreakStrategy:()I
            ifeq 6
         4: .line 338
            aload 1 /* params */
            invokevirtual android.text.PrecomputedText$Params.getHyphenationFrequency:()I
            ifeq 6
         5: .line 337
            iconst_1
            goto 7
      StackMap locals: java.util.ArrayList
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 6 /* needHyphenation */
        start local 6 // boolean needHyphenation
         8: .line 340
            iconst_0
            istore 7 /* paraEnd */
        start local 7 // int paraEnd
         9: .line 341
            iload 2 /* start */
            istore 8 /* paraStart */
        start local 8 // int paraStart
        10: goto 21
        11: .line 342
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* text */
            bipush 10
            iload 8 /* paraStart */
            iload 3 /* end */
            invokestatic android.text.TextUtils.indexOf:(Ljava/lang/CharSequence;CII)I
            istore 7 /* paraEnd */
        12: .line 343
            iload 7 /* paraEnd */
            ifge 15
        13: .line 346
            iload 3 /* end */
            istore 7 /* paraEnd */
        14: .line 347
            goto 16
        15: .line 348
      StackMap locals:
      StackMap stack:
            iinc 7 /* paraEnd */ 1
        16: .line 351
      StackMap locals:
      StackMap stack:
            aload 5 /* result */
            new android.text.PrecomputedText$ParagraphInfo
            dup
            iload 7 /* paraEnd */
        17: .line 352
            aload 1 /* params */
            invokevirtual android.text.PrecomputedText$Params.getTextPaint:()Landroid/text/TextPaint;
            aload 0 /* text */
            iload 8 /* paraStart */
            iload 7 /* paraEnd */
            aload 1 /* params */
            invokevirtual android.text.PrecomputedText$Params.getTextDirection:()Landroid/text/TextDirectionHeuristic;
        18: .line 353
            iload 6 /* needHyphenation */
            iload 4 /* computeLayout */
            aconst_null
        19: .line 351
            invokestatic android.text.MeasuredParagraph.buildForStaticLayout:(Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;ZZLandroid/text/MeasuredParagraph;)Landroid/text/MeasuredParagraph;
            invokespecial android.text.PrecomputedText$ParagraphInfo.<init>:(ILandroid/text/MeasuredParagraph;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        20: .line 341
            iload 7 /* paraEnd */
            istore 8 /* paraStart */
      StackMap locals:
      StackMap stack:
        21: iload 8 /* paraStart */
            iload 3 /* end */
            if_icmplt 11
        end local 8 // int paraStart
        22: .line 355
            aload 5 /* result */
            aload 5 /* result */
            invokevirtual java.util.ArrayList.size:()I
            anewarray android.text.PrecomputedText$ParagraphInfo
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast android.text.PrecomputedText$ParagraphInfo[]
            areturn
        end local 7 // int paraEnd
        end local 6 // boolean needHyphenation
        end local 5 // java.util.ArrayList result
        end local 4 // boolean computeLayout
        end local 3 // int end
        end local 2 // int start
        end local 1 // android.text.PrecomputedText$Params params
        end local 0 // java.lang.CharSequence text
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   23     0             text  Ljava/lang/CharSequence;
            0   23     1           params  Landroid/text/PrecomputedText$Params;
            0   23     2            start  I
            0   23     3              end  I
            0   23     4    computeLayout  Z
            1   23     5           result  Ljava/util/ArrayList<Landroid/text/PrecomputedText$ParagraphInfo;>;
            8   23     6  needHyphenation  Z
            9   23     7          paraEnd  I
           10   22     8        paraStart  I
    MethodParameters:
               Name  Flags
      text           
      params         
      start          
      end            
      computeLayout  

  private void <init>(java.lang.CharSequence, int, int, android.text.PrecomputedText$Params, android.text.PrecomputedText$ParagraphInfo[]);
    descriptor: (Ljava/lang/CharSequence;IILandroid/text/PrecomputedText$Params;[Landroid/text/PrecomputedText$ParagraphInfo;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // android.text.PrecomputedText this
        start local 1 // java.lang.CharSequence text
        start local 2 // int start
        start local 3 // int end
        start local 4 // android.text.PrecomputedText$Params params
        start local 5 // android.text.PrecomputedText$ParagraphInfo[] paraInfo
         0: .line 359
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 362
            aload 0 /* this */
            new android.text.SpannableString
            dup
            aload 1 /* text */
            iconst_1
            invokespecial android.text.SpannableString.<init>:(Ljava/lang/CharSequence;Z)V
            putfield android.text.PrecomputedText.mText:Landroid/text/SpannableString;
         2: .line 363
            aload 0 /* this */
            iload 2 /* start */
            putfield android.text.PrecomputedText.mStart:I
         3: .line 364
            aload 0 /* this */
            iload 3 /* end */
            putfield android.text.PrecomputedText.mEnd:I
         4: .line 365
            aload 0 /* this */
            aload 4 /* params */
            putfield android.text.PrecomputedText.mParams:Landroid/text/PrecomputedText$Params;
         5: .line 366
            aload 0 /* this */
            aload 5 /* paraInfo */
            putfield android.text.PrecomputedText.mParagraphInfo:[Landroid/text/PrecomputedText$ParagraphInfo;
         6: .line 367
            return
        end local 5 // android.text.PrecomputedText$ParagraphInfo[] paraInfo
        end local 4 // android.text.PrecomputedText$Params params
        end local 3 // int end
        end local 2 // int start
        end local 1 // java.lang.CharSequence text
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Landroid/text/PrecomputedText;
            0    7     1      text  Ljava/lang/CharSequence;
            0    7     2     start  I
            0    7     3       end  I
            0    7     4    params  Landroid/text/PrecomputedText$Params;
            0    7     5  paraInfo  [Landroid/text/PrecomputedText$ParagraphInfo;
    MethodParameters:
          Name  Flags
      text      
      start     
      end       
      params    
      paraInfo  

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

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

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

  public android.text.PrecomputedText$Params getParams();
    descriptor: ()Landroid/text/PrecomputedText$Params;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.PrecomputedText this
         0: .line 397
            aload 0 /* this */
            getfield android.text.PrecomputedText.mParams:Landroid/text/PrecomputedText$Params;
            areturn
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/PrecomputedText;

  public int getParagraphCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.PrecomputedText this
         0: .line 404
            aload 0 /* this */
            getfield android.text.PrecomputedText.mParagraphInfo:[Landroid/text/PrecomputedText$ParagraphInfo;
            arraylength
            ireturn
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/PrecomputedText;

  public int getParagraphStart(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.text.PrecomputedText this
        start local 1 // int paraIndex
         0: .line 411
            iload 1 /* paraIndex */
            iconst_0
            aload 0 /* this */
            invokevirtual android.text.PrecomputedText.getParagraphCount:()I
            ldc "paraIndex"
            invokestatic com.android.internal.util.Preconditions.checkArgumentInRange:(IIILjava/lang/String;)I
            pop
         1: .line 412
            iload 1 /* paraIndex */
            ifne 2
            aload 0 /* this */
            getfield android.text.PrecomputedText.mStart:I
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            iload 1 /* paraIndex */
            iconst_1
            isub
            invokevirtual android.text.PrecomputedText.getParagraphEnd:(I)I
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // int paraIndex
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Landroid/text/PrecomputedText;
            0    4     1  paraIndex  I
    MethodParameters:
           Name  Flags
      paraIndex  

  public int getParagraphEnd(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.text.PrecomputedText this
        start local 1 // int paraIndex
         0: .line 419
            iload 1 /* paraIndex */
            iconst_0
            aload 0 /* this */
            invokevirtual android.text.PrecomputedText.getParagraphCount:()I
            ldc "paraIndex"
            invokestatic com.android.internal.util.Preconditions.checkArgumentInRange:(IIILjava/lang/String;)I
            pop
         1: .line 420
            aload 0 /* this */
            getfield android.text.PrecomputedText.mParagraphInfo:[Landroid/text/PrecomputedText$ParagraphInfo;
            iload 1 /* paraIndex */
            aaload
            getfield android.text.PrecomputedText$ParagraphInfo.paragraphEnd:I
            ireturn
        end local 1 // int paraIndex
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Landroid/text/PrecomputedText;
            0    2     1  paraIndex  I
    MethodParameters:
           Name  Flags
      paraIndex  

  public android.text.MeasuredParagraph getMeasuredParagraph(int);
    descriptor: (I)Landroid/text/MeasuredParagraph;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.text.PrecomputedText this
        start local 1 // int paraIndex
         0: .line 425
            aload 0 /* this */
            getfield android.text.PrecomputedText.mParagraphInfo:[Landroid/text/PrecomputedText$ParagraphInfo;
            iload 1 /* paraIndex */
            aaload
            getfield android.text.PrecomputedText$ParagraphInfo.measured:Landroid/text/MeasuredParagraph;
            areturn
        end local 1 // int paraIndex
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Landroid/text/PrecomputedText;
            0    1     1  paraIndex  I
    MethodParameters:
           Name  Flags
      paraIndex  

  public android.text.PrecomputedText$ParagraphInfo[] getParagraphInfo();
    descriptor: ()[Landroid/text/PrecomputedText$ParagraphInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.PrecomputedText this
         0: .line 430
            aload 0 /* this */
            getfield android.text.PrecomputedText.mParagraphInfo:[Landroid/text/PrecomputedText$ParagraphInfo;
            areturn
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/PrecomputedText;

  public boolean canUseMeasuredResult(int, int, android.text.TextDirectionHeuristic, android.text.TextPaint, int, int);
    descriptor: (IILandroid/text/TextDirectionHeuristic;Landroid/text/TextPaint;II)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=7
        start local 0 // android.text.PrecomputedText this
        start local 1 // int start
        start local 2 // int end
        start local 3 // android.text.TextDirectionHeuristic textDir
        start local 4 // android.text.TextPaint paint
        start local 5 // int strategy
        start local 6 // int frequency
         0: .line 440
            aload 0 /* this */
            getfield android.text.PrecomputedText.mParams:Landroid/text/PrecomputedText$Params;
            invokevirtual android.text.PrecomputedText$Params.getTextPaint:()Landroid/text/TextPaint;
            pop
         1: .line 441
            aload 0 /* this */
            getfield android.text.PrecomputedText.mStart:I
            iload 1 /* start */
            if_icmpne 5
         2: .line 442
            aload 0 /* this */
            getfield android.text.PrecomputedText.mEnd:I
            iload 2 /* end */
            if_icmpne 5
         3: .line 443
            aload 0 /* this */
            getfield android.text.PrecomputedText.mParams:Landroid/text/PrecomputedText$Params;
            aload 4 /* paint */
            aload 3 /* textDir */
            iload 5 /* strategy */
            iload 6 /* frequency */
            invokevirtual android.text.PrecomputedText$Params.isSameTextMetricsInternal:(Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;II)Z
            ifeq 5
         4: .line 441
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
        end local 6 // int frequency
        end local 5 // int strategy
        end local 4 // android.text.TextPaint paint
        end local 3 // android.text.TextDirectionHeuristic textDir
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Landroid/text/PrecomputedText;
            0    6     1      start  I
            0    6     2        end  I
            0    6     3    textDir  Landroid/text/TextDirectionHeuristic;
            0    6     4      paint  Landroid/text/TextPaint;
            0    6     5   strategy  I
            0    6     6  frequency  I
    MethodParameters:
           Name  Flags
      start      
      end        
      textDir    
      paint      
      strategy   
      frequency  

  public int findParaIndex(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // android.text.PrecomputedText this
        start local 1 // int pos
         0: .line 450
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 451
      StackMap locals: int
      StackMap stack:
            iload 1 /* pos */
            aload 0 /* this */
            getfield android.text.PrecomputedText.mParagraphInfo:[Landroid/text/PrecomputedText$ParagraphInfo;
            iload 2 /* i */
            aaload
            getfield android.text.PrecomputedText$ParagraphInfo.paragraphEnd:I
            if_icmpge 4
         3: .line 452
            iload 2 /* i */
            ireturn
         4: .line 450
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* this */
            getfield android.text.PrecomputedText.mParagraphInfo:[Landroid/text/PrecomputedText$ParagraphInfo;
            arraylength
            if_icmplt 2
        end local 2 // int i
         6: .line 455
            new java.lang.IndexOutOfBoundsException
            dup
         7: .line 456
            new java.lang.StringBuilder
            dup
            ldc "pos must be less than "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.text.PrecomputedText.mParagraphInfo:[Landroid/text/PrecomputedText$ParagraphInfo;
            aload 0 /* this */
            getfield android.text.PrecomputedText.mParagraphInfo:[Landroid/text/PrecomputedText$ParagraphInfo;
            arraylength
            iconst_1
            isub
            aaload
            getfield android.text.PrecomputedText$ParagraphInfo.paragraphEnd:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         8: .line 457
            ldc ", gave "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* pos */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         9: .line 456
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 455
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // int pos
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Landroid/text/PrecomputedText;
            0   11     1   pos  I
            1    6     2     i  I
    MethodParameters:
      Name  Flags
      pos   

  public float getWidth(int, int);
    descriptor: (II)F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // android.text.PrecomputedText this
        start local 1 // int start
        start local 2 // int end
         0: .line 472
            iload 1 /* start */
            iflt 1
            iload 1 /* start */
            aload 0 /* this */
            getfield android.text.PrecomputedText.mText:Landroid/text/SpannableString;
            invokevirtual android.text.SpannableString.length:()I
            if_icmpgt 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ldc "invalid start offset"
            invokestatic com.android.internal.util.Preconditions.checkArgument:(ZLjava/lang/Object;)V
         3: .line 473
            iload 2 /* end */
            iflt 4
            iload 2 /* end */
            aload 0 /* this */
            getfield android.text.PrecomputedText.mText:Landroid/text/SpannableString;
            invokevirtual android.text.SpannableString.length:()I
            if_icmpgt 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: ldc "invalid end offset"
            invokestatic com.android.internal.util.Preconditions.checkArgument:(ZLjava/lang/Object;)V
         6: .line 474
            iload 1 /* start */
            iload 2 /* end */
            if_icmpgt 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: ldc "start offset can not be larger than end offset"
            invokestatic com.android.internal.util.Preconditions.checkArgument:(ZLjava/lang/Object;)V
         9: .line 476
            iload 1 /* start */
            iload 2 /* end */
            if_icmpne 11
        10: .line 477
            fconst_0
            freturn
        11: .line 479
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* start */
            invokevirtual android.text.PrecomputedText.findParaIndex:(I)I
            istore 3 /* paraIndex */
        start local 3 // int paraIndex
        12: .line 480
            aload 0 /* this */
            iload 3 /* paraIndex */
            invokevirtual android.text.PrecomputedText.getParagraphStart:(I)I
            istore 4 /* paraStart */
        start local 4 // int paraStart
        13: .line 481
            aload 0 /* this */
            iload 3 /* paraIndex */
            invokevirtual android.text.PrecomputedText.getParagraphEnd:(I)I
            istore 5 /* paraEnd */
        start local 5 // int paraEnd
        14: .line 482
            iload 1 /* start */
            iload 4 /* paraStart */
            if_icmplt 15
            iload 5 /* paraEnd */
            iload 2 /* end */
            if_icmpge 19
        15: .line 483
      StackMap locals: int int int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot measured across the paragraph:para: ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        16: .line 484
            iload 4 /* paraStart */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 5 /* paraEnd */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "), "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 485
            ldc "request: ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* start */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* end */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 483
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 487
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* paraIndex */
            invokevirtual android.text.PrecomputedText.getMeasuredParagraph:(I)Landroid/text/MeasuredParagraph;
            iload 1 /* start */
            iload 4 /* paraStart */
            isub
            iload 2 /* end */
            iload 4 /* paraStart */
            isub
            invokevirtual android.text.MeasuredParagraph.getWidth:(II)F
            freturn
        end local 5 // int paraEnd
        end local 4 // int paraStart
        end local 3 // int paraIndex
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Landroid/text/PrecomputedText;
            0   20     1      start  I
            0   20     2        end  I
           12   20     3  paraIndex  I
           13   20     4  paraStart  I
           14   20     5    paraEnd  I
    MethodParameters:
       Name  Flags
      start  
      end    

  public void getBounds(int, int, android.graphics.Rect);
    descriptor: (IILandroid/graphics/Rect;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // android.text.PrecomputedText this
        start local 1 // int start
        start local 2 // int end
        start local 3 // android.graphics.Rect bounds
         0: .line 502
            iload 1 /* start */
            iflt 1
            iload 1 /* start */
            aload 0 /* this */
            getfield android.text.PrecomputedText.mText:Landroid/text/SpannableString;
            invokevirtual android.text.SpannableString.length:()I
            if_icmpgt 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ldc "invalid start offset"
            invokestatic com.android.internal.util.Preconditions.checkArgument:(ZLjava/lang/Object;)V
         3: .line 503
            iload 2 /* end */
            iflt 4
            iload 2 /* end */
            aload 0 /* this */
            getfield android.text.PrecomputedText.mText:Landroid/text/SpannableString;
            invokevirtual android.text.SpannableString.length:()I
            if_icmpgt 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: ldc "invalid end offset"
            invokestatic com.android.internal.util.Preconditions.checkArgument:(ZLjava/lang/Object;)V
         6: .line 504
            iload 1 /* start */
            iload 2 /* end */
            if_icmpgt 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: ldc "start offset can not be larger than end offset"
            invokestatic com.android.internal.util.Preconditions.checkArgument:(ZLjava/lang/Object;)V
         9: .line 505
            aload 3 /* bounds */
            invokestatic com.android.internal.util.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 506
            iload 1 /* start */
            iload 2 /* end */
            if_icmpne 13
        11: .line 507
            aload 3 /* bounds */
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            invokevirtual android.graphics.Rect.set:(IIII)V
        12: .line 508
            return
        13: .line 510
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* start */
            invokevirtual android.text.PrecomputedText.findParaIndex:(I)I
            istore 4 /* paraIndex */
        start local 4 // int paraIndex
        14: .line 511
            aload 0 /* this */
            iload 4 /* paraIndex */
            invokevirtual android.text.PrecomputedText.getParagraphStart:(I)I
            istore 5 /* paraStart */
        start local 5 // int paraStart
        15: .line 512
            aload 0 /* this */
            iload 4 /* paraIndex */
            invokevirtual android.text.PrecomputedText.getParagraphEnd:(I)I
            istore 6 /* paraEnd */
        start local 6 // int paraEnd
        16: .line 513
            iload 1 /* start */
            iload 5 /* paraStart */
            if_icmplt 17
            iload 6 /* paraEnd */
            iload 2 /* end */
            if_icmpge 21
        17: .line 514
      StackMap locals: int int int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot measured across the paragraph:para: ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        18: .line 515
            iload 5 /* paraStart */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* paraEnd */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "), "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        19: .line 516
            ldc "request: ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* start */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* end */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 514
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 518
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* paraIndex */
            invokevirtual android.text.PrecomputedText.getMeasuredParagraph:(I)Landroid/text/MeasuredParagraph;
            iload 1 /* start */
            iload 5 /* paraStart */
            isub
            iload 2 /* end */
            iload 5 /* paraStart */
            isub
            aload 3 /* bounds */
            invokevirtual android.text.MeasuredParagraph.getBounds:(IILandroid/graphics/Rect;)V
        22: .line 519
            return
        end local 6 // int paraEnd
        end local 5 // int paraStart
        end local 4 // int paraIndex
        end local 3 // android.graphics.Rect bounds
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   23     0       this  Landroid/text/PrecomputedText;
            0   23     1      start  I
            0   23     2        end  I
            0   23     3     bounds  Landroid/graphics/Rect;
           14   23     4  paraIndex  I
           15   23     5  paraStart  I
           16   23     6    paraEnd  I
    MethodParameters:
        Name  Flags
      start   
      end     
      bounds  

  public int getMemoryUsage();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.text.PrecomputedText this
         0: .line 528
            iconst_0
            istore 1 /* r */
        start local 1 // int r
         1: .line 529
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 530
      StackMap locals: int int
      StackMap stack:
            iload 1 /* r */
            aload 0 /* this */
            iload 2 /* i */
            invokevirtual android.text.PrecomputedText.getMeasuredParagraph:(I)Landroid/text/MeasuredParagraph;
            invokevirtual android.text.MeasuredParagraph.getMemoryUsage:()I
            iadd
            istore 1 /* r */
         4: .line 529
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* this */
            invokevirtual android.text.PrecomputedText.getParagraphCount:()I
            if_icmplt 3
        end local 2 // int i
         6: .line 532
            iload 1 /* r */
            ireturn
        end local 1 // int r
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/text/PrecomputedText;
            1    7     1     r  I
            2    6     2     i  I

  public void setSpan(java.lang.Object, int, int, int);
    descriptor: (Ljava/lang/Object;III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // android.text.PrecomputedText this
        start local 1 // java.lang.Object what
        start local 2 // int start
        start local 3 // int end
        start local 4 // int flags
         0: .line 545
            aload 1 /* what */
            instanceof android.text.style.MetricAffectingSpan
            ifeq 4
         1: .line 546
            new java.lang.IllegalArgumentException
            dup
         2: .line 547
            ldc "MetricAffectingSpan can not be set to PrecomputedText."
         3: .line 546
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 549
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.text.PrecomputedText.mText:Landroid/text/SpannableString;
            aload 1 /* what */
            iload 2 /* start */
            iload 3 /* end */
            iload 4 /* flags */
            invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
         5: .line 550
            return
        end local 4 // int flags
        end local 3 // int end
        end local 2 // int start
        end local 1 // java.lang.Object what
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Landroid/text/PrecomputedText;
            0    6     1   what  Ljava/lang/Object;
            0    6     2  start  I
            0    6     3    end  I
            0    6     4  flags  I
    MethodParameters:
       Name  Flags
      what   
      start  
      end    
      flags  

  public void removeSpan(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.text.PrecomputedText this
        start local 1 // java.lang.Object what
         0: .line 557
            aload 1 /* what */
            instanceof android.text.style.MetricAffectingSpan
            ifeq 4
         1: .line 558
            new java.lang.IllegalArgumentException
            dup
         2: .line 559
            ldc "MetricAffectingSpan can not be removed from PrecomputedText."
         3: .line 558
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 561
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.text.PrecomputedText.mText:Landroid/text/SpannableString;
            aload 1 /* what */
            invokevirtual android.text.SpannableString.removeSpan:(Ljava/lang/Object;)V
         5: .line 562
            return
        end local 1 // java.lang.Object what
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/text/PrecomputedText;
            0    6     1  what  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      what  

  public <T> T[] getSpans(int, int, java.lang.Class<T>);
    descriptor: (IILjava/lang/Class;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.text.PrecomputedText this
        start local 1 // int start
        start local 2 // int end
        start local 3 // java.lang.Class type
         0: .line 571
            aload 0 /* this */
            getfield android.text.PrecomputedText.mText:Landroid/text/SpannableString;
            iload 1 /* start */
            iload 2 /* end */
            aload 3 /* type */
            invokevirtual android.text.SpannableString.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.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Landroid/text/PrecomputedText;
            0    1     1  start  I
            0    1     2    end  I
            0    1     3   type  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(IILjava/lang/Class<TT;>;)[TT;
    MethodParameters:
       Name  Flags
      start  
      end    
      type   

  public int getSpanStart(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.text.PrecomputedText this
        start local 1 // java.lang.Object tag
         0: .line 576
            aload 0 /* this */
            getfield android.text.PrecomputedText.mText:Landroid/text/SpannableString;
            aload 1 /* tag */
            invokevirtual android.text.SpannableString.getSpanStart:(Ljava/lang/Object;)I
            ireturn
        end local 1 // java.lang.Object tag
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/PrecomputedText;
            0    1     1   tag  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      tag   

  public int getSpanEnd(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.text.PrecomputedText this
        start local 1 // java.lang.Object tag
         0: .line 581
            aload 0 /* this */
            getfield android.text.PrecomputedText.mText:Landroid/text/SpannableString;
            aload 1 /* tag */
            invokevirtual android.text.SpannableString.getSpanEnd:(Ljava/lang/Object;)I
            ireturn
        end local 1 // java.lang.Object tag
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/PrecomputedText;
            0    1     1   tag  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      tag   

  public int getSpanFlags(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.text.PrecomputedText this
        start local 1 // java.lang.Object tag
         0: .line 586
            aload 0 /* this */
            getfield android.text.PrecomputedText.mText:Landroid/text/SpannableString;
            aload 1 /* tag */
            invokevirtual android.text.SpannableString.getSpanFlags:(Ljava/lang/Object;)I
            ireturn
        end local 1 // java.lang.Object tag
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/PrecomputedText;
            0    1     1   tag  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      tag   

  public int nextSpanTransition(int, int, java.lang.Class);
    descriptor: (IILjava/lang/Class;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.text.PrecomputedText this
        start local 1 // int start
        start local 2 // int limit
        start local 3 // java.lang.Class type
         0: .line 591
            aload 0 /* this */
            getfield android.text.PrecomputedText.mText:Landroid/text/SpannableString;
            iload 1 /* start */
            iload 2 /* limit */
            aload 3 /* type */
            invokevirtual android.text.SpannableString.nextSpanTransition:(IILjava/lang/Class;)I
            ireturn
        end local 3 // java.lang.Class type
        end local 2 // int limit
        end local 1 // int start
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Landroid/text/PrecomputedText;
            0    1     1  start  I
            0    1     2  limit  I
            0    1     3   type  Ljava/lang/Class;
    MethodParameters:
       Name  Flags
      start  
      limit  
      type   

  public int length();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.PrecomputedText this
         0: .line 601
            aload 0 /* this */
            getfield android.text.PrecomputedText.mText:Landroid/text/SpannableString;
            invokevirtual android.text.SpannableString.length:()I
            ireturn
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/PrecomputedText;

  public char charAt(int);
    descriptor: (I)C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.text.PrecomputedText this
        start local 1 // int index
         0: .line 606
            aload 0 /* this */
            getfield android.text.PrecomputedText.mText:Landroid/text/SpannableString;
            iload 1 /* index */
            invokevirtual android.text.SpannableString.charAt:(I)C
            ireturn
        end local 1 // int index
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Landroid/text/PrecomputedText;
            0    1     1  index  I
    MethodParameters:
       Name  Flags
      index  

  public java.lang.CharSequence subSequence(int, int);
    descriptor: (II)Ljava/lang/CharSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.text.PrecomputedText this
        start local 1 // int start
        start local 2 // int end
         0: .line 611
            aload 0 /* this */
            getfield android.text.PrecomputedText.mText:Landroid/text/SpannableString;
            iload 1 /* start */
            iload 2 /* end */
            invokevirtual android.text.SpannableString.subSequence:(II)Ljava/lang/CharSequence;
            aload 0 /* this */
            getfield android.text.PrecomputedText.mParams:Landroid/text/PrecomputedText$Params;
            invokestatic android.text.PrecomputedText.create:(Ljava/lang/CharSequence;Landroid/text/PrecomputedText$Params;)Landroid/text/PrecomputedText;
            areturn
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Landroid/text/PrecomputedText;
            0    1     1  start  I
            0    1     2    end  I
    MethodParameters:
       Name  Flags
      start  
      end    

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.PrecomputedText this
         0: .line 616
            aload 0 /* this */
            getfield android.text.PrecomputedText.mText:Landroid/text/SpannableString;
            invokevirtual android.text.SpannableString.toString:()Ljava/lang/String;
            areturn
        end local 0 // android.text.PrecomputedText this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/PrecomputedText;
}
SourceFile: "PrecomputedText.java"
NestMembers:
  android.text.PrecomputedText$ParagraphInfo  android.text.PrecomputedText$Params  android.text.PrecomputedText$Params$Builder
InnerClasses:
  public ParagraphInfo = android.text.PrecomputedText$ParagraphInfo of android.text.PrecomputedText
  public final Params = android.text.PrecomputedText$Params of android.text.PrecomputedText