abstract class android.text.SpannableStringInternal
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: android.text.SpannableStringInternal
  super_class: java.lang.Object
{
  private java.lang.String mText;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Object[] mSpans;
    descriptor: [Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  private int[] mSpanData;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

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

  static final java.lang.Object[] EMPTY;
    descriptor: [Ljava/lang/Object;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

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

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 552
            iconst_0
            anewarray java.lang.Object
            putstatic android.text.SpannableStringInternal.EMPTY:[Ljava/lang/Object;
         1: .line 557
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.CharSequence, int, int, boolean);
    descriptor: (Ljava/lang/CharSequence;IIZ)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // android.text.SpannableStringInternal this
         0: .line 22
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tThe import libcore.util cannot be resolved\n\tEmptyArray cannot be resolved to a variable\n\tEmptyArray cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/SpannableStringInternal;
    MethodParameters:
                  Name  Flags
      source            
      start             
      end               
      ignoreNoCopySpan  

  void <init>(java.lang.CharSequence, int, int);
    descriptor: (Ljava/lang/CharSequence;II)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // java.lang.CharSequence source
        start local 2 // int start
        start local 3 // int end
         0: .line 54
            aload 0 /* this */
            aload 1 /* source */
            iload 2 /* start */
            iload 3 /* end */
            iconst_0
            invokespecial android.text.SpannableStringInternal.<init>:(Ljava/lang/CharSequence;IIZ)V
         1: .line 55
            return
        end local 3 // int end
        end local 2 // int start
        end local 1 // java.lang.CharSequence source
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/text/SpannableStringInternal;
            0    2     1  source  Ljava/lang/CharSequence;
            0    2     2   start  I
            0    2     3     end  I
    MethodParameters:
        Name  Flags
      source  
      start   
      end     

  private void copySpans(android.text.Spanned, int, int, boolean);
    descriptor: (Landroid/text/Spanned;IIZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=5
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // android.text.Spanned src
        start local 2 // int start
        start local 3 // int end
        start local 4 // boolean ignoreNoCopySpan
         0: .line 66
            aload 1 /* src */
            iload 2 /* start */
            iload 3 /* end */
            ldc Ljava/lang/Object;
            invokeinterface android.text.Spanned.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            astore 5 /* spans */
        start local 5 // java.lang.Object[] spans
         1: .line 68
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         2: goto 14
         3: .line 69
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            iload 4 /* ignoreNoCopySpan */
            ifeq 5
            aload 5 /* spans */
            iload 6 /* i */
            aaload
            instanceof android.text.NoCopySpan
            ifeq 5
         4: .line 70
            goto 13
         5: .line 72
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            aload 5 /* spans */
            iload 6 /* i */
            aaload
            invokeinterface android.text.Spanned.getSpanStart:(Ljava/lang/Object;)I
            istore 7 /* st */
        start local 7 // int st
         6: .line 73
            aload 1 /* src */
            aload 5 /* spans */
            iload 6 /* i */
            aaload
            invokeinterface android.text.Spanned.getSpanEnd:(Ljava/lang/Object;)I
            istore 8 /* en */
        start local 8 // int en
         7: .line 74
            aload 1 /* src */
            aload 5 /* spans */
            iload 6 /* i */
            aaload
            invokeinterface android.text.Spanned.getSpanFlags:(Ljava/lang/Object;)I
            istore 9 /* fl */
        start local 9 // int fl
         8: .line 76
            iload 7 /* st */
            iload 2 /* start */
            if_icmpge 10
         9: .line 77
            iload 2 /* start */
            istore 7 /* st */
        10: .line 78
      StackMap locals: int int int
      StackMap stack:
            iload 8 /* en */
            iload 3 /* end */
            if_icmple 12
        11: .line 79
            iload 3 /* end */
            istore 8 /* en */
        12: .line 81
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* spans */
            iload 6 /* i */
            aaload
            iload 7 /* st */
            iload 2 /* start */
            isub
            iload 8 /* en */
            iload 2 /* start */
            isub
            iload 9 /* fl */
            iconst_0
            invokevirtual android.text.SpannableStringInternal.setSpan:(Ljava/lang/Object;IIIZ)V
        end local 9 // int fl
        end local 8 // int en
        end local 7 // int st
        13: .line 68
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 6 /* i */
            aload 5 /* spans */
            arraylength
            if_icmplt 3
        end local 6 // int i
        15: .line 83
            return
        end local 5 // java.lang.Object[] spans
        end local 4 // boolean ignoreNoCopySpan
        end local 3 // int end
        end local 2 // int start
        end local 1 // android.text.Spanned src
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   16     0              this  Landroid/text/SpannableStringInternal;
            0   16     1               src  Landroid/text/Spanned;
            0   16     2             start  I
            0   16     3               end  I
            0   16     4  ignoreNoCopySpan  Z
            1   16     5             spans  [Ljava/lang/Object;
            2   15     6                 i  I
            6   13     7                st  I
            7   13     8                en  I
            8   13     9                fl  I
    MethodParameters:
                  Name  Flags
      src               
      start             
      end               
      ignoreNoCopySpan  

  private void copySpans(android.text.SpannableStringInternal, int, int, boolean);
    descriptor: (Landroid/text/SpannableStringInternal;IIZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=14, args_size=5
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // android.text.SpannableStringInternal src
        start local 2 // int start
        start local 3 // int end
        start local 4 // boolean ignoreNoCopySpan
         0: .line 96
            iconst_0
            istore 5 /* count */
        start local 5 // int count
         1: .line 97
            aload 1 /* src */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            astore 6 /* srcData */
        start local 6 // int[] srcData
         2: .line 98
            aload 1 /* src */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            astore 7 /* srcSpans */
        start local 7 // java.lang.Object[] srcSpans
         3: .line 99
            aload 1 /* src */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            istore 8 /* limit */
        start local 8 // int limit
         4: .line 100
            iconst_0
            istore 9 /* hasNoCopySpan */
        start local 9 // boolean hasNoCopySpan
         5: .line 102
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         6: goto 16
         7: .line 103
      StackMap locals: android.text.SpannableStringInternal android.text.SpannableStringInternal int int int int int[] java.lang.Object[] int int int
      StackMap stack:
            aload 6 /* srcData */
            iload 10 /* i */
            iconst_3
            imul
            iconst_0
            iadd
            iaload
            istore 11 /* spanStart */
        start local 11 // int spanStart
         8: .line 104
            aload 6 /* srcData */
            iload 10 /* i */
            iconst_3
            imul
            iconst_1
            iadd
            iaload
            istore 12 /* spanEnd */
        start local 12 // int spanEnd
         9: .line 105
            aload 0 /* this */
            iload 2 /* start */
            iload 3 /* end */
            iload 11 /* spanStart */
            iload 12 /* spanEnd */
            invokevirtual android.text.SpannableStringInternal.isOutOfCopyRange:(IIII)Z
            ifeq 10
            goto 15
        10: .line 106
      StackMap locals: int int
      StackMap stack:
            aload 7 /* srcSpans */
            iload 10 /* i */
            aaload
            instanceof android.text.NoCopySpan
            ifeq 14
        11: .line 107
            iconst_1
            istore 9 /* hasNoCopySpan */
        12: .line 108
            iload 4 /* ignoreNoCopySpan */
            ifeq 14
        13: .line 109
            goto 15
        14: .line 112
      StackMap locals:
      StackMap stack:
            iinc 5 /* count */ 1
        end local 12 // int spanEnd
        end local 11 // int spanStart
        15: .line 102
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 10 /* i */
            iload 8 /* limit */
            if_icmplt 7
        end local 10 // int i
        17: .line 115
            iload 5 /* count */
            ifne 18
            return
        18: .line 117
      StackMap locals:
      StackMap stack:
            iload 9 /* hasNoCopySpan */
            ifne 25
            iload 2 /* start */
            ifne 25
            iload 3 /* end */
            aload 1 /* src */
            invokevirtual android.text.SpannableStringInternal.length:()I
            if_icmpne 25
        19: .line 118
            aload 0 /* this */
            aload 1 /* src */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            arraylength
            invokestatic com.android.internal.util.ArrayUtils.newUnpaddedObjectArray:(I)[Ljava/lang/Object;
            putfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
        20: .line 119
            aload 0 /* this */
            aload 1 /* src */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            arraylength
            newarray 10
            putfield android.text.SpannableStringInternal.mSpanData:[I
        21: .line 120
            aload 0 /* this */
            aload 1 /* src */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            putfield android.text.SpannableStringInternal.mSpanCount:I
        22: .line 121
            aload 1 /* src */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            iconst_0
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            iconst_0
            aload 1 /* src */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        23: .line 122
            aload 1 /* src */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            iconst_0
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            iconst_0
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        24: .line 123
            goto 45
        25: .line 124
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 5 /* count */
            putfield android.text.SpannableStringInternal.mSpanCount:I
        26: .line 125
            aload 0 /* this */
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            invokestatic com.android.internal.util.ArrayUtils.newUnpaddedObjectArray:(I)[Ljava/lang/Object;
            putfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
        27: .line 126
            aload 0 /* this */
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            arraylength
            iconst_3
            imul
            newarray 10
            putfield android.text.SpannableStringInternal.mSpanData:[I
        28: .line 127
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        29: iconst_0
            istore 11 /* j */
        start local 11 // int j
        30: goto 44
        31: .line 128
      StackMap locals: int int
      StackMap stack:
            aload 6 /* srcData */
            iload 10 /* i */
            iconst_3
            imul
            iconst_0
            iadd
            iaload
            istore 12 /* spanStart */
        start local 12 // int spanStart
        32: .line 129
            aload 6 /* srcData */
            iload 10 /* i */
            iconst_3
            imul
            iconst_1
            iadd
            iaload
            istore 13 /* spanEnd */
        start local 13 // int spanEnd
        33: .line 130
            aload 0 /* this */
            iload 2 /* start */
            iload 3 /* end */
            iload 12 /* spanStart */
            iload 13 /* spanEnd */
            invokevirtual android.text.SpannableStringInternal.isOutOfCopyRange:(IIII)Z
            ifne 43
        34: .line 131
            iload 4 /* ignoreNoCopySpan */
            ifeq 36
            aload 7 /* srcSpans */
            iload 10 /* i */
            aaload
            instanceof android.text.NoCopySpan
            ifeq 36
        35: .line 132
            goto 43
        36: .line 134
      StackMap locals: int int
      StackMap stack:
            iload 12 /* spanStart */
            iload 2 /* start */
            if_icmpge 37
            iload 2 /* start */
            istore 12 /* spanStart */
        37: .line 135
      StackMap locals:
      StackMap stack:
            iload 13 /* spanEnd */
            iload 3 /* end */
            if_icmple 38
            iload 3 /* end */
            istore 13 /* spanEnd */
        38: .line 137
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            iload 11 /* j */
            aload 7 /* srcSpans */
            iload 10 /* i */
            aaload
            aastore
        39: .line 138
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            iload 11 /* j */
            iconst_3
            imul
            iconst_0
            iadd
            iload 12 /* spanStart */
            iload 2 /* start */
            isub
            iastore
        40: .line 139
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            iload 11 /* j */
            iconst_3
            imul
            iconst_1
            iadd
            iload 13 /* spanEnd */
            iload 2 /* start */
            isub
            iastore
        41: .line 140
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            iload 11 /* j */
            iconst_3
            imul
            iconst_2
            iadd
            aload 6 /* srcData */
            iload 10 /* i */
            iconst_3
            imul
            iconst_2
            iadd
            iaload
            iastore
        42: .line 141
            iinc 11 /* j */ 1
        end local 13 // int spanEnd
        end local 12 // int spanStart
        43: .line 127
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        44: iload 10 /* i */
            iload 8 /* limit */
            if_icmplt 31
        end local 11 // int j
        end local 10 // int i
        45: .line 144
      StackMap locals:
      StackMap stack:
            return
        end local 9 // boolean hasNoCopySpan
        end local 8 // int limit
        end local 7 // java.lang.Object[] srcSpans
        end local 6 // int[] srcData
        end local 5 // int count
        end local 4 // boolean ignoreNoCopySpan
        end local 3 // int end
        end local 2 // int start
        end local 1 // android.text.SpannableStringInternal src
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   46     0              this  Landroid/text/SpannableStringInternal;
            0   46     1               src  Landroid/text/SpannableStringInternal;
            0   46     2             start  I
            0   46     3               end  I
            0   46     4  ignoreNoCopySpan  Z
            1   46     5             count  I
            2   46     6           srcData  [I
            3   46     7          srcSpans  [Ljava/lang/Object;
            4   46     8             limit  I
            5   46     9     hasNoCopySpan  Z
            6   17    10                 i  I
            8   15    11         spanStart  I
            9   15    12           spanEnd  I
           29   45    10                 i  I
           30   45    11                 j  I
           32   43    12         spanStart  I
           33   43    13           spanEnd  I
    MethodParameters:
                  Name  Flags
      src               
      start             
      end               
      ignoreNoCopySpan  

  private final boolean isOutOfCopyRange(int, int, int, int);
    descriptor: (IIII)Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // int start
        start local 2 // int end
        start local 3 // int spanStart
        start local 4 // int spanEnd
         0: .line 152
            iload 3 /* spanStart */
            iload 2 /* end */
            if_icmpgt 1
            iload 4 /* spanEnd */
            iload 1 /* start */
            if_icmpge 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
         2: .line 153
      StackMap locals:
      StackMap stack:
            iload 3 /* spanStart */
            iload 4 /* spanEnd */
            if_icmpeq 5
            iload 1 /* start */
            iload 2 /* end */
            if_icmpeq 5
         3: .line 154
            iload 3 /* spanStart */
            iload 2 /* end */
            if_icmpeq 4
            iload 4 /* spanEnd */
            iload 1 /* start */
            if_icmpne 5
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
         5: .line 156
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // int spanEnd
        end local 3 // int spanStart
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Landroid/text/SpannableStringInternal;
            0    6     1      start  I
            0    6     2        end  I
            0    6     3  spanStart  I
            0    6     4    spanEnd  I
    MethodParameters:
           Name  Flags
      start      
      end        
      spanStart  
      spanEnd    

  public final int length();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.SpannableStringInternal this
         0: .line 160
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mText:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ireturn
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/SpannableStringInternal;

  public final char charAt(int);
    descriptor: (I)C
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // int i
         0: .line 164
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mText:Ljava/lang/String;
            iload 1 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            ireturn
        end local 1 // int i
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/SpannableStringInternal;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

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

  public final void getChars(int, int, char[], int);
    descriptor: (II[CI)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // int start
        start local 2 // int end
        start local 3 // char[] dest
        start local 4 // int off
         0: .line 174
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mText:Ljava/lang/String;
            iload 1 /* start */
            iload 2 /* end */
            aload 3 /* dest */
            iload 4 /* off */
            invokevirtual java.lang.String.getChars:(II[CI)V
         1: .line 175
            return
        end local 4 // int off
        end local 3 // char[] dest
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/text/SpannableStringInternal;
            0    2     1  start  I
            0    2     2    end  I
            0    2     3   dest  [C
            0    2     4    off  I
    MethodParameters:
       Name  Flags
      start  
      end    
      dest   
      off    

  void setSpan(java.lang.Object, int, int, int);
    descriptor: (Ljava/lang/Object;III)V
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // android.text.SpannableStringInternal 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 178
            aload 0 /* this */
            aload 1 /* what */
            iload 2 /* start */
            iload 3 /* end */
            iload 4 /* flags */
            iconst_1
            invokevirtual android.text.SpannableStringInternal.setSpan:(Ljava/lang/Object;IIIZ)V
         1: .line 179
            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.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/text/SpannableStringInternal;
            0    2     1   what  Ljava/lang/Object;
            0    2     2  start  I
            0    2     3    end  I
            0    2     4  flags  I
    MethodParameters:
       Name  Flags
      what   
      start  
      end    
      flags  

  private boolean isIndexFollowsNextLine(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // int index
         0: .line 182
            iload 1 /* index */
            ifeq 1
            iload 1 /* index */
            aload 0 /* this */
            invokevirtual android.text.SpannableStringInternal.length:()I
            if_icmpeq 1
            aload 0 /* this */
            iload 1 /* index */
            iconst_1
            isub
            invokevirtual android.text.SpannableStringInternal.charAt:(I)C
            bipush 10
            if_icmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int index
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/text/SpannableStringInternal;
            0    2     1  index  I
    MethodParameters:
       Name  Flags
      index  

  private void setSpan(java.lang.Object, int, int, int, boolean);
    descriptor: (Ljava/lang/Object;IIIZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=14, args_size=6
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // java.lang.Object what
        start local 2 // int start
        start local 3 // int end
        start local 4 // int flags
        start local 5 // boolean enforceParagraph
         0: .line 186
            iload 2 /* start */
            istore 6 /* nstart */
        start local 6 // int nstart
         1: .line 187
            iload 3 /* end */
            istore 7 /* nend */
        start local 7 // int nend
         2: .line 189
            aload 0 /* this */
            ldc "setSpan"
            iload 2 /* start */
            iload 3 /* end */
            invokevirtual android.text.SpannableStringInternal.checkRange:(Ljava/lang/String;II)V
         3: .line 191
            iload 4 /* flags */
            bipush 51
            iand
            bipush 51
            if_icmpne 16
         4: .line 192
            aload 0 /* this */
            iload 2 /* start */
            invokevirtual android.text.SpannableStringInternal.isIndexFollowsNextLine:(I)Z
            ifeq 10
         5: .line 193
            iload 5 /* enforceParagraph */
            ifne 7
         6: .line 195
            return
         7: .line 197
      StackMap locals: int int
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "PARAGRAPH span must start at paragraph boundary ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 198
            iload 2 /* start */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " follows "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            iload 2 /* start */
            iconst_1
            isub
            invokevirtual android.text.SpannableStringInternal.charAt:(I)C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 197
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 201
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* end */
            invokevirtual android.text.SpannableStringInternal.isIndexFollowsNextLine:(I)Z
            ifeq 16
        11: .line 202
            iload 5 /* enforceParagraph */
            ifne 13
        12: .line 204
            return
        13: .line 206
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "PARAGRAPH span must end at paragraph boundary ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 207
            iload 3 /* end */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " follows "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            iload 3 /* end */
            iconst_1
            isub
            invokevirtual android.text.SpannableStringInternal.charAt:(I)C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 206
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 211
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            istore 8 /* count */
        start local 8 // int count
        17: .line 212
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            astore 9 /* spans */
        start local 9 // java.lang.Object[] spans
        18: .line 213
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            astore 10 /* data */
        start local 10 // int[] data
        19: .line 215
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        20: goto 30
        21: .line 216
      StackMap locals: android.text.SpannableStringInternal java.lang.Object int int int int int int int java.lang.Object[] int[] int
      StackMap stack:
            aload 9 /* spans */
            iload 11 /* i */
            aaload
            aload 1 /* what */
            if_acmpne 29
        22: .line 217
            aload 10 /* data */
            iload 11 /* i */
            iconst_3
            imul
            iconst_0
            iadd
            iaload
            istore 12 /* ostart */
        start local 12 // int ostart
        23: .line 218
            aload 10 /* data */
            iload 11 /* i */
            iconst_3
            imul
            iconst_1
            iadd
            iaload
            istore 13 /* oend */
        start local 13 // int oend
        24: .line 220
            aload 10 /* data */
            iload 11 /* i */
            iconst_3
            imul
            iconst_0
            iadd
            iload 2 /* start */
            iastore
        25: .line 221
            aload 10 /* data */
            iload 11 /* i */
            iconst_3
            imul
            iconst_1
            iadd
            iload 3 /* end */
            iastore
        26: .line 222
            aload 10 /* data */
            iload 11 /* i */
            iconst_3
            imul
            iconst_2
            iadd
            iload 4 /* flags */
            iastore
        27: .line 224
            aload 0 /* this */
            aload 1 /* what */
            iload 12 /* ostart */
            iload 13 /* oend */
            iload 6 /* nstart */
            iload 7 /* nend */
            invokevirtual android.text.SpannableStringInternal.sendSpanChanged:(Ljava/lang/Object;IIII)V
        28: .line 225
            return
        end local 13 // int oend
        end local 12 // int ostart
        29: .line 215
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 11 /* i */
            iload 8 /* count */
            if_icmplt 21
        end local 11 // int i
        31: .line 229
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            iconst_1
            iadd
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            arraylength
            if_icmplt 39
        32: .line 231
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            invokestatic com.android.internal.util.GrowingArrayUtils.growSize:(I)I
        33: .line 230
            invokestatic com.android.internal.util.ArrayUtils.newUnpaddedObjectArray:(I)[Ljava/lang/Object;
            astore 11 /* newtags */
        start local 11 // java.lang.Object[] newtags
        34: .line 232
            aload 11 /* newtags */
            arraylength
            iconst_3
            imul
            newarray 10
            astore 12 /* newdata */
        start local 12 // int[] newdata
        35: .line 234
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            iconst_0
            aload 11 /* newtags */
            iconst_0
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        36: .line 235
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            iconst_0
            aload 12 /* newdata */
            iconst_0
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            iconst_3
            imul
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        37: .line 237
            aload 0 /* this */
            aload 11 /* newtags */
            putfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
        38: .line 238
            aload 0 /* this */
            aload 12 /* newdata */
            putfield android.text.SpannableStringInternal.mSpanData:[I
        end local 12 // int[] newdata
        end local 11 // java.lang.Object[] newtags
        39: .line 241
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            aload 1 /* what */
            aastore
        40: .line 242
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            iconst_3
            imul
            iconst_0
            iadd
            iload 2 /* start */
            iastore
        41: .line 243
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            iconst_3
            imul
            iconst_1
            iadd
            iload 3 /* end */
            iastore
        42: .line 244
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            iconst_3
            imul
            iconst_2
            iadd
            iload 4 /* flags */
            iastore
        43: .line 245
            aload 0 /* this */
            dup
            getfield android.text.SpannableStringInternal.mSpanCount:I
            iconst_1
            iadd
            putfield android.text.SpannableStringInternal.mSpanCount:I
        44: .line 247
            aload 0 /* this */
            instanceof android.text.Spannable
            ifeq 46
        45: .line 248
            aload 0 /* this */
            aload 1 /* what */
            iload 6 /* nstart */
            iload 7 /* nend */
            invokevirtual android.text.SpannableStringInternal.sendSpanAdded:(Ljava/lang/Object;II)V
        46: .line 249
      StackMap locals:
      StackMap stack:
            return
        end local 10 // int[] data
        end local 9 // java.lang.Object[] spans
        end local 8 // int count
        end local 7 // int nend
        end local 6 // int nstart
        end local 5 // boolean enforceParagraph
        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.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   47     0              this  Landroid/text/SpannableStringInternal;
            0   47     1              what  Ljava/lang/Object;
            0   47     2             start  I
            0   47     3               end  I
            0   47     4             flags  I
            0   47     5  enforceParagraph  Z
            1   47     6            nstart  I
            2   47     7              nend  I
           17   47     8             count  I
           18   47     9             spans  [Ljava/lang/Object;
           19   47    10              data  [I
           20   31    11                 i  I
           23   29    12            ostart  I
           24   29    13              oend  I
           34   39    11           newtags  [Ljava/lang/Object;
           35   39    12           newdata  [I
    MethodParameters:
                  Name  Flags
      what              
      start             
      end               
      flags             
      enforceParagraph  

  void removeSpan(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // java.lang.Object what
         0: .line 252
            aload 0 /* this */
            aload 1 /* what */
            iconst_0
            invokevirtual android.text.SpannableStringInternal.removeSpan:(Ljava/lang/Object;I)V
         1: .line 253
            return
        end local 1 // java.lang.Object what
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/text/SpannableStringInternal;
            0    2     1  what  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      what  

  public void removeSpan(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // java.lang.Object what
        start local 2 // int flags
         0: .line 259
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            istore 3 /* count */
        start local 3 // int count
         1: .line 260
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            astore 4 /* spans */
        start local 4 // java.lang.Object[] spans
         2: .line 261
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            astore 5 /* data */
        start local 5 // int[] data
         3: .line 263
            iload 3 /* count */
            iconst_1
            isub
            istore 6 /* i */
        start local 6 // int i
         4: goto 18
         5: .line 264
      StackMap locals: android.text.SpannableStringInternal java.lang.Object int int java.lang.Object[] int[] int
      StackMap stack:
            aload 4 /* spans */
            iload 6 /* i */
            aaload
            aload 1 /* what */
            if_acmpne 17
         6: .line 265
            aload 5 /* data */
            iload 6 /* i */
            iconst_3
            imul
            iconst_0
            iadd
            iaload
            istore 7 /* ostart */
        start local 7 // int ostart
         7: .line 266
            aload 5 /* data */
            iload 6 /* i */
            iconst_3
            imul
            iconst_1
            iadd
            iaload
            istore 8 /* oend */
        start local 8 // int oend
         8: .line 268
            iload 3 /* count */
            iload 6 /* i */
            iconst_1
            iadd
            isub
            istore 9 /* c */
        start local 9 // int c
         9: .line 270
            aload 4 /* spans */
            iload 6 /* i */
            iconst_1
            iadd
            aload 4 /* spans */
            iload 6 /* i */
            iload 9 /* c */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 271
            aload 5 /* data */
            iload 6 /* i */
            iconst_1
            iadd
            iconst_3
            imul
        11: .line 272
            aload 5 /* data */
            iload 6 /* i */
            iconst_3
            imul
            iload 9 /* c */
            iconst_3
            imul
        12: .line 271
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        13: .line 274
            aload 0 /* this */
            dup
            getfield android.text.SpannableStringInternal.mSpanCount:I
            iconst_1
            isub
            putfield android.text.SpannableStringInternal.mSpanCount:I
        14: .line 276
            iload 2 /* flags */
            sipush 512
            iand
            ifne 16
        15: .line 277
            aload 0 /* this */
            aload 1 /* what */
            iload 7 /* ostart */
            iload 8 /* oend */
            invokevirtual android.text.SpannableStringInternal.sendSpanRemoved:(Ljava/lang/Object;II)V
        16: .line 279
      StackMap locals: int int int
      StackMap stack:
            return
        end local 9 // int c
        end local 8 // int oend
        end local 7 // int ostart
        17: .line 263
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ -1
      StackMap locals:
      StackMap stack:
        18: iload 6 /* i */
            ifge 5
        end local 6 // int i
        19: .line 282
            return
        end local 5 // int[] data
        end local 4 // java.lang.Object[] spans
        end local 3 // int count
        end local 2 // int flags
        end local 1 // java.lang.Object what
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   20     0    this  Landroid/text/SpannableStringInternal;
            0   20     1    what  Ljava/lang/Object;
            0   20     2   flags  I
            1   20     3   count  I
            2   20     4   spans  [Ljava/lang/Object;
            3   20     5    data  [I
            4   19     6       i  I
            7   17     7  ostart  I
            8   17     8    oend  I
            9   17     9       c  I
    MethodParameters:
       Name  Flags
      what   
      flags  

  public int getSpanStart(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // java.lang.Object what
         0: .line 285
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            istore 2 /* count */
        start local 2 // int count
         1: .line 286
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            astore 3 /* spans */
        start local 3 // java.lang.Object[] spans
         2: .line 287
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            astore 4 /* data */
        start local 4 // int[] data
         3: .line 289
            iload 2 /* count */
            iconst_1
            isub
            istore 5 /* i */
        start local 5 // int i
         4: goto 8
         5: .line 290
      StackMap locals: android.text.SpannableStringInternal java.lang.Object int java.lang.Object[] int[] int
      StackMap stack:
            aload 3 /* spans */
            iload 5 /* i */
            aaload
            aload 1 /* what */
            if_acmpne 7
         6: .line 291
            aload 4 /* data */
            iload 5 /* i */
            iconst_3
            imul
            iconst_0
            iadd
            iaload
            ireturn
         7: .line 289
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ -1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            ifge 5
        end local 5 // int i
         9: .line 295
            iconst_m1
            ireturn
        end local 4 // int[] data
        end local 3 // java.lang.Object[] spans
        end local 2 // int count
        end local 1 // java.lang.Object what
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Landroid/text/SpannableStringInternal;
            0   10     1   what  Ljava/lang/Object;
            1   10     2  count  I
            2   10     3  spans  [Ljava/lang/Object;
            3   10     4   data  [I
            4    9     5      i  I
    MethodParameters:
      Name  Flags
      what  

  public int getSpanEnd(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // java.lang.Object what
         0: .line 299
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            istore 2 /* count */
        start local 2 // int count
         1: .line 300
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            astore 3 /* spans */
        start local 3 // java.lang.Object[] spans
         2: .line 301
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            astore 4 /* data */
        start local 4 // int[] data
         3: .line 303
            iload 2 /* count */
            iconst_1
            isub
            istore 5 /* i */
        start local 5 // int i
         4: goto 8
         5: .line 304
      StackMap locals: android.text.SpannableStringInternal java.lang.Object int java.lang.Object[] int[] int
      StackMap stack:
            aload 3 /* spans */
            iload 5 /* i */
            aaload
            aload 1 /* what */
            if_acmpne 7
         6: .line 305
            aload 4 /* data */
            iload 5 /* i */
            iconst_3
            imul
            iconst_1
            iadd
            iaload
            ireturn
         7: .line 303
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ -1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            ifge 5
        end local 5 // int i
         9: .line 309
            iconst_m1
            ireturn
        end local 4 // int[] data
        end local 3 // java.lang.Object[] spans
        end local 2 // int count
        end local 1 // java.lang.Object what
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Landroid/text/SpannableStringInternal;
            0   10     1   what  Ljava/lang/Object;
            1   10     2  count  I
            2   10     3  spans  [Ljava/lang/Object;
            3   10     4   data  [I
            4    9     5      i  I
    MethodParameters:
      Name  Flags
      what  

  public int getSpanFlags(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // java.lang.Object what
         0: .line 313
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            istore 2 /* count */
        start local 2 // int count
         1: .line 314
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            astore 3 /* spans */
        start local 3 // java.lang.Object[] spans
         2: .line 315
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            astore 4 /* data */
        start local 4 // int[] data
         3: .line 317
            iload 2 /* count */
            iconst_1
            isub
            istore 5 /* i */
        start local 5 // int i
         4: goto 8
         5: .line 318
      StackMap locals: android.text.SpannableStringInternal java.lang.Object int java.lang.Object[] int[] int
      StackMap stack:
            aload 3 /* spans */
            iload 5 /* i */
            aaload
            aload 1 /* what */
            if_acmpne 7
         6: .line 319
            aload 4 /* data */
            iload 5 /* i */
            iconst_3
            imul
            iconst_2
            iadd
            iaload
            ireturn
         7: .line 317
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ -1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            ifge 5
        end local 5 // int i
         9: .line 323
            iconst_0
            ireturn
        end local 4 // int[] data
        end local 3 // java.lang.Object[] spans
        end local 2 // int count
        end local 1 // java.lang.Object what
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Landroid/text/SpannableStringInternal;
            0   10     1   what  Ljava/lang/Object;
            1   10     2  count  I
            2   10     3  spans  [Ljava/lang/Object;
            3   10     4   data  [I
            4    9     5      i  I
    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=6, locals=16, args_size=4
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // int queryStart
        start local 2 // int queryEnd
        start local 3 // java.lang.Class kind
         0: .line 327
            iconst_0
            istore 4 /* count */
        start local 4 // int count
         1: .line 329
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            istore 5 /* spanCount */
        start local 5 // int spanCount
         2: .line 330
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            astore 6 /* spans */
        start local 6 // java.lang.Object[] spans
         3: .line 331
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            astore 7 /* data */
        start local 7 // int[] data
         4: .line 332
            aconst_null
            astore 8 /* ret */
        start local 8 // java.lang.Object[] ret
         5: .line 333
            aconst_null
            astore 9 /* ret1 */
        start local 9 // java.lang.Object ret1
         6: .line 335
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         7: goto 43
         8: .line 336
      StackMap locals: android.text.SpannableStringInternal int int java.lang.Class int int java.lang.Object[] int[] java.lang.Object[] java.lang.Object int
      StackMap stack:
            aload 7 /* data */
            iload 10 /* i */
            iconst_3
            imul
            iconst_0
            iadd
            iaload
            istore 11 /* spanStart */
        start local 11 // int spanStart
         9: .line 337
            aload 7 /* data */
            iload 10 /* i */
            iconst_3
            imul
            iconst_1
            iadd
            iaload
            istore 12 /* spanEnd */
        start local 12 // int spanEnd
        10: .line 339
            iload 11 /* spanStart */
            iload 2 /* queryEnd */
            if_icmple 12
        11: .line 340
            goto 42
        12: .line 342
      StackMap locals: int int
      StackMap stack:
            iload 12 /* spanEnd */
            iload 1 /* queryStart */
            if_icmpge 14
        13: .line 343
            goto 42
        14: .line 346
      StackMap locals:
      StackMap stack:
            iload 11 /* spanStart */
            iload 12 /* spanEnd */
            if_icmpeq 19
            iload 1 /* queryStart */
            iload 2 /* queryEnd */
            if_icmpeq 19
        15: .line 347
            iload 11 /* spanStart */
            iload 2 /* queryEnd */
            if_icmpne 17
        16: .line 348
            goto 42
        17: .line 350
      StackMap locals:
      StackMap stack:
            iload 12 /* spanEnd */
            iload 1 /* queryStart */
            if_icmpne 19
        18: .line 351
            goto 42
        19: .line 356
      StackMap locals:
      StackMap stack:
            aload 3 /* kind */
            ifnull 21
            aload 3 /* kind */
            ldc Ljava/lang/Object;
            if_acmpeq 21
            aload 3 /* kind */
            aload 6 /* spans */
            iload 10 /* i */
            aaload
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 21
        20: .line 357
            goto 42
        21: .line 360
      StackMap locals:
      StackMap stack:
            iload 4 /* count */
            ifne 25
        22: .line 361
            aload 6 /* spans */
            iload 10 /* i */
            aaload
            astore 9 /* ret1 */
        23: .line 362
            iinc 4 /* count */ 1
        24: .line 363
            goto 42
        25: .line 364
      StackMap locals:
      StackMap stack:
            iload 4 /* count */
            iconst_1
            if_icmpne 28
        26: .line 365
            aload 3 /* kind */
            iload 5 /* spanCount */
            iload 10 /* i */
            isub
            iconst_1
            iadd
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 8 /* ret */
        27: .line 366
            aload 8 /* ret */
            iconst_0
            aload 9 /* ret1 */
            aastore
        28: .line 369
      StackMap locals:
      StackMap stack:
            aload 7 /* data */
            iload 10 /* i */
            iconst_3
            imul
            iconst_2
            iadd
            iaload
            ldc 16711680
            iand
            istore 13 /* prio */
        start local 13 // int prio
        29: .line 370
            iload 13 /* prio */
            ifeq 41
        30: .line 373
            iconst_0
            istore 14 /* j */
        start local 14 // int j
        31: goto 36
        32: .line 374
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 8 /* ret */
            iload 14 /* j */
            aaload
            invokevirtual android.text.SpannableStringInternal.getSpanFlags:(Ljava/lang/Object;)I
            ldc 16711680
            iand
            istore 15 /* p */
        start local 15 // int p
        33: .line 376
            iload 13 /* prio */
            iload 15 /* p */
            if_icmple 35
        34: .line 377
            goto 37
        end local 15 // int p
        35: .line 373
      StackMap locals:
      StackMap stack:
            iinc 14 /* j */ 1
      StackMap locals:
      StackMap stack:
        36: iload 14 /* j */
            iload 4 /* count */
            if_icmplt 32
        37: .line 381
      StackMap locals:
      StackMap stack:
            aload 8 /* ret */
            iload 14 /* j */
            aload 8 /* ret */
            iload 14 /* j */
            iconst_1
            iadd
            iload 4 /* count */
            iload 14 /* j */
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        38: .line 382
            aload 8 /* ret */
            iload 14 /* j */
            aload 6 /* spans */
            iload 10 /* i */
            aaload
            aastore
        39: .line 383
            iinc 4 /* count */ 1
        end local 14 // int j
        40: .line 384
            goto 42
        41: .line 385
      StackMap locals:
      StackMap stack:
            aload 8 /* ret */
            iload 4 /* count */
            iinc 4 /* count */ 1
            aload 6 /* spans */
            iload 10 /* i */
            aaload
            aastore
        end local 13 // int prio
        end local 12 // int spanEnd
        end local 11 // int spanStart
        42: .line 335
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        43: iload 10 /* i */
            iload 5 /* spanCount */
            if_icmplt 8
        end local 10 // int i
        44: .line 390
            iload 4 /* count */
            ifne 46
        45: .line 391
            aload 3 /* kind */
            invokestatic com.android.internal.util.ArrayUtils.emptyArray:(Ljava/lang/Class;)[Ljava/lang/Object;
            areturn
        46: .line 393
      StackMap locals:
      StackMap stack:
            iload 4 /* count */
            iconst_1
            if_icmpne 50
        47: .line 394
            aload 3 /* kind */
            iconst_1
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 8 /* ret */
        48: .line 395
            aload 8 /* ret */
            iconst_0
            aload 9 /* ret1 */
            aastore
        49: .line 396
            aload 8 /* ret */
            areturn
        50: .line 398
      StackMap locals:
      StackMap stack:
            iload 4 /* count */
            aload 8 /* ret */
            arraylength
            if_icmpne 52
        51: .line 399
            aload 8 /* ret */
            areturn
        52: .line 402
      StackMap locals:
      StackMap stack:
            aload 3 /* kind */
            iload 4 /* count */
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 10 /* nret */
        start local 10 // java.lang.Object[] nret
        53: .line 403
            aload 8 /* ret */
            iconst_0
            aload 10 /* nret */
            iconst_0
            iload 4 /* count */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        54: .line 404
            aload 10 /* nret */
            areturn
        end local 10 // java.lang.Object[] nret
        end local 9 // java.lang.Object ret1
        end local 8 // java.lang.Object[] ret
        end local 7 // int[] data
        end local 6 // java.lang.Object[] spans
        end local 5 // int spanCount
        end local 4 // int count
        end local 3 // java.lang.Class kind
        end local 2 // int queryEnd
        end local 1 // int queryStart
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   55     0        this  Landroid/text/SpannableStringInternal;
            0   55     1  queryStart  I
            0   55     2    queryEnd  I
            0   55     3        kind  Ljava/lang/Class<TT;>;
            1   55     4       count  I
            2   55     5   spanCount  I
            3   55     6       spans  [Ljava/lang/Object;
            4   55     7        data  [I
            5   55     8         ret  [Ljava/lang/Object;
            6   55     9        ret1  Ljava/lang/Object;
            7   44    10           i  I
            9   42    11   spanStart  I
           10   42    12     spanEnd  I
           29   42    13        prio  I
           31   40    14           j  I
           33   35    15           p  I
           53   55    10        nret  [Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>(IILjava/lang/Class<TT;>;)[TT;
    MethodParameters:
            Name  Flags
      queryStart  
      queryEnd    
      kind        

  public int nextSpanTransition(int, int, java.lang.Class);
    descriptor: (IILjava/lang/Class;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=10, args_size=4
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // int start
        start local 2 // int limit
        start local 3 // java.lang.Class kind
         0: .line 408
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            istore 4 /* count */
        start local 4 // int count
         1: .line 409
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            astore 5 /* spans */
        start local 5 // java.lang.Object[] spans
         2: .line 410
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanData:[I
            astore 6 /* data */
        start local 6 // int[] data
         3: .line 412
            aload 3 /* kind */
            ifnonnull 5
         4: .line 413
            ldc Ljava/lang/Object;
            astore 3 /* kind */
         5: .line 416
      StackMap locals: int java.lang.Object[] int[]
      StackMap stack:
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         6: goto 14
         7: .line 417
      StackMap locals: int
      StackMap stack:
            aload 6 /* data */
            iload 7 /* i */
            iconst_3
            imul
            iconst_0
            iadd
            iaload
            istore 8 /* st */
        start local 8 // int st
         8: .line 418
            aload 6 /* data */
            iload 7 /* i */
            iconst_3
            imul
            iconst_1
            iadd
            iaload
            istore 9 /* en */
        start local 9 // int en
         9: .line 420
            iload 8 /* st */
            iload 1 /* start */
            if_icmple 11
            iload 8 /* st */
            iload 2 /* limit */
            if_icmpge 11
            aload 3 /* kind */
            aload 5 /* spans */
            iload 7 /* i */
            aaload
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 421
            iload 8 /* st */
            istore 2 /* limit */
        11: .line 422
      StackMap locals: int int
      StackMap stack:
            iload 9 /* en */
            iload 1 /* start */
            if_icmple 13
            iload 9 /* en */
            iload 2 /* limit */
            if_icmpge 13
            aload 3 /* kind */
            aload 5 /* spans */
            iload 7 /* i */
            aaload
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 13
        12: .line 423
            iload 9 /* en */
            istore 2 /* limit */
        end local 9 // int en
        end local 8 // int st
        13: .line 416
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 7 /* i */
            iload 4 /* count */
            if_icmplt 7
        end local 7 // int i
        15: .line 426
            iload 2 /* limit */
            ireturn
        end local 6 // int[] data
        end local 5 // java.lang.Object[] spans
        end local 4 // int count
        end local 3 // java.lang.Class kind
        end local 2 // int limit
        end local 1 // int start
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0   this  Landroid/text/SpannableStringInternal;
            0   16     1  start  I
            0   16     2  limit  I
            0   16     3   kind  Ljava/lang/Class;
            1   16     4  count  I
            2   16     5  spans  [Ljava/lang/Object;
            3   16     6   data  [I
            6   15     7      i  I
            8   13     8     st  I
            9   13     9     en  I
    MethodParameters:
       Name  Flags
      start  
      limit  
      kind   

  private void sendSpanAdded(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // java.lang.Object what
        start local 2 // int start
        start local 3 // int end
         0: .line 430
            aload 0 /* this */
            iload 2 /* start */
            iload 3 /* end */
            ldc Landroid/text/SpanWatcher;
            invokevirtual android.text.SpannableStringInternal.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.SpanWatcher[]
            astore 4 /* recip */
        start local 4 // android.text.SpanWatcher[] recip
         1: .line 431
            aload 4 /* recip */
            arraylength
            istore 5 /* n */
        start local 5 // int n
         2: .line 433
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         3: goto 6
         4: .line 434
      StackMap locals: android.text.SpanWatcher[] int int
      StackMap stack:
            aload 4 /* recip */
            iload 6 /* i */
            aaload
            aload 0 /* this */
            checkcast android.text.Spannable
            aload 1 /* what */
            iload 2 /* start */
            iload 3 /* end */
            invokeinterface android.text.SpanWatcher.onSpanAdded:(Landroid/text/Spannable;Ljava/lang/Object;II)V
         5: .line 433
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 6 /* i */
            iload 5 /* n */
            if_icmplt 4
        end local 6 // int i
         7: .line 436
            return
        end local 5 // int n
        end local 4 // android.text.SpanWatcher[] recip
        end local 3 // int end
        end local 2 // int start
        end local 1 // java.lang.Object what
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Landroid/text/SpannableStringInternal;
            0    8     1   what  Ljava/lang/Object;
            0    8     2  start  I
            0    8     3    end  I
            1    8     4  recip  [Landroid/text/SpanWatcher;
            2    8     5      n  I
            3    7     6      i  I
    MethodParameters:
       Name  Flags
      what   
      start  
      end    

  private void sendSpanRemoved(java.lang.Object, int, int);
    descriptor: (Ljava/lang/Object;II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // java.lang.Object what
        start local 2 // int start
        start local 3 // int end
         0: .line 439
            aload 0 /* this */
            iload 2 /* start */
            iload 3 /* end */
            ldc Landroid/text/SpanWatcher;
            invokevirtual android.text.SpannableStringInternal.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.SpanWatcher[]
            astore 4 /* recip */
        start local 4 // android.text.SpanWatcher[] recip
         1: .line 440
            aload 4 /* recip */
            arraylength
            istore 5 /* n */
        start local 5 // int n
         2: .line 442
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         3: goto 6
         4: .line 443
      StackMap locals: android.text.SpanWatcher[] int int
      StackMap stack:
            aload 4 /* recip */
            iload 6 /* i */
            aaload
            aload 0 /* this */
            checkcast android.text.Spannable
            aload 1 /* what */
            iload 2 /* start */
            iload 3 /* end */
            invokeinterface android.text.SpanWatcher.onSpanRemoved:(Landroid/text/Spannable;Ljava/lang/Object;II)V
         5: .line 442
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 6 /* i */
            iload 5 /* n */
            if_icmplt 4
        end local 6 // int i
         7: .line 445
            return
        end local 5 // int n
        end local 4 // android.text.SpanWatcher[] recip
        end local 3 // int end
        end local 2 // int start
        end local 1 // java.lang.Object what
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Landroid/text/SpannableStringInternal;
            0    8     1   what  Ljava/lang/Object;
            0    8     2  start  I
            0    8     3    end  I
            1    8     4  recip  [Landroid/text/SpanWatcher;
            2    8     5      n  I
            3    7     6      i  I
    MethodParameters:
       Name  Flags
      what   
      start  
      end    

  private void sendSpanChanged(java.lang.Object, int, int, int, int);
    descriptor: (Ljava/lang/Object;IIII)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=6
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // java.lang.Object what
        start local 2 // int s
        start local 3 // int e
        start local 4 // int st
        start local 5 // int en
         0: .line 448
            aload 0 /* this */
            iload 2 /* s */
            iload 4 /* st */
            invokestatic java.lang.Math.min:(II)I
            iload 3 /* e */
            iload 5 /* en */
            invokestatic java.lang.Math.max:(II)I
         1: .line 449
            ldc Landroid/text/SpanWatcher;
         2: .line 448
            invokevirtual android.text.SpannableStringInternal.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.SpanWatcher[]
            astore 6 /* recip */
        start local 6 // android.text.SpanWatcher[] recip
         3: .line 450
            aload 6 /* recip */
            arraylength
            istore 7 /* n */
        start local 7 // int n
         4: .line 452
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         5: goto 8
         6: .line 453
      StackMap locals: android.text.SpanWatcher[] int int
      StackMap stack:
            aload 6 /* recip */
            iload 8 /* i */
            aaload
            aload 0 /* this */
            checkcast android.text.Spannable
            aload 1 /* what */
            iload 2 /* s */
            iload 3 /* e */
            iload 4 /* st */
            iload 5 /* en */
            invokeinterface android.text.SpanWatcher.onSpanChanged:(Landroid/text/Spannable;Ljava/lang/Object;IIII)V
         7: .line 452
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 8 /* i */
            iload 7 /* n */
            if_icmplt 6
        end local 8 // int i
         9: .line 455
            return
        end local 7 // int n
        end local 6 // android.text.SpanWatcher[] recip
        end local 5 // int en
        end local 4 // int st
        end local 3 // int e
        end local 2 // int s
        end local 1 // java.lang.Object what
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Landroid/text/SpannableStringInternal;
            0   10     1   what  Ljava/lang/Object;
            0   10     2      s  I
            0   10     3      e  I
            0   10     4     st  I
            0   10     5     en  I
            3   10     6  recip  [Landroid/text/SpanWatcher;
            4   10     7      n  I
            5    9     8      i  I
    MethodParameters:
      Name  Flags
      what  
      s     
      e     
      st    
      en    

  private static java.lang.String region(int, int);
    descriptor: (II)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // int start
        start local 1 // int end
         0: .line 458
            new java.lang.StringBuilder
            dup
            ldc "("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* start */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " ... "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* 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;
            areturn
        end local 1 // int end
        end local 0 // int start
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  start  I
            0    1     1    end  I
    MethodParameters:
       Name  Flags
      start  
      end    

  private void checkRange(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // java.lang.String operation
        start local 2 // int start
        start local 3 // int end
         0: .line 462
            iload 3 /* end */
            iload 2 /* start */
            if_icmpge 5
         1: .line 463
            new java.lang.IndexOutOfBoundsException
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* operation */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 464
            iload 2 /* start */
            iload 3 /* end */
            invokestatic android.text.SpannableStringInternal.region:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 465
            ldc " has end before start"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 463
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.text.SpannableStringInternal.length:()I
            istore 4 /* len */
        start local 4 // int len
         6: .line 470
            iload 2 /* start */
            iload 4 /* len */
            if_icmpgt 7
            iload 3 /* end */
            iload 4 /* len */
            if_icmple 11
         7: .line 471
      StackMap locals: int
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* operation */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 472
            iload 2 /* start */
            iload 3 /* end */
            invokestatic android.text.SpannableStringInternal.region:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 473
            ldc " ends beyond length "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* len */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 471
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 476
      StackMap locals:
      StackMap stack:
            iload 2 /* start */
            iflt 12
            iload 3 /* end */
            ifge 16
        12: .line 477
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* operation */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 478
            iload 2 /* start */
            iload 3 /* end */
            invokestatic android.text.SpannableStringInternal.region:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 479
            ldc " starts before 0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 477
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 481
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int len
        end local 3 // int end
        end local 2 // int start
        end local 1 // java.lang.String operation
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Landroid/text/SpannableStringInternal;
            0   17     1  operation  Ljava/lang/String;
            0   17     2      start  I
            0   17     3        end  I
            6   17     4        len  I
    MethodParameters:
           Name  Flags
      operation  final
      start      
      end        

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // java.lang.Object o
         0: .line 486
            aload 1 /* o */
            instanceof android.text.Spanned
            ifeq 23
         1: .line 487
            aload 0 /* this */
            invokevirtual android.text.SpannableStringInternal.toString:()Ljava/lang/String;
            aload 1 /* o */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
         2: .line 488
            aload 1 /* o */
            checkcast android.text.Spanned
            astore 2 /* other */
        start local 2 // android.text.Spanned other
         3: .line 490
            aload 2 /* other */
            iconst_0
            aload 2 /* other */
            invokeinterface android.text.Spanned.length:()I
            ldc Ljava/lang/Object;
            invokeinterface android.text.Spanned.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            astore 3 /* otherSpans */
        start local 3 // java.lang.Object[] otherSpans
         4: .line 491
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            aload 3 /* otherSpans */
            arraylength
            if_icmpne 23
         5: .line 492
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 21
         7: .line 493
      StackMap locals: android.text.Spanned java.lang.Object[] int
      StackMap stack:
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            iload 4 /* i */
            aaload
            astore 5 /* thisSpan */
        start local 5 // java.lang.Object thisSpan
         8: .line 494
            aload 3 /* otherSpans */
            iload 4 /* i */
            aaload
            astore 6 /* otherSpan */
        start local 6 // java.lang.Object otherSpan
         9: .line 495
            aload 5 /* thisSpan */
            aload 0 /* this */
            if_acmpne 15
        10: .line 496
            aload 2 /* other */
            aload 6 /* otherSpan */
            if_acmpne 14
        11: .line 497
            aload 0 /* this */
            aload 5 /* thisSpan */
            invokevirtual android.text.SpannableStringInternal.getSpanStart:(Ljava/lang/Object;)I
            aload 2 /* other */
            aload 6 /* otherSpan */
            invokeinterface android.text.Spanned.getSpanStart:(Ljava/lang/Object;)I
            if_icmpne 14
        12: .line 498
            aload 0 /* this */
            aload 5 /* thisSpan */
            invokevirtual android.text.SpannableStringInternal.getSpanEnd:(Ljava/lang/Object;)I
            aload 2 /* other */
            aload 6 /* otherSpan */
            invokeinterface android.text.Spanned.getSpanEnd:(Ljava/lang/Object;)I
            if_icmpne 14
        13: .line 499
            aload 0 /* this */
            aload 5 /* thisSpan */
            invokevirtual android.text.SpannableStringInternal.getSpanFlags:(Ljava/lang/Object;)I
            aload 2 /* other */
            aload 6 /* otherSpan */
            invokeinterface android.text.Spanned.getSpanFlags:(Ljava/lang/Object;)I
            if_icmpeq 20
        14: .line 500
      StackMap locals: java.lang.Object java.lang.Object
      StackMap stack:
            iconst_0
            ireturn
        15: .line 502
      StackMap locals:
      StackMap stack:
            aload 5 /* thisSpan */
            aload 6 /* otherSpan */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 19
        16: .line 503
            aload 0 /* this */
            aload 5 /* thisSpan */
            invokevirtual android.text.SpannableStringInternal.getSpanStart:(Ljava/lang/Object;)I
            aload 2 /* other */
            aload 6 /* otherSpan */
            invokeinterface android.text.Spanned.getSpanStart:(Ljava/lang/Object;)I
            if_icmpne 19
        17: .line 504
            aload 0 /* this */
            aload 5 /* thisSpan */
            invokevirtual android.text.SpannableStringInternal.getSpanEnd:(Ljava/lang/Object;)I
            aload 2 /* other */
            aload 6 /* otherSpan */
            invokeinterface android.text.Spanned.getSpanEnd:(Ljava/lang/Object;)I
            if_icmpne 19
        18: .line 505
            aload 0 /* this */
            aload 5 /* thisSpan */
            invokevirtual android.text.SpannableStringInternal.getSpanFlags:(Ljava/lang/Object;)I
            aload 2 /* other */
            aload 6 /* otherSpan */
            invokeinterface android.text.Spanned.getSpanFlags:(Ljava/lang/Object;)I
            if_icmpeq 20
        19: .line 506
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 6 // java.lang.Object otherSpan
        end local 5 // java.lang.Object thisSpan
        20: .line 492
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 4 /* i */
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            if_icmplt 7
        end local 4 // int i
        22: .line 509
            iconst_1
            ireturn
        end local 3 // java.lang.Object[] otherSpans
        end local 2 // android.text.Spanned other
        23: .line 512
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object o
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0        this  Landroid/text/SpannableStringInternal;
            0   24     1           o  Ljava/lang/Object;
            3   23     2       other  Landroid/text/Spanned;
            4   23     3  otherSpans  [Ljava/lang/Object;
            6   22     4           i  I
            8   20     5    thisSpan  Ljava/lang/Object;
            9   20     6   otherSpan  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // android.text.SpannableStringInternal this
         0: .line 518
            aload 0 /* this */
            invokevirtual android.text.SpannableStringInternal.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            istore 1 /* hash */
        start local 1 // int hash
         1: .line 519
            iload 1 /* hash */
            bipush 31
            imul
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            iadd
            istore 1 /* hash */
         2: .line 520
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 11
         4: .line 521
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpans:[Ljava/lang/Object;
            iload 2 /* i */
            aaload
            astore 3 /* span */
        start local 3 // java.lang.Object span
         5: .line 522
            aload 3 /* span */
            aload 0 /* this */
            if_acmpeq 7
         6: .line 523
            iload 1 /* hash */
            bipush 31
            imul
            aload 3 /* span */
            invokevirtual java.lang.Object.hashCode:()I
            iadd
            istore 1 /* hash */
         7: .line 525
      StackMap locals: java.lang.Object
      StackMap stack:
            iload 1 /* hash */
            bipush 31
            imul
            aload 0 /* this */
            aload 3 /* span */
            invokevirtual android.text.SpannableStringInternal.getSpanStart:(Ljava/lang/Object;)I
            iadd
            istore 1 /* hash */
         8: .line 526
            iload 1 /* hash */
            bipush 31
            imul
            aload 0 /* this */
            aload 3 /* span */
            invokevirtual android.text.SpannableStringInternal.getSpanEnd:(Ljava/lang/Object;)I
            iadd
            istore 1 /* hash */
         9: .line 527
            iload 1 /* hash */
            bipush 31
            imul
            aload 0 /* this */
            aload 3 /* span */
            invokevirtual android.text.SpannableStringInternal.getSpanFlags:(Ljava/lang/Object;)I
            iadd
            istore 1 /* hash */
        end local 3 // java.lang.Object span
        10: .line 520
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 2 /* i */
            aload 0 /* this */
            getfield android.text.SpannableStringInternal.mSpanCount:I
            if_icmplt 4
        end local 2 // int i
        12: .line 529
            iload 1 /* hash */
            ireturn
        end local 1 // int hash
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Landroid/text/SpannableStringInternal;
            1   13     1  hash  I
            3   12     2     i  I
            5   10     3  span  Ljava/lang/Object;

  private void copySpans(android.text.Spanned, int, int);
    descriptor: (Landroid/text/Spanned;II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // android.text.Spanned src
        start local 2 // int start
        start local 3 // int end
         0: .line 538
            aload 0 /* this */
            aload 1 /* src */
            iload 2 /* start */
            iload 3 /* end */
            iconst_0
            invokevirtual android.text.SpannableStringInternal.copySpans:(Landroid/text/Spanned;IIZ)V
         1: .line 539
            return
        end local 3 // int end
        end local 2 // int start
        end local 1 // android.text.Spanned src
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/text/SpannableStringInternal;
            0    2     1    src  Landroid/text/Spanned;
            0    2     2  start  I
            0    2     3    end  I
    MethodParameters:
       Name  Flags
      src    
      start  
      end    

  private void copySpans(android.text.SpannableStringInternal, int, int);
    descriptor: (Landroid/text/SpannableStringInternal;II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // android.text.SpannableStringInternal this
        start local 1 // android.text.SpannableStringInternal src
        start local 2 // int start
        start local 3 // int end
         0: .line 542
            aload 0 /* this */
            aload 1 /* src */
            iload 2 /* start */
            iload 3 /* end */
            iconst_0
            invokevirtual android.text.SpannableStringInternal.copySpans:(Landroid/text/SpannableStringInternal;IIZ)V
         1: .line 543
            return
        end local 3 // int end
        end local 2 // int start
        end local 1 // android.text.SpannableStringInternal src
        end local 0 // android.text.SpannableStringInternal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/text/SpannableStringInternal;
            0    2     1    src  Landroid/text/SpannableStringInternal;
            0    2     2  start  I
            0    2     3    end  I
    MethodParameters:
       Name  Flags
      src    
      start  
      end    
}
SourceFile: "SpannableStringInternal.java"