public final class java.text.Bidi
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: java.text.Bidi
  super_class: java.lang.Object
{
  byte dir;
    descriptor: B
    flags: (0x0000) 

  byte baselevel;
    descriptor: B
    flags: (0x0000) 

  int length;
    descriptor: I
    flags: (0x0000) 

  int[] runs;
    descriptor: [I
    flags: (0x0000) 

  int[] cws;
    descriptor: [I
    flags: (0x0000) 

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

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

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

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

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

  private static final char NUMLEVELS;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 62

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=0, locals=0, args_size=0
         0: .line 72
            invokestatic sun.font.FontManagerNativeLibrary.load:()V
         1: .line 605
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // java.text.Bidi this
        start local 1 // java.lang.String paragraph
        start local 2 // int flags
         0: .line 107
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 108
            aload 1 /* paragraph */
            ifnonnull 3
         2: .line 109
            new java.lang.IllegalArgumentException
            dup
            ldc "paragraph is null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 112
      StackMap locals: java.text.Bidi java.lang.String int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* paragraph */
            invokevirtual java.lang.String.toCharArray:()[C
            iconst_0
            aconst_null
            iconst_0
            aload 1 /* paragraph */
            invokevirtual java.lang.String.length:()I
            iload 2 /* flags */
            invokestatic java.text.Bidi.nativeBidiChars:(Ljava/text/Bidi;[CI[BIII)V
         4: .line 113
            return
        end local 2 // int flags
        end local 1 // java.lang.String paragraph
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Ljava/text/Bidi;
            0    5     1  paragraph  Ljava/lang/String;
            0    5     2      flags  I
    MethodParameters:
           Name  Flags
      paragraph  
      flags      

  public void <init>(java.text.AttributedCharacterIterator);
    descriptor: (Ljava/text/AttributedCharacterIterator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=15, args_size=2
        start local 0 // java.text.Bidi this
        start local 1 // java.text.AttributedCharacterIterator paragraph
         0: .line 140
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 141
            aload 1 /* paragraph */
            ifnonnull 3
         2: .line 142
            new java.lang.IllegalArgumentException
            dup
            ldc "paragraph is null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 145
      StackMap locals: java.text.Bidi java.text.AttributedCharacterIterator
      StackMap stack:
            bipush -2
            istore 2 /* flags */
        start local 2 // int flags
         4: .line 146
            aconst_null
            astore 3 /* embeddings */
        start local 3 // byte[] embeddings
         5: .line 148
            aload 1 /* paragraph */
            invokeinterface java.text.AttributedCharacterIterator.getBeginIndex:()I
            istore 4 /* start */
        start local 4 // int start
         6: .line 149
            aload 1 /* paragraph */
            invokeinterface java.text.AttributedCharacterIterator.getEndIndex:()I
            istore 5 /* limit */
        start local 5 // int limit
         7: .line 150
            iload 5 /* limit */
            iload 4 /* start */
            isub
            istore 6 /* length */
        start local 6 // int length
         8: .line 151
            iconst_0
            istore 7 /* n */
        start local 7 // int n
         9: .line 152
            iload 6 /* length */
            newarray 5
            astore 8 /* text */
        start local 8 // char[] text
        10: .line 153
            aload 1 /* paragraph */
            invokeinterface java.text.AttributedCharacterIterator.first:()C
            istore 9 /* c */
        start local 9 // char c
        11: goto 14
        12: .line 154
      StackMap locals: java.text.Bidi java.text.AttributedCharacterIterator int byte[] int int int int char[] int
      StackMap stack:
            aload 8 /* text */
            iload 7 /* n */
            iinc 7 /* n */ 1
            iload 9 /* c */
            castore
        13: .line 153
            aload 1 /* paragraph */
            invokeinterface java.text.AttributedCharacterIterator.next:()C
            istore 9 /* c */
      StackMap locals:
      StackMap stack:
        14: iload 9 /* c */
            ldc 65535
            if_icmpne 12
        end local 9 // char c
        15: .line 157
            aload 1 /* paragraph */
            invokeinterface java.text.AttributedCharacterIterator.first:()C
            pop
        16: .line 159
            aload 1 /* paragraph */
            getstatic java.awt.font.TextAttribute.RUN_DIRECTION:Ljava/awt/font/TextAttribute;
            invokeinterface java.text.AttributedCharacterIterator.getAttribute:(Ljava/text/AttributedCharacterIterator$Attribute;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 9 /* runDirection */
        start local 9 // java.lang.Boolean runDirection
        17: .line 160
            aload 9 /* runDirection */
            ifnull 24
        18: .line 161
            getstatic java.awt.font.TextAttribute.RUN_DIRECTION_LTR:Ljava/lang/Boolean;
            aload 9 /* runDirection */
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 162
            iconst_0
            istore 2 /* flags */
        20: .line 163
            goto 24
        21: .line 164
      StackMap locals: java.text.Bidi java.text.AttributedCharacterIterator int byte[] int int int int char[] java.lang.Boolean
      StackMap stack:
            iconst_1
            istore 2 /* flags */
        end local 9 // java.lang.Boolean runDirection
        22: .line 167
            goto 24
        23: .line 168
      StackMap locals: java.text.Bidi java.text.AttributedCharacterIterator int byte[] int int int int char[]
      StackMap stack: java.lang.ClassCastException
            pop
        24: .line 172
      StackMap locals:
      StackMap stack:
            aload 1 /* paragraph */
            getstatic java.awt.font.TextAttribute.NUMERIC_SHAPING:Ljava/awt/font/TextAttribute;
            invokeinterface java.text.AttributedCharacterIterator.getAttribute:(Ljava/text/AttributedCharacterIterator$Attribute;)Ljava/lang/Object;
            checkcast java.awt.font.NumericShaper
            astore 9 /* shaper */
        start local 9 // java.awt.font.NumericShaper shaper
        25: .line 173
            aload 9 /* shaper */
            ifnull 29
        26: .line 174
            aload 9 /* shaper */
            aload 8 /* text */
            iconst_0
            aload 8 /* text */
            arraylength
            invokevirtual java.awt.font.NumericShaper.shape:([CII)V
        end local 9 // java.awt.font.NumericShaper shaper
        27: .line 176
            goto 29
        28: .line 177
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
            pop
        29: .line 180
      StackMap locals:
      StackMap stack:
            iload 4 /* start */
            istore 9 /* pos */
        start local 9 // int pos
        30: .line 182
      StackMap locals: int
      StackMap stack:
            aload 1 /* paragraph */
            iload 9 /* pos */
            invokeinterface java.text.AttributedCharacterIterator.setIndex:(I)C
            pop
        31: .line 183
            aload 1 /* paragraph */
            getstatic java.awt.font.TextAttribute.BIDI_EMBEDDING:Ljava/awt/font/TextAttribute;
            invokeinterface java.text.AttributedCharacterIterator.getAttribute:(Ljava/text/AttributedCharacterIterator$Attribute;)Ljava/lang/Object;
            astore 10 /* embeddingLevel */
        start local 10 // java.lang.Object embeddingLevel
        32: .line 184
            aload 1 /* paragraph */
            getstatic java.awt.font.TextAttribute.BIDI_EMBEDDING:Ljava/awt/font/TextAttribute;
            invokeinterface java.text.AttributedCharacterIterator.getRunLimit:(Ljava/text/AttributedCharacterIterator$Attribute;)I
            istore 11 /* newpos */
        start local 11 // int newpos
        33: .line 186
            aload 10 /* embeddingLevel */
            ifnull 48
        34: .line 188
            aload 10 /* embeddingLevel */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 12 /* intLevel */
        start local 12 // int intLevel
        35: .line 189
            iload 12 /* intLevel */
            bipush -61
            if_icmplt 48
            iload 12 /* intLevel */
            bipush 61
            if_icmpge 48
        36: .line 190
            iload 12 /* intLevel */
            ifge 37
            iload 12 /* intLevel */
            ineg
            sipush 128
            ior
            goto 38
      StackMap locals: java.lang.Object int int
      StackMap stack:
        37: iload 12 /* intLevel */
      StackMap locals:
      StackMap stack: int
        38: i2b
            istore 13 /* level */
        start local 13 // byte level
        39: .line 191
            aload 3 /* embeddings */
            ifnonnull 41
        40: .line 192
            iload 6 /* length */
            newarray 8
            astore 3 /* embeddings */
        41: .line 194
      StackMap locals: int
      StackMap stack:
            iload 9 /* pos */
            iload 4 /* start */
            isub
            istore 14 /* i */
        start local 14 // int i
        42: goto 45
        43: .line 195
      StackMap locals: int
      StackMap stack:
            aload 3 /* embeddings */
            iload 14 /* i */
            iload 13 /* level */
            bastore
        44: .line 194
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        45: iload 14 /* i */
            iload 11 /* newpos */
            iload 4 /* start */
            isub
            if_icmplt 43
        end local 14 // int i
        end local 13 // byte level
        end local 12 // int intLevel
        46: .line 198
            goto 48
        47: .line 199
      StackMap locals: java.text.Bidi java.text.AttributedCharacterIterator int byte[] int int int int char[] int java.lang.Object int
      StackMap stack: java.lang.ClassCastException
            pop
        48: .line 202
      StackMap locals:
      StackMap stack:
            iload 11 /* newpos */
            istore 9 /* pos */
        end local 11 // int newpos
        end local 10 // java.lang.Object embeddingLevel
        49: .line 203
            iload 9 /* pos */
            iload 5 /* limit */
        50: .line 181
            if_icmplt 30
        51: .line 205
            aload 0 /* this */
            aload 8 /* text */
            iconst_0
            aload 3 /* embeddings */
            iconst_0
            aload 8 /* text */
            arraylength
            iload 2 /* flags */
            invokestatic java.text.Bidi.nativeBidiChars:(Ljava/text/Bidi;[CI[BIII)V
        52: .line 206
            return
        end local 9 // int pos
        end local 8 // char[] text
        end local 7 // int n
        end local 6 // int length
        end local 5 // int limit
        end local 4 // int start
        end local 3 // byte[] embeddings
        end local 2 // int flags
        end local 1 // java.text.AttributedCharacterIterator paragraph
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   53     0            this  Ljava/text/Bidi;
            0   53     1       paragraph  Ljava/text/AttributedCharacterIterator;
            4   53     2           flags  I
            5   53     3      embeddings  [B
            6   53     4           start  I
            7   53     5           limit  I
            8   53     6          length  I
            9   53     7               n  I
           10   53     8            text  [C
           11   15     9               c  C
           17   22     9    runDirection  Ljava/lang/Boolean;
           25   27     9          shaper  Ljava/awt/font/NumericShaper;
           30   53     9             pos  I
           32   49    10  embeddingLevel  Ljava/lang/Object;
           33   49    11          newpos  I
           35   46    12        intLevel  I
           39   46    13           level  B
           42   46    14               i  I
      Exception table:
        from    to  target  type
          16    22      23  Class java.lang.ClassCastException
          24    27      28  Class java.lang.ClassCastException
          34    46      47  Class java.lang.ClassCastException
    MethodParameters:
           Name  Flags
      paragraph  

  public void <init>(char[], int, byte[], int, int, int);
    descriptor: ([CI[BIII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=7
        start local 0 // java.text.Bidi this
        start local 1 // char[] text
        start local 2 // int textStart
        start local 3 // byte[] embeddings
        start local 4 // int embStart
        start local 5 // int paragraphLength
        start local 6 // int flags
         0: .line 225
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 226
            aload 1 /* text */
            ifnonnull 3
         2: .line 227
            new java.lang.IllegalArgumentException
            dup
            ldc "text is null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 229
      StackMap locals: java.text.Bidi char[] int byte[] int int int
      StackMap stack:
            iload 5 /* paragraphLength */
            ifge 5
         4: .line 230
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "bad length: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* paragraphLength */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 232
      StackMap locals:
      StackMap stack:
            iload 2 /* textStart */
            iflt 6
            iload 5 /* paragraphLength */
            aload 1 /* text */
            arraylength
            iload 2 /* textStart */
            isub
            if_icmple 10
         6: .line 233
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "bad range: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* textStart */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         7: .line 234
            ldc " length: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 5 /* paragraphLength */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         8: .line 235
            ldc " for text of length: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* text */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 233
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 237
      StackMap locals:
      StackMap stack:
            aload 3 /* embeddings */
            ifnull 15
            iload 4 /* embStart */
            iflt 11
            iload 5 /* paragraphLength */
            aload 3 /* embeddings */
            arraylength
            iload 4 /* embStart */
            isub
            if_icmple 15
        11: .line 238
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "bad range: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* embStart */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        12: .line 239
            ldc " length: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 5 /* paragraphLength */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        13: .line 240
            ldc " for embeddings of length: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* text */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 238
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 243
      StackMap locals:
      StackMap stack:
            aload 3 /* embeddings */
            ifnull 32
        16: .line 246
            iload 4 /* embStart */
            istore 7 /* i */
        start local 7 // int i
        17: iload 4 /* embStart */
            iload 5 /* paragraphLength */
            iadd
            istore 8 /* embLimit */
        start local 8 // int embLimit
        18: goto 31
        19: .line 247
      StackMap locals: int int
      StackMap stack:
            aload 3 /* embeddings */
            iload 7 /* i */
            baload
            ifge 30
        20: .line 248
            iload 5 /* paragraphLength */
            newarray 8
            astore 9 /* temp */
        start local 9 // byte[] temp
        21: .line 249
            aload 3 /* embeddings */
            iload 4 /* embStart */
            aload 9 /* temp */
            iconst_0
            iload 5 /* paragraphLength */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        22: .line 251
            iload 7 /* i */
            iload 4 /* embStart */
            isub
            istore 7 /* i */
            goto 26
        23: .line 252
      StackMap locals: byte[]
      StackMap stack:
            aload 9 /* temp */
            iload 7 /* i */
            baload
            ifge 25
        24: .line 253
            aload 9 /* temp */
            iload 7 /* i */
            aload 9 /* temp */
            iload 7 /* i */
            baload
            ineg
            sipush 128
            ior
            i2b
            bastore
        25: .line 251
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 7 /* i */
            iload 5 /* paragraphLength */
            if_icmplt 23
        27: .line 257
            aload 9 /* temp */
            astore 3 /* embeddings */
        28: .line 258
            iconst_0
            istore 4 /* embStart */
        29: .line 259
            goto 32
        end local 9 // byte[] temp
        30: .line 246
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 7 /* i */
            iload 8 /* embLimit */
            if_icmplt 19
        end local 8 // int embLimit
        end local 7 // int i
        32: .line 264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* text */
            iload 2 /* textStart */
            aload 3 /* embeddings */
            iload 4 /* embStart */
            iload 5 /* paragraphLength */
            iload 6 /* flags */
            invokestatic java.text.Bidi.nativeBidiChars:(Ljava/text/Bidi;[CI[BIII)V
        33: .line 265
            return
        end local 6 // int flags
        end local 5 // int paragraphLength
        end local 4 // int embStart
        end local 3 // byte[] embeddings
        end local 2 // int textStart
        end local 1 // char[] text
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   34     0             this  Ljava/text/Bidi;
            0   34     1             text  [C
            0   34     2        textStart  I
            0   34     3       embeddings  [B
            0   34     4         embStart  I
            0   34     5  paragraphLength  I
            0   34     6            flags  I
           17   32     7                i  I
           18   32     8         embLimit  I
           21   30     9             temp  [B
    MethodParameters:
                 Name  Flags
      text             
      textStart        
      embeddings       
      embStart         
      paragraphLength  
      flags            

  private void <init>(int, int, int, int[], int[]);
    descriptor: (III[I[I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // java.text.Bidi this
        start local 1 // int dir
        start local 2 // int baseLevel
        start local 3 // int length
        start local 4 // int[] data
        start local 5 // int[] cws
         0: .line 270
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 271
            aload 0 /* this */
            iload 1 /* dir */
            iload 2 /* baseLevel */
            iload 3 /* length */
            aload 4 /* data */
            aload 5 /* cws */
            invokevirtual java.text.Bidi.reset:(III[I[I)V
         2: .line 272
            return
        end local 5 // int[] cws
        end local 4 // int[] data
        end local 3 // int length
        end local 2 // int baseLevel
        end local 1 // int dir
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Ljava/text/Bidi;
            0    3     1        dir  I
            0    3     2  baseLevel  I
            0    3     3     length  I
            0    3     4       data  [I
            0    3     5        cws  [I
    MethodParameters:
           Name  Flags
      dir        
      baseLevel  
      length     
      data       
      cws        

  private void reset(int, int, int, int[], int[]);
    descriptor: (III[I[I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // java.text.Bidi this
        start local 1 // int dir
        start local 2 // int baselevel
        start local 3 // int length
        start local 4 // int[] data
        start local 5 // int[] cws
         0: .line 278
            aload 0 /* this */
            iload 1 /* dir */
            i2b
            putfield java.text.Bidi.dir:B
         1: .line 279
            aload 0 /* this */
            iload 2 /* baselevel */
            i2b
            putfield java.text.Bidi.baselevel:B
         2: .line 280
            aload 0 /* this */
            iload 3 /* length */
            putfield java.text.Bidi.length:I
         3: .line 281
            aload 0 /* this */
            aload 4 /* data */
            putfield java.text.Bidi.runs:[I
         4: .line 282
            aload 0 /* this */
            aload 5 /* cws */
            putfield java.text.Bidi.cws:[I
         5: .line 283
            return
        end local 5 // int[] cws
        end local 4 // int[] data
        end local 3 // int length
        end local 2 // int baselevel
        end local 1 // int dir
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Ljava/text/Bidi;
            0    6     1        dir  I
            0    6     2  baselevel  I
            0    6     3     length  I
            0    6     4       data  [I
            0    6     5        cws  [I
    MethodParameters:
           Name  Flags
      dir        
      baselevel  
      length     
      data       
      cws        

  public java.text.Bidi createLineBidi(int, int);
    descriptor: (II)Ljava/text/Bidi;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=13, args_size=3
        start local 0 // java.text.Bidi this
        start local 1 // int lineStart
        start local 2 // int lineLimit
         0: .line 293
            iload 1 /* lineStart */
            ifne 2
            iload 2 /* lineLimit */
            aload 0 /* this */
            getfield java.text.Bidi.length:I
            if_icmpne 2
         1: .line 294
            aload 0 /* this */
            areturn
         2: .line 297
      StackMap locals:
      StackMap stack:
            iload 2 /* lineLimit */
            iload 1 /* lineStart */
            isub
            istore 3 /* lineLength */
        start local 3 // int lineLength
         3: .line 298
            iload 1 /* lineStart */
            iflt 6
         4: .line 299
            iload 2 /* lineLimit */
            iload 1 /* lineStart */
            if_icmplt 6
         5: .line 300
            iload 2 /* lineLimit */
            aload 0 /* this */
            getfield java.text.Bidi.length:I
            if_icmple 10
         6: .line 301
      StackMap locals: int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "range "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* lineStart */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         7: .line 302
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* lineLimit */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         8: .line 303
            ldc " is invalid for paragraph of length "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.text.Bidi.length:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 301
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            ifnonnull 12
        11: .line 307
            new java.text.Bidi
            dup
            aload 0 /* this */
            getfield java.text.Bidi.dir:B
            aload 0 /* this */
            getfield java.text.Bidi.baselevel:B
            iload 3 /* lineLength */
            aconst_null
            aconst_null
            invokespecial java.text.Bidi.<init>:(III[I[I)V
            areturn
        12: .line 309
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 4 /* cwspos */
        start local 4 // int cwspos
        13: .line 310
            aconst_null
            astore 5 /* ncws */
        start local 5 // int[] ncws
        14: .line 311
            aload 0 /* this */
            getfield java.text.Bidi.cws:[I
            ifnull 42
        15: .line 312
            iconst_0
            istore 6 /* cwss */
        start local 6 // int cwss
        16: .line 313
            aload 0 /* this */
            getfield java.text.Bidi.cws:[I
            arraylength
            istore 7 /* cwsl */
        start local 7 // int cwsl
        17: .line 314
            goto 41
        18: .line 315
      StackMap locals: java.text.Bidi int int int int int[] int int
      StackMap stack:
            aload 0 /* this */
            getfield java.text.Bidi.cws:[I
            iload 6 /* cwss */
            iaload
            iload 1 /* lineStart */
            if_icmplt 40
        19: .line 316
            iload 6 /* cwss */
            istore 7 /* cwsl */
        20: .line 317
            goto 22
        21: .line 318
      StackMap locals:
      StackMap stack:
            iinc 7 /* cwsl */ 1
        22: .line 317
      StackMap locals:
      StackMap stack:
            iload 7 /* cwsl */
            aload 0 /* this */
            getfield java.text.Bidi.cws:[I
            arraylength
            if_icmpge 23
            aload 0 /* this */
            getfield java.text.Bidi.cws:[I
            iload 7 /* cwsl */
            iaload
            iload 2 /* lineLimit */
            if_icmplt 21
        23: .line 320
      StackMap locals:
      StackMap stack:
            iload 2 /* lineLimit */
            iconst_1
            isub
            istore 8 /* ll */
        start local 8 // int ll
        24: .line 321
            goto 28
        25: .line 322
      StackMap locals: int
      StackMap stack:
            iload 8 /* ll */
            istore 4 /* cwspos */
        26: .line 323
            iinc 7 /* cwsl */ -1
        27: .line 324
            iinc 8 /* ll */ -1
        28: .line 321
      StackMap locals:
      StackMap stack:
            iload 7 /* cwsl */
            iload 6 /* cwss */
            if_icmple 29
            aload 0 /* this */
            getfield java.text.Bidi.cws:[I
            iload 7 /* cwsl */
            iconst_1
            isub
            iaload
            iload 8 /* ll */
            if_icmpeq 25
        29: .line 327
      StackMap locals:
      StackMap stack:
            iload 4 /* cwspos */
            iload 1 /* lineStart */
            if_icmpne 31
        30: .line 328
            new java.text.Bidi
            dup
            aload 0 /* this */
            getfield java.text.Bidi.dir:B
            aload 0 /* this */
            getfield java.text.Bidi.baselevel:B
            iload 3 /* lineLength */
            aconst_null
            aconst_null
            invokespecial java.text.Bidi.<init>:(III[I[I)V
            areturn
        31: .line 331
      StackMap locals:
      StackMap stack:
            iload 7 /* cwsl */
            iload 6 /* cwss */
            isub
            istore 9 /* ncwslen */
        start local 9 // int ncwslen
        32: .line 332
            iload 9 /* ncwslen */
            ifle 42
        33: .line 333
            iload 9 /* ncwslen */
            newarray 10
            astore 5 /* ncws */
        34: .line 334
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        35: goto 38
        36: .line 335
      StackMap locals: int int
      StackMap stack:
            aload 5 /* ncws */
            iload 10 /* i */
            aload 0 /* this */
            getfield java.text.Bidi.cws:[I
            iload 6 /* cwss */
            iload 10 /* i */
            iadd
            iaload
            iload 1 /* lineStart */
            isub
            iastore
        37: .line 334
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        38: iload 10 /* i */
            iload 9 /* ncwslen */
            if_icmplt 36
        end local 10 // int i
        39: .line 338
            goto 42
        end local 9 // int ncwslen
        end local 8 // int ll
        40: .line 340
      StackMap locals:
      StackMap stack:
            iinc 6 /* cwss */ 1
        41: .line 314
      StackMap locals:
      StackMap stack:
            iload 6 /* cwss */
            iload 7 /* cwsl */
            if_icmplt 18
        end local 7 // int cwsl
        end local 6 // int cwss
        42: .line 344
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* nruns */
        start local 6 // int[] nruns
        43: .line 346
            iload 4 /* cwspos */
            iconst_m1
            if_icmpne 44
            iload 2 /* lineLimit */
            goto 45
      StackMap locals: int[]
      StackMap stack:
        44: iload 4 /* cwspos */
      StackMap locals:
      StackMap stack: int
        45: istore 7 /* limit */
        start local 7 // int limit
        46: .line 347
            iconst_0
            istore 8 /* rs */
        start local 8 // int rs
        47: .line 348
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            arraylength
            istore 9 /* rl */
        start local 9 // int rl
        48: .line 349
            aload 0 /* this */
            getfield java.text.Bidi.dir:B
            istore 10 /* ndir */
        start local 10 // int ndir
        49: .line 350
            goto 78
        50: .line 351
      StackMap locals: java.text.Bidi int int int int int[] int[] int int int int
      StackMap stack:
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            iload 8 /* rs */
            iaload
            iload 1 /* lineStart */
            if_icmple 77
        51: .line 352
            iload 8 /* rs */
            istore 9 /* rl */
        52: .line 353
            goto 54
        53: .line 354
      StackMap locals:
      StackMap stack:
            iinc 9 /* rl */ 2
        54: .line 353
      StackMap locals:
      StackMap stack:
            iload 9 /* rl */
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            arraylength
            if_icmpge 55
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            iload 9 /* rl */
            iaload
            iload 7 /* limit */
            if_icmplt 53
        55: .line 356
      StackMap locals:
      StackMap stack:
            iload 9 /* rl */
            iload 8 /* rs */
            if_icmpgt 56
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            iload 8 /* rs */
            iconst_1
            iadd
            iaload
            aload 0 /* this */
            getfield java.text.Bidi.baselevel:B
            if_icmpeq 73
        56: .line 357
      StackMap locals:
      StackMap stack:
            iinc 9 /* rl */ 2
        57: .line 359
            iload 4 /* cwspos */
            iconst_m1
            if_icmpeq 62
            iload 9 /* rl */
            iload 8 /* rs */
            if_icmple 62
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            iload 9 /* rl */
            iconst_1
            isub
            iaload
            aload 0 /* this */
            getfield java.text.Bidi.baselevel:B
            if_icmpeq 62
        58: .line 360
            iload 9 /* rl */
            iload 8 /* rs */
            isub
            iconst_2
            iadd
            newarray 10
            astore 6 /* nruns */
        59: .line 361
            aload 6 /* nruns */
            iload 9 /* rl */
            iload 8 /* rs */
            isub
            iload 3 /* lineLength */
            iastore
        60: .line 362
            aload 6 /* nruns */
            iload 9 /* rl */
            iload 8 /* rs */
            isub
            iconst_1
            iadd
            aload 0 /* this */
            getfield java.text.Bidi.baselevel:B
            iastore
        61: .line 363
            goto 64
        62: .line 364
      StackMap locals:
      StackMap stack:
            iload 2 /* lineLimit */
            istore 7 /* limit */
        63: .line 365
            iload 9 /* rl */
            iload 8 /* rs */
            isub
            newarray 10
            astore 6 /* nruns */
        64: .line 368
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 11 /* n */
        start local 11 // int n
        65: .line 369
            iload 8 /* rs */
            istore 12 /* i */
        start local 12 // int i
        66: goto 70
        67: .line 370
      StackMap locals: int int
      StackMap stack:
            aload 6 /* nruns */
            iload 11 /* n */
            iinc 11 /* n */ 1
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            iload 12 /* i */
            iaload
            iload 1 /* lineStart */
            isub
            iastore
        68: .line 371
            aload 6 /* nruns */
            iload 11 /* n */
            iinc 11 /* n */ 1
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            iload 12 /* i */
            iconst_1
            iadd
            iaload
            iastore
        69: .line 369
            iinc 12 /* i */ 2
      StackMap locals:
      StackMap stack:
        70: iload 12 /* i */
            iload 9 /* rl */
            if_icmplt 67
        end local 12 // int i
        71: .line 373
            aload 6 /* nruns */
            iload 11 /* n */
            iconst_2
            isub
            iload 7 /* limit */
            iload 1 /* lineStart */
            isub
            iastore
        end local 11 // int n
        72: .line 374
            goto 79
        73: .line 375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            iload 8 /* rs */
            iconst_1
            iadd
            iaload
            iconst_1
            iand
            ifne 74
            iconst_0
            goto 75
      StackMap locals:
      StackMap stack:
        74: iconst_1
      StackMap locals:
      StackMap stack: int
        75: istore 10 /* ndir */
        76: .line 377
            goto 79
        77: .line 350
      StackMap locals:
      StackMap stack:
            iinc 8 /* rs */ 2
      StackMap locals:
      StackMap stack:
        78: iload 8 /* rs */
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            arraylength
            if_icmplt 50
        79: .line 381
      StackMap locals:
      StackMap stack:
            new java.text.Bidi
            dup
            iload 10 /* ndir */
            aload 0 /* this */
            getfield java.text.Bidi.baselevel:B
            iload 3 /* lineLength */
            aload 6 /* nruns */
            aload 5 /* ncws */
            invokespecial java.text.Bidi.<init>:(III[I[I)V
            areturn
        end local 10 // int ndir
        end local 9 // int rl
        end local 8 // int rs
        end local 7 // int limit
        end local 6 // int[] nruns
        end local 5 // int[] ncws
        end local 4 // int cwspos
        end local 3 // int lineLength
        end local 2 // int lineLimit
        end local 1 // int lineStart
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   80     0        this  Ljava/text/Bidi;
            0   80     1   lineStart  I
            0   80     2   lineLimit  I
            3   80     3  lineLength  I
           13   80     4      cwspos  I
           14   80     5        ncws  [I
           16   42     6        cwss  I
           17   42     7        cwsl  I
           24   40     8          ll  I
           32   40     9     ncwslen  I
           35   39    10           i  I
           43   80     6       nruns  [I
           46   80     7       limit  I
           47   80     8          rs  I
           48   80     9          rl  I
           49   80    10        ndir  I
           65   72    11           n  I
           66   71    12           i  I
    MethodParameters:
           Name  Flags
      lineStart  
      lineLimit  

  public boolean isMixed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.text.Bidi this
         0: .line 391
            aload 0 /* this */
            getfield java.text.Bidi.dir:B
            iconst_2
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/text/Bidi;

  public boolean isLeftToRight();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.text.Bidi this
         0: .line 399
            aload 0 /* this */
            getfield java.text.Bidi.dir:B
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/text/Bidi;

  public boolean isRightToLeft();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.text.Bidi this
         0: .line 407
            aload 0 /* this */
            getfield java.text.Bidi.dir:B
            iconst_1
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/text/Bidi;

  public int getLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.text.Bidi this
         0: .line 415
            aload 0 /* this */
            getfield java.text.Bidi.length:I
            ireturn
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/text/Bidi;

  public boolean baseIsLeftToRight();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.text.Bidi this
         0: .line 423
            aload 0 /* this */
            getfield java.text.Bidi.baselevel:B
            iconst_1
            iand
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/text/Bidi;

  public int getBaseLevel();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.text.Bidi this
         0: .line 431
            aload 0 /* this */
            getfield java.text.Bidi.baselevel:B
            ireturn
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/text/Bidi;

  public int getLevelAt(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.text.Bidi this
        start local 1 // int offset
         0: .line 441
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            ifnull 1
            iload 1 /* offset */
            iflt 1
            iload 1 /* offset */
            aload 0 /* this */
            getfield java.text.Bidi.length:I
            if_icmplt 2
         1: .line 442
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.text.Bidi.baselevel:B
            ireturn
         2: .line 444
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: .line 446
      StackMap locals: int
      StackMap stack:
            iload 1 /* offset */
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            iload 2 /* i */
            iaload
            if_icmpge 5
         4: .line 447
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            iload 2 /* i */
            iconst_1
            iadd
            iaload
            ireturn
         5: .line 449
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 2
         6: .line 450
            goto 3
        end local 2 // int i
        end local 1 // int offset
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljava/text/Bidi;
            0    7     1  offset  I
            3    7     2       i  I
    MethodParameters:
        Name  Flags
      offset  

  public int getRunCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.text.Bidi this
         0: .line 459
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            ifnonnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            arraylength
            iconst_2
            idiv
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/text/Bidi;

  public int getRunLevel(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.text.Bidi this
        start local 1 // int run
         0: .line 468
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            ifnonnull 1
            aload 0 /* this */
            getfield java.text.Bidi.baselevel:B
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            iload 1 /* run */
            iconst_2
            imul
            iconst_1
            iadd
            iaload
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // int run
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/text/Bidi;
            0    3     1   run  I
    MethodParameters:
      Name  Flags
      run   

  public int getRunStart(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.text.Bidi this
        start local 1 // int run
         0: .line 478
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            ifnull 1
            iload 1 /* run */
            ifne 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            iload 1 /* run */
            iconst_2
            imul
            iconst_2
            isub
            iaload
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // int run
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/text/Bidi;
            0    4     1   run  I
    MethodParameters:
      Name  Flags
      run   

  public int getRunLimit(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.text.Bidi this
        start local 1 // int run
         0: .line 489
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            ifnonnull 1
            aload 0 /* this */
            getfield java.text.Bidi.length:I
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            iload 1 /* run */
            iconst_2
            imul
            iaload
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // int run
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/text/Bidi;
            0    3     1   run  I
    MethodParameters:
      Name  Flags
      run   

  public static boolean requiresBidi(char[], int, int);
    descriptor: ([CII)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // char[] text
        start local 1 // int start
        start local 2 // int limit
         0: .line 504
            aload 0 /* text */
            iload 1 /* start */
            iload 2 /* limit */
            invokestatic sun.text.CodePointIterator.create:([CII)Lsun/text/CodePointIterator;
            astore 3 /* cpi */
        start local 3 // sun.text.CodePointIterator cpi
         1: .line 505
            aload 3 /* cpi */
            invokevirtual sun.text.CodePointIterator.next:()I
            istore 4 /* cp */
        start local 4 // int cp
         2: goto 8
         3: .line 506
      StackMap locals: sun.text.CodePointIterator int
      StackMap stack:
            iload 4 /* cp */
            sipush 1424
            if_icmple 7
         4: .line 507
            iload 4 /* cp */
            invokestatic java.text.Bidi.nativeGetDirectionCode:(I)I
            istore 5 /* dc */
        start local 5 // int dc
         5: .line 508
            ldc 57378
            iconst_1
            iload 5 /* dc */
            ishl
            iand
            ifeq 7
         6: .line 509
            iconst_1
            ireturn
        end local 5 // int dc
         7: .line 505
      StackMap locals:
      StackMap stack:
            aload 3 /* cpi */
            invokevirtual sun.text.CodePointIterator.next:()I
            istore 4 /* cp */
      StackMap locals:
      StackMap stack:
         8: iload 4 /* cp */
            iconst_m1
            if_icmpne 3
        end local 4 // int cp
         9: .line 513
            iconst_0
            ireturn
        end local 3 // sun.text.CodePointIterator cpi
        end local 2 // int limit
        end local 1 // int start
        end local 0 // char[] text
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   text  [C
            0   10     1  start  I
            0   10     2  limit  I
            1   10     3    cpi  Lsun/text/CodePointIterator;
            2    9     4     cp  I
            5    7     5     dc  I
    MethodParameters:
       Name  Flags
      text   
      start  
      limit  

  public static void reorderVisually(byte[], int, java.lang.Object[], int, int);
    descriptor: ([BI[Ljava/lang/Object;II)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=13, args_size=5
        start local 0 // byte[] levels
        start local 1 // int levelStart
        start local 2 // java.lang.Object[] objects
        start local 3 // int objectStart
        start local 4 // int count
         0: .line 534
            iload 4 /* count */
            ifge 2
         1: .line 535
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "count "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* count */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " must be >= 0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 537
      StackMap locals:
      StackMap stack:
            iload 1 /* levelStart */
            iflt 3
            iload 1 /* levelStart */
            iload 4 /* count */
            iadd
            aload 0 /* levels */
            arraylength
            if_icmple 6
         3: .line 538
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "levelStart "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* levelStart */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " and count "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* count */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         4: .line 539
            ldc " out of range [0, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* levels */
            arraylength
            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;
         5: .line 538
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 541
      StackMap locals:
      StackMap stack:
            iload 3 /* objectStart */
            iflt 7
            iload 3 /* objectStart */
            iload 4 /* count */
            iadd
            aload 2 /* objects */
            arraylength
            if_icmple 10
         7: .line 542
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "objectStart "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* objectStart */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " and count "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* count */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         8: .line 543
            ldc " out of range [0, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* objects */
            arraylength
            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;
         9: .line 542
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 546
      StackMap locals:
      StackMap stack:
            bipush 63
            istore 5 /* lowestOddLevel */
        start local 5 // byte lowestOddLevel
        11: .line 547
            iconst_0
            istore 6 /* highestLevel */
        start local 6 // byte highestLevel
        12: .line 551
            iload 1 /* levelStart */
            iload 4 /* count */
            iadd
            istore 7 /* levelLimit */
        start local 7 // int levelLimit
        13: .line 552
            iload 1 /* levelStart */
            istore 8 /* i */
        start local 8 // int i
        14: goto 21
        15: .line 553
      StackMap locals: byte[] int java.lang.Object[] int int int int int int
      StackMap stack:
            aload 0 /* levels */
            iload 8 /* i */
            baload
            istore 9 /* level */
        start local 9 // byte level
        16: .line 554
            iload 9 /* level */
            iload 6 /* highestLevel */
            if_icmple 18
        17: .line 555
            iload 9 /* level */
            istore 6 /* highestLevel */
        18: .line 558
      StackMap locals: int
      StackMap stack:
            iload 9 /* level */
            iconst_1
            iand
            ifeq 20
            iload 9 /* level */
            iload 5 /* lowestOddLevel */
            if_icmpge 20
        19: .line 559
            iload 9 /* level */
            istore 5 /* lowestOddLevel */
        end local 9 // byte level
        20: .line 552
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 8 /* i */
            iload 7 /* levelLimit */
            if_icmplt 15
        end local 8 // int i
        22: .line 563
            iload 3 /* objectStart */
            iload 1 /* levelStart */
            isub
            istore 8 /* delta */
        start local 8 // int delta
        23: .line 565
            goto 45
        24: .line 566
      StackMap locals:
      StackMap stack:
            iload 1 /* levelStart */
            istore 9 /* i */
        start local 9 // int i
        25: .line 569
            goto 27
        26: .line 570
      StackMap locals: int
      StackMap stack:
            iinc 9 /* i */ 1
        27: .line 569
      StackMap locals:
      StackMap stack:
            iload 9 /* i */
            iload 7 /* levelLimit */
            if_icmpge 28
            aload 0 /* levels */
            iload 9 /* i */
            baload
            iload 6 /* highestLevel */
            if_icmplt 26
        28: .line 572
      StackMap locals:
      StackMap stack:
            iload 9 /* i */
            iinc 9 /* i */ 1
            istore 10 /* begin */
        start local 10 // int begin
        29: .line 574
            iload 10 /* begin */
            iload 7 /* levelLimit */
            if_icmpne 32
        30: .line 575
            goto 44
        31: .line 579
      StackMap locals: int
      StackMap stack:
            iinc 9 /* i */ 1
        32: .line 578
      StackMap locals:
      StackMap stack:
            iload 9 /* i */
            iload 7 /* levelLimit */
            if_icmpge 33
            aload 0 /* levels */
            iload 9 /* i */
            baload
            iload 6 /* highestLevel */
            if_icmpge 31
        33: .line 581
      StackMap locals:
      StackMap stack:
            iload 9 /* i */
            iconst_1
            isub
            istore 11 /* end */
        start local 11 // int end
        34: .line 583
            iload 10 /* begin */
            iload 8 /* delta */
            iadd
            istore 10 /* begin */
        35: .line 584
            iload 11 /* end */
            iload 8 /* delta */
            iadd
            istore 11 /* end */
        36: .line 585
            goto 42
        37: .line 586
      StackMap locals: int
      StackMap stack:
            aload 2 /* objects */
            iload 10 /* begin */
            aaload
            astore 12 /* temp */
        start local 12 // java.lang.Object temp
        38: .line 587
            aload 2 /* objects */
            iload 10 /* begin */
            aload 2 /* objects */
            iload 11 /* end */
            aaload
            aastore
        39: .line 588
            aload 2 /* objects */
            iload 11 /* end */
            aload 12 /* temp */
            aastore
        40: .line 589
            iinc 10 /* begin */ 1
        41: .line 590
            iinc 11 /* end */ -1
        end local 12 // java.lang.Object temp
        42: .line 585
      StackMap locals:
      StackMap stack:
            iload 10 /* begin */
            iload 11 /* end */
            if_icmplt 37
        end local 11 // int end
        end local 10 // int begin
        43: .line 568
            goto 27
        44: .line 594
      StackMap locals:
      StackMap stack:
            iload 6 /* highestLevel */
            iconst_1
            isub
            i2b
            istore 6 /* highestLevel */
        end local 9 // int i
        45: .line 565
      StackMap locals:
      StackMap stack:
            iload 6 /* highestLevel */
            iload 5 /* lowestOddLevel */
            if_icmpge 24
        46: .line 596
            return
        end local 8 // int delta
        end local 7 // int levelLimit
        end local 6 // byte highestLevel
        end local 5 // byte lowestOddLevel
        end local 4 // int count
        end local 3 // int objectStart
        end local 2 // java.lang.Object[] objects
        end local 1 // int levelStart
        end local 0 // byte[] levels
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   47     0          levels  [B
            0   47     1      levelStart  I
            0   47     2         objects  [Ljava/lang/Object;
            0   47     3     objectStart  I
            0   47     4           count  I
           11   47     5  lowestOddLevel  B
           12   47     6    highestLevel  B
           13   47     7      levelLimit  I
           14   22     8               i  I
           16   20     9           level  B
           23   47     8           delta  I
           25   45     9               i  I
           29   43    10           begin  I
           34   43    11             end  I
           38   42    12            temp  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      levels       
      levelStart   
      objects      
      objectStart  
      count        

  private static native int nativeGetDirectionCode(int);
    descriptor: (I)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      cp    

  private static synchronized native void nativeBidiChars(java.text.Bidi, char[], int, byte[], int, int, int);
    descriptor: (Ljava/text/Bidi;[CI[BIII)V
    flags: (0x012a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED, ACC_NATIVE
    MethodParameters:
                Name  Flags
      bidi            
      text            
      textStart       
      embeddings      
      embeddingStart  
      length          
      flags           

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.text.Bidi this
         0: .line 619
            new java.lang.StringBuffer
            dup
            aload 0 /* this */
            invokespecial java.lang.Object.toString:()Ljava/lang/String;
            invokespecial java.lang.StringBuffer.<init>:(Ljava/lang/String;)V
            astore 1 /* buf */
        start local 1 // java.lang.StringBuffer buf
         1: .line 620
            aload 1 /* buf */
            new java.lang.StringBuilder
            dup
            ldc "[dir: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.text.Bidi.dir:B
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         2: .line 621
            aload 1 /* buf */
            new java.lang.StringBuilder
            dup
            ldc " baselevel: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.text.Bidi.baselevel:B
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         3: .line 622
            aload 1 /* buf */
            new java.lang.StringBuilder
            dup
            ldc " length: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.text.Bidi.length:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         4: .line 623
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            ifnonnull 7
         5: .line 624
            aload 1 /* buf */
            ldc " runs: null"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         6: .line 625
            goto 18
         7: .line 626
      StackMap locals: java.lang.StringBuffer
      StackMap stack:
            aload 1 /* buf */
            ldc " runs: ["
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         8: .line 627
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         9: goto 16
        10: .line 628
      StackMap locals: int
      StackMap stack:
            iload 2 /* i */
            ifeq 12
        11: .line 629
            aload 1 /* buf */
            bipush 32
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        12: .line 631
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            iload 2 /* i */
            iaload
            invokevirtual java.lang.StringBuffer.append:(I)Ljava/lang/StringBuffer;
            pop
        13: .line 632
            aload 1 /* buf */
            bipush 47
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        14: .line 633
            aload 1 /* buf */
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            iload 2 /* i */
            iconst_1
            iadd
            iaload
            invokevirtual java.lang.StringBuffer.append:(I)Ljava/lang/StringBuffer;
            pop
        15: .line 627
            iinc 2 /* i */ 2
      StackMap locals:
      StackMap stack:
        16: iload 2 /* i */
            aload 0 /* this */
            getfield java.text.Bidi.runs:[I
            arraylength
            if_icmplt 10
        end local 2 // int i
        17: .line 635
            aload 1 /* buf */
            bipush 93
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        18: .line 637
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.text.Bidi.cws:[I
            ifnonnull 21
        19: .line 638
            aload 1 /* buf */
            ldc " cws: null"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        20: .line 639
            goto 30
        21: .line 640
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            ldc " cws: ["
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        22: .line 641
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        23: goto 28
        24: .line 642
      StackMap locals: int
      StackMap stack:
            iload 2 /* i */
            ifeq 26
        25: .line 643
            aload 1 /* buf */
            bipush 32
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        26: .line 645
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            aload 0 /* this */
            getfield java.text.Bidi.cws:[I
            iload 2 /* i */
            iaload
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        27: .line 641
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 2 /* i */
            aload 0 /* this */
            getfield java.text.Bidi.cws:[I
            arraylength
            if_icmplt 24
        end local 2 // int i
        29: .line 647
            aload 1 /* buf */
            bipush 93
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        30: .line 649
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            bipush 93
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        31: .line 651
            aload 1 /* buf */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuffer buf
        end local 0 // java.text.Bidi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   32     0  this  Ljava/text/Bidi;
            1   32     1   buf  Ljava/lang/StringBuffer;
            9   17     2     i  I
           23   29     2     i  I
}
SourceFile: "Bidi.java"
InnerClasses:
  public Attribute = java.text.AttributedCharacterIterator$Attribute of java.text.AttributedCharacterIterator