public class org.eclipse.jdt.internal.compiler.util.Util implements org.eclipse.jdt.internal.compiler.util.SuffixConstants
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.compiler.util.Util
  super_class: java.lang.Object
{
  public static final char C_BOOLEAN;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 90

  public static final char C_BYTE;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 66

  public static final char C_CHAR;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 67

  public static final char C_DOUBLE;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 68

  public static final char C_FLOAT;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 70

  public static final char C_INT;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 73

  public static final char C_SEMICOLON;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 59

  public static final char C_COLON;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 58

  public static final char C_LONG;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 74

  public static final char C_SHORT;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 83

  public static final char C_VOID;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 86

  public static final char C_TYPE_VARIABLE;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 84

  public static final char C_STAR;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 42

  public static final char C_EXCEPTION_START;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 94

  public static final char C_EXTENDS;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 43

  public static final char C_SUPER;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 45

  public static final char C_DOT;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 46

  public static final char C_DOLLAR;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 36

  public static final char C_ARRAY;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 91

  public static final char C_RESOLVED;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 76

  public static final char C_UNRESOLVED;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 81

  public static final char C_NAME_END;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 59

  public static final char C_PARAM_START;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 40

  public static final char C_PARAM_END;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 41

  public static final char C_GENERIC_START;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 60

  public static final char C_GENERIC_END;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 62

  public static final char C_CAPTURE;
    descriptor: C
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 33

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

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

  public static final java.lang.String UTF_8;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "UTF-8"

  public static final java.lang.String LINE_SEPARATOR;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String EMPTY_STRING;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String COMMA_SEPARATOR;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int[] EMPTY_INT_ARRAY;
    descriptor: [I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 237
            ldc "line.separator"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            putstatic org.eclipse.jdt.internal.compiler.util.Util.LINE_SEPARATOR:Ljava/lang/String;
         1: .line 239
            new java.lang.String
            dup
            getstatic org.eclipse.jdt.core.compiler.CharOperation.NO_CHAR:[C
            invokespecial java.lang.String.<init>:([C)V
            putstatic org.eclipse.jdt.internal.compiler.util.Util.EMPTY_STRING:Ljava/lang/String;
         2: .line 243
            new java.lang.String
            dup
            getstatic org.eclipse.jdt.core.compiler.CharOperation.COMMA_SEPARATOR:[C
            invokespecial java.lang.String.<init>:([C)V
            putstatic org.eclipse.jdt.internal.compiler.util.Util.COMMA_SEPARATOR:Ljava/lang/String;
         3: .line 244
            iconst_0
            newarray 10
            putstatic org.eclipse.jdt.internal.compiler.util.Util.EMPTY_INT_ARRAY:[I
         4: .line 756
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.util.Util this
         0: .line 54
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.eclipse.jdt.internal.compiler.util.Util this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/util/Util;

  public static java.lang.String buildAllDirectoriesInto(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=12, args_size=2
        start local 0 // java.lang.String outputPath
        start local 1 // java.lang.String relativeFileName
         0: .line 260
            getstatic java.io.File.separatorChar:C
            istore 2 /* fileSeparatorChar */
        start local 2 // char fileSeparatorChar
         1: .line 261
            getstatic java.io.File.separator:Ljava/lang/String;
            astore 3 /* fileSeparator */
        start local 3 // java.lang.String fileSeparator
         2: .line 263
            aload 0 /* outputPath */
            bipush 47
            iload 2 /* fileSeparatorChar */
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 0 /* outputPath */
         3: .line 266
            aload 1 /* relativeFileName */
            bipush 47
            iload 2 /* fileSeparatorChar */
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 1 /* relativeFileName */
         4: .line 268
            aload 1 /* relativeFileName */
            iload 2 /* fileSeparatorChar */
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 7 /* separatorIndex */
        start local 7 // int separatorIndex
         5: .line 269
            iload 7 /* separatorIndex */
            iconst_m1
            if_icmpne 13
         6: .line 270
            aload 0 /* outputPath */
            aload 3 /* fileSeparator */
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 10
         7: .line 271
            aload 0 /* outputPath */
            iconst_0
            aload 0 /* outputPath */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 5 /* outputDirPath */
        start local 5 // java.lang.String outputDirPath
         8: .line 272
            new java.lang.StringBuilder
            dup
            aload 0 /* outputPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* relativeFileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* fileName */
        start local 6 // java.lang.String fileName
         9: .line 273
            goto 23
        end local 6 // java.lang.String fileName
        end local 5 // java.lang.String outputDirPath
        10: .line 274
      StackMap locals: java.lang.String java.lang.String int java.lang.String top top top int
      StackMap stack:
            aload 0 /* outputPath */
            astore 5 /* outputDirPath */
        start local 5 // java.lang.String outputDirPath
        11: .line 275
            new java.lang.StringBuilder
            dup
            aload 0 /* outputPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* fileSeparator */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* relativeFileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* fileName */
        start local 6 // java.lang.String fileName
        12: .line 277
            goto 23
        end local 6 // java.lang.String fileName
        end local 5 // java.lang.String outputDirPath
        13: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* outputPath */
            aload 3 /* fileSeparator */
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 19
        14: .line 279
            new java.lang.StringBuilder
            dup
            aload 0 /* outputPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        15: .line 280
            aload 1 /* relativeFileName */
            iconst_0
            iload 7 /* separatorIndex */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 279
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* outputDirPath */
        start local 5 // java.lang.String outputDirPath
        17: .line 281
            new java.lang.StringBuilder
            dup
            aload 0 /* outputPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* relativeFileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* fileName */
        start local 6 // java.lang.String fileName
        18: .line 282
            goto 23
        end local 6 // java.lang.String fileName
        end local 5 // java.lang.String outputDirPath
        19: .line 283
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* outputPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* fileSeparator */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        20: .line 284
            aload 1 /* relativeFileName */
            iconst_0
            iload 7 /* separatorIndex */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 283
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* outputDirPath */
        start local 5 // java.lang.String outputDirPath
        22: .line 285
            new java.lang.StringBuilder
            dup
            aload 0 /* outputPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* fileSeparator */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* relativeFileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* fileName */
        start local 6 // java.lang.String fileName
        23: .line 288
      StackMap locals: java.lang.String java.lang.String int java.lang.String top java.lang.String java.lang.String int
      StackMap stack:
            new java.io.File
            dup
            aload 5 /* outputDirPath */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 4 /* f */
        start local 4 // java.io.File f
        24: .line 289
            aload 4 /* f */
            invokevirtual java.io.File.mkdirs:()Z
            pop
        25: .line 290
            aload 4 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 27
        26: .line 291
            aload 6 /* fileName */
            areturn
        27: .line 295
      StackMap locals: java.lang.String java.lang.String int java.lang.String java.io.File java.lang.String java.lang.String int
      StackMap stack:
            aload 0 /* outputPath */
            aload 3 /* fileSeparator */
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 29
        28: .line 296
            aload 0 /* outputPath */
            iconst_0
            aload 0 /* outputPath */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 0 /* outputPath */
        29: .line 298
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 0 /* outputPath */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 4 /* f */
        30: .line 299
            iconst_0
            istore 8 /* checkFileType */
        start local 8 // boolean checkFileType
        31: .line 300
            aload 4 /* f */
            invokevirtual java.io.File.exists:()Z
            ifeq 34
        32: .line 301
            iconst_1
            istore 8 /* checkFileType */
        33: .line 302
            goto 41
        34: .line 304
      StackMap locals: int
      StackMap stack:
            aload 4 /* f */
            invokevirtual java.io.File.mkdirs:()Z
            ifne 41
        35: .line 305
            aload 4 /* f */
            invokevirtual java.io.File.exists:()Z
            ifeq 38
        36: .line 307
            iconst_1
            istore 8 /* checkFileType */
        37: .line 308
            goto 41
        38: .line 310
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
        39: .line 311
            getstatic org.eclipse.jdt.internal.compiler.util.Messages.output_notValidAll:Ljava/lang/String;
            aload 4 /* f */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
        40: .line 310
            invokestatic org.eclipse.jdt.internal.compiler.util.Messages.bind:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        41: .line 315
      StackMap locals:
      StackMap stack:
            iload 8 /* checkFileType */
            ifeq 46
        42: .line 316
            aload 4 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 46
        43: .line 317
            new java.io.IOException
            dup
        44: .line 318
            getstatic org.eclipse.jdt.internal.compiler.util.Messages.output_isFile:Ljava/lang/String;
            aload 4 /* f */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
        45: .line 317
            invokestatic org.eclipse.jdt.internal.compiler.util.Messages.bind:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        46: .line 321
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuffer
            dup
            aload 0 /* outputPath */
            invokespecial java.lang.StringBuffer.<init>:(Ljava/lang/String;)V
            astore 9 /* outDir */
        start local 9 // java.lang.StringBuffer outDir
        47: .line 322
            aload 9 /* outDir */
            aload 3 /* fileSeparator */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        48: .line 324
            new java.util.StringTokenizer
            dup
            aload 1 /* relativeFileName */
            aload 3 /* fileSeparator */
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
        49: .line 323
            astore 10 /* tokenizer */
        start local 10 // java.util.StringTokenizer tokenizer
        50: .line 325
            aload 10 /* tokenizer */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 11 /* token */
        start local 11 // java.lang.String token
        51: .line 326
            goto 74
        52: .line 327
      StackMap locals: java.lang.StringBuffer java.util.StringTokenizer java.lang.String
      StackMap stack:
            new java.io.File
            dup
            aload 9 /* outDir */
            aload 11 /* token */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 3 /* fileSeparator */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 4 /* f */
        53: .line 328
            iconst_0
            istore 8 /* checkFileType */
        54: .line 329
            aload 4 /* f */
            invokevirtual java.io.File.exists:()Z
            ifeq 57
        55: .line 330
            iconst_1
            istore 8 /* checkFileType */
        56: .line 332
            goto 68
        57: .line 334
      StackMap locals:
      StackMap stack:
            aload 4 /* f */
            invokevirtual java.io.File.mkdir:()Z
            ifne 68
        58: .line 335
            aload 4 /* f */
            invokevirtual java.io.File.exists:()Z
            ifeq 61
        59: .line 337
            iconst_1
            istore 8 /* checkFileType */
        60: .line 338
            goto 68
        61: .line 340
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
        62: .line 341
            getstatic org.eclipse.jdt.internal.compiler.util.Messages.output_notValid:Ljava/lang/String;
        63: .line 342
            aload 9 /* outDir */
            aload 0 /* outputPath */
            invokevirtual java.lang.String.length:()I
            iconst_1
            iadd
        64: .line 343
            aload 9 /* outDir */
            invokevirtual java.lang.StringBuffer.length:()I
            iconst_1
            isub
        65: .line 342
            invokevirtual java.lang.StringBuffer.substring:(II)Ljava/lang/String;
        66: .line 344
            aload 0 /* outputPath */
        67: .line 340
            invokestatic org.eclipse.jdt.internal.compiler.util.Messages.bind:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        68: .line 348
      StackMap locals:
      StackMap stack:
            iload 8 /* checkFileType */
            ifeq 73
        69: .line 349
            aload 4 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 73
        70: .line 350
            new java.io.IOException
            dup
        71: .line 351
            getstatic org.eclipse.jdt.internal.compiler.util.Messages.output_isFile:Ljava/lang/String;
            aload 4 /* f */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
        72: .line 350
            invokestatic org.eclipse.jdt.internal.compiler.util.Messages.bind:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        73: .line 354
      StackMap locals:
      StackMap stack:
            aload 10 /* tokenizer */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 11 /* token */
        74: .line 326
      StackMap locals:
      StackMap stack:
            aload 10 /* tokenizer */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 52
        75: .line 357
            aload 9 /* outDir */
            aload 11 /* token */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 11 // java.lang.String token
        end local 10 // java.util.StringTokenizer tokenizer
        end local 9 // java.lang.StringBuffer outDir
        end local 8 // boolean checkFileType
        end local 7 // int separatorIndex
        end local 6 // java.lang.String fileName
        end local 5 // java.lang.String outputDirPath
        end local 4 // java.io.File f
        end local 3 // java.lang.String fileSeparator
        end local 2 // char fileSeparatorChar
        end local 1 // java.lang.String relativeFileName
        end local 0 // java.lang.String outputPath
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   76     0         outputPath  Ljava/lang/String;
            0   76     1   relativeFileName  Ljava/lang/String;
            1   76     2  fileSeparatorChar  C
            2   76     3      fileSeparator  Ljava/lang/String;
           24   76     4                  f  Ljava/io/File;
            8   10     5      outputDirPath  Ljava/lang/String;
           11   13     5      outputDirPath  Ljava/lang/String;
           17   19     5      outputDirPath  Ljava/lang/String;
           22   76     5      outputDirPath  Ljava/lang/String;
            9   10     6           fileName  Ljava/lang/String;
           12   13     6           fileName  Ljava/lang/String;
           18   19     6           fileName  Ljava/lang/String;
           23   76     6           fileName  Ljava/lang/String;
            5   76     7     separatorIndex  I
           31   76     8      checkFileType  Z
           47   76     9             outDir  Ljava/lang/StringBuffer;
           50   76    10          tokenizer  Ljava/util/StringTokenizer;
           51   76    11              token  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      outputPath        
      relativeFileName  

  public static char[] bytesToChar(byte[], java.lang.String);
    descriptor: ([BLjava/lang/String;)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // byte[] bytes
        start local 1 // java.lang.String encoding
         0: .line 366
            new java.io.ByteArrayInputStream
            dup
            aload 0 /* bytes */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            aload 0 /* bytes */
            arraylength
            aload 1 /* encoding */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.getInputStreamAsCharArray:(Ljava/io/InputStream;ILjava/lang/String;)[C
            areturn
        end local 1 // java.lang.String encoding
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0     bytes  [B
            0    1     1  encoding  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      bytes     
      encoding  

  public static int computeOuterMostVisibility(org.eclipse.jdt.internal.compiler.ast.TypeDeclaration, int);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration typeDeclaration
        start local 1 // int visibility
         0: .line 375
            goto 11
         1: .line 376
      StackMap locals:
      StackMap stack:
            aload 0 /* typeDeclaration */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.modifiers:I
            bipush 7
            iand
            tableswitch { // 0 - 4
                    0: 4
                    1: 9
                    2: 2
                    3: 9
                    4: 7
              default: 9
          }
         2: .line 378
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 1 /* visibility */
         3: .line 379
            goto 9
         4: .line 381
      StackMap locals:
      StackMap stack:
            iload 1 /* visibility */
            iconst_2
            if_icmpeq 9
         5: .line 382
            iconst_0
            istore 1 /* visibility */
         6: .line 384
            goto 9
         7: .line 386
      StackMap locals:
      StackMap stack:
            iload 1 /* visibility */
            iconst_1
            if_icmpne 9
         8: .line 387
            iconst_4
            istore 1 /* visibility */
         9: .line 390
      StackMap locals:
      StackMap stack:
            aload 0 /* typeDeclaration */
        10: .line 391
            getfield org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.enclosingType:Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
            astore 0 /* typeDeclaration */
        11: .line 375
      StackMap locals:
      StackMap stack:
            aload 0 /* typeDeclaration */
            ifnonnull 1
        12: .line 393
            iload 1 /* visibility */
            ireturn
        end local 1 // int visibility
        end local 0 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration typeDeclaration
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0  typeDeclaration  Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
            0   13     1       visibility  I
    MethodParameters:
                 Name  Flags
      typeDeclaration  
      visibility       

  public static byte[] getFileByteContent(java.io.File);
    descriptor: (Ljava/io/File;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // java.io.File file
         0: .line 400
            aconst_null
            astore 1 /* stream */
        start local 1 // java.io.InputStream stream
         1: .line 402
            new java.io.BufferedInputStream
            dup
            new java.io.FileInputStream
            dup
            aload 0 /* file */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            astore 1 /* stream */
         2: .line 403
            aload 1 /* stream */
            aload 0 /* file */
            invokevirtual java.io.File.length:()J
            l2i
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.getInputStreamAsByteArray:(Ljava/io/InputStream;I)[B
            astore 3
         3: .line 405
            aload 1 /* stream */
            ifnull 7
         4: .line 407
            aload 1 /* stream */
            invokevirtual java.io.InputStream.close:()V
         5: .line 408
            goto 7
      StackMap locals: java.io.File java.io.InputStream top byte[]
      StackMap stack: java.io.IOException
         6: pop
         7: .line 403
      StackMap locals:
      StackMap stack:
            aload 3
            areturn
         8: .line 404
      StackMap locals: java.io.File java.io.InputStream
      StackMap stack: java.lang.Throwable
            astore 2
         9: .line 405
            aload 1 /* stream */
            ifnull 13
        10: .line 407
            aload 1 /* stream */
            invokevirtual java.io.InputStream.close:()V
        11: .line 408
            goto 13
      StackMap locals: java.io.File java.io.InputStream java.lang.Throwable
      StackMap stack: java.io.IOException
        12: pop
        13: .line 412
      StackMap locals:
      StackMap stack:
            aload 2
            athrow
        end local 1 // java.io.InputStream stream
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    file  Ljava/io/File;
            1   14     1  stream  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
           1     3       8  any
          10    11      12  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  public static char[] getFileCharContent(java.io.File, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/lang/String;)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.io.File file
        start local 1 // java.lang.String encoding
         0: .line 420
            aconst_null
            astore 2 /* stream */
        start local 2 // java.io.InputStream stream
         1: .line 422
            new java.io.FileInputStream
            dup
            aload 0 /* file */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 2 /* stream */
         2: .line 423
            aload 2 /* stream */
            aload 0 /* file */
            invokevirtual java.io.File.length:()J
            l2i
            aload 1 /* encoding */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.getInputStreamAsCharArray:(Ljava/io/InputStream;ILjava/lang/String;)[C
            astore 4
         3: .line 425
            aload 2 /* stream */
            ifnull 7
         4: .line 427
            aload 2 /* stream */
            invokevirtual java.io.InputStream.close:()V
         5: .line 428
            goto 7
      StackMap locals: java.io.File java.lang.String java.io.InputStream top char[]
      StackMap stack: java.io.IOException
         6: pop
         7: .line 423
      StackMap locals:
      StackMap stack:
            aload 4
            areturn
         8: .line 424
      StackMap locals: java.io.File java.lang.String java.io.InputStream
      StackMap stack: java.lang.Throwable
            astore 3
         9: .line 425
            aload 2 /* stream */
            ifnull 13
        10: .line 427
            aload 2 /* stream */
            invokevirtual java.io.InputStream.close:()V
        11: .line 428
            goto 13
      StackMap locals: java.io.File java.lang.String java.io.InputStream java.lang.Throwable
      StackMap stack: java.io.IOException
        12: pop
        13: .line 432
      StackMap locals:
      StackMap stack:
            aload 3
            athrow
        end local 2 // java.io.InputStream stream
        end local 1 // java.lang.String encoding
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      file  Ljava/io/File;
            0   14     1  encoding  Ljava/lang/String;
            1   14     2    stream  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
           1     3       8  any
          10    11      12  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      file      
      encoding  

  private static java.io.FileOutputStream getFileOutputStream(boolean, java.lang.String, java.lang.String);
    descriptor: (ZLjava/lang/String;Ljava/lang/String;)Ljava/io/FileOutputStream;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // boolean generatePackagesStructure
        start local 1 // java.lang.String outputPath
        start local 2 // java.lang.String relativeFileName
         0: .line 435
            iload 0 /* generatePackagesStructure */
            ifeq 2
         1: .line 436
            new java.io.FileOutputStream
            dup
            new java.io.File
            dup
            aload 1 /* outputPath */
            aload 2 /* relativeFileName */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.buildAllDirectoriesInto:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            areturn
         2: .line 438
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* fileName */
        start local 3 // java.lang.String fileName
         3: .line 439
            getstatic java.io.File.separatorChar:C
            istore 4 /* fileSeparatorChar */
        start local 4 // char fileSeparatorChar
         4: .line 440
            getstatic java.io.File.separator:Ljava/lang/String;
            astore 5 /* fileSeparator */
        start local 5 // java.lang.String fileSeparator
         5: .line 442
            aload 1 /* outputPath */
            bipush 47
            iload 4 /* fileSeparatorChar */
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 1 /* outputPath */
         6: .line 444
            aload 2 /* relativeFileName */
            iload 4 /* fileSeparatorChar */
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 6 /* indexOfPackageSeparator */
        start local 6 // int indexOfPackageSeparator
         7: .line 445
            iload 6 /* indexOfPackageSeparator */
            iconst_m1
            if_icmpne 13
         8: .line 446
            aload 1 /* outputPath */
            aload 5 /* fileSeparator */
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 11
         9: .line 447
            new java.lang.StringBuilder
            dup
            aload 1 /* outputPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* relativeFileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* fileName */
        10: .line 448
            goto 18
        11: .line 449
      StackMap locals: int java.lang.String java.lang.String java.lang.String int java.lang.String int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* outputPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* fileSeparator */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* relativeFileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* fileName */
        12: .line 451
            goto 18
        13: .line 452
      StackMap locals:
      StackMap stack:
            aload 2 /* relativeFileName */
            invokevirtual java.lang.String.length:()I
            istore 7 /* length */
        start local 7 // int length
        14: .line 453
            aload 1 /* outputPath */
            aload 5 /* fileSeparator */
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 17
        15: .line 454
            new java.lang.StringBuilder
            dup
            aload 1 /* outputPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* relativeFileName */
            iload 6 /* indexOfPackageSeparator */
            iconst_1
            iadd
            iload 7 /* length */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* fileName */
        16: .line 455
            goto 18
        17: .line 456
      StackMap locals: int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* outputPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* fileSeparator */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* relativeFileName */
            iload 6 /* indexOfPackageSeparator */
            iconst_1
            iadd
            iload 7 /* length */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* fileName */
        end local 7 // int length
        18: .line 459
      StackMap locals:
      StackMap stack:
            new java.io.FileOutputStream
            dup
            new java.io.File
            dup
            aload 3 /* fileName */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            areturn
        end local 6 // int indexOfPackageSeparator
        end local 5 // java.lang.String fileSeparator
        end local 4 // char fileSeparatorChar
        end local 3 // java.lang.String fileName
        end local 2 // java.lang.String relativeFileName
        end local 1 // java.lang.String outputPath
        end local 0 // boolean generatePackagesStructure
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   19     0  generatePackagesStructure  Z
            0   19     1                 outputPath  Ljava/lang/String;
            0   19     2           relativeFileName  Ljava/lang/String;
            3   19     3                   fileName  Ljava/lang/String;
            4   19     4          fileSeparatorChar  C
            5   19     5              fileSeparator  Ljava/lang/String;
            7   19     6    indexOfPackageSeparator  I
           14   18     7                     length  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                           Name  Flags
      generatePackagesStructure  
      outputPath                 
      relativeFileName           

  public static byte[] getInputStreamAsByteArray(java.io.InputStream, int);
    descriptor: (Ljava/io/InputStream;I)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // java.io.InputStream stream
        start local 1 // int length
         0: .line 491
            iload 1 /* length */
            iconst_m1
            if_icmpne 24
         1: .line 492
            iconst_0
            newarray 8
            astore 2 /* contents */
        start local 2 // byte[] contents
         2: .line 493
            iconst_0
            istore 3 /* contentsLength */
        start local 3 // int contentsLength
         3: .line 494
            iconst_m1
            istore 4 /* amountRead */
        start local 4 // int amountRead
         4: .line 496
      StackMap locals: byte[] int int
      StackMap stack:
            aload 0 /* stream */
            invokevirtual java.io.InputStream.available:()I
            sipush 8192
            invokestatic java.lang.Math.max:(II)I
            istore 5 /* amountRequested */
        start local 5 // int amountRequested
         5: .line 499
            iload 3 /* contentsLength */
            iload 5 /* amountRequested */
            iadd
            aload 2 /* contents */
            arraylength
            if_icmple 12
         6: .line 501
            aload 2 /* contents */
         7: .line 502
            iconst_0
         8: .line 503
            iload 3 /* contentsLength */
            iload 5 /* amountRequested */
            iadd
            newarray 8
            dup
            astore 2 /* contents */
         9: .line 504
            iconst_0
        10: .line 505
            iload 3 /* contentsLength */
        11: .line 500
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        12: .line 509
      StackMap locals: int
      StackMap stack:
            aload 0 /* stream */
            aload 2 /* contents */
            iload 3 /* contentsLength */
            iload 5 /* amountRequested */
            invokevirtual java.io.InputStream.read:([BII)I
            istore 4 /* amountRead */
        13: .line 511
            iload 4 /* amountRead */
            ifle 15
        14: .line 513
            iload 3 /* contentsLength */
            iload 4 /* amountRead */
            iadd
            istore 3 /* contentsLength */
        end local 5 // int amountRequested
        15: .line 515
      StackMap locals:
      StackMap stack:
            iload 4 /* amountRead */
            iconst_m1
            if_icmpne 4
        16: .line 518
            iload 3 /* contentsLength */
            aload 2 /* contents */
            arraylength
            if_icmpge 31
        17: .line 520
            aload 2 /* contents */
        18: .line 521
            iconst_0
        19: .line 522
            iload 3 /* contentsLength */
            newarray 8
            dup
            astore 2 /* contents */
        20: .line 523
            iconst_0
        21: .line 524
            iload 3 /* contentsLength */
        22: .line 519
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 4 // int amountRead
        end local 3 // int contentsLength
        23: .line 526
            goto 31
        end local 2 // byte[] contents
        24: .line 527
      StackMap locals:
      StackMap stack:
            iload 1 /* length */
            newarray 8
            astore 2 /* contents */
        start local 2 // byte[] contents
        25: .line 528
            iconst_0
            istore 3 /* len */
        start local 3 // int len
        26: .line 529
            iconst_0
            istore 4 /* readSize */
        start local 4 // int readSize
        27: .line 530
            goto 30
        28: .line 533
      StackMap locals: byte[] int int
      StackMap stack:
            iload 3 /* len */
            iload 4 /* readSize */
            iadd
            istore 3 /* len */
        29: .line 534
            aload 0 /* stream */
            aload 2 /* contents */
            iload 3 /* len */
            iload 1 /* length */
            iload 3 /* len */
            isub
            invokevirtual java.io.InputStream.read:([BII)I
            istore 4 /* readSize */
        30: .line 530
      StackMap locals:
      StackMap stack:
            iload 4 /* readSize */
            iconst_m1
            if_icmpeq 31
            iload 3 /* len */
            iload 1 /* length */
            if_icmpne 28
        end local 4 // int readSize
        end local 3 // int len
        31: .line 538
      StackMap locals:
      StackMap stack:
            aload 2 /* contents */
            areturn
        end local 2 // byte[] contents
        end local 1 // int length
        end local 0 // java.io.InputStream stream
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   32     0           stream  Ljava/io/InputStream;
            0   32     1           length  I
            2   24     2         contents  [B
           25   32     2         contents  [B
            3   23     3   contentsLength  I
            4   23     4       amountRead  I
            5   15     5  amountRequested  I
           26   31     3              len  I
           27   31     4         readSize  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      stream  
      length  

  public static char[] getInputStreamAsCharArray(java.io.InputStream, int, java.lang.String);
    descriptor: (Ljava/io/InputStream;ILjava/lang/String;)[C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // java.io.InputStream stream
        start local 1 // int length
        start local 2 // java.lang.String encoding
         0: .line 572
            aconst_null
            astore 3 /* reader */
        start local 3 // java.io.BufferedReader reader
         1: .line 574
            aload 2 /* encoding */
            ifnonnull 3
         2: .line 575
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            aload 0 /* stream */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            goto 4
         3: .line 576
      StackMap locals: java.io.BufferedReader
      StackMap stack:
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            aload 0 /* stream */
            aload 2 /* encoding */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/lang/String;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
         4: .line 574
      StackMap locals:
      StackMap stack: java.io.BufferedReader
            astore 3 /* reader */
         5: .line 577
            goto 8
      StackMap locals:
      StackMap stack: java.io.UnsupportedEncodingException
         6: pop
         7: .line 579
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            aload 0 /* stream */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 3 /* reader */
         8: .line 582
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* totalRead */
        start local 5 // int totalRead
         9: .line 583
            iload 1 /* length */
            iconst_m1
            if_icmpne 12
        10: .line 584
            getstatic org.eclipse.jdt.core.compiler.CharOperation.NO_CHAR:[C
            astore 4 /* contents */
        start local 4 // char[] contents
        11: .line 585
            goto 13
        end local 4 // char[] contents
        12: .line 587
      StackMap locals: java.io.InputStream int java.lang.String java.io.BufferedReader top int
      StackMap stack:
            iload 1 /* length */
            newarray 5
            astore 4 /* contents */
        start local 4 // char[] contents
        13: .line 592
      StackMap locals: java.io.InputStream int java.lang.String java.io.BufferedReader char[] int
      StackMap stack:
            iload 5 /* totalRead */
            iload 1 /* length */
            if_icmpge 16
        14: .line 594
            iload 1 /* length */
            iload 5 /* totalRead */
            isub
            istore 6 /* amountRequested */
        start local 6 // int amountRequested
        15: .line 595
            goto 22
        end local 6 // int amountRequested
        16: .line 597
      StackMap locals:
      StackMap stack:
            aload 3 /* reader */
            invokevirtual java.io.BufferedReader.read:()I
            istore 7 /* current */
        start local 7 // int current
        17: .line 598
            iload 7 /* current */
            ifge 18
            goto 26
        18: .line 600
      StackMap locals: java.io.InputStream int java.lang.String java.io.BufferedReader char[] int top int
      StackMap stack:
            aload 0 /* stream */
            invokevirtual java.io.InputStream.available:()I
            sipush 8192
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* amountRequested */
        start local 6 // int amountRequested
        19: .line 603
            iload 5 /* totalRead */
            iconst_1
            iadd
            iload 6 /* amountRequested */
            iadd
            aload 4 /* contents */
            arraylength
            if_icmple 21
        20: .line 604
            aload 4 /* contents */
            iconst_0
            iload 5 /* totalRead */
            iconst_1
            iadd
            iload 6 /* amountRequested */
            iadd
            newarray 5
            dup
            astore 4 /* contents */
            iconst_0
            iload 5 /* totalRead */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        21: .line 607
      StackMap locals: java.io.InputStream int java.lang.String java.io.BufferedReader char[] int int int
      StackMap stack:
            aload 4 /* contents */
            iload 5 /* totalRead */
            iinc 5 /* totalRead */ 1
            iload 7 /* current */
            i2c
            castore
        end local 7 // int current
        22: .line 610
      StackMap locals:
      StackMap stack:
            aload 3 /* reader */
            aload 4 /* contents */
            iload 5 /* totalRead */
            iload 6 /* amountRequested */
            invokevirtual java.io.BufferedReader.read:([CII)I
            istore 7 /* amountRead */
        start local 7 // int amountRead
        23: .line 611
            iload 7 /* amountRead */
            ifge 24
            goto 26
        24: .line 612
      StackMap locals: int
      StackMap stack:
            iload 5 /* totalRead */
            iload 7 /* amountRead */
            iadd
            istore 5 /* totalRead */
        end local 7 // int amountRead
        end local 6 // int amountRequested
        25: .line 590
            goto 13
        26: .line 616
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* start */
        start local 6 // int start
        27: .line 617
            iload 5 /* totalRead */
            ifle 31
            ldc "UTF-8"
            aload 2 /* encoding */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 31
        28: .line 618
            aload 4 /* contents */
            iconst_0
            caload
            ldc 65279
            if_icmpne 31
        29: .line 619
            iinc 5 /* totalRead */ -1
        30: .line 620
            iconst_1
            istore 6 /* start */
        31: .line 625
      StackMap locals: int
      StackMap stack:
            iload 5 /* totalRead */
            aload 4 /* contents */
            arraylength
            if_icmpge 33
        32: .line 626
            aload 4 /* contents */
            iload 6 /* start */
            iload 5 /* totalRead */
            newarray 5
            dup
            astore 4 /* contents */
            iconst_0
            iload 5 /* totalRead */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        33: .line 628
      StackMap locals:
      StackMap stack:
            aload 4 /* contents */
            areturn
        end local 6 // int start
        end local 5 // int totalRead
        end local 4 // char[] contents
        end local 3 // java.io.BufferedReader reader
        end local 2 // java.lang.String encoding
        end local 1 // int length
        end local 0 // java.io.InputStream stream
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   34     0           stream  Ljava/io/InputStream;
            0   34     1           length  I
            0   34     2         encoding  Ljava/lang/String;
            1   34     3           reader  Ljava/io/BufferedReader;
           11   12     4         contents  [C
           13   34     4         contents  [C
            9   34     5        totalRead  I
           15   16     6  amountRequested  I
           19   25     6  amountRequested  I
           17   22     7          current  I
           23   25     7       amountRead  I
           27   34     6            start  I
      Exception table:
        from    to  target  type
           1     5       6  Class java.io.UnsupportedEncodingException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      stream    
      length    
      encoding  

  public static java.lang.String getExceptionSummary(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // java.lang.Throwable exception
         0: .line 637
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 1 /* stringWriter */
        start local 1 // java.io.StringWriter stringWriter
         1: .line 638
            aload 0 /* exception */
            new java.io.PrintWriter
            dup
            aload 1 /* stringWriter */
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
            invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintWriter;)V
         2: .line 639
            aload 1 /* stringWriter */
            invokevirtual java.io.StringWriter.getBuffer:()Ljava/lang/StringBuffer;
            astore 2 /* buffer */
        start local 2 // java.lang.StringBuffer buffer
         3: .line 640
            new java.lang.StringBuffer
            dup
            bipush 50
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 3 /* exceptionBuffer */
        start local 3 // java.lang.StringBuffer exceptionBuffer
         4: .line 641
            aload 3 /* exceptionBuffer */
            aload 0 /* exception */
            invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         5: .line 643
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: iconst_0
            istore 5 /* lineSep */
        start local 5 // int lineSep
         7: aload 2 /* buffer */
            invokevirtual java.lang.StringBuffer.length:()I
            istore 6 /* max */
        start local 6 // int max
         8: iconst_0
            istore 7 /* line2Start */
        start local 7 // int line2Start
         9: goto 21
        10: .line 644
      StackMap locals: java.lang.Throwable java.io.StringWriter java.lang.StringBuffer java.lang.StringBuffer int int int int
      StackMap stack:
            aload 2 /* buffer */
            iload 4 /* i */
            invokevirtual java.lang.StringBuffer.charAt:(I)C
            lookupswitch { // 4
                    9: 16
                   10: 11
                   13: 11
                   32: 16
              default: 17
          }
        11: .line 647
      StackMap locals:
      StackMap stack:
            iload 7 /* line2Start */
            ifle 14
        12: .line 648
            aload 3 /* exceptionBuffer */
            bipush 32
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            aload 2 /* buffer */
            iload 7 /* line2Start */
            iload 4 /* i */
            invokevirtual java.lang.StringBuffer.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        13: .line 649
            goto 22
        14: .line 651
      StackMap locals:
      StackMap stack:
            iinc 5 /* lineSep */ 1
        15: .line 652
            goto 20
        16: .line 655
      StackMap locals:
      StackMap stack:
            goto 20
        17: .line 657
      StackMap locals:
      StackMap stack:
            iload 5 /* lineSep */
            ifle 20
        18: .line 658
            iload 4 /* i */
            istore 7 /* line2Start */
        19: .line 659
            iconst_0
            istore 5 /* lineSep */
        20: .line 643
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 4 /* i */
            iload 6 /* max */
            if_icmplt 10
        end local 7 // int line2Start
        end local 6 // int max
        end local 5 // int lineSep
        end local 4 // int i
        22: .line 664
      StackMap locals: java.lang.Throwable java.io.StringWriter java.lang.StringBuffer java.lang.StringBuffer
      StackMap stack:
            aload 3 /* exceptionBuffer */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuffer exceptionBuffer
        end local 2 // java.lang.StringBuffer buffer
        end local 1 // java.io.StringWriter stringWriter
        end local 0 // java.lang.Throwable exception
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   23     0        exception  Ljava/lang/Throwable;
            1   23     1     stringWriter  Ljava/io/StringWriter;
            3   23     2           buffer  Ljava/lang/StringBuffer;
            4   23     3  exceptionBuffer  Ljava/lang/StringBuffer;
            6   22     4                i  I
            7   22     5          lineSep  I
            8   22     6              max  I
            9   22     7       line2Start  I
    MethodParameters:
           Name  Flags
      exception  

  public static int getLineNumber(int, int[], int, int);
    descriptor: (I[III)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // int position
        start local 1 // int[] lineEnds
        start local 2 // int g
        start local 3 // int d
         0: .line 668
            aload 1 /* lineEnds */
            ifnonnull 2
         1: .line 669
            iconst_1
            ireturn
         2: .line 670
      StackMap locals:
      StackMap stack:
            iload 3 /* d */
            iconst_m1
            if_icmpne 4
         3: .line 671
            iconst_1
            ireturn
         4: .line 672
      StackMap locals:
      StackMap stack:
            iload 2 /* g */
            istore 4 /* m */
        start local 4 // int m
         5: .line 673
            goto 15
         6: .line 674
      StackMap locals: int
      StackMap stack:
            iload 2 /* g */
            iload 3 /* d */
            iload 2 /* g */
            isub
            iconst_2
            idiv
            iadd
            istore 4 /* m */
         7: .line 675
            iload 0 /* position */
            aload 1 /* lineEnds */
            iload 4 /* m */
            iaload
            dup
            istore 5 /* start */
        start local 5 // int start
         8: if_icmpge 11
         9: .line 676
            iload 4 /* m */
            iconst_1
            isub
            istore 3 /* d */
        10: .line 677
            goto 15
      StackMap locals: int
      StackMap stack:
        11: iload 0 /* position */
            iload 5 /* start */
            if_icmple 14
        12: .line 678
            iload 4 /* m */
            iconst_1
            iadd
            istore 2 /* g */
        13: .line 679
            goto 15
        14: .line 680
      StackMap locals:
      StackMap stack:
            iload 4 /* m */
            iconst_1
            iadd
            ireturn
        end local 5 // int start
        15: .line 673
      StackMap locals:
      StackMap stack:
            iload 2 /* g */
            iload 3 /* d */
            if_icmple 6
        16: .line 683
            iload 0 /* position */
            aload 1 /* lineEnds */
            iload 4 /* m */
            iaload
            if_icmpge 18
        17: .line 684
            iload 4 /* m */
            iconst_1
            iadd
            ireturn
        18: .line 686
      StackMap locals:
      StackMap stack:
            iload 4 /* m */
            iconst_2
            iadd
            ireturn
        end local 4 // int m
        end local 3 // int d
        end local 2 // int g
        end local 1 // int[] lineEnds
        end local 0 // int position
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0  position  I
            0   19     1  lineEnds  [I
            0   19     2         g  I
            0   19     3         d  I
            5   19     4         m  I
            8   15     5     start  I
    MethodParameters:
          Name  Flags
      position  
      lineEnds  
      g         
      d         

  public static byte[] getZipEntryByteContent(java.util.zip.ZipEntry, java.util.zip.ZipFile);
    descriptor: (Ljava/util/zip/ZipEntry;Ljava/util/zip/ZipFile;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // java.util.zip.ZipEntry ze
        start local 1 // java.util.zip.ZipFile zip
         0: .line 695
            aconst_null
            astore 2 /* stream */
        start local 2 // java.io.InputStream stream
         1: .line 697
            aload 1 /* zip */
            aload 0 /* ze */
            invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            astore 3 /* inputStream */
        start local 3 // java.io.InputStream inputStream
         2: .line 698
            aload 3 /* inputStream */
            ifnonnull 3
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid zip entry name : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* ze */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 699
      StackMap locals: java.io.InputStream java.io.InputStream
      StackMap stack:
            new java.io.BufferedInputStream
            dup
            aload 3 /* inputStream */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            astore 2 /* stream */
         4: .line 700
            aload 2 /* stream */
            aload 0 /* ze */
            invokevirtual java.util.zip.ZipEntry.getSize:()J
            l2i
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.getInputStreamAsByteArray:(Ljava/io/InputStream;I)[B
            astore 5
         5: .line 702
            aload 2 /* stream */
            ifnull 9
         6: .line 704
            aload 2 /* stream */
            invokevirtual java.io.InputStream.close:()V
         7: .line 705
            goto 9
      StackMap locals: java.util.zip.ZipEntry java.util.zip.ZipFile java.io.InputStream java.io.InputStream top byte[]
      StackMap stack: java.io.IOException
         8: pop
         9: .line 700
      StackMap locals:
      StackMap stack:
            aload 5
            areturn
        end local 3 // java.io.InputStream inputStream
        10: .line 701
      StackMap locals: java.util.zip.ZipEntry java.util.zip.ZipFile java.io.InputStream
      StackMap stack: java.lang.Throwable
            astore 4
        11: .line 702
            aload 2 /* stream */
            ifnull 15
        12: .line 704
            aload 2 /* stream */
            invokevirtual java.io.InputStream.close:()V
        13: .line 705
            goto 15
      StackMap locals: java.util.zip.ZipEntry java.util.zip.ZipFile java.io.InputStream top java.lang.Throwable
      StackMap stack: java.io.IOException
        14: pop
        15: .line 709
      StackMap locals:
      StackMap stack:
            aload 4
            athrow
        end local 2 // java.io.InputStream stream
        end local 1 // java.util.zip.ZipFile zip
        end local 0 // java.util.zip.ZipEntry ze
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0           ze  Ljava/util/zip/ZipEntry;
            0   16     1          zip  Ljava/util/zip/ZipFile;
            1   16     2       stream  Ljava/io/InputStream;
            2   10     3  inputStream  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           6     7       8  Class java.io.IOException
           1     5      10  any
          12    13      14  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ze    
      zip   

  public static int hashCode(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.lang.Object[] array
         0: .line 712
            bipush 31
            istore 1 /* prime */
        start local 1 // int prime
         1: .line 713
            aload 0 /* array */
            ifnonnull 3
         2: .line 714
            iconst_0
            ireturn
         3: .line 716
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 2 /* result */
        start local 2 // int result
         4: .line 717
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         5: goto 10
         6: .line 718
      StackMap locals: int int
      StackMap stack:
            iload 1 /* prime */
            iload 2 /* result */
            imul
            aload 0 /* array */
            iload 3 /* index */
            aaload
            ifnonnull 7
            iconst_0
            goto 8
      StackMap locals:
      StackMap stack: int
         7: aload 0 /* array */
            iload 3 /* index */
            aaload
            invokevirtual java.lang.Object.hashCode:()I
      StackMap locals: java.lang.Object[] int int int
      StackMap stack: int int
         8: iadd
            istore 2 /* result */
         9: .line 717
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* index */
            aload 0 /* array */
            arraylength
            if_icmplt 6
        end local 3 // int index
        11: .line 720
            iload 2 /* result */
            ireturn
        end local 2 // int result
        end local 1 // int prime
        end local 0 // java.lang.Object[] array
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0   array  [Ljava/lang/Object;
            1   12     1   prime  I
            4   12     2  result  I
            5   11     3   index  I
    MethodParameters:
       Name  Flags
      array  

  public static final boolean isPotentialZipArchive(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // java.lang.String name
         0: .line 727
            aload 0 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* lastDot */
        start local 1 // int lastDot
         1: .line 728
            iload 1 /* lastDot */
            iconst_m1
            if_icmpne 3
         2: .line 729
            iconst_0
            ireturn
         3: .line 730
      StackMap locals: int
      StackMap stack:
            aload 0 /* name */
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iload 1 /* lastDot */
            if_icmple 5
         4: .line 731
            iconst_0
            ireturn
         5: .line 732
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            istore 2 /* length */
        start local 2 // int length
         6: .line 733
            iload 2 /* length */
            iload 1 /* lastDot */
            isub
            iconst_1
            isub
            istore 3 /* extensionLength */
        start local 3 // int extensionLength
         7: .line 734
            iload 3 /* extensionLength */
            ldc "java"
            invokevirtual java.lang.String.length:()I
            if_icmpne 16
         8: .line 735
            iload 3 /* extensionLength */
            iconst_1
            isub
            istore 4 /* i */
        start local 4 // int i
         9: goto 15
        10: .line 736
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* name */
            iload 2 /* length */
            iload 3 /* extensionLength */
            isub
            iload 4 /* i */
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.toLowerCase:(C)C
            ldc "java"
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 12
        11: .line 737
            goto 16
        12: .line 739
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            ifne 14
        13: .line 740
            iconst_0
            ireturn
        14: .line 735
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
        15: iload 4 /* i */
            ifge 10
        end local 4 // int i
        16: .line 744
      StackMap locals:
      StackMap stack:
            iload 3 /* extensionLength */
            ldc "class"
            invokevirtual java.lang.String.length:()I
            if_icmpne 24
        17: .line 745
            iload 3 /* extensionLength */
            iconst_1
            isub
            istore 4 /* i */
        start local 4 // int i
        18: goto 22
        19: .line 746
      StackMap locals: int
      StackMap stack:
            aload 0 /* name */
            iload 2 /* length */
            iload 3 /* extensionLength */
            isub
            iload 4 /* i */
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.toLowerCase:(C)C
            ldc "class"
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 21
        20: .line 747
            iconst_1
            ireturn
        21: .line 745
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
        22: iload 4 /* i */
            ifge 19
        end local 4 // int i
        23: .line 750
            iconst_0
            ireturn
        24: .line 752
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // int extensionLength
        end local 2 // int length
        end local 1 // int lastDot
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   25     0             name  Ljava/lang/String;
            1   25     1          lastDot  I
            6   25     2           length  I
            7   25     3  extensionLength  I
            9   16     4                i  I
           18   23     4                i  I
    MethodParameters:
      Name  Flags
      name  

  public static final int archiveFormat(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // java.lang.String name
         0: .line 763
            aload 0 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* lastDot */
        start local 1 // int lastDot
         1: .line 764
            iload 1 /* lastDot */
            iconst_m1
            if_icmpne 3
         2: .line 765
            iconst_m1
            ireturn
         3: .line 766
      StackMap locals: int
      StackMap stack:
            aload 0 /* name */
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iload 1 /* lastDot */
            if_icmple 5
         4: .line 767
            iconst_m1
            ireturn
         5: .line 768
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            istore 2 /* length */
        start local 2 // int length
         6: .line 769
            iload 2 /* length */
            iload 1 /* lastDot */
            isub
            iconst_1
            isub
            istore 3 /* extensionLength */
        start local 3 // int extensionLength
         7: .line 771
            iload 3 /* extensionLength */
            ldc "java"
            invokevirtual java.lang.String.length:()I
            if_icmpne 16
         8: .line 772
            iload 3 /* extensionLength */
            iconst_1
            isub
            istore 4 /* i */
        start local 4 // int i
         9: goto 15
        10: .line 773
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* name */
            iload 2 /* length */
            iload 3 /* extensionLength */
            isub
            iload 4 /* i */
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.toLowerCase:(C)C
            ldc "java"
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 12
        11: .line 774
            goto 16
        12: .line 776
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            ifne 14
        13: .line 777
            iconst_m1
            ireturn
        14: .line 772
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
        15: iload 4 /* i */
            ifge 10
        end local 4 // int i
        16: .line 781
      StackMap locals:
      StackMap stack:
            iload 3 /* extensionLength */
            ldc "class"
            invokevirtual java.lang.String.length:()I
            if_icmpne 24
        17: .line 782
            iload 3 /* extensionLength */
            iconst_1
            isub
            istore 4 /* i */
        start local 4 // int i
        18: goto 22
        19: .line 783
      StackMap locals: int
      StackMap stack:
            aload 0 /* name */
            iload 2 /* length */
            iload 3 /* extensionLength */
            isub
            iload 4 /* i */
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.toLowerCase:(C)C
            ldc "class"
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 21
        20: .line 784
            iconst_0
            ireturn
        21: .line 782
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
        22: iload 4 /* i */
            ifge 19
        end local 4 // int i
        23: .line 787
            iconst_m1
            ireturn
        24: .line 789
      StackMap locals:
      StackMap stack:
            iload 3 /* extensionLength */
            ldc "jmod"
            invokevirtual java.lang.String.length:()I
            if_icmpne 32
        25: .line 790
            iload 3 /* extensionLength */
            iconst_1
            isub
            istore 4 /* i */
        start local 4 // int i
        26: goto 30
        27: .line 791
      StackMap locals: int
      StackMap stack:
            aload 0 /* name */
            iload 2 /* length */
            iload 3 /* extensionLength */
            isub
            iload 4 /* i */
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.toLowerCase:(C)C
            ldc "jmod"
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 29
        28: .line 792
            iconst_0
            ireturn
        29: .line 790
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
        30: iload 4 /* i */
            ifge 27
        end local 4 // int i
        31: .line 795
            iconst_1
            ireturn
        32: .line 797
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // int extensionLength
        end local 2 // int length
        end local 1 // int lastDot
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   33     0             name  Ljava/lang/String;
            1   33     1          lastDot  I
            6   33     2           length  I
            7   33     3  extensionLength  I
            9   16     4                i  I
           18   23     4                i  I
           26   31     4                i  I
    MethodParameters:
      Name  Flags
      name  

  public static final boolean isClassFileName(char[]);
    descriptor: ([C)Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // char[] name
         0: .line 805
            aload 0 /* name */
            ifnonnull 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* name */
            arraylength
      StackMap locals:
      StackMap stack: int
         2: istore 1 /* nameLength */
        start local 1 // int nameLength
         3: .line 806
            getstatic org.eclipse.jdt.internal.compiler.util.Util.SUFFIX_CLASS:[C
            arraylength
            istore 2 /* suffixLength */
        start local 2 // int suffixLength
         4: .line 807
            iload 1 /* nameLength */
            iload 2 /* suffixLength */
            if_icmpge 5
            iconst_0
            ireturn
         5: .line 809
      StackMap locals: int int
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         6: iload 1 /* nameLength */
            iload 2 /* suffixLength */
            isub
            istore 4 /* offset */
        start local 4 // int offset
         7: goto 11
         8: .line 810
      StackMap locals: int int
      StackMap stack:
            aload 0 /* name */
            iload 4 /* offset */
            iload 3 /* i */
            iadd
            caload
            istore 5 /* c */
        start local 5 // char c
         9: .line 811
            iload 5 /* c */
            getstatic org.eclipse.jdt.internal.compiler.util.Util.SUFFIX_class:[C
            iload 3 /* i */
            caload
            if_icmpeq 10
            iload 5 /* c */
            getstatic org.eclipse.jdt.internal.compiler.util.Util.SUFFIX_CLASS:[C
            iload 3 /* i */
            caload
            if_icmpeq 10
            iconst_0
            ireturn
        end local 5 // char c
        10: .line 809
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* i */
            iload 2 /* suffixLength */
            if_icmplt 8
        end local 4 // int offset
        end local 3 // int i
        12: .line 813
            iconst_1
            ireturn
        end local 2 // int suffixLength
        end local 1 // int nameLength
        end local 0 // char[] name
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          name  [C
            3   13     1    nameLength  I
            4   13     2  suffixLength  I
            6   12     3             i  I
            7   12     4        offset  I
            9   10     5             c  C
    MethodParameters:
      Name  Flags
      name  

  public static final boolean isClassFileName(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // java.lang.String name
         0: .line 820
            aload 0 /* name */
            ifnonnull 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* name */
            invokevirtual java.lang.String.length:()I
      StackMap locals:
      StackMap stack: int
         2: istore 1 /* nameLength */
        start local 1 // int nameLength
         3: .line 821
            getstatic org.eclipse.jdt.internal.compiler.util.Util.SUFFIX_CLASS:[C
            arraylength
            istore 2 /* suffixLength */
        start local 2 // int suffixLength
         4: .line 822
            iload 1 /* nameLength */
            iload 2 /* suffixLength */
            if_icmpge 5
            iconst_0
            ireturn
         5: .line 824
      StackMap locals: int int
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         6: goto 11
         7: .line 825
      StackMap locals: int
      StackMap stack:
            aload 0 /* name */
            iload 1 /* nameLength */
            iload 3 /* i */
            isub
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* c */
        start local 4 // char c
         8: .line 826
            iload 2 /* suffixLength */
            iload 3 /* i */
            isub
            iconst_1
            isub
            istore 5 /* suffixIndex */
        start local 5 // int suffixIndex
         9: .line 827
            iload 4 /* c */
            getstatic org.eclipse.jdt.internal.compiler.util.Util.SUFFIX_class:[C
            iload 5 /* suffixIndex */
            caload
            if_icmpeq 10
            iload 4 /* c */
            getstatic org.eclipse.jdt.internal.compiler.util.Util.SUFFIX_CLASS:[C
            iload 5 /* suffixIndex */
            caload
            if_icmpeq 10
            iconst_0
            ireturn
        end local 5 // int suffixIndex
        end local 4 // char c
        10: .line 824
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* i */
            iload 2 /* suffixLength */
            if_icmplt 7
        end local 3 // int i
        12: .line 829
            iconst_1
            ireturn
        end local 2 // int suffixLength
        end local 1 // int nameLength
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          name  Ljava/lang/String;
            3   13     1    nameLength  I
            4   13     2  suffixLength  I
            6   12     3             i  I
            8   10     4             c  C
            9   10     5   suffixIndex  I
    MethodParameters:
      Name  Flags
      name  

  public static final boolean isExcluded(char[], char[][], char[][], boolean);
    descriptor: ([C[[C[[CZ)Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // char[] path
        start local 1 // char[][] inclusionPatterns
        start local 2 // char[][] exclusionPatterns
        start local 3 // boolean isFolderPath
         0: .line 839
            aload 1 /* inclusionPatterns */
            ifnonnull 1
            aload 2 /* exclusionPatterns */
            ifnonnull 1
            iconst_0
            ireturn
         1: .line 841
      StackMap locals:
      StackMap stack:
            aload 1 /* inclusionPatterns */
            ifnull 20
         2: .line 842
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: aload 1 /* inclusionPatterns */
            arraylength
            istore 5 /* length */
        start local 5 // int length
         4: goto 18
         5: .line 843
      StackMap locals: int int
      StackMap stack:
            aload 1 /* inclusionPatterns */
            iload 4 /* i */
            aaload
            astore 6 /* pattern */
        start local 6 // char[] pattern
         6: .line 844
            aload 6 /* pattern */
            astore 7 /* folderPattern */
        start local 7 // char[] folderPattern
         7: .line 845
            iload 3 /* isFolderPath */
            ifeq 15
         8: .line 846
            bipush 47
            aload 6 /* pattern */
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.lastIndexOf:(C[C)I
            istore 8 /* lastSlash */
        start local 8 // int lastSlash
         9: .line 847
            iload 8 /* lastSlash */
            iconst_m1
            if_icmpeq 15
            iload 8 /* lastSlash */
            aload 6 /* pattern */
            arraylength
            iconst_1
            isub
            if_icmpeq 15
        10: .line 848
            bipush 42
            aload 6 /* pattern */
            iload 8 /* lastSlash */
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.indexOf:(C[CI)I
            istore 9 /* star */
        start local 9 // int star
        11: .line 849
            iload 9 /* star */
            iconst_m1
            if_icmpeq 14
        12: .line 850
            iload 9 /* star */
            aload 6 /* pattern */
            arraylength
            iconst_1
            isub
            if_icmpge 14
        13: .line 851
            aload 6 /* pattern */
            iload 9 /* star */
            iconst_1
            iadd
            caload
            bipush 42
            if_icmpeq 15
        14: .line 852
      StackMap locals: char[] char[][] char[][] int int int char[] char[] int int
      StackMap stack:
            aload 6 /* pattern */
            iconst_0
            iload 8 /* lastSlash */
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.subarray:([CII)[C
            astore 7 /* folderPattern */
        end local 9 // int star
        end local 8 // int lastSlash
        15: .line 856
      StackMap locals:
      StackMap stack:
            aload 7 /* folderPattern */
            aload 0 /* path */
            iconst_1
            bipush 47
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.pathMatch:([C[CZC)Z
            ifeq 17
        16: .line 857
            goto 20
        end local 7 // char[] folderPattern
        end local 6 // char[] pattern
        17: .line 842
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 4 /* i */
            iload 5 /* length */
            if_icmplt 5
        end local 5 // int length
        end local 4 // int i
        19: .line 860
            iconst_1
            ireturn
        20: .line 862
      StackMap locals:
      StackMap stack:
            iload 3 /* isFolderPath */
            ifeq 22
        21: .line 863
            aload 0 /* path */
            iconst_1
            newarray 5
            dup
            iconst_0
            bipush 42
            castore
            bipush 47
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.concat:([C[CC)[C
            astore 0 /* path */
        22: .line 865
      StackMap locals:
      StackMap stack:
            aload 2 /* exclusionPatterns */
            ifnull 30
        23: .line 866
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        24: aload 2 /* exclusionPatterns */
            arraylength
            istore 5 /* length */
        start local 5 // int length
        25: goto 29
        26: .line 867
      StackMap locals: int int
      StackMap stack:
            aload 2 /* exclusionPatterns */
            iload 4 /* i */
            aaload
            aload 0 /* path */
            iconst_1
            bipush 47
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.pathMatch:([C[CZC)Z
            ifeq 28
        27: .line 868
            iconst_1
            ireturn
        28: .line 866
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 4 /* i */
            iload 5 /* length */
            if_icmplt 26
        end local 5 // int length
        end local 4 // int i
        30: .line 872
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // boolean isFolderPath
        end local 2 // char[][] exclusionPatterns
        end local 1 // char[][] inclusionPatterns
        end local 0 // char[] path
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   31     0               path  [C
            0   31     1  inclusionPatterns  [[C
            0   31     2  exclusionPatterns  [[C
            0   31     3       isFolderPath  Z
            3   19     4                  i  I
            4   19     5             length  I
            6   17     6            pattern  [C
            7   17     7      folderPattern  [C
            9   15     8          lastSlash  I
           11   15     9               star  I
           24   30     4                  i  I
           25   30     5             length  I
    MethodParameters:
                   Name  Flags
      path               
      inclusionPatterns  
      exclusionPatterns  
      isFolderPath       

  public static final boolean isJavaFileName(char[]);
    descriptor: ([C)Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // char[] name
         0: .line 880
            aload 0 /* name */
            ifnonnull 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* name */
            arraylength
      StackMap locals:
      StackMap stack: int
         2: istore 1 /* nameLength */
        start local 1 // int nameLength
         3: .line 881
            getstatic org.eclipse.jdt.internal.compiler.util.Util.SUFFIX_JAVA:[C
            arraylength
            istore 2 /* suffixLength */
        start local 2 // int suffixLength
         4: .line 882
            iload 1 /* nameLength */
            iload 2 /* suffixLength */
            if_icmpge 5
            iconst_0
            ireturn
         5: .line 884
      StackMap locals: int int
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         6: iload 1 /* nameLength */
            iload 2 /* suffixLength */
            isub
            istore 4 /* offset */
        start local 4 // int offset
         7: goto 11
         8: .line 885
      StackMap locals: int int
      StackMap stack:
            aload 0 /* name */
            iload 4 /* offset */
            iload 3 /* i */
            iadd
            caload
            istore 5 /* c */
        start local 5 // char c
         9: .line 886
            iload 5 /* c */
            getstatic org.eclipse.jdt.internal.compiler.util.Util.SUFFIX_java:[C
            iload 3 /* i */
            caload
            if_icmpeq 10
            iload 5 /* c */
            getstatic org.eclipse.jdt.internal.compiler.util.Util.SUFFIX_JAVA:[C
            iload 3 /* i */
            caload
            if_icmpeq 10
            iconst_0
            ireturn
        end local 5 // char c
        10: .line 884
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* i */
            iload 2 /* suffixLength */
            if_icmplt 8
        end local 4 // int offset
        end local 3 // int i
        12: .line 888
            iconst_1
            ireturn
        end local 2 // int suffixLength
        end local 1 // int nameLength
        end local 0 // char[] name
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          name  [C
            3   13     1    nameLength  I
            4   13     2  suffixLength  I
            6   12     3             i  I
            7   12     4        offset  I
            9   10     5             c  C
    MethodParameters:
      Name  Flags
      name  

  public static final boolean isJavaFileName(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // java.lang.String name
         0: .line 896
            aload 0 /* name */
            ifnonnull 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* name */
            invokevirtual java.lang.String.length:()I
      StackMap locals:
      StackMap stack: int
         2: istore 1 /* nameLength */
        start local 1 // int nameLength
         3: .line 897
            getstatic org.eclipse.jdt.internal.compiler.util.Util.SUFFIX_JAVA:[C
            arraylength
            istore 2 /* suffixLength */
        start local 2 // int suffixLength
         4: .line 898
            iload 1 /* nameLength */
            iload 2 /* suffixLength */
            if_icmpge 5
            iconst_0
            ireturn
         5: .line 900
      StackMap locals: int int
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         6: goto 11
         7: .line 901
      StackMap locals: int
      StackMap stack:
            aload 0 /* name */
            iload 1 /* nameLength */
            iload 3 /* i */
            isub
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* c */
        start local 4 // char c
         8: .line 902
            iload 2 /* suffixLength */
            iload 3 /* i */
            isub
            iconst_1
            isub
            istore 5 /* suffixIndex */
        start local 5 // int suffixIndex
         9: .line 903
            iload 4 /* c */
            getstatic org.eclipse.jdt.internal.compiler.util.Util.SUFFIX_java:[C
            iload 5 /* suffixIndex */
            caload
            if_icmpeq 10
            iload 4 /* c */
            getstatic org.eclipse.jdt.internal.compiler.util.Util.SUFFIX_JAVA:[C
            iload 5 /* suffixIndex */
            caload
            if_icmpeq 10
            iconst_0
            ireturn
        end local 5 // int suffixIndex
        end local 4 // char c
        10: .line 900
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* i */
            iload 2 /* suffixLength */
            if_icmplt 7
        end local 3 // int i
        12: .line 905
            iconst_1
            ireturn
        end local 2 // int suffixLength
        end local 1 // int nameLength
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          name  Ljava/lang/String;
            3   13     1    nameLength  I
            4   13     2  suffixLength  I
            6   12     3             i  I
            8   10     4             c  C
            9   10     5   suffixIndex  I
    MethodParameters:
      Name  Flags
      name  

  public static final boolean isJrt(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 913
            aload 0 /* name */
            ldc "jrt-fs.jar"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ireturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public static void reverseQuickSort(char[][], int, int);
    descriptor: ([[CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // char[][] list
        start local 1 // int left
        start local 2 // int right
         0: .line 917
            iload 1 /* left */
            istore 3 /* original_left */
        start local 3 // int original_left
         1: .line 918
            iload 2 /* right */
            istore 4 /* original_right */
        start local 4 // int original_right
         2: .line 919
            aload 0 /* list */
            iload 1 /* left */
            iload 2 /* right */
            iload 1 /* left */
            isub
            iconst_2
            idiv
            iadd
            aaload
            astore 5 /* mid */
        start local 5 // char[] mid
         3: .line 921
            goto 5
         4: .line 922
      StackMap locals: int int char[]
      StackMap stack:
            iinc 1 /* left */ 1
         5: .line 921
      StackMap locals:
      StackMap stack:
            aload 0 /* list */
            iload 1 /* left */
            aaload
            aload 5 /* mid */
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.compareTo:([C[C)I
            ifgt 4
         6: .line 924
            goto 8
         7: .line 925
      StackMap locals:
      StackMap stack:
            iinc 2 /* right */ -1
         8: .line 924
      StackMap locals:
      StackMap stack:
            aload 5 /* mid */
            aload 0 /* list */
            iload 2 /* right */
            aaload
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.compareTo:([C[C)I
            ifgt 7
         9: .line 927
            iload 1 /* left */
            iload 2 /* right */
            if_icmpgt 15
        10: .line 928
            aload 0 /* list */
            iload 1 /* left */
            aaload
            astore 6 /* tmp */
        start local 6 // char[] tmp
        11: .line 929
            aload 0 /* list */
            iload 1 /* left */
            aload 0 /* list */
            iload 2 /* right */
            aaload
            aastore
        12: .line 930
            aload 0 /* list */
            iload 2 /* right */
            aload 6 /* tmp */
            aastore
        13: .line 931
            iinc 1 /* left */ 1
        14: .line 932
            iinc 2 /* right */ -1
        end local 6 // char[] tmp
        15: .line 934
      StackMap locals:
      StackMap stack:
            iload 1 /* left */
            iload 2 /* right */
        16: .line 920
            if_icmple 5
        17: .line 935
            iload 3 /* original_left */
            iload 2 /* right */
            if_icmpge 19
        18: .line 936
            aload 0 /* list */
            iload 3 /* original_left */
            iload 2 /* right */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.reverseQuickSort:([[CII)V
        19: .line 938
      StackMap locals:
      StackMap stack:
            iload 1 /* left */
            iload 4 /* original_right */
            if_icmpge 21
        20: .line 939
            aload 0 /* list */
            iload 1 /* left */
            iload 4 /* original_right */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.reverseQuickSort:([[CII)V
        21: .line 941
      StackMap locals:
      StackMap stack:
            return
        end local 5 // char[] mid
        end local 4 // int original_right
        end local 3 // int original_left
        end local 2 // int right
        end local 1 // int left
        end local 0 // char[][] list
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0            list  [[C
            0   22     1            left  I
            0   22     2           right  I
            1   22     3   original_left  I
            2   22     4  original_right  I
            3   22     5             mid  [C
           11   15     6             tmp  [C
    MethodParameters:
       Name  Flags
      list   
      left   
      right  

  public static void reverseQuickSort(char[][], int, int, int[]);
    descriptor: ([[CII[I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // char[][] list
        start local 1 // int left
        start local 2 // int right
        start local 3 // int[] result
         0: .line 943
            iload 1 /* left */
            istore 4 /* original_left */
        start local 4 // int original_left
         1: .line 944
            iload 2 /* right */
            istore 5 /* original_right */
        start local 5 // int original_right
         2: .line 945
            aload 0 /* list */
            iload 1 /* left */
            iload 2 /* right */
            iload 1 /* left */
            isub
            iconst_2
            idiv
            iadd
            aaload
            astore 6 /* mid */
        start local 6 // char[] mid
         3: .line 947
            goto 5
         4: .line 948
      StackMap locals: int int char[]
      StackMap stack:
            iinc 1 /* left */ 1
         5: .line 947
      StackMap locals:
      StackMap stack:
            aload 0 /* list */
            iload 1 /* left */
            aaload
            aload 6 /* mid */
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.compareTo:([C[C)I
            ifgt 4
         6: .line 950
            goto 8
         7: .line 951
      StackMap locals:
      StackMap stack:
            iinc 2 /* right */ -1
         8: .line 950
      StackMap locals:
      StackMap stack:
            aload 6 /* mid */
            aload 0 /* list */
            iload 2 /* right */
            aaload
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.compareTo:([C[C)I
            ifgt 7
         9: .line 953
            iload 1 /* left */
            iload 2 /* right */
            if_icmpgt 18
        10: .line 954
            aload 0 /* list */
            iload 1 /* left */
            aaload
            astore 7 /* tmp */
        start local 7 // char[] tmp
        11: .line 955
            aload 0 /* list */
            iload 1 /* left */
            aload 0 /* list */
            iload 2 /* right */
            aaload
            aastore
        12: .line 956
            aload 0 /* list */
            iload 2 /* right */
            aload 7 /* tmp */
            aastore
        13: .line 957
            aload 3 /* result */
            iload 1 /* left */
            iaload
            istore 8 /* temp */
        start local 8 // int temp
        14: .line 958
            aload 3 /* result */
            iload 1 /* left */
            aload 3 /* result */
            iload 2 /* right */
            iaload
            iastore
        15: .line 959
            aload 3 /* result */
            iload 2 /* right */
            iload 8 /* temp */
            iastore
        16: .line 960
            iinc 1 /* left */ 1
        17: .line 961
            iinc 2 /* right */ -1
        end local 8 // int temp
        end local 7 // char[] tmp
        18: .line 963
      StackMap locals:
      StackMap stack:
            iload 1 /* left */
            iload 2 /* right */
        19: .line 946
            if_icmple 5
        20: .line 964
            iload 4 /* original_left */
            iload 2 /* right */
            if_icmpge 22
        21: .line 965
            aload 0 /* list */
            iload 4 /* original_left */
            iload 2 /* right */
            aload 3 /* result */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.reverseQuickSort:([[CII[I)V
        22: .line 967
      StackMap locals:
      StackMap stack:
            iload 1 /* left */
            iload 5 /* original_right */
            if_icmpge 24
        23: .line 968
            aload 0 /* list */
            iload 1 /* left */
            iload 5 /* original_right */
            aload 3 /* result */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.reverseQuickSort:([[CII[I)V
        24: .line 970
      StackMap locals:
      StackMap stack:
            return
        end local 6 // char[] mid
        end local 5 // int original_right
        end local 4 // int original_left
        end local 3 // int[] result
        end local 2 // int right
        end local 1 // int left
        end local 0 // char[][] list
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   25     0            list  [[C
            0   25     1            left  I
            0   25     2           right  I
            0   25     3          result  [I
            1   25     4   original_left  I
            2   25     5  original_right  I
            3   25     6             mid  [C
           11   18     7             tmp  [C
           14   18     8            temp  I
    MethodParameters:
        Name  Flags
      list    
      left    
      right   
      result  

  public static final int searchColumnNumber(int[], int, int);
    descriptor: ([III)I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // int[] startLineIndexes
        start local 1 // int lineNumber
        start local 2 // int position
         0: .line 976
            iload 1 /* lineNumber */
            tableswitch { // 1 - 2
                    1: 1
                    2: 2
              default: 3
          }
         1: .line 978
      StackMap locals:
      StackMap stack:
            iload 2 /* position */
            iconst_1
            iadd
            ireturn
         2: .line 980
      StackMap locals:
      StackMap stack:
            iload 2 /* position */
            aload 0 /* startLineIndexes */
            iconst_0
            iaload
            isub
            ireturn
         3: .line 982
      StackMap locals:
      StackMap stack:
            iload 1 /* lineNumber */
            iconst_2
            isub
            istore 3 /* line */
        start local 3 // int line
         4: .line 983
            aload 0 /* startLineIndexes */
            arraylength
            istore 4 /* length */
        start local 4 // int length
         5: .line 984
            iload 3 /* line */
            iload 4 /* length */
            if_icmplt 7
         6: .line 985
            iload 2 /* position */
            aload 0 /* startLineIndexes */
            iload 4 /* length */
            iconst_1
            isub
            iaload
            isub
            ireturn
         7: .line 987
      StackMap locals: int int
      StackMap stack:
            iload 2 /* position */
            aload 0 /* startLineIndexes */
            iload 3 /* line */
            iaload
            isub
            ireturn
        end local 4 // int length
        end local 3 // int line
        end local 2 // int position
        end local 1 // int lineNumber
        end local 0 // int[] startLineIndexes
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0  startLineIndexes  [I
            0    8     1        lineNumber  I
            0    8     2          position  I
            4    8     3              line  I
            5    8     4            length  I
    MethodParameters:
                  Name  Flags
      startLineIndexes  
      lineNumber        
      position          

  public static java.lang.Boolean toBoolean(boolean);
    descriptor: (Z)Ljava/lang/Boolean;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // boolean bool
         0: .line 997
            iload 0 /* bool */
            ifeq 2
         1: .line 998
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            areturn
         2: .line 1000
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            areturn
        end local 0 // boolean bool
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  bool  Z
    MethodParameters:
      Name  Flags
      bool  

  public static java.lang.String toString(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Object[] objects
         0: .line 1007
            aload 0 /* objects */
         1: .line 1008
            new org.eclipse.jdt.internal.compiler.util.Util$1
            dup
            invokespecial org.eclipse.jdt.internal.compiler.util.Util$1.<init>:()V
         2: .line 1007
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.toString:([Ljava/lang/Object;Lorg/eclipse/jdt/internal/compiler/util/Util$Displayable;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.Object[] objects
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  objects  [Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      objects  

  public static java.lang.String toString(java.lang.Object[], org.eclipse.jdt.internal.compiler.util.Util$Displayable);
    descriptor: ([Ljava/lang/Object;Lorg/eclipse/jdt/internal/compiler/util/Util$Displayable;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.lang.Object[] objects
        start local 1 // org.eclipse.jdt.internal.compiler.util.Util$Displayable renderer
         0: .line 1021
            aload 0 /* objects */
            ifnonnull 1
            ldc ""
            areturn
         1: .line 1022
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuffer
            dup
            bipush 10
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 2 /* buffer */
        start local 2 // java.lang.StringBuffer buffer
         2: .line 1023
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 7
         4: .line 1024
      StackMap locals: java.lang.StringBuffer int
      StackMap stack:
            iload 3 /* i */
            ifle 5
            aload 2 /* buffer */
            ldc ", "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         5: .line 1025
      StackMap locals:
      StackMap stack:
            aload 2 /* buffer */
            aload 1 /* renderer */
            aload 0 /* objects */
            iload 3 /* i */
            aaload
            invokeinterface org.eclipse.jdt.internal.compiler.util.Util$Displayable.displayString:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         6: .line 1023
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 0 /* objects */
            arraylength
            if_icmplt 4
        end local 3 // int i
         8: .line 1027
            aload 2 /* buffer */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuffer buffer
        end local 1 // org.eclipse.jdt.internal.compiler.util.Util$Displayable renderer
        end local 0 // java.lang.Object[] objects
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0   objects  [Ljava/lang/Object;
            0    9     1  renderer  Lorg/eclipse/jdt/internal/compiler/util/Util$Displayable;
            2    9     2    buffer  Ljava/lang/StringBuffer;
            3    8     3         i  I
    MethodParameters:
          Name  Flags
      objects   
      renderer  

  public static void writeToDisk(boolean, java.lang.String, java.lang.String, org.eclipse.jdt.internal.compiler.ClassFile);
    descriptor: (ZLjava/lang/String;Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/ClassFile;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // boolean generatePackagesStructure
        start local 1 // java.lang.String outputPath
        start local 2 // java.lang.String relativeFileName
        start local 3 // org.eclipse.jdt.internal.compiler.ClassFile classFile
         0: .line 1042
            iload 0 /* generatePackagesStructure */
            aload 1 /* outputPath */
            aload 2 /* relativeFileName */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.getFileOutputStream:(ZLjava/lang/String;Ljava/lang/String;)Ljava/io/FileOutputStream;
            astore 4 /* file */
        start local 4 // java.io.FileOutputStream file
         1: .line 1060
            new java.io.BufferedOutputStream
            dup
            aload 4 /* file */
            sipush 1024
            invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;I)V
            astore 5 /* output */
        start local 5 // java.io.BufferedOutputStream output
         2: .line 1064
            aload 5 /* output */
            aload 3 /* classFile */
            getfield org.eclipse.jdt.internal.compiler.ClassFile.header:[B
            iconst_0
            aload 3 /* classFile */
            getfield org.eclipse.jdt.internal.compiler.ClassFile.headerOffset:I
            invokevirtual java.io.BufferedOutputStream.write:([BII)V
         3: .line 1065
            aload 5 /* output */
            aload 3 /* classFile */
            getfield org.eclipse.jdt.internal.compiler.ClassFile.contents:[B
            iconst_0
            aload 3 /* classFile */
            getfield org.eclipse.jdt.internal.compiler.ClassFile.contentsOffset:I
            invokevirtual java.io.BufferedOutputStream.write:([BII)V
         4: .line 1066
            aload 5 /* output */
            invokevirtual java.io.BufferedOutputStream.flush:()V
         5: .line 1067
            goto 11
      StackMap locals: int java.lang.String java.lang.String org.eclipse.jdt.internal.compiler.ClassFile java.io.FileOutputStream java.io.BufferedOutputStream
      StackMap stack: java.io.IOException
         6: astore 6 /* e */
        start local 6 // java.io.IOException e
         7: .line 1068
            aload 6 /* e */
            athrow
        end local 6 // java.io.IOException e
         8: .line 1069
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
         9: .line 1070
            aload 5 /* output */
            invokevirtual java.io.BufferedOutputStream.close:()V
        10: .line 1071
            aload 7
            athrow
        11: .line 1070
      StackMap locals:
      StackMap stack:
            aload 5 /* output */
            invokevirtual java.io.BufferedOutputStream.close:()V
        12: .line 1072
            return
        end local 5 // java.io.BufferedOutputStream output
        end local 4 // java.io.FileOutputStream file
        end local 3 // org.eclipse.jdt.internal.compiler.ClassFile classFile
        end local 2 // java.lang.String relativeFileName
        end local 1 // java.lang.String outputPath
        end local 0 // boolean generatePackagesStructure
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   13     0  generatePackagesStructure  Z
            0   13     1                 outputPath  Ljava/lang/String;
            0   13     2           relativeFileName  Ljava/lang/String;
            0   13     3                  classFile  Lorg/eclipse/jdt/internal/compiler/ClassFile;
            1   13     4                       file  Ljava/io/FileOutputStream;
            2   13     5                     output  Ljava/io/BufferedOutputStream;
            7    8     6                          e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.io.IOException
           2     8       8  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                           Name  Flags
      generatePackagesStructure  
      outputPath                 
      relativeFileName           
      classFile                  

  public static void recordNestedType(org.eclipse.jdt.internal.compiler.ClassFile, org.eclipse.jdt.internal.compiler.lookup.TypeBinding);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ClassFile;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=15, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.ClassFile classFile
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeBinding
         0: .line 1075
            aload 0 /* classFile */
            getfield org.eclipse.jdt.internal.compiler.ClassFile.visitedTypes:Ljava/util/Set;
            ifnonnull 3
         1: .line 1076
            aload 0 /* classFile */
            new java.util.HashSet
            dup
            iconst_3
            invokespecial java.util.HashSet.<init>:(I)V
            putfield org.eclipse.jdt.internal.compiler.ClassFile.visitedTypes:Ljava/util/Set;
         2: .line 1077
            goto 5
      StackMap locals:
      StackMap stack:
         3: aload 0 /* classFile */
            getfield org.eclipse.jdt.internal.compiler.ClassFile.visitedTypes:Ljava/util/Set;
            aload 1 /* typeBinding */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 1079
            return
         5: .line 1081
      StackMap locals:
      StackMap stack:
            aload 0 /* classFile */
            getfield org.eclipse.jdt.internal.compiler.ClassFile.visitedTypes:Ljava/util/Set;
            aload 1 /* typeBinding */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 1082
            aload 1 /* typeBinding */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isParameterizedType:()Z
            ifeq 44
         7: .line 1083
            aload 1 /* typeBinding */
            getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.tagBits:J
            ldc 2048
            land
            lconst_0
            lcmp
            ifeq 44
         8: .line 1084
            aload 1 /* typeBinding */
            checkcast org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding
            astore 2 /* parameterizedTypeBinding */
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding parameterizedTypeBinding
         9: .line 1085
            aload 2 /* parameterizedTypeBinding */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.genericType:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            astore 3 /* genericType */
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding genericType
        10: .line 1086
            aload 3 /* genericType */
            getfield org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.tagBits:J
            ldc 2048
            land
            lconst_0
            lcmp
            ifeq 12
        11: .line 1087
            aload 0 /* classFile */
            aload 3 /* genericType */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.recordNestedType:(Lorg/eclipse/jdt/internal/compiler/ClassFile;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
        12: .line 1089
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
      StackMap stack:
            aload 2 /* parameterizedTypeBinding */
            getfield org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.arguments:[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            astore 4 /* arguments */
        start local 4 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] arguments
        13: .line 1090
            aload 4 /* arguments */
            ifnull 71
        14: .line 1091
            iconst_0
            istore 5 /* j */
        start local 5 // int j
        15: aload 4 /* arguments */
            arraylength
            istore 6 /* max2 */
        start local 6 // int max2
        16: goto 42
        17: .line 1092
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] int int
      StackMap stack:
            aload 4 /* arguments */
            iload 5 /* j */
            aaload
            astore 7 /* argument */
        start local 7 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding argument
        18: .line 1093
            aload 7 /* argument */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isWildcard:()Z
            ifeq 39
        19: .line 1094
            aload 7 /* argument */
            checkcast org.eclipse.jdt.internal.compiler.lookup.WildcardBinding
            astore 8 /* wildcardBinding */
        start local 8 // org.eclipse.jdt.internal.compiler.lookup.WildcardBinding wildcardBinding
        20: .line 1095
            aload 8 /* wildcardBinding */
            getfield org.eclipse.jdt.internal.compiler.lookup.WildcardBinding.bound:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            astore 9 /* bound */
        start local 9 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding bound
        21: .line 1096
            aload 9 /* bound */
            ifnull 24
        22: .line 1097
            aload 9 /* bound */
            getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.tagBits:J
            ldc 2048
            land
            lconst_0
            lcmp
            ifeq 24
        23: .line 1098
            aload 0 /* classFile */
            aload 9 /* bound */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.recordNestedType:(Lorg/eclipse/jdt/internal/compiler/ClassFile;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
        24: .line 1100
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.lookup.WildcardBinding org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
            aload 8 /* wildcardBinding */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.WildcardBinding.superclass:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            astore 10 /* superclass */
        start local 10 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding superclass
        25: .line 1101
            aload 10 /* superclass */
            ifnull 28
        26: .line 1102
            aload 10 /* superclass */
            getfield org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.tagBits:J
            ldc 2048
            land
            lconst_0
            lcmp
            ifeq 28
        27: .line 1103
            aload 0 /* classFile */
            aload 10 /* superclass */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.recordNestedType:(Lorg/eclipse/jdt/internal/compiler/ClassFile;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
        28: .line 1105
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
      StackMap stack:
            aload 8 /* wildcardBinding */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.WildcardBinding.superInterfaces:()[Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            astore 11 /* superInterfaces */
        start local 11 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] superInterfaces
        29: .line 1106
            aload 11 /* superInterfaces */
            ifnull 41
        30: .line 1107
            iconst_0
            istore 12 /* k */
        start local 12 // int k
        31: aload 11 /* superInterfaces */
            arraylength
            istore 13 /* max3 */
        start local 13 // int max3
        32: goto 37
        33: .line 1108
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] int int
      StackMap stack:
            aload 11 /* superInterfaces */
            iload 12 /* k */
            aaload
            astore 14 /* superInterface */
        start local 14 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding superInterface
        34: .line 1109
            aload 14 /* superInterface */
            getfield org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.tagBits:J
            ldc 2048
            land
            lconst_0
            lcmp
            ifeq 36
        35: .line 1110
            aload 0 /* classFile */
            aload 14 /* superInterface */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.recordNestedType:(Lorg/eclipse/jdt/internal/compiler/ClassFile;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
        end local 14 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding superInterface
        36: .line 1107
      StackMap locals:
      StackMap stack:
            iinc 12 /* k */ 1
      StackMap locals:
      StackMap stack:
        37: iload 12 /* k */
            iload 13 /* max3 */
            if_icmplt 33
        end local 13 // int max3
        end local 12 // int k
        end local 11 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] superInterfaces
        end local 10 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding superclass
        end local 9 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding bound
        end local 8 // org.eclipse.jdt.internal.compiler.lookup.WildcardBinding wildcardBinding
        38: .line 1114
            goto 41
      StackMap locals: org.eclipse.jdt.internal.compiler.ClassFile org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] int int org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
        39: aload 7 /* argument */
            getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.tagBits:J
            ldc 2048
            land
            lconst_0
            lcmp
            ifeq 41
        40: .line 1115
            aload 0 /* classFile */
            aload 7 /* argument */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.recordNestedType:(Lorg/eclipse/jdt/internal/compiler/ClassFile;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
        end local 7 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding argument
        41: .line 1091
      StackMap locals:
      StackMap stack:
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
        42: iload 5 /* j */
            iload 6 /* max2 */
            if_icmplt 17
        end local 6 // int max2
        end local 5 // int j
        end local 4 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] arguments
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding genericType
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding parameterizedTypeBinding
        43: .line 1119
            goto 71
      StackMap locals: org.eclipse.jdt.internal.compiler.ClassFile org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
        44: aload 1 /* typeBinding */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isTypeVariable:()Z
            ifeq 61
        45: .line 1120
            aload 1 /* typeBinding */
            getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.tagBits:J
            ldc 2048
            land
            lconst_0
            lcmp
            ifeq 61
        46: .line 1121
            aload 1 /* typeBinding */
            checkcast org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding
            astore 2 /* typeVariableBinding */
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding typeVariableBinding
        47: .line 1122
            aload 2 /* typeVariableBinding */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding.upperBound:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            astore 3 /* upperBound */
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding upperBound
        48: .line 1123
            aload 3 /* upperBound */
            ifnull 50
            aload 3 /* upperBound */
            getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.tagBits:J
            ldc 2048
            land
            lconst_0
            lcmp
            ifeq 50
        49: .line 1124
            aload 0 /* classFile */
            aload 3 /* upperBound */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.recordNestedType:(Lorg/eclipse/jdt/internal/compiler/ClassFile;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
        50: .line 1126
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
            aload 2 /* typeVariableBinding */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding.otherUpperBounds:()[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            astore 4 /* upperBounds */
        start local 4 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] upperBounds
        51: .line 1127
            aload 4 /* upperBounds */
            ifnull 71
        52: .line 1128
            iconst_0
            istore 5 /* k */
        start local 5 // int k
        53: aload 4 /* upperBounds */
            arraylength
            istore 6 /* max3 */
        start local 6 // int max3
        54: goto 59
        55: .line 1129
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] int int
      StackMap stack:
            aload 4 /* upperBounds */
            iload 5 /* k */
            aaload
            astore 7 /* otherUpperBound */
        start local 7 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding otherUpperBound
        56: .line 1130
            aload 7 /* otherUpperBound */
            getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.tagBits:J
            ldc 2048
            land
            lconst_0
            lcmp
            ifeq 58
        57: .line 1131
            aload 0 /* classFile */
            aload 7 /* otherUpperBound */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.recordNestedType:(Lorg/eclipse/jdt/internal/compiler/ClassFile;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
        end local 7 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding otherUpperBound
        58: .line 1128
      StackMap locals:
      StackMap stack:
            iinc 5 /* k */ 1
      StackMap locals:
      StackMap stack:
        59: iload 5 /* k */
            iload 6 /* max3 */
            if_icmplt 55
        end local 6 // int max3
        end local 5 // int k
        end local 4 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] upperBounds
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding upperBound
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding typeVariableBinding
        60: .line 1135
            goto 71
      StackMap locals: org.eclipse.jdt.internal.compiler.ClassFile org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
        61: aload 1 /* typeBinding */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isNestedType:()Z
            ifeq 71
        62: .line 1136
            aload 1 /* typeBinding */
            astore 2 /* enclosingType */
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding enclosingType
        63: .line 1138
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
            aload 2 /* enclosingType */
            aload 0 /* classFile */
            getfield org.eclipse.jdt.internal.compiler.ClassFile.referenceBinding:Lorg/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding;
            getfield org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.scope:Lorg/eclipse/jdt/internal/compiler/lookup/ClassScope;
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.canBeSeenBy:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;)Z
            ifne 65
        64: .line 1139
            goto 67
        65: .line 1140
      StackMap locals:
      StackMap stack:
            aload 2 /* enclosingType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.enclosingType:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            astore 2 /* enclosingType */
        66: .line 1141
            aload 2 /* enclosingType */
            ifnonnull 63
        67: .line 1142
      StackMap locals:
      StackMap stack:
            aload 2 /* enclosingType */
            ifnull 68
            iconst_1
            goto 69
      StackMap locals:
      StackMap stack:
        68: iconst_0
      StackMap locals:
      StackMap stack: int
        69: istore 3 /* onBottomForBug445231 */
        start local 3 // boolean onBottomForBug445231
        70: .line 1143
            aload 0 /* classFile */
            aload 1 /* typeBinding */
            iload 3 /* onBottomForBug445231 */
            invokevirtual org.eclipse.jdt.internal.compiler.ClassFile.recordInnerClasses:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Z)V
        end local 3 // boolean onBottomForBug445231
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding enclosingType
        71: .line 1145
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeBinding
        end local 0 // org.eclipse.jdt.internal.compiler.ClassFile classFile
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   72     0                 classFile  Lorg/eclipse/jdt/internal/compiler/ClassFile;
            0   72     1               typeBinding  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            9   43     2  parameterizedTypeBinding  Lorg/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding;
           10   43     3               genericType  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
           13   43     4                 arguments  [Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           15   43     5                         j  I
           16   43     6                      max2  I
           18   41     7                  argument  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           20   38     8           wildcardBinding  Lorg/eclipse/jdt/internal/compiler/lookup/WildcardBinding;
           21   38     9                     bound  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           25   38    10                superclass  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
           29   38    11           superInterfaces  [Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
           31   38    12                         k  I
           32   38    13                      max3  I
           34   36    14            superInterface  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
           47   60     2       typeVariableBinding  Lorg/eclipse/jdt/internal/compiler/lookup/TypeVariableBinding;
           48   60     3                upperBound  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           51   60     4               upperBounds  [Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           53   60     5                         k  I
           54   60     6                      max3  I
           56   58     7           otherUpperBound  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           63   71     2             enclosingType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           70   71     3      onBottomForBug445231  Z
    MethodParameters:
             Name  Flags
      classFile    
      typeBinding  

  public static java.io.File getJavaHome();
    descriptor: ()Ljava/io/File;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=0
         0: .line 1150
            ldc "java.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* javaHome */
        start local 0 // java.lang.String javaHome
         1: .line 1151
            aload 0 /* javaHome */
            ifnull 5
         2: .line 1152
            new java.io.File
            dup
            aload 0 /* javaHome */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 1 /* javaHomeFile */
        start local 1 // java.io.File javaHomeFile
         3: .line 1153
            aload 1 /* javaHomeFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 5
         4: .line 1154
            aload 1 /* javaHomeFile */
            areturn
        end local 1 // java.io.File javaHomeFile
         5: .line 1157
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.lang.String javaHome
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            1    6     0      javaHome  Ljava/lang/String;
            3    5     1  javaHomeFile  Ljava/io/File;

  public static void collectVMBootclasspath(java.util.List<org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath>, java.io.File);
    descriptor: (Ljava/util/List;Ljava/io/File;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.List bootclasspaths
        start local 1 // java.io.File javaHome
         0: .line 1161
            aload 1 /* javaHome */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.collectPlatformLibraries:(Ljava/io/File;)Ljava/util/List;
            astore 2 /* classpaths */
        start local 2 // java.util.List classpaths
         1: .line 1162
            aload 0 /* bootclasspaths */
            aload 2 /* classpaths */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 1163
            return
        end local 2 // java.util.List classpaths
        end local 1 // java.io.File javaHome
        end local 0 // java.util.List bootclasspaths
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0  bootclasspaths  Ljava/util/List<Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;
            0    3     1        javaHome  Ljava/io/File;
            1    3     2      classpaths  Ljava/util/List<Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;
    Signature: (Ljava/util/List<Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;Ljava/io/File;)V
    MethodParameters:
                Name  Flags
      bootclasspaths  
      javaHome        

  public static void collectRunningVMBootclasspath(java.util.List<org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.List bootclasspaths
         0: .line 1165
            aload 0 /* bootclasspaths */
            aconst_null
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.collectVMBootclasspath:(Ljava/util/List;Ljava/io/File;)V
         1: .line 1166
            return
        end local 0 // java.util.List bootclasspaths
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0  bootclasspaths  Ljava/util/List<Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;
    Signature: (Ljava/util/List<Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;)V
    MethodParameters:
                Name  Flags
      bootclasspaths  

  public static long getJDKLevel(java.io.File);
    descriptor: (Ljava/io/File;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.io.File javaHome
         0: .line 1168
            ldc "java.version"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* version */
        start local 1 // java.lang.String version
         1: .line 1169
            aload 1 /* version */
            invokestatic org.eclipse.jdt.internal.compiler.impl.CompilerOptions.versionToJdkLevel:(Ljava/lang/String;)J
            lreturn
        end local 1 // java.lang.String version
        end local 0 // java.io.File javaHome
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  javaHome  Ljava/io/File;
            1    2     1   version  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      javaHome  

  public static java.util.List<org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath> collectFilesNames();
    descriptor: ()Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 1172
            aconst_null
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.collectPlatformLibraries:(Ljava/io/File;)Ljava/util/List;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/List<Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;

  public static java.util.List<org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath> collectPlatformLibraries(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=13, args_size=1
        start local 0 // java.io.File javaHome
         0: .line 1179
            aconst_null
            astore 1 /* javaversion */
        start local 1 // java.lang.String javaversion
         1: .line 1180
            ldc "java.version"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* javaversion */
         2: .line 1182
            aload 1 /* javaversion */
            ifnull 4
            aload 1 /* javaversion */
            ldc "1.1.8"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 1183
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
         4: .line 1185
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* javaversion */
            invokestatic org.eclipse.jdt.internal.compiler.impl.CompilerOptions.versionToJdkLevel:(Ljava/lang/String;)J
            lstore 2 /* jdkLevel */
        start local 2 // long jdkLevel
         5: .line 1186
            lload 2 /* jdkLevel */
            ldc 3473408
            lcmp
            iflt 12
         6: .line 1187
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* filePaths */
        start local 4 // java.util.List filePaths
         7: .line 1188
            aload 0 /* javaHome */
            ifnonnull 9
         8: .line 1189
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.getJavaHome:()Ljava/io/File;
            astore 0 /* javaHome */
         9: .line 1191
      StackMap locals: long java.util.List
      StackMap stack:
            aload 0 /* javaHome */
            ifnull 12
        10: .line 1192
            aload 4 /* filePaths */
            aload 0 /* javaHome */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aconst_null
            aconst_null
            aconst_null
            invokestatic org.eclipse.jdt.internal.compiler.batch.FileSystem.getJrtClasspath:(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/util/Map;)Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 1193
            aload 4 /* filePaths */
            areturn
        end local 4 // java.util.List filePaths
        12: .line 1201
      StackMap locals:
      StackMap stack:
            ldc "sun.boot.class.path"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* bootclasspathProperty */
        start local 4 // java.lang.String bootclasspathProperty
        13: .line 1202
            aload 4 /* bootclasspathProperty */
            ifnull 14
            aload 4 /* bootclasspathProperty */
            invokevirtual java.lang.String.length:()I
            ifne 17
        14: .line 1204
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "vm.boot.class.path"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* bootclasspathProperty */
        15: .line 1205
            aload 4 /* bootclasspathProperty */
            ifnull 16
            aload 4 /* bootclasspathProperty */
            invokevirtual java.lang.String.length:()I
            ifne 17
        16: .line 1207
      StackMap locals:
      StackMap stack:
            ldc "org.apache.harmony.boot.class.path"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* bootclasspathProperty */
        17: .line 1210
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 5 /* filePaths */
        start local 5 // java.util.Set filePaths
        18: .line 1211
            aload 4 /* bootclasspathProperty */
            ifnull 24
            aload 4 /* bootclasspathProperty */
            invokevirtual java.lang.String.length:()I
            ifeq 24
        19: .line 1212
            new java.util.StringTokenizer
            dup
            aload 4 /* bootclasspathProperty */
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 6 /* tokenizer */
        start local 6 // java.util.StringTokenizer tokenizer
        20: .line 1213
            goto 22
        21: .line 1214
      StackMap locals: java.util.Set java.util.StringTokenizer
      StackMap stack:
            aload 5 /* filePaths */
            aload 6 /* tokenizer */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        22: .line 1213
      StackMap locals:
      StackMap stack:
            aload 6 /* tokenizer */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 21
        end local 6 // java.util.StringTokenizer tokenizer
        23: .line 1216
            goto 51
        24: .line 1218
      StackMap locals:
      StackMap stack:
            aload 0 /* javaHome */
            ifnonnull 26
        25: .line 1219
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.getJavaHome:()Ljava/io/File;
            astore 0 /* javaHome */
        26: .line 1221
      StackMap locals:
      StackMap stack:
            aload 0 /* javaHome */
            ifnull 51
        27: .line 1222
            aconst_null
            astore 6 /* directoriesToCheck */
        start local 6 // java.io.File[] directoriesToCheck
        28: .line 1223
            ldc "os.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ldc "Mac"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 33
        29: .line 1224
            iconst_1
            anewarray java.io.File
            dup
            iconst_0
        30: .line 1225
            new java.io.File
            dup
            aload 0 /* javaHome */
            ldc "../Classes"
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            aastore
        31: .line 1224
            astore 6 /* directoriesToCheck */
        32: .line 1227
            goto 36
        33: .line 1229
      StackMap locals: java.io.File[]
      StackMap stack:
            iconst_1
            anewarray java.io.File
            dup
            iconst_0
        34: .line 1230
            new java.io.File
            dup
            aload 0 /* javaHome */
            ldc "lib"
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            aastore
        35: .line 1229
            astore 6 /* directoriesToCheck */
        36: .line 1233
      StackMap locals:
      StackMap stack:
            aload 6 /* directoriesToCheck */
            invokestatic org.eclipse.jdt.internal.compiler.batch.Main.getLibrariesFiles:([Ljava/io/File;)[[Ljava/io/File;
            astore 7 /* systemLibrariesJars */
        start local 7 // java.io.File[][] systemLibrariesJars
        37: .line 1234
            aload 7 /* systemLibrariesJars */
            ifnull 51
        38: .line 1235
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        39: aload 7 /* systemLibrariesJars */
            arraylength
            istore 9 /* max */
        start local 9 // int max
        40: goto 50
        41: .line 1236
      StackMap locals: java.io.File[][] int int
      StackMap stack:
            aload 7 /* systemLibrariesJars */
            iload 8 /* i */
            aaload
            astore 10 /* current */
        start local 10 // java.io.File[] current
        42: .line 1237
            aload 10 /* current */
            ifnull 49
        43: .line 1238
            iconst_0
            istore 11 /* j */
        start local 11 // int j
        44: aload 10 /* current */
            arraylength
            istore 12 /* max2 */
        start local 12 // int max2
        45: goto 48
        46: .line 1239
      StackMap locals: java.io.File[] int int
      StackMap stack:
            aload 5 /* filePaths */
            aload 10 /* current */
            iload 11 /* j */
            aaload
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        47: .line 1238
            iinc 11 /* j */ 1
      StackMap locals:
      StackMap stack:
        48: iload 11 /* j */
            iload 12 /* max2 */
            if_icmplt 46
        end local 12 // int max2
        end local 11 // int j
        end local 10 // java.io.File[] current
        49: .line 1235
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        50: iload 8 /* i */
            iload 9 /* max */
            if_icmplt 41
        end local 9 // int max
        end local 8 // int i
        end local 7 // java.io.File[][] systemLibrariesJars
        end local 6 // java.io.File[] directoriesToCheck
        51: .line 1246
      StackMap locals: java.io.File java.lang.String long java.lang.String java.util.Set
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* classpaths */
        start local 6 // java.util.List classpaths
        52: .line 1247
            aload 5 /* filePaths */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 57
      StackMap locals: java.io.File java.lang.String long java.lang.String java.util.Set java.util.List top java.util.Iterator
      StackMap stack:
        53: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* filePath */
        start local 7 // java.lang.String filePath
        54: .line 1248
            aload 7 /* filePath */
            aconst_null
            aconst_null
            aconst_null
            aconst_null
            invokestatic org.eclipse.jdt.internal.compiler.batch.FileSystem.getClasspath:(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/util/Map;Ljava/lang/String;)Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            astore 9 /* currentClasspath */
        start local 9 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath currentClasspath
        55: .line 1249
            aload 9 /* currentClasspath */
            ifnull 57
        56: .line 1250
            aload 6 /* classpaths */
            aload 9 /* currentClasspath */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath currentClasspath
        end local 7 // java.lang.String filePath
        57: .line 1247
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 53
        58: .line 1253
            aload 6 /* classpaths */
            areturn
        end local 6 // java.util.List classpaths
        end local 5 // java.util.Set filePaths
        end local 4 // java.lang.String bootclasspathProperty
        end local 2 // long jdkLevel
        end local 1 // java.lang.String javaversion
        end local 0 // java.io.File javaHome
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   59     0               javaHome  Ljava/io/File;
            1   59     1            javaversion  Ljava/lang/String;
            5   59     2               jdkLevel  J
            7   12     4              filePaths  Ljava/util/List<Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;
           13   59     4  bootclasspathProperty  Ljava/lang/String;
           18   59     5              filePaths  Ljava/util/Set<Ljava/lang/String;>;
           20   23     6              tokenizer  Ljava/util/StringTokenizer;
           28   51     6     directoriesToCheck  [Ljava/io/File;
           37   51     7    systemLibrariesJars  [[Ljava/io/File;
           39   51     8                      i  I
           40   51     9                    max  I
           42   49    10                current  [Ljava/io/File;
           44   49    11                      j  I
           45   49    12                   max2  I
           52   59     6             classpaths  Ljava/util/List<Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;
           54   57     7               filePath  Ljava/lang/String;
           55   57     9       currentClasspath  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
    Signature: (Ljava/io/File;)Ljava/util/List<Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;
    MethodParameters:
          Name  Flags
      javaHome  

  public static int getParameterCount(char[]);
    descriptor: ([C)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // char[] methodSignature
         0: .line 1257
            iconst_0
            istore 1 /* count */
        start local 1 // int count
         1: .line 1258
            bipush 40
            aload 0 /* methodSignature */
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.indexOf:(C[C)I
            istore 2 /* i */
        start local 2 // int i
         2: .line 1259
            iload 2 /* i */
            ifge 4
         3: .line 1260
            new java.lang.IllegalArgumentException
            dup
            aload 0 /* methodSignature */
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1262
      StackMap locals: int int
      StackMap stack:
            iinc 2 /* i */ 1
         5: .line 1265
      StackMap locals:
      StackMap stack:
            aload 0 /* methodSignature */
            iload 2 /* i */
            caload
            bipush 41
            if_icmpne 8
         6: .line 1266
            iload 1 /* count */
         7: ireturn
         8: .line 1268
      StackMap locals:
      StackMap stack:
            aload 0 /* methodSignature */
            iload 2 /* i */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanTypeSignature:([CI)I
            istore 3 /* e */
        start local 3 // int e
         9: .line 1269
            iload 3 /* e */
            ifge 11
        10: .line 1270
            new java.lang.IllegalArgumentException
            dup
            aload 0 /* methodSignature */
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 1272
      StackMap locals: int
      StackMap stack:
            iload 3 /* e */
            iconst_1
            iadd
            istore 2 /* i */
        12: .line 1274
            iinc 1 /* count */ 1
        end local 3 // int e
        13: .line 1264
            goto 5
        end local 2 // int i
        end local 1 // int count
        14: .line 1276
      StackMap locals: char[]
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
            astore 1 /* e */
        start local 1 // java.lang.ArrayIndexOutOfBoundsException e
        15: .line 1277
            new java.lang.IllegalArgumentException
            dup
            aload 0 /* methodSignature */
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            aload 1 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.ArrayIndexOutOfBoundsException e
        end local 0 // char[] methodSignature
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0  methodSignature  [C
            1   14     1            count  I
            2   14     2                i  I
            9   13     3                e  I
           15   16     1                e  Ljava/lang/ArrayIndexOutOfBoundsException;
      Exception table:
        from    to  target  type
           0     7      14  Class java.lang.ArrayIndexOutOfBoundsException
           8    14      14  Class java.lang.ArrayIndexOutOfBoundsException
    MethodParameters:
                 Name  Flags
      methodSignature  

  public static int scanTypeSignature(char[], int);
    descriptor: ([CI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // char[] string
        start local 1 // int start
         0: .line 1299
            iload 1 /* start */
            aload 0 /* string */
            arraylength
            if_icmplt 2
         1: .line 1300
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         2: .line 1302
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            caload
            istore 2 /* c */
        start local 2 // char c
         3: .line 1303
            iload 2 /* c */
            lookupswitch { // 17
                   33: 8
                   42: 9
                   43: 9
                   45: 9
                   66: 7
                   67: 7
                   68: 7
                   70: 7
                   73: 7
                   74: 7
                   76: 5
                   81: 5
                   83: 7
                   84: 6
                   86: 7
                   90: 7
                   91: 4
              default: 10
          }
         4: .line 1305
      StackMap locals: int
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanArrayTypeSignature:([CI)I
            ireturn
         5: .line 1308
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanClassTypeSignature:([CI)I
            ireturn
         6: .line 1310
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanTypeVariableSignature:([CI)I
            ireturn
         7: .line 1320
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanBaseTypeSignature:([CI)I
            ireturn
         8: .line 1322
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanCaptureTypeSignature:([CI)I
            ireturn
         9: .line 1326
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanTypeBoundSignature:([CI)I
            ireturn
        10: .line 1328
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
        end local 2 // char c
        end local 1 // int start
        end local 0 // char[] string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0  string  [C
            0   11     1   start  I
            3   11     2       c  C
    MethodParameters:
        Name  Flags
      string  
      start   

  public static int scanBaseTypeSignature(char[], int);
    descriptor: ([CI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // char[] string
        start local 1 // int start
         0: .line 1351
            iload 1 /* start */
            aload 0 /* string */
            arraylength
            if_icmplt 2
         1: .line 1352
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         2: .line 1354
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            caload
            istore 2 /* c */
        start local 2 // char c
         3: .line 1355
            ldc "BCDFIJSVZ"
            iload 2 /* c */
            invokevirtual java.lang.String.indexOf:(I)I
            iflt 5
         4: .line 1356
            iload 1 /* start */
            ireturn
         5: .line 1358
      StackMap locals: int
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
        end local 2 // char c
        end local 1 // int start
        end local 0 // char[] string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  string  [C
            0    6     1   start  I
            3    6     2       c  C
    MethodParameters:
        Name  Flags
      string  
      start   

  public static int scanArrayTypeSignature(char[], int);
    descriptor: ([CI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // char[] string
        start local 1 // int start
         0: .line 1376
            aload 0 /* string */
            arraylength
            istore 2 /* length */
        start local 2 // int length
         1: .line 1378
            iload 1 /* start */
            iload 2 /* length */
            iconst_1
            isub
            if_icmplt 3
         2: .line 1379
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         3: .line 1381
      StackMap locals: int
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            caload
            istore 3 /* c */
        start local 3 // char c
         4: .line 1382
            iload 3 /* c */
            bipush 91
            if_icmpeq 6
         5: .line 1383
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         6: .line 1386
      StackMap locals: int
      StackMap stack:
            aload 0 /* string */
            iinc 1 /* start */ 1
            iload 1 /* start */
            caload
            istore 3 /* c */
         7: .line 1387
            goto 11
         8: .line 1389
      StackMap locals:
      StackMap stack:
            iload 1 /* start */
            iload 2 /* length */
            iconst_1
            isub
            if_icmplt 10
         9: .line 1390
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
        10: .line 1392
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iinc 1 /* start */ 1
            iload 1 /* start */
            caload
            istore 3 /* c */
        11: .line 1387
      StackMap locals:
      StackMap stack:
            iload 3 /* c */
            bipush 91
            if_icmpeq 8
        12: .line 1394
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanTypeSignature:([CI)I
            ireturn
        end local 3 // char c
        end local 2 // int length
        end local 1 // int start
        end local 0 // char[] string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0  string  [C
            0   13     1   start  I
            1   13     2  length  I
            4   13     3       c  C
    MethodParameters:
        Name  Flags
      string  
      start   

  public static int scanCaptureTypeSignature(char[], int);
    descriptor: ([CI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // char[] string
        start local 1 // int start
         0: .line 1412
            iload 1 /* start */
            aload 0 /* string */
            arraylength
            iconst_1
            isub
            if_icmplt 2
         1: .line 1413
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         2: .line 1415
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            caload
            istore 2 /* c */
        start local 2 // char c
         3: .line 1416
            iload 2 /* c */
            bipush 33
            if_icmpeq 5
         4: .line 1417
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         5: .line 1419
      StackMap locals: int
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            iconst_1
            iadd
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanTypeBoundSignature:([CI)I
            ireturn
        end local 2 // char c
        end local 1 // int start
        end local 0 // char[] string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  string  [C
            0    6     1   start  I
            3    6     2       c  C
    MethodParameters:
        Name  Flags
      string  
      start   

  public static int scanTypeVariableSignature(char[], int);
    descriptor: ([CI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // char[] string
        start local 1 // int start
         0: .line 1437
            iload 1 /* start */
            aload 0 /* string */
            arraylength
            iconst_2
            isub
            if_icmplt 2
         1: .line 1438
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         2: .line 1441
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            caload
            istore 2 /* c */
        start local 2 // char c
         3: .line 1442
            iload 2 /* c */
            bipush 84
            if_icmpeq 5
         4: .line 1443
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         5: .line 1445
      StackMap locals: int
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            iconst_1
            iadd
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanIdentifier:([CI)I
            istore 3 /* id */
        start local 3 // int id
         6: .line 1446
            aload 0 /* string */
            iload 3 /* id */
            iconst_1
            iadd
            caload
            istore 2 /* c */
         7: .line 1447
            iload 2 /* c */
            bipush 59
            if_icmpne 9
         8: .line 1448
            iload 3 /* id */
            iconst_1
            iadd
            ireturn
         9: .line 1450
      StackMap locals: int
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
        end local 3 // int id
        end local 2 // char c
        end local 1 // int start
        end local 0 // char[] string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0  string  [C
            0   10     1   start  I
            3   10     2       c  C
            6   10     3      id  I
    MethodParameters:
        Name  Flags
      string  
      start   

  public static int scanIdentifier(char[], int);
    descriptor: ([CI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // char[] string
        start local 1 // int start
         0: .line 1466
            iload 1 /* start */
            aload 0 /* string */
            arraylength
            if_icmplt 2
         1: .line 1467
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         2: .line 1469
      StackMap locals:
      StackMap stack:
            iload 1 /* start */
            istore 2 /* p */
        start local 2 // int p
         3: .line 1471
      StackMap locals: int
      StackMap stack:
            aload 0 /* string */
            iload 2 /* p */
            caload
            istore 3 /* c */
        start local 3 // char c
         4: .line 1472
            iload 3 /* c */
            bipush 60
            if_icmpeq 5
            iload 3 /* c */
            bipush 62
            if_icmpeq 5
            iload 3 /* c */
            bipush 58
            if_icmpeq 5
            iload 3 /* c */
            bipush 59
            if_icmpeq 5
            iload 3 /* c */
            bipush 46
            if_icmpeq 5
            iload 3 /* c */
            bipush 47
            if_icmpne 6
         5: .line 1473
      StackMap locals: int
      StackMap stack:
            iload 2 /* p */
            iconst_1
            isub
            ireturn
         6: .line 1475
      StackMap locals:
      StackMap stack:
            iinc 2 /* p */ 1
         7: .line 1476
            iload 2 /* p */
            aload 0 /* string */
            arraylength
            if_icmpne 3
         8: .line 1477
            iload 2 /* p */
            iconst_1
            isub
            ireturn
        end local 3 // char c
        end local 2 // int p
        end local 1 // int start
        end local 0 // char[] string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0  string  [C
            0    9     1   start  I
            3    9     2       p  I
            4    9     3       c  C
    MethodParameters:
        Name  Flags
      string  
      start   

  public static int scanClassTypeSignature(char[], int);
    descriptor: ([CI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // char[] string
        start local 1 // int start
         0: .line 1502
            iload 1 /* start */
            aload 0 /* string */
            arraylength
            iconst_2
            isub
            if_icmplt 2
         1: .line 1503
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         2: .line 1506
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            caload
            istore 2 /* c */
        start local 2 // char c
         3: .line 1507
            iload 2 /* c */
            bipush 76
            if_icmpeq 5
            iload 2 /* c */
            bipush 81
            if_icmpeq 5
         4: .line 1508
            iconst_m1
            ireturn
         5: .line 1510
      StackMap locals: int
      StackMap stack:
            iload 1 /* start */
            iconst_1
            iadd
            istore 3 /* p */
        start local 3 // int p
         6: .line 1512
      StackMap locals: int
      StackMap stack:
            iload 3 /* p */
            aload 0 /* string */
            arraylength
            if_icmplt 8
         7: .line 1513
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         8: .line 1515
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 3 /* p */
            caload
            istore 2 /* c */
         9: .line 1516
            iload 2 /* c */
            bipush 59
            if_icmpne 11
        10: .line 1518
            iload 3 /* p */
            ireturn
        11: .line 1519
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            bipush 60
            if_icmpne 15
        12: .line 1520
            aload 0 /* string */
            iload 3 /* p */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanTypeArgumentSignatures:([CI)I
            istore 4 /* e */
        start local 4 // int e
        13: .line 1521
            iload 4 /* e */
            istore 3 /* p */
        end local 4 // int e
        14: .line 1522
            goto 18
      StackMap locals:
      StackMap stack:
        15: iload 2 /* c */
            bipush 46
            if_icmpeq 16
            iload 2 /* c */
            bipush 47
            if_icmpne 18
        16: .line 1523
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 3 /* p */
            iconst_1
            iadd
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanIdentifier:([CI)I
            istore 4 /* id */
        start local 4 // int id
        17: .line 1524
            iload 4 /* id */
            istore 3 /* p */
        end local 4 // int id
        18: .line 1526
      StackMap locals:
      StackMap stack:
            iinc 3 /* p */ 1
        19: .line 1511
            goto 6
        end local 3 // int p
        end local 2 // char c
        end local 1 // int start
        end local 0 // char[] string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   20     0  string  [C
            0   20     1   start  I
            3   20     2       c  C
            6   20     3       p  I
           13   14     4       e  I
           17   18     4      id  I
    MethodParameters:
        Name  Flags
      string  
      start   

  public static int scanTypeBoundSignature(char[], int);
    descriptor: ([CI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // char[] string
        start local 1 // int start
         0: .line 1546
            iload 1 /* start */
            aload 0 /* string */
            arraylength
            if_icmplt 2
         1: .line 1547
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         2: .line 1549
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            caload
            istore 2 /* c */
        start local 2 // char c
         3: .line 1550
            iload 2 /* c */
            tableswitch { // 42 - 45
                   42: 4
                   43: 5
                   44: 6
                   45: 5
              default: 6
          }
         4: .line 1552
      StackMap locals: int
      StackMap stack:
            iload 1 /* start */
            ireturn
         5: .line 1555
      StackMap locals:
      StackMap stack:
            goto 7
         6: .line 1558
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         7: .line 1560
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iinc 1 /* start */ 1
            iload 1 /* start */
            caload
            istore 2 /* c */
         8: .line 1561
            iload 2 /* c */
            bipush 42
            if_icmpeq 10
            iload 1 /* start */
            aload 0 /* string */
            arraylength
            iconst_1
            isub
            if_icmplt 10
         9: .line 1562
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        10: .line 1564
      StackMap locals:
      StackMap stack:
            iload 2 /* c */
            lookupswitch { // 8
                   33: 11
                   42: 16
                   43: 12
                   45: 12
                   76: 13
                   81: 13
                   84: 14
                   91: 15
              default: 17
          }
        11: .line 1566
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanCaptureTypeSignature:([CI)I
            ireturn
        12: .line 1569
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanTypeBoundSignature:([CI)I
            ireturn
        13: .line 1572
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanClassTypeSignature:([CI)I
            ireturn
        14: .line 1574
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanTypeVariableSignature:([CI)I
            ireturn
        15: .line 1576
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanArrayTypeSignature:([CI)I
            ireturn
        16: .line 1578
      StackMap locals:
      StackMap stack:
            iload 1 /* start */
            ireturn
        17: .line 1580
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
        end local 2 // char c
        end local 1 // int start
        end local 0 // char[] string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0  string  [C
            0   18     1   start  I
            3   18     2       c  C
    MethodParameters:
        Name  Flags
      string  
      start   

  public static int scanTypeArgumentSignatures(char[], int);
    descriptor: ([CI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // char[] string
        start local 1 // int start
         0: .line 1603
            iload 1 /* start */
            aload 0 /* string */
            arraylength
            iconst_1
            isub
            if_icmplt 2
         1: .line 1604
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         2: .line 1606
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            caload
            istore 2 /* c */
        start local 2 // char c
         3: .line 1607
            iload 2 /* c */
            bipush 60
            if_icmpeq 5
         4: .line 1608
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         5: .line 1610
      StackMap locals: int
      StackMap stack:
            iload 1 /* start */
            iconst_1
            iadd
            istore 3 /* p */
        start local 3 // int p
         6: .line 1612
      StackMap locals: int
      StackMap stack:
            iload 3 /* p */
            aload 0 /* string */
            arraylength
            if_icmplt 8
         7: .line 1613
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         8: .line 1615
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 3 /* p */
            caload
            istore 2 /* c */
         9: .line 1616
            iload 2 /* c */
            bipush 62
            if_icmpne 11
        10: .line 1617
            iload 3 /* p */
            ireturn
        11: .line 1619
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 3 /* p */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanTypeArgumentSignature:([CI)I
            istore 4 /* e */
        start local 4 // int e
        12: .line 1620
            iload 4 /* e */
            iconst_1
            iadd
            istore 3 /* p */
        end local 4 // int e
        13: .line 1611
            goto 6
        end local 3 // int p
        end local 2 // char c
        end local 1 // int start
        end local 0 // char[] string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0  string  [C
            0   14     1   start  I
            3   14     2       c  C
            6   14     3       p  I
           12   13     4       e  I
    MethodParameters:
        Name  Flags
      string  
      start   

  public static int scanTypeArgumentSignature(char[], int);
    descriptor: ([CI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // char[] string
        start local 1 // int start
         0: .line 1644
            iload 1 /* start */
            aload 0 /* string */
            arraylength
            if_icmplt 2
         1: .line 1645
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.newIllegalArgumentException:([CI)Ljava/lang/IllegalArgumentException;
            athrow
         2: .line 1647
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            caload
            istore 2 /* c */
        start local 2 // char c
         3: .line 1648
            iload 2 /* c */
            tableswitch { // 42 - 45
                   42: 4
                   43: 5
                   44: 6
                   45: 5
              default: 6
          }
         4: .line 1650
      StackMap locals: int
      StackMap stack:
            iload 1 /* start */
            ireturn
         5: .line 1653
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanTypeBoundSignature:([CI)I
            ireturn
         6: .line 1655
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            iload 1 /* start */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.scanTypeSignature:([CI)I
            ireturn
        end local 2 // char c
        end local 1 // int start
        end local 0 // char[] string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0  string  [C
            0    7     1   start  I
            3    7     2       c  C
    MethodParameters:
        Name  Flags
      string  
      start   

  public static boolean effectivelyEqual(java.lang.Object[], java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.lang.Object[] one
        start local 1 // java.lang.Object[] two
         0: .line 1660
            aload 0 /* one */
            aload 1 /* two */
            if_acmpne 2
         1: .line 1661
            iconst_1
            ireturn
         2: .line 1662
      StackMap locals:
      StackMap stack:
            aload 0 /* one */
            ifnonnull 3
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* one */
            arraylength
      StackMap locals:
      StackMap stack: int
         4: istore 2 /* oneLength */
        start local 2 // int oneLength
         5: .line 1663
            aload 1 /* two */
            ifnonnull 6
            iconst_0
            goto 7
      StackMap locals: int
      StackMap stack:
         6: aload 1 /* two */
            arraylength
      StackMap locals:
      StackMap stack: int
         7: istore 3 /* twoLength */
        start local 3 // int twoLength
         8: .line 1664
            iload 2 /* oneLength */
            iload 3 /* twoLength */
            if_icmpeq 10
         9: .line 1665
            iconst_0
            ireturn
        10: .line 1666
      StackMap locals: int
      StackMap stack:
            iload 2 /* oneLength */
            ifne 12
        11: .line 1667
            iconst_1
            ireturn
        12: .line 1668
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        13: goto 17
        14: .line 1669
      StackMap locals: int
      StackMap stack:
            aload 0 /* one */
            iload 4 /* i */
            aaload
            aload 1 /* two */
            iload 4 /* i */
            aaload
            if_acmpeq 16
        15: .line 1670
            iconst_0
            ireturn
        16: .line 1668
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 4 /* i */
            aload 0 /* one */
            arraylength
            if_icmplt 14
        end local 4 // int i
        18: .line 1672
            iconst_1
            ireturn
        end local 3 // int twoLength
        end local 2 // int oneLength
        end local 1 // java.lang.Object[] two
        end local 0 // java.lang.Object[] one
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0        one  [Ljava/lang/Object;
            0   19     1        two  [Ljava/lang/Object;
            5   19     2  oneLength  I
            8   19     3  twoLength  I
           13   18     4          i  I
    MethodParameters:
      Name  Flags
      one   
      two   

  public static void appendEscapedChar(java.lang.StringBuffer, char, boolean);
    descriptor: (Ljava/lang/StringBuffer;CZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.StringBuffer buffer
        start local 1 // char c
        start local 2 // boolean stringLiteral
         0: .line 1676
            iload 1 /* c */
            lookupswitch { // 8
                    8: 1
                    9: 3
                   10: 5
                   12: 7
                   13: 9
                   34: 11
                   39: 16
                   92: 21
              default: 23
          }
         1: .line 1678
      StackMap locals:
      StackMap stack:
            aload 0 /* buffer */
            ldc "\\b"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         2: .line 1679
            goto 33
         3: .line 1681
      StackMap locals:
      StackMap stack:
            aload 0 /* buffer */
            ldc "\\t"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         4: .line 1682
            goto 33
         5: .line 1684
      StackMap locals:
      StackMap stack:
            aload 0 /* buffer */
            ldc "\\n"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         6: .line 1685
            goto 33
         7: .line 1687
      StackMap locals:
      StackMap stack:
            aload 0 /* buffer */
            ldc "\\f"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         8: .line 1688
            goto 33
         9: .line 1690
      StackMap locals:
      StackMap stack:
            aload 0 /* buffer */
            ldc "\\r"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        10: .line 1691
            goto 33
        11: .line 1693
      StackMap locals:
      StackMap stack:
            iload 2 /* stringLiteral */
            ifeq 14
        12: .line 1694
            aload 0 /* buffer */
            ldc "\\\""
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        13: .line 1695
            goto 33
        14: .line 1696
      StackMap locals:
      StackMap stack:
            aload 0 /* buffer */
            iload 1 /* c */
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        15: .line 1698
            goto 33
        16: .line 1700
      StackMap locals:
      StackMap stack:
            iload 2 /* stringLiteral */
            ifeq 19
        17: .line 1701
            aload 0 /* buffer */
            iload 1 /* c */
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        18: .line 1702
            goto 33
        19: .line 1703
      StackMap locals:
      StackMap stack:
            aload 0 /* buffer */
            ldc "\\'"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        20: .line 1705
            goto 33
        21: .line 1707
      StackMap locals:
      StackMap stack:
            aload 0 /* buffer */
            ldc "\\\\"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        22: .line 1708
            goto 33
        23: .line 1710
      StackMap locals:
      StackMap stack:
            iload 1 /* c */
            bipush 32
            if_icmplt 26
        24: .line 1711
            aload 0 /* buffer */
            iload 1 /* c */
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        25: .line 1712
            goto 33
      StackMap locals:
      StackMap stack:
        26: iload 1 /* c */
            bipush 16
            if_icmplt 29
        27: .line 1713
            aload 0 /* buffer */
            ldc "\\u00"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            iload 1 /* c */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        28: .line 1714
            goto 33
      StackMap locals:
      StackMap stack:
        29: iload 1 /* c */
            iflt 32
        30: .line 1715
            aload 0 /* buffer */
            ldc "\\u000"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            iload 1 /* c */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        31: .line 1716
            goto 33
        32: .line 1717
      StackMap locals:
      StackMap stack:
            aload 0 /* buffer */
            iload 1 /* c */
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        33: .line 1720
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean stringLiteral
        end local 1 // char c
        end local 0 // java.lang.StringBuffer buffer
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   34     0         buffer  Ljava/lang/StringBuffer;
            0   34     1              c  C
            0   34     2  stringLiteral  Z
    MethodParameters:
               Name  Flags
      buffer         
      c              
      stringLiteral  

  private static java.lang.IllegalArgumentException newIllegalArgumentException(char[], int);
    descriptor: ([CI)Ljava/lang/IllegalArgumentException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // char[] string
        start local 1 // int start
         0: .line 1723
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* string */
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\" at "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* start */
            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
            areturn
        end local 1 // int start
        end local 0 // char[] string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  string  [C
            0    1     1   start  I
    MethodParameters:
        Name  Flags
      string  
      start   
}
SourceFile: "Util.java"
NestMembers:
  org.eclipse.jdt.internal.compiler.util.Util$1  org.eclipse.jdt.internal.compiler.util.Util$Displayable
InnerClasses:
  public abstract Classpath = org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath of org.eclipse.jdt.internal.compiler.batch.FileSystem
  org.eclipse.jdt.internal.compiler.util.Util$1
  public abstract Displayable = org.eclipse.jdt.internal.compiler.util.Util$Displayable of org.eclipse.jdt.internal.compiler.util.Util