public final class sun.net.idn.StringPrep
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.net.idn.StringPrep
  super_class: java.lang.Object
{
  public static final int DEFAULT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  private sun.net.idn.StringPrep$StringPrepTrieImpl sprepTrieImpl;
    descriptor: Lsun/net/idn/StringPrep$StringPrepTrieImpl;
    flags: (0x0002) ACC_PRIVATE

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

  private char[] mappingData;
    descriptor: [C
    flags: (0x0002) ACC_PRIVATE

  private byte[] formatVersion;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private sun.text.normalizer.VersionInfo sprepUniVer;
    descriptor: Lsun/text/normalizer/VersionInfo;
    flags: (0x0002) ACC_PRIVATE

  private sun.text.normalizer.VersionInfo normCorrVer;
    descriptor: Lsun/text/normalizer/VersionInfo;
    flags: (0x0002) ACC_PRIVATE

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

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

  private char getCodePointValue(int);
    descriptor: (I)C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.net.idn.StringPrep this
        start local 1 // int ch
         0: .line 176
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.sprepTrieImpl:Lsun/net/idn/StringPrep$StringPrepTrieImpl;
            getfield sun.net.idn.StringPrep$StringPrepTrieImpl.sprepTrie:Lsun/text/normalizer/CharTrie;
            iload 1 /* ch */
            invokevirtual sun.text.normalizer.CharTrie.getCodePointValue:(I)C
            ireturn
        end local 1 // int ch
        end local 0 // sun.net.idn.StringPrep this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/net/idn/StringPrep;
            0    1     1    ch  I
    MethodParameters:
      Name  Flags
      ch    

  private static sun.text.normalizer.VersionInfo getVersionInfo(int);
    descriptor: (I)Lsun/text/normalizer/VersionInfo;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // int comp
         0: .line 180
            iload 0 /* comp */
            sipush 255
            iand
            istore 1 /* micro */
        start local 1 // int micro
         1: .line 181
            iload 0 /* comp */
            bipush 8
            ishr
            sipush 255
            iand
            istore 2 /* milli */
        start local 2 // int milli
         2: .line 182
            iload 0 /* comp */
            bipush 16
            ishr
            sipush 255
            iand
            istore 3 /* minor */
        start local 3 // int minor
         3: .line 183
            iload 0 /* comp */
            bipush 24
            ishr
            sipush 255
            iand
            istore 4 /* major */
        start local 4 // int major
         4: .line 184
            iload 4 /* major */
            iload 3 /* minor */
            iload 2 /* milli */
            iload 1 /* micro */
            invokestatic sun.text.normalizer.VersionInfo.getInstance:(IIII)Lsun/text/normalizer/VersionInfo;
            areturn
        end local 4 // int major
        end local 3 // int minor
        end local 2 // int milli
        end local 1 // int micro
        end local 0 // int comp
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   comp  I
            1    5     1  micro  I
            2    5     2  milli  I
            3    5     3  minor  I
            4    5     4  major  I
    MethodParameters:
      Name  Flags
      comp  

  private static sun.text.normalizer.VersionInfo getVersionInfo(byte[]);
    descriptor: ([B)Lsun/text/normalizer/VersionInfo;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // byte[] version
         0: .line 187
            aload 0 /* version */
            arraylength
            iconst_4
            if_icmpeq 2
         1: .line 188
            aconst_null
            areturn
         2: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* version */
            iconst_0
            baload
            aload 0 /* version */
            iconst_1
            baload
            aload 0 /* version */
            iconst_2
            baload
            aload 0 /* version */
            iconst_3
            baload
            invokestatic sun.text.normalizer.VersionInfo.getInstance:(IIII)Lsun/text/normalizer/VersionInfo;
            areturn
        end local 0 // byte[] version
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  version  [B
    MethodParameters:
         Name  Flags
      version  

  public void <init>(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // sun.net.idn.StringPrep this
        start local 1 // java.io.InputStream inputStream
         0: .line 201
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 203
            new java.io.BufferedInputStream
            dup
            aload 1 /* inputStream */
            sipush 25000
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;I)V
            astore 2 /* b */
        start local 2 // java.io.BufferedInputStream b
         2: .line 205
            new sun.net.idn.StringPrepDataReader
            dup
            aload 2 /* b */
            invokespecial sun.net.idn.StringPrepDataReader.<init>:(Ljava/io/InputStream;)V
            astore 3 /* reader */
        start local 3 // sun.net.idn.StringPrepDataReader reader
         3: .line 208
            aload 0 /* this */
            aload 3 /* reader */
            bipush 16
            invokevirtual sun.net.idn.StringPrepDataReader.readIndexes:(I)[I
            putfield sun.net.idn.StringPrep.indexes:[I
         4: .line 210
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.indexes:[I
            iconst_0
            iaload
            newarray 8
            astore 4 /* sprepBytes */
        start local 4 // byte[] sprepBytes
         5: .line 214
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.indexes:[I
            iconst_1
            iaload
            iconst_2
            idiv
            newarray 5
            putfield sun.net.idn.StringPrep.mappingData:[C
         6: .line 216
            aload 3 /* reader */
            aload 4 /* sprepBytes */
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.mappingData:[C
            invokevirtual sun.net.idn.StringPrepDataReader.read:([B[C)V
         7: .line 218
            aload 0 /* this */
            new sun.net.idn.StringPrep$StringPrepTrieImpl
            dup
            invokespecial sun.net.idn.StringPrep$StringPrepTrieImpl.<init>:()V
            putfield sun.net.idn.StringPrep.sprepTrieImpl:Lsun/net/idn/StringPrep$StringPrepTrieImpl;
         8: .line 219
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.sprepTrieImpl:Lsun/net/idn/StringPrep$StringPrepTrieImpl;
            new sun.text.normalizer.CharTrie
            dup
            new java.io.ByteArrayInputStream
            dup
            aload 4 /* sprepBytes */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.sprepTrieImpl:Lsun/net/idn/StringPrep$StringPrepTrieImpl;
            invokespecial sun.text.normalizer.CharTrie.<init>:(Ljava/io/InputStream;Lsun/text/normalizer/Trie$DataManipulate;)V
            putfield sun.net.idn.StringPrep$StringPrepTrieImpl.sprepTrie:Lsun/text/normalizer/CharTrie;
         9: .line 222
            aload 0 /* this */
            aload 3 /* reader */
            invokevirtual sun.net.idn.StringPrepDataReader.getDataFormatVersion:()[B
            putfield sun.net.idn.StringPrep.formatVersion:[B
        10: .line 225
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.indexes:[I
            bipush 7
            iaload
            iconst_1
            iand
            ifle 11
            iconst_1
            goto 12
      StackMap locals: sun.net.idn.StringPrep java.io.InputStream java.io.BufferedInputStream sun.net.idn.StringPrepDataReader byte[]
      StackMap stack: sun.net.idn.StringPrep
        11: iconst_0
      StackMap locals: sun.net.idn.StringPrep java.io.InputStream java.io.BufferedInputStream sun.net.idn.StringPrepDataReader byte[]
      StackMap stack: sun.net.idn.StringPrep int
        12: putfield sun.net.idn.StringPrep.doNFKC:Z
        13: .line 226
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.indexes:[I
            bipush 7
            iaload
            iconst_2
            iand
            ifle 14
            iconst_1
            goto 15
      StackMap locals:
      StackMap stack: sun.net.idn.StringPrep
        14: iconst_0
      StackMap locals: sun.net.idn.StringPrep java.io.InputStream java.io.BufferedInputStream sun.net.idn.StringPrepDataReader byte[]
      StackMap stack: sun.net.idn.StringPrep int
        15: putfield sun.net.idn.StringPrep.checkBiDi:Z
        16: .line 227
            aload 0 /* this */
            aload 3 /* reader */
            invokevirtual sun.net.idn.StringPrepDataReader.getUnicodeVersion:()[B
            invokestatic sun.net.idn.StringPrep.getVersionInfo:([B)Lsun/text/normalizer/VersionInfo;
            putfield sun.net.idn.StringPrep.sprepUniVer:Lsun/text/normalizer/VersionInfo;
        17: .line 228
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.indexes:[I
            iconst_2
            iaload
            invokestatic sun.net.idn.StringPrep.getVersionInfo:(I)Lsun/text/normalizer/VersionInfo;
            putfield sun.net.idn.StringPrep.normCorrVer:Lsun/text/normalizer/VersionInfo;
        18: .line 229
            invokestatic sun.text.normalizer.UCharacter.getUnicodeVersion:()Lsun/text/normalizer/VersionInfo;
            astore 5 /* normUniVer */
        start local 5 // sun.text.normalizer.VersionInfo normUniVer
        19: .line 230
            aload 5 /* normUniVer */
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.sprepUniVer:Lsun/text/normalizer/VersionInfo;
            invokevirtual sun.text.normalizer.VersionInfo.compareTo:(Lsun/text/normalizer/VersionInfo;)I
            ifge 23
        20: .line 231
            aload 5 /* normUniVer */
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.normCorrVer:Lsun/text/normalizer/VersionInfo;
            invokevirtual sun.text.normalizer.VersionInfo.compareTo:(Lsun/text/normalizer/VersionInfo;)I
            ifge 23
        21: .line 232
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.indexes:[I
            bipush 7
            iaload
            iconst_1
            iand
            ifle 23
        22: .line 234
            new java.io.IOException
            dup
            ldc "Normalization Correction version not supported"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 236
      StackMap locals: sun.text.normalizer.VersionInfo
      StackMap stack:
            aload 2 /* b */
            invokevirtual java.io.BufferedInputStream.close:()V
        24: .line 237
            return
        end local 5 // sun.text.normalizer.VersionInfo normUniVer
        end local 4 // byte[] sprepBytes
        end local 3 // sun.net.idn.StringPrepDataReader reader
        end local 2 // java.io.BufferedInputStream b
        end local 1 // java.io.InputStream inputStream
        end local 0 // sun.net.idn.StringPrep this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   25     0         this  Lsun/net/idn/StringPrep;
            0   25     1  inputStream  Ljava/io/InputStream;
            2   25     2            b  Ljava/io/BufferedInputStream;
            3   25     3       reader  Lsun/net/idn/StringPrepDataReader;
            5   25     4   sprepBytes  [B
           19   25     5   normUniVer  Lsun/text/normalizer/VersionInfo;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      inputStream  

  private static final void getValues(char, sun.net.idn.StringPrep$Values);
    descriptor: (CLsun/net/idn/StringPrep$Values;)V
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // char trieWord
        start local 1 // sun.net.idn.StringPrep$Values values
         0: .line 251
            aload 1 /* values */
            invokevirtual sun.net.idn.StringPrep$Values.reset:()V
         1: .line 252
            iload 0 /* trieWord */
            ifne 4
         2: .line 258
            aload 1 /* values */
            iconst_4
            putfield sun.net.idn.StringPrep$Values.type:I
         3: .line 259
            goto 19
      StackMap locals:
      StackMap stack:
         4: iload 0 /* trieWord */
            ldc 65520
            if_icmplt 7
         5: .line 260
            aload 1 /* values */
            iload 0 /* trieWord */
            ldc 65520
            isub
            putfield sun.net.idn.StringPrep$Values.type:I
         6: .line 261
            goto 19
         7: .line 263
      StackMap locals:
      StackMap stack:
            aload 1 /* values */
            iconst_1
            putfield sun.net.idn.StringPrep$Values.type:I
         8: .line 265
            iload 0 /* trieWord */
            iconst_2
            iand
            ifle 12
         9: .line 266
            aload 1 /* values */
            iconst_1
            putfield sun.net.idn.StringPrep$Values.isIndex:Z
        10: .line 267
            aload 1 /* values */
            iload 0 /* trieWord */
            iconst_2
            ishr
            putfield sun.net.idn.StringPrep$Values.value:I
        11: .line 269
            goto 15
        12: .line 270
      StackMap locals:
      StackMap stack:
            aload 1 /* values */
            iconst_0
            putfield sun.net.idn.StringPrep$Values.isIndex:Z
        13: .line 271
            aload 1 /* values */
            iload 0 /* trieWord */
            bipush 16
            ishl
            bipush 16
            ishr
            putfield sun.net.idn.StringPrep$Values.value:I
        14: .line 272
            aload 1 /* values */
            aload 1 /* values */
            getfield sun.net.idn.StringPrep$Values.value:I
            iconst_2
            ishr
            putfield sun.net.idn.StringPrep$Values.value:I
        15: .line 276
      StackMap locals:
      StackMap stack:
            iload 0 /* trieWord */
            iconst_2
            ishr
            sipush 16319
            if_icmpne 19
        16: .line 277
            aload 1 /* values */
            iconst_3
            putfield sun.net.idn.StringPrep$Values.type:I
        17: .line 278
            aload 1 /* values */
            iconst_0
            putfield sun.net.idn.StringPrep$Values.isIndex:Z
        18: .line 279
            aload 1 /* values */
            iconst_0
            putfield sun.net.idn.StringPrep$Values.value:I
        19: .line 282
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.net.idn.StringPrep$Values values
        end local 0 // char trieWord
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0  trieWord  C
            0   20     1    values  Lsun/net/idn/StringPrep$Values;
    MethodParameters:
          Name  Flags
      trieWord  
      values    

  private java.lang.StringBuffer map(sun.text.normalizer.UCharacterIterator, int);
    descriptor: (Lsun/text/normalizer/UCharacterIterator;I)Ljava/lang/StringBuffer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // sun.net.idn.StringPrep this
        start local 1 // sun.text.normalizer.UCharacterIterator iter
        start local 2 // int options
         0: .line 289
            new sun.net.idn.StringPrep$Values
            dup
            invokespecial sun.net.idn.StringPrep$Values.<init>:()V
            astore 3 /* val */
        start local 3 // sun.net.idn.StringPrep$Values val
         1: .line 290
            iconst_0
            istore 4 /* result */
        start local 4 // char result
         2: .line 291
            iconst_m1
            istore 5 /* ch */
        start local 5 // int ch
         3: .line 292
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 6 /* dest */
        start local 6 // java.lang.StringBuffer dest
         4: .line 293
            iload 2 /* options */
            iconst_1
            iand
            ifle 5
            iconst_1
            goto 6
      StackMap locals: sun.net.idn.StringPrep sun.text.normalizer.UCharacterIterator int sun.net.idn.StringPrep$Values int int java.lang.StringBuffer
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 7 /* allowUnassigned */
        start local 7 // boolean allowUnassigned
         7: .line 295
            goto 37
         8: .line 297
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 5 /* ch */
            invokevirtual sun.net.idn.StringPrep.getCodePointValue:(I)C
            istore 4 /* result */
         9: .line 298
            iload 4 /* result */
            aload 3 /* val */
            invokestatic sun.net.idn.StringPrep.getValues:(CLsun/net/idn/StringPrep$Values;)V
        10: .line 301
            aload 3 /* val */
            getfield sun.net.idn.StringPrep$Values.type:I
            ifne 14
            iload 7 /* allowUnassigned */
            ifne 14
        11: .line 302
            new java.text.ParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "An unassigned code point was found in the input "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        12: .line 303
            aload 1 /* iter */
            invokevirtual sun.text.normalizer.UCharacterIterator.getText:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* iter */
            invokevirtual sun.text.normalizer.UCharacterIterator.getIndex:()I
        13: .line 302
            invokespecial java.text.ParseException.<init>:(Ljava/lang/String;I)V
            athrow
        14: .line 304
      StackMap locals:
      StackMap stack:
            aload 3 /* val */
            getfield sun.net.idn.StringPrep$Values.type:I
            iconst_1
            if_icmpne 34
        15: .line 307
            aload 3 /* val */
            getfield sun.net.idn.StringPrep$Values.isIndex:Z
            ifeq 32
        16: .line 308
            aload 3 /* val */
            getfield sun.net.idn.StringPrep$Values.value:I
            istore 8 /* index */
        start local 8 // int index
        17: .line 309
            iload 8 /* index */
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.indexes:[I
            iconst_3
            iaload
            if_icmplt 21
        18: .line 310
            iload 8 /* index */
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.indexes:[I
            iconst_4
            iaload
            if_icmpge 21
        19: .line 311
            iconst_1
            istore 9 /* length */
        start local 9 // int length
        20: .line 312
            goto 30
        end local 9 // int length
      StackMap locals: int
      StackMap stack:
        21: iload 8 /* index */
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.indexes:[I
            iconst_4
            iaload
            if_icmplt 25
        22: .line 313
            iload 8 /* index */
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.indexes:[I
            iconst_5
            iaload
            if_icmpge 25
        23: .line 314
            iconst_2
            istore 9 /* length */
        start local 9 // int length
        24: .line 315
            goto 30
        end local 9 // int length
      StackMap locals:
      StackMap stack:
        25: iload 8 /* index */
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.indexes:[I
            iconst_5
            iaload
            if_icmplt 29
        26: .line 316
            iload 8 /* index */
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.indexes:[I
            bipush 6
            iaload
            if_icmpge 29
        27: .line 317
            iconst_3
            istore 9 /* length */
        start local 9 // int length
        28: .line 318
            goto 30
        end local 9 // int length
        29: .line 319
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.mappingData:[C
            iload 8 /* index */
            iinc 8 /* index */ 1
            caload
            istore 9 /* length */
        start local 9 // int length
        30: .line 322
      StackMap locals: int
      StackMap stack:
            aload 6 /* dest */
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.mappingData:[C
            iload 8 /* index */
            iload 9 /* length */
            invokevirtual java.lang.StringBuffer.append:([CII)Ljava/lang/StringBuffer;
            pop
        31: .line 323
            goto 37
        end local 9 // int length
        end local 8 // int index
        32: .line 326
      StackMap locals:
      StackMap stack:
            iload 5 /* ch */
            aload 3 /* val */
            getfield sun.net.idn.StringPrep$Values.value:I
            isub
            istore 5 /* ch */
        33: .line 328
            goto 36
      StackMap locals:
      StackMap stack:
        34: aload 3 /* val */
            getfield sun.net.idn.StringPrep$Values.type:I
            iconst_3
            if_icmpne 36
        35: .line 330
            goto 37
        36: .line 333
      StackMap locals:
      StackMap stack:
            aload 6 /* dest */
            iload 5 /* ch */
            invokestatic sun.text.normalizer.UTF16.append:(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
            pop
        37: .line 295
      StackMap locals:
      StackMap stack:
            aload 1 /* iter */
            invokevirtual sun.text.normalizer.UCharacterIterator.nextCodePoint:()I
            dup
            istore 5 /* ch */
            iconst_m1
            if_icmpne 8
        38: .line 336
            aload 6 /* dest */
            areturn
        end local 7 // boolean allowUnassigned
        end local 6 // java.lang.StringBuffer dest
        end local 5 // int ch
        end local 4 // char result
        end local 3 // sun.net.idn.StringPrep$Values val
        end local 2 // int options
        end local 1 // sun.text.normalizer.UCharacterIterator iter
        end local 0 // sun.net.idn.StringPrep this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   39     0             this  Lsun/net/idn/StringPrep;
            0   39     1             iter  Lsun/text/normalizer/UCharacterIterator;
            0   39     2          options  I
            1   39     3              val  Lsun/net/idn/StringPrep$Values;
            2   39     4           result  C
            3   39     5               ch  I
            4   39     6             dest  Ljava/lang/StringBuffer;
            7   39     7  allowUnassigned  Z
           17   32     8            index  I
           20   21     9           length  I
           24   25     9           length  I
           28   29     9           length  I
           30   32     9           length  I
    Exceptions:
      throws java.text.ParseException
    MethodParameters:
         Name  Flags
      iter     
      options  

  private java.lang.StringBuffer normalize(java.lang.StringBuffer);
    descriptor: (Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.net.idn.StringPrep this
        start local 1 // java.lang.StringBuffer src
         0: .line 352
            new java.lang.StringBuffer
            dup
         1: .line 354
            aload 1 /* src */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
         2: .line 355
            getstatic java.text.Normalizer$Form.NFKC:Ljava/text/Normalizer$Form;
         3: .line 356
            bipush 32
         4: .line 353
            invokestatic sun.text.Normalizer.normalize:(Ljava/lang/CharSequence;Ljava/text/Normalizer$Form;I)Ljava/lang/String;
         5: .line 352
            invokespecial java.lang.StringBuffer.<init>:(Ljava/lang/String;)V
            areturn
        end local 1 // java.lang.StringBuffer src
        end local 0 // sun.net.idn.StringPrep this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/net/idn/StringPrep;
            0    6     1   src  Ljava/lang/StringBuffer;
    MethodParameters:
      Name  Flags
      src   

  public java.lang.StringBuffer prepare(sun.text.normalizer.UCharacterIterator, int);
    descriptor: (Lsun/text/normalizer/UCharacterIterator;I)Ljava/lang/StringBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=15, args_size=3
        start local 0 // sun.net.idn.StringPrep this
        start local 1 // sun.text.normalizer.UCharacterIterator src
        start local 2 // int options
         0: .line 426
            aload 0 /* this */
            aload 1 /* src */
            iload 2 /* options */
            invokevirtual sun.net.idn.StringPrep.map:(Lsun/text/normalizer/UCharacterIterator;I)Ljava/lang/StringBuffer;
            astore 3 /* mapOut */
        start local 3 // java.lang.StringBuffer mapOut
         1: .line 427
            aload 3 /* mapOut */
            astore 4 /* normOut */
        start local 4 // java.lang.StringBuffer normOut
         2: .line 429
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.doNFKC:Z
            ifeq 4
         3: .line 431
            aload 0 /* this */
            aload 3 /* mapOut */
            invokevirtual sun.net.idn.StringPrep.normalize:(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;
            astore 4 /* normOut */
         4: .line 436
      StackMap locals: java.lang.StringBuffer java.lang.StringBuffer
      StackMap stack:
            aload 4 /* normOut */
            invokestatic sun.text.normalizer.UCharacterIterator.getInstance:(Ljava/lang/StringBuffer;)Lsun/text/normalizer/UCharacterIterator;
            astore 7 /* iter */
        start local 7 // sun.text.normalizer.UCharacterIterator iter
         5: .line 437
            new sun.net.idn.StringPrep$Values
            dup
            invokespecial sun.net.idn.StringPrep$Values.<init>:()V
            astore 8 /* val */
        start local 8 // sun.net.idn.StringPrep$Values val
         6: .line 438
            bipush 19
            istore 9 /* direction */
        start local 9 // int direction
         7: .line 439
            bipush 19
            istore 10 /* firstCharDir */
        start local 10 // int firstCharDir
         8: .line 440
            iconst_m1
            istore 11 /* rtlPos */
        start local 11 // int rtlPos
         9: iconst_m1
            istore 12 /* ltrPos */
        start local 12 // int ltrPos
        10: .line 441
            iconst_0
            istore 13 /* rightToLeft */
        start local 13 // boolean rightToLeft
        11: iconst_0
            istore 14 /* leftToRight */
        start local 14 // boolean leftToRight
        12: .line 443
            goto 28
        start local 5 // int ch
        13: .line 444
      StackMap locals: sun.net.idn.StringPrep sun.text.normalizer.UCharacterIterator int java.lang.StringBuffer java.lang.StringBuffer int top sun.text.normalizer.UCharacterIterator sun.net.idn.StringPrep$Values int int int int int int
      StackMap stack:
            aload 0 /* this */
            iload 5 /* ch */
            invokevirtual sun.net.idn.StringPrep.getCodePointValue:(I)C
            istore 6 /* result */
        start local 6 // char result
        14: .line 445
            iload 6 /* result */
            aload 8 /* val */
            invokestatic sun.net.idn.StringPrep.getValues:(CLsun/net/idn/StringPrep$Values;)V
        15: .line 447
            aload 8 /* val */
            getfield sun.net.idn.StringPrep$Values.type:I
            iconst_2
            if_icmpne 19
        16: .line 448
            new java.text.ParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "A prohibited code point was found in the input"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        17: .line 449
            aload 7 /* iter */
            invokevirtual sun.text.normalizer.UCharacterIterator.getText:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 8 /* val */
            getfield sun.net.idn.StringPrep$Values.value:I
        18: .line 448
            invokespecial java.text.ParseException.<init>:(Ljava/lang/String;I)V
            athrow
        19: .line 452
      StackMap locals: sun.net.idn.StringPrep sun.text.normalizer.UCharacterIterator int java.lang.StringBuffer java.lang.StringBuffer int int sun.text.normalizer.UCharacterIterator sun.net.idn.StringPrep$Values int int int int int int
      StackMap stack:
            iload 5 /* ch */
            invokestatic sun.text.normalizer.UCharacter.getDirection:(I)I
            istore 9 /* direction */
        20: .line 453
            iload 10 /* firstCharDir */
            bipush 19
            if_icmpne 22
        21: .line 454
            iload 9 /* direction */
            istore 10 /* firstCharDir */
        22: .line 456
      StackMap locals:
      StackMap stack:
            iload 9 /* direction */
            ifne 25
        23: .line 457
            iconst_1
            istore 14 /* leftToRight */
        24: .line 458
            aload 7 /* iter */
            invokevirtual sun.text.normalizer.UCharacterIterator.getIndex:()I
            iconst_1
            isub
            istore 12 /* ltrPos */
        25: .line 460
      StackMap locals:
      StackMap stack:
            iload 9 /* direction */
            iconst_1
            if_icmpeq 26
            iload 9 /* direction */
            bipush 13
            if_icmpne 28
        26: .line 461
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 13 /* rightToLeft */
        27: .line 462
            aload 7 /* iter */
            invokevirtual sun.text.normalizer.UCharacterIterator.getIndex:()I
            iconst_1
            isub
            istore 11 /* rtlPos */
        end local 6 // char result
        end local 5 // int ch
        28: .line 443
      StackMap locals: sun.net.idn.StringPrep sun.text.normalizer.UCharacterIterator int java.lang.StringBuffer java.lang.StringBuffer top top sun.text.normalizer.UCharacterIterator sun.net.idn.StringPrep$Values int int int int int int
      StackMap stack:
            aload 7 /* iter */
            invokevirtual sun.text.normalizer.UCharacterIterator.nextCodePoint:()I
            dup
            istore 5 /* ch */
        start local 5 // int ch
        29: iconst_m1
            if_icmpne 13
        30: .line 465
            aload 0 /* this */
            getfield sun.net.idn.StringPrep.checkBiDi:Z
            ifeq 45
        31: .line 467
            iload 14 /* leftToRight */
            ifeq 37
            iload 13 /* rightToLeft */
            ifeq 37
        32: .line 468
            new java.text.ParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The input does not conform to the rules for BiDi code points."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        33: .line 469
            aload 7 /* iter */
            invokevirtual sun.text.normalizer.UCharacterIterator.getText:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        34: .line 470
            iload 11 /* rtlPos */
            iload 12 /* ltrPos */
            if_icmple 35
            iload 11 /* rtlPos */
            goto 36
      StackMap locals: sun.net.idn.StringPrep sun.text.normalizer.UCharacterIterator int java.lang.StringBuffer java.lang.StringBuffer int top sun.text.normalizer.UCharacterIterator sun.net.idn.StringPrep$Values int int int int int int
      StackMap stack: new 32 new 32 java.lang.String
        35: iload 12 /* ltrPos */
        36: .line 468
      StackMap locals: sun.net.idn.StringPrep sun.text.normalizer.UCharacterIterator int java.lang.StringBuffer java.lang.StringBuffer int top sun.text.normalizer.UCharacterIterator sun.net.idn.StringPrep$Values int int int int int int
      StackMap stack: new 32 new 32 java.lang.String int
            invokespecial java.text.ParseException.<init>:(Ljava/lang/String;I)V
            athrow
        37: .line 474
      StackMap locals:
      StackMap stack:
            iload 13 /* rightToLeft */
            ifeq 45
        38: .line 475
            iload 10 /* firstCharDir */
            iconst_1
            if_icmpeq 39
            iload 10 /* firstCharDir */
            bipush 13
            if_icmpne 40
        39: .line 476
      StackMap locals:
      StackMap stack:
            iload 9 /* direction */
            iconst_1
            if_icmpeq 45
            iload 9 /* direction */
            bipush 13
            if_icmpeq 45
        40: .line 478
      StackMap locals:
      StackMap stack:
            new java.text.ParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The input does not conform to the rules for BiDi code points."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        41: .line 479
            aload 7 /* iter */
            invokevirtual sun.text.normalizer.UCharacterIterator.getText:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        42: .line 480
            iload 11 /* rtlPos */
            iload 12 /* ltrPos */
            if_icmple 43
            iload 11 /* rtlPos */
            goto 44
      StackMap locals: sun.net.idn.StringPrep sun.text.normalizer.UCharacterIterator int java.lang.StringBuffer java.lang.StringBuffer int top sun.text.normalizer.UCharacterIterator sun.net.idn.StringPrep$Values int int int int int int
      StackMap stack: new 40 new 40 java.lang.String
        43: iload 12 /* ltrPos */
        44: .line 478
      StackMap locals: sun.net.idn.StringPrep sun.text.normalizer.UCharacterIterator int java.lang.StringBuffer java.lang.StringBuffer int top sun.text.normalizer.UCharacterIterator sun.net.idn.StringPrep$Values int int int int int int
      StackMap stack: new 40 new 40 java.lang.String int
            invokespecial java.text.ParseException.<init>:(Ljava/lang/String;I)V
            athrow
        45: .line 483
      StackMap locals:
      StackMap stack:
            aload 4 /* normOut */
            areturn
        end local 14 // boolean leftToRight
        end local 13 // boolean rightToLeft
        end local 12 // int ltrPos
        end local 11 // int rtlPos
        end local 10 // int firstCharDir
        end local 9 // int direction
        end local 8 // sun.net.idn.StringPrep$Values val
        end local 7 // sun.text.normalizer.UCharacterIterator iter
        end local 5 // int ch
        end local 4 // java.lang.StringBuffer normOut
        end local 3 // java.lang.StringBuffer mapOut
        end local 2 // int options
        end local 1 // sun.text.normalizer.UCharacterIterator src
        end local 0 // sun.net.idn.StringPrep this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   46     0          this  Lsun/net/idn/StringPrep;
            0   46     1           src  Lsun/text/normalizer/UCharacterIterator;
            0   46     2       options  I
            1   46     3        mapOut  Ljava/lang/StringBuffer;
            2   46     4       normOut  Ljava/lang/StringBuffer;
           13   28     5            ch  I
           29   46     5            ch  I
           14   28     6        result  C
            5   46     7          iter  Lsun/text/normalizer/UCharacterIterator;
            6   46     8           val  Lsun/net/idn/StringPrep$Values;
            7   46     9     direction  I
            8   46    10  firstCharDir  I
            9   46    11        rtlPos  I
           10   46    12        ltrPos  I
           11   46    13   rightToLeft  Z
           12   46    14   leftToRight  Z
    Exceptions:
      throws java.text.ParseException
    MethodParameters:
         Name  Flags
      src      
      options  
}
SourceFile: "StringPrep.java"
NestMembers:
  sun.net.idn.StringPrep$StringPrepTrieImpl  sun.net.idn.StringPrep$Values
InnerClasses:
  public final Form = java.text.Normalizer$Form of java.text.Normalizer
  private final StringPrepTrieImpl = sun.net.idn.StringPrep$StringPrepTrieImpl of sun.net.idn.StringPrep
  private final Values = sun.net.idn.StringPrep$Values of sun.net.idn.StringPrep
  public abstract DataManipulate = sun.text.normalizer.Trie$DataManipulate of sun.text.normalizer.Trie