public abstract class com.oracle.objectfile.ObjectFile
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.objectfile.ObjectFile
  super_class: java.lang.Object
{
  private final int pageSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected final com.oracle.objectfile.ElementList elements;
    descriptor: Lcom/oracle/objectfile/ElementList;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final java.util.Map<com.oracle.objectfile.ObjectFile$Element, java.lang.String> nameForElement;
    descriptor: Ljava/util/Map;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Ljava/lang/String;>;

  private final java.util.TreeSet<com.oracle.objectfile.BuildDependency> allDependencies;
    descriptor: Ljava/util/TreeSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/TreeSet<Lcom/oracle/objectfile/BuildDependency;>;

  private final java.util.HashSet<com.oracle.objectfile.LayoutDecision> allDecisions;
    descriptor: Ljava/util/HashSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashSet<Lcom/oracle/objectfile/LayoutDecision;>;

  private final java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap> decisionsByElement;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;

  private final java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap> decisionsTaken;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;

  private final java.util.Map<com.oracle.objectfile.ObjectFile$Element, java.util.List<com.oracle.objectfile.BuildDependency>> dependenciesByDependingElement;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Ljava/util/List<Lcom/oracle/objectfile/BuildDependency;>;>;

  private final java.util.Map<com.oracle.objectfile.ObjectFile$Element, java.util.List<com.oracle.objectfile.BuildDependency>> dependenciesByDependedOnElement;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Ljava/util/List<Lcom/oracle/objectfile/BuildDependency;>;>;

  private org.graalvm.compiler.debug.DebugContext debugContext;
    descriptor: Lorg/graalvm/compiler/debug/DebugContext;
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$com$oracle$objectfile$ObjectFile$Format;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$com$oracle$objectfile$LayoutDecision$Kind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 66
            ldc Lcom/oracle/objectfile/ObjectFile;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public abstract com.oracle.objectfile.ObjectFile$Format getFormat();
    descriptor: ()Lcom/oracle/objectfile/ObjectFile$Format;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // int pageSize
         0: .line 125
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1195
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.createElementList:()Lcom/oracle/objectfile/ElementList;
            putfield com.oracle.objectfile.ObjectFile.elements:Lcom/oracle/objectfile/ElementList;
         2: .line 1213
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.objectfile.ObjectFile.nameForElement:Ljava/util/Map;
         3: .line 1256
            aload 0 /* this */
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            putfield com.oracle.objectfile.ObjectFile.allDependencies:Ljava/util/TreeSet;
         4: .line 1258
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.oracle.objectfile.ObjectFile.allDecisions:Ljava/util/HashSet;
         5: .line 1259
            aload 0 /* this */
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            putfield com.oracle.objectfile.ObjectFile.decisionsByElement:Ljava/util/Map;
         6: .line 1260
            aload 0 /* this */
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            putfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
         7: .line 1262
            aload 0 /* this */
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            putfield com.oracle.objectfile.ObjectFile.dependenciesByDependingElement:Ljava/util/Map;
         8: .line 1263
            aload 0 /* this */
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            putfield com.oracle.objectfile.ObjectFile.dependenciesByDependedOnElement:Ljava/util/Map;
         9: .line 1787
            aload 0 /* this */
            aconst_null
            putfield com.oracle.objectfile.ObjectFile.debugContext:Lorg/graalvm/compiler/debug/DebugContext;
        10: .line 126
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 11
            iload 1 /* pageSize */
            ifgt 11
            new java.lang.AssertionError
            dup
            ldc "invalid page size"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        11: .line 127
      StackMap locals: com.oracle.objectfile.ObjectFile int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* pageSize */
            putfield com.oracle.objectfile.ObjectFile.pageSize:I
        12: .line 128
            return
        end local 1 // int pageSize
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lcom/oracle/objectfile/ObjectFile;
            0   13     1  pageSize  I
    MethodParameters:
          Name  Flags
      pageSize  

  public static <E extends java.lang.Enum<E> extends com.oracle.objectfile.ObjectFile$ValueEnum> long flagSetAsLong(java.util.EnumSet<E>);
    descriptor: (Ljava/util/EnumSet;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.util.EnumSet flags
         0: .line 143
            lconst_0
            lstore 1 /* working */
        start local 1 // long working
         1: .line 144
            aload 0 /* flags */
            invokevirtual java.util.EnumSet.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: java.util.EnumSet long top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Enum
            astore 3 /* f */
        start local 3 // java.lang.Enum f
         3: .line 145
            lload 1 /* working */
            aload 3 /* f */
            checkcast com.oracle.objectfile.ObjectFile$ValueEnum
            invokeinterface com.oracle.objectfile.ObjectFile$ValueEnum.value:()J
            lor
            lstore 1 /* working */
        end local 3 // java.lang.Enum f
         4: .line 144
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 147
            lload 1 /* working */
            lreturn
        end local 1 // long working
        end local 0 // java.util.EnumSet flags
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0    flags  Ljava/util/EnumSet<TE;>;
            1    6     1  working  J
            3    4     3        f  TE;
    Signature: <E:Ljava/lang/Enum<TE;>;:Lcom/oracle/objectfile/ObjectFile$ValueEnum;>(Ljava/util/EnumSet<TE;>;)J
    MethodParameters:
       Name  Flags
      flags  

  public static <E extends java.lang.Enum<E> extends com.oracle.objectfile.ObjectFile$ValueEnum> java.util.EnumSet<E> flagSetFromLong(long, java.lang.Class<E>);
    descriptor: (JLjava/lang/Class;)Ljava/util/EnumSet;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // long flags
        start local 2 // java.lang.Class clazz
         0: .line 158
            aload 2 /* clazz */
            invokestatic java.util.EnumSet.noneOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
            astore 3 /* working */
        start local 3 // java.util.EnumSet working
         1: .line 159
            aload 2 /* clazz */
            invokestatic java.util.EnumSet.allOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
            invokevirtual java.util.EnumSet.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: long java.lang.Class java.util.EnumSet top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Enum
            astore 4 /* f */
        start local 4 // java.lang.Enum f
         3: .line 160
            lload 0 /* flags */
            aload 4 /* f */
            checkcast com.oracle.objectfile.ObjectFile$ValueEnum
            invokeinterface com.oracle.objectfile.ObjectFile$ValueEnum.value:()J
            land
            lconst_0
            lcmp
            ifeq 5
         4: .line 161
            aload 3 /* working */
            aload 4 /* f */
            invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.Enum f
         5: .line 159
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 164
            aload 3 /* working */
            areturn
        end local 3 // java.util.EnumSet working
        end local 2 // java.lang.Class clazz
        end local 0 // long flags
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0    flags  J
            0    7     2    clazz  Ljava/lang/Class<TE;>;
            1    7     3  working  Ljava/util/EnumSet<TE;>;
            3    5     4        f  TE;
    Signature: <E:Ljava/lang/Enum<TE;>;:Lcom/oracle/objectfile/ObjectFile$ValueEnum;>(JLjava/lang/Class<TE;>;)Ljava/util/EnumSet<TE;>;
    MethodParameters:
       Name  Flags
      flags  
      clazz  

  public abstract java.nio.ByteOrder getByteOrder();
    descriptor: ()Ljava/nio/ByteOrder;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void setByteOrder(java.nio.ByteOrder);
    descriptor: (Ljava/nio/ByteOrder;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
           Name  Flags
      byteOrder  

  private static java.lang.String getHostOS();
    descriptor: ()Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=0
         0: .line 174
            ldc "os.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* osName */
        start local 0 // java.lang.String osName
         1: .line 175
            aload 0 /* osName */
            ldc "Linux"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 176
            ldc "Linux"
            areturn
         3: .line 177
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* osName */
            ldc "Mac OS X"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 178
            ldc "Mac OS X"
            areturn
         5: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* osName */
            ldc "Windows"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 180
            ldc "Windows"
            areturn
         7: .line 182
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unsupported OS: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* osName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.String osName
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    8     0  osName  Ljava/lang/String;

  protected int initialVaddr();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.objectfile.ObjectFile this
         0: .line 192
            ldc 4194304
            ireturn
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/objectfile/ObjectFile;

  public static java.lang.String getFilenameSuffix();
    descriptor: ()Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 196
            invokestatic com.oracle.objectfile.ObjectFile.$SWITCH_TABLE$com$oracle$objectfile$ObjectFile$Format:()[I
            invokestatic com.oracle.objectfile.ObjectFile.getNativeFormat:()Lcom/oracle/objectfile/ObjectFile$Format;
            invokevirtual com.oracle.objectfile.ObjectFile$Format.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 1
                    2: 1
                    3: 2
              default: 3
          }
         1: .line 199
      StackMap locals:
      StackMap stack:
            ldc ".o"
            areturn
         2: .line 201
      StackMap locals:
      StackMap stack:
            ldc ".obj"
            areturn
         3: .line 203
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            ldc "unreachable"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.oracle.objectfile.ObjectFile$Format getNativeFormat();
    descriptor: ()Lcom/oracle/objectfile/ObjectFile$Format;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 208
            invokestatic com.oracle.objectfile.ObjectFile.getHostOS:()Ljava/lang/String;
            dup
            astore 0
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
          -1280820637: 1
           -187773587: 2
             73425108: 3
              default: 7
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 0
            ldc "Windows"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            goto 7
      StackMap locals:
      StackMap stack:
         2: aload 0
            ldc "Mac OS X"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
            goto 7
      StackMap locals:
      StackMap stack:
         3: aload 0
            ldc "Linux"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            goto 7
         4: .line 210
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.objectfile.ObjectFile$Format.ELF:Lcom/oracle/objectfile/ObjectFile$Format;
            areturn
         5: .line 212
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.objectfile.ObjectFile$Format.MACH_O:Lcom/oracle/objectfile/ObjectFile$Format;
            areturn
         6: .line 214
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.objectfile.ObjectFile$Format.PECOFF:Lcom/oracle/objectfile/ObjectFile$Format;
            areturn
         7: .line 216
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            ldc "unreachable"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static com.oracle.objectfile.ObjectFile getNativeObjectFile(int, boolean);
    descriptor: (IZ)Lcom/oracle/objectfile/ObjectFile;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // int pageSize
        start local 1 // boolean runtimeDebugInfoGeneration
         0: .line 221
            invokestatic com.oracle.objectfile.ObjectFile.$SWITCH_TABLE$com$oracle$objectfile$ObjectFile$Format:()[I
            invokestatic com.oracle.objectfile.ObjectFile.getNativeFormat:()Lcom/oracle/objectfile/ObjectFile$Format;
            invokevirtual com.oracle.objectfile.ObjectFile$Format.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 1
                    2: 2
                    3: 3
              default: 4
          }
         1: .line 223
      StackMap locals:
      StackMap stack:
            new com.oracle.objectfile.elf.ELFObjectFile
            dup
            iload 0 /* pageSize */
            iload 1 /* runtimeDebugInfoGeneration */
            invokespecial com.oracle.objectfile.elf.ELFObjectFile.<init>:(IZ)V
            areturn
         2: .line 225
      StackMap locals:
      StackMap stack:
            new com.oracle.objectfile.macho.MachOObjectFile
            dup
            iload 0 /* pageSize */
            invokespecial com.oracle.objectfile.macho.MachOObjectFile.<init>:(I)V
            areturn
         3: .line 227
      StackMap locals:
      StackMap stack:
            new com.oracle.objectfile.pecoff.PECoffObjectFile
            dup
            iload 0 /* pageSize */
            invokespecial com.oracle.objectfile.pecoff.PECoffObjectFile.<init>:(I)V
            areturn
         4: .line 229
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            ldc "unreachable"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 1 // boolean runtimeDebugInfoGeneration
        end local 0 // int pageSize
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    5     0                    pageSize  I
            0    5     1  runtimeDebugInfoGeneration  Z
    MethodParameters:
                            Name  Flags
      pageSize                    
      runtimeDebugInfoGeneration  

  public static com.oracle.objectfile.ObjectFile getNativeObjectFile(int);
    descriptor: (I)Lcom/oracle/objectfile/ObjectFile;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int pageSize
         0: .line 234
            iload 0 /* pageSize */
            iconst_1
            invokestatic com.oracle.objectfile.ObjectFile.getNativeObjectFile:(IZ)Lcom/oracle/objectfile/ObjectFile;
            areturn
        end local 0 // int pageSize
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  pageSize  I
    MethodParameters:
          Name  Flags
      pageSize  

  public static com.oracle.objectfile.ObjectFile createRuntimeDebugInfo(int);
    descriptor: (I)Lcom/oracle/objectfile/ObjectFile;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int pageSize
         0: .line 238
            iload 0 /* pageSize */
            iconst_1
            invokestatic com.oracle.objectfile.ObjectFile.getNativeObjectFile:(IZ)Lcom/oracle/objectfile/ObjectFile;
            areturn
        end local 0 // int pageSize
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  pageSize  I
    MethodParameters:
          Name  Flags
      pageSize  

  protected abstract com.oracle.objectfile.ObjectFile$Segment getOrCreateSegment(java.lang.String, java.lang.String, boolean, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/oracle/objectfile/ObjectFile$Segment;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
                  Name  Flags
      maybeSegmentName  
      sectionName       
      writable          
      executable        

  public abstract com.oracle.objectfile.ObjectFile$Section newUserDefinedSection(com.oracle.objectfile.ObjectFile$Segment, java.lang.String, int, com.oracle.objectfile.ElementImpl);
    descriptor: (Lcom/oracle/objectfile/ObjectFile$Segment;Ljava/lang/String;ILcom/oracle/objectfile/ElementImpl;)Lcom/oracle/objectfile/ObjectFile$Section;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
           Name  Flags
      segment    
      name       
      alignment  
      impl       

  public abstract com.oracle.objectfile.ObjectFile$Section newProgbitsSection(com.oracle.objectfile.ObjectFile$Segment, java.lang.String, int, boolean, boolean, com.oracle.objectfile.ObjectFile$ProgbitsSectionImpl);
    descriptor: (Lcom/oracle/objectfile/ObjectFile$Segment;Ljava/lang/String;IZZLcom/oracle/objectfile/ObjectFile$ProgbitsSectionImpl;)Lcom/oracle/objectfile/ObjectFile$Section;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
            Name  Flags
      segment     
      name        
      alignment   
      writable    
      executable  
      impl        

  public abstract com.oracle.objectfile.ObjectFile$Section newNobitsSection(com.oracle.objectfile.ObjectFile$Segment, java.lang.String, com.oracle.objectfile.ObjectFile$NobitsSectionImpl);
    descriptor: (Lcom/oracle/objectfile/ObjectFile$Segment;Ljava/lang/String;Lcom/oracle/objectfile/ObjectFile$NobitsSectionImpl;)Lcom/oracle/objectfile/ObjectFile$Section;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      segment  
      name     
      impl     

  public com.oracle.objectfile.ObjectFile$Section newUserDefinedSection(java.lang.String, com.oracle.objectfile.ElementImpl);
    descriptor: (Ljava/lang/String;Lcom/oracle/objectfile/ElementImpl;)Lcom/oracle/objectfile/ObjectFile$Section;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // java.lang.String name
        start local 2 // com.oracle.objectfile.ElementImpl impl
         0: .line 493
            aload 0 /* this */
            aconst_null
            aload 1 /* name */
            iconst_0
            iconst_0
            invokevirtual com.oracle.objectfile.ObjectFile.getOrCreateSegment:(Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/oracle/objectfile/ObjectFile$Segment;
            astore 3 /* segment */
        start local 3 // com.oracle.objectfile.ObjectFile$Segment segment
         1: .line 494
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.getWordSizeInBytes:()I
            istore 4 /* alignment */
        start local 4 // int alignment
         2: .line 495
            aload 0 /* this */
            aload 3 /* segment */
            aload 1 /* name */
            iload 4 /* alignment */
            aload 2 /* impl */
            invokevirtual com.oracle.objectfile.ObjectFile.newUserDefinedSection:(Lcom/oracle/objectfile/ObjectFile$Segment;Ljava/lang/String;ILcom/oracle/objectfile/ElementImpl;)Lcom/oracle/objectfile/ObjectFile$Section;
            astore 5 /* result */
        start local 5 // com.oracle.objectfile.ObjectFile$Section result
         3: .line 496
            aload 5 /* result */
            areturn
        end local 5 // com.oracle.objectfile.ObjectFile$Section result
        end local 4 // int alignment
        end local 3 // com.oracle.objectfile.ObjectFile$Segment segment
        end local 2 // com.oracle.objectfile.ElementImpl impl
        end local 1 // java.lang.String name
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/objectfile/ObjectFile;
            0    4     1       name  Ljava/lang/String;
            0    4     2       impl  Lcom/oracle/objectfile/ElementImpl;
            1    4     3    segment  Lcom/oracle/objectfile/ObjectFile$Segment;
            2    4     4  alignment  I
            3    4     5     result  Lcom/oracle/objectfile/ObjectFile$Section;
    MethodParameters:
      Name  Flags
      name  
      impl  

  public com.oracle.objectfile.ObjectFile$Section newDebugSection(java.lang.String, com.oracle.objectfile.ElementImpl);
    descriptor: (Ljava/lang/String;Lcom/oracle/objectfile/ElementImpl;)Lcom/oracle/objectfile/ObjectFile$Section;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // java.lang.String name
        start local 2 // com.oracle.objectfile.ElementImpl impl
         0: .line 500
            aload 0 /* this */
            aconst_null
            aload 1 /* name */
            iconst_0
            iconst_0
            invokevirtual com.oracle.objectfile.ObjectFile.getOrCreateSegment:(Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/oracle/objectfile/ObjectFile$Segment;
            astore 3 /* segment */
        start local 3 // com.oracle.objectfile.ObjectFile$Segment segment
         1: .line 504
            aload 0 /* this */
            aload 3 /* segment */
            aload 1 /* name */
            iconst_1
            aload 2 /* impl */
            invokevirtual com.oracle.objectfile.ObjectFile.newUserDefinedSection:(Lcom/oracle/objectfile/ObjectFile$Segment;Ljava/lang/String;ILcom/oracle/objectfile/ElementImpl;)Lcom/oracle/objectfile/ObjectFile$Section;
            astore 4 /* result */
        start local 4 // com.oracle.objectfile.ObjectFile$Section result
         2: .line 505
            aload 4 /* result */
            areturn
        end local 4 // com.oracle.objectfile.ObjectFile$Section result
        end local 3 // com.oracle.objectfile.ObjectFile$Segment segment
        end local 2 // com.oracle.objectfile.ElementImpl impl
        end local 1 // java.lang.String name
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/objectfile/ObjectFile;
            0    3     1     name  Ljava/lang/String;
            0    3     2     impl  Lcom/oracle/objectfile/ElementImpl;
            1    3     3  segment  Lcom/oracle/objectfile/ObjectFile$Segment;
            2    3     4   result  Lcom/oracle/objectfile/ObjectFile$Section;
    MethodParameters:
      Name  Flags
      name  
      impl  

  public com.oracle.objectfile.ObjectFile$Section newProgbitsSection(java.lang.String, int, boolean, boolean, com.oracle.objectfile.ObjectFile$ProgbitsSectionImpl);
    descriptor: (Ljava/lang/String;IZZLcom/oracle/objectfile/ObjectFile$ProgbitsSectionImpl;)Lcom/oracle/objectfile/ObjectFile$Section;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=6
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // java.lang.String name
        start local 2 // int alignment
        start local 3 // boolean writable
        start local 4 // boolean executable
        start local 5 // com.oracle.objectfile.ObjectFile$ProgbitsSectionImpl impl
         0: .line 510
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 1
            aload 5 /* impl */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 511
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            aload 1 /* name */
            iload 3 /* writable */
            iload 4 /* executable */
            invokevirtual com.oracle.objectfile.ObjectFile.getOrCreateSegment:(Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/oracle/objectfile/ObjectFile$Segment;
            astore 6 /* segment */
        start local 6 // com.oracle.objectfile.ObjectFile$Segment segment
         2: .line 512
            iload 2 /* alignment */
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.getWordSizeInBytes:()I
            invokestatic com.oracle.objectfile.ObjectFile.lowestCommonMultiple:(II)I
            istore 7 /* adaptedAlignment */
        start local 7 // int adaptedAlignment
         3: .line 513
            aload 0 /* this */
            aload 6 /* segment */
            aload 1 /* name */
            iload 7 /* adaptedAlignment */
            iload 3 /* writable */
            iload 4 /* executable */
            aload 5 /* impl */
            invokevirtual com.oracle.objectfile.ObjectFile.newProgbitsSection:(Lcom/oracle/objectfile/ObjectFile$Segment;Ljava/lang/String;IZZLcom/oracle/objectfile/ObjectFile$ProgbitsSectionImpl;)Lcom/oracle/objectfile/ObjectFile$Section;
            astore 8 /* result */
        start local 8 // com.oracle.objectfile.ObjectFile$Section result
         4: .line 514
            aload 8 /* result */
            areturn
        end local 8 // com.oracle.objectfile.ObjectFile$Section result
        end local 7 // int adaptedAlignment
        end local 6 // com.oracle.objectfile.ObjectFile$Segment segment
        end local 5 // com.oracle.objectfile.ObjectFile$ProgbitsSectionImpl impl
        end local 4 // boolean executable
        end local 3 // boolean writable
        end local 2 // int alignment
        end local 1 // java.lang.String name
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lcom/oracle/objectfile/ObjectFile;
            0    5     1              name  Ljava/lang/String;
            0    5     2         alignment  I
            0    5     3          writable  Z
            0    5     4        executable  Z
            0    5     5              impl  Lcom/oracle/objectfile/ObjectFile$ProgbitsSectionImpl;
            2    5     6           segment  Lcom/oracle/objectfile/ObjectFile$Segment;
            3    5     7  adaptedAlignment  I
            4    5     8            result  Lcom/oracle/objectfile/ObjectFile$Section;
    MethodParameters:
            Name  Flags
      name        
      alignment   
      writable    
      executable  
      impl        

  public com.oracle.objectfile.ObjectFile$Section newNobitsSection(java.lang.String, com.oracle.objectfile.ObjectFile$NobitsSectionImpl);
    descriptor: (Ljava/lang/String;Lcom/oracle/objectfile/ObjectFile$NobitsSectionImpl;)Lcom/oracle/objectfile/ObjectFile$Section;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // java.lang.String name
        start local 2 // com.oracle.objectfile.ObjectFile$NobitsSectionImpl impl
         0: .line 518
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 1
            aload 2 /* impl */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 519
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            aload 1 /* name */
            iconst_1
            iconst_0
            invokevirtual com.oracle.objectfile.ObjectFile.getOrCreateSegment:(Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/oracle/objectfile/ObjectFile$Segment;
            astore 3 /* segment */
        start local 3 // com.oracle.objectfile.ObjectFile$Segment segment
         2: .line 520
            aload 0 /* this */
            aload 3 /* segment */
            aload 1 /* name */
            aload 2 /* impl */
            invokevirtual com.oracle.objectfile.ObjectFile.newNobitsSection:(Lcom/oracle/objectfile/ObjectFile$Segment;Ljava/lang/String;Lcom/oracle/objectfile/ObjectFile$NobitsSectionImpl;)Lcom/oracle/objectfile/ObjectFile$Section;
            astore 4 /* result */
        start local 4 // com.oracle.objectfile.ObjectFile$Section result
         3: .line 521
            aload 4 /* result */
            areturn
        end local 4 // com.oracle.objectfile.ObjectFile$Section result
        end local 3 // com.oracle.objectfile.ObjectFile$Segment segment
        end local 2 // com.oracle.objectfile.ObjectFile$NobitsSectionImpl impl
        end local 1 // java.lang.String name
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/oracle/objectfile/ObjectFile;
            0    4     1     name  Ljava/lang/String;
            0    4     2     impl  Lcom/oracle/objectfile/ObjectFile$NobitsSectionImpl;
            2    4     3  segment  Lcom/oracle/objectfile/ObjectFile$Segment;
            3    4     4   result  Lcom/oracle/objectfile/ObjectFile$Section;
    MethodParameters:
      Name  Flags
      name  
      impl  

  public com.oracle.objectfile.ObjectFile$Segment findSegmentByName(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/objectfile/ObjectFile$Segment;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // java.lang.String name
         0: .line 525
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.getSegments:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: com.oracle.objectfile.ObjectFile java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.ObjectFile$Segment
            astore 2 /* s */
        start local 2 // com.oracle.objectfile.ObjectFile$Segment s
         2: .line 526
            aload 2 /* s */
            invokeinterface com.oracle.objectfile.ObjectFile$Segment.getName:()Ljava/lang/String;
            ifnull 4
            aload 2 /* s */
            invokeinterface com.oracle.objectfile.ObjectFile$Segment.getName:()Ljava/lang/String;
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 527
            aload 2 /* s */
            areturn
        end local 2 // com.oracle.objectfile.ObjectFile$Segment s
         4: .line 525
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 530
            aconst_null
            areturn
        end local 1 // java.lang.String name
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/objectfile/ObjectFile;
            0    6     1  name  Ljava/lang/String;
            2    4     2     s  Lcom/oracle/objectfile/ObjectFile$Segment;
    MethodParameters:
      Name  Flags
      name  

  public static int nextIntegerMultiple(int, int);
    descriptor: (II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // int start
        start local 1 // int multipleOf
         0: .line 534
            iload 0 /* start */
            iload 1 /* multipleOf */
            irem
            istore 2 /* mod */
        start local 2 // int mod
         1: .line 535
            iload 1 /* multipleOf */
            iload 2 /* mod */
            isub
            istore 3 /* compl */
        start local 3 // int compl
         2: .line 536
            iload 0 /* start */
            iload 3 /* compl */
            iload 1 /* multipleOf */
            if_icmpne 3
            iconst_0
            goto 4
      StackMap locals: int int int int
      StackMap stack: int
         3: iload 3 /* compl */
      StackMap locals: int int int int
      StackMap stack: int int
         4: iadd
            istore 4 /* ret */
        start local 4 // int ret
         5: .line 537
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 6
            iload 4 /* ret */
            iload 1 /* multipleOf */
            irem
            ifeq 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 538
      StackMap locals: int
      StackMap stack:
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 7
            iload 4 /* ret */
            iload 0 /* start */
            isub
            ifge 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 539
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 8
            iload 4 /* ret */
            iload 0 /* start */
            isub
            iload 1 /* multipleOf */
            if_icmplt 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 540
      StackMap locals:
      StackMap stack:
            iload 4 /* ret */
            ireturn
        end local 4 // int ret
        end local 3 // int compl
        end local 2 // int mod
        end local 1 // int multipleOf
        end local 0 // int start
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0       start  I
            0    9     1  multipleOf  I
            1    9     2         mod  I
            2    9     3       compl  I
            5    9     4         ret  I
    MethodParameters:
            Name  Flags
      start       
      multipleOf  

  public static int nextIntegerMultipleWithCongruence(int, int, int, int);
    descriptor: (IIII)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // int start
        start local 1 // int multipleOf
        start local 2 // int congruentTo
        start local 3 // int modulo
         0: .line 545
            iload 0 /* start */
            istore 4 /* candidate */
        start local 4 // int candidate
         1: .line 546
            goto 3
         2: .line 547
      StackMap locals: int
      StackMap stack:
            iload 4 /* candidate */
            iconst_1
            iadd
            iload 1 /* multipleOf */
            invokestatic com.oracle.objectfile.ObjectFile.nextIntegerMultiple:(II)I
            istore 4 /* candidate */
         3: .line 546
      StackMap locals:
      StackMap stack:
            iload 4 /* candidate */
            iload 3 /* modulo */
            irem
            iload 2 /* congruentTo */
            iload 3 /* modulo */
            irem
            if_icmpne 2
         4: .line 549
            iload 4 /* candidate */
            ireturn
        end local 4 // int candidate
        end local 3 // int modulo
        end local 2 // int congruentTo
        end local 1 // int multipleOf
        end local 0 // int start
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0        start  I
            0    5     1   multipleOf  I
            0    5     2  congruentTo  I
            0    5     3       modulo  I
            1    5     4    candidate  I
    MethodParameters:
             Name  Flags
      start        
      multipleOf   
      congruentTo  
      modulo       

  protected static int greatestCommonDivisor(int, int);
    descriptor: (II)I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // int arg1
        start local 1 // int arg2
         0: .line 554
            iload 0 /* arg1 */
            istore 2 /* first */
        start local 2 // int first
         1: .line 555
            iload 1 /* arg2 */
            istore 3 /* second */
        start local 3 // int second
         2: .line 557
            iload 1 /* arg2 */
            istore 4 /* rem */
        start local 4 // int rem
         3: .line 558
            goto 7
         4: .line 560
      StackMap locals: int int int
      StackMap stack:
            iload 2 /* first */
            iload 3 /* second */
            irem
            istore 4 /* rem */
         5: .line 561
            iload 3 /* second */
            istore 2 /* first */
         6: .line 562
            iload 4 /* rem */
            istore 3 /* second */
         7: .line 558
      StackMap locals:
      StackMap stack:
            iload 4 /* rem */
            ifne 4
         8: .line 564
            iload 2 /* first */
            ireturn
        end local 4 // int rem
        end local 3 // int second
        end local 2 // int first
        end local 1 // int arg2
        end local 0 // int arg1
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    arg1  I
            0    9     1    arg2  I
            1    9     2   first  I
            2    9     3  second  I
            3    9     4     rem  I
    MethodParameters:
      Name  Flags
      arg1  
      arg2  

  protected static int lowestCommonMultiple(int, int);
    descriptor: (II)I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // int arg1
        start local 1 // int arg2
         0: .line 568
            iload 0 /* arg1 */
            iload 1 /* arg2 */
            imul
            iload 0 /* arg1 */
            iload 1 /* arg2 */
            invokestatic com.oracle.objectfile.ObjectFile.greatestCommonDivisor:(II)I
            idiv
            ireturn
        end local 1 // int arg2
        end local 0 // int arg1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  arg1  I
            0    1     1  arg2  I
    MethodParameters:
      Name  Flags
      arg1  
      arg2  

  protected static int nextAvailableVaddr(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, int, );
    descriptor: (Ljava/util/Map;II)I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // java.util.Map alreadyDecided
        start local 1 // int base
        start local 2 // int defaultValue
         0: .line 572
            iconst_m1
            istore 3 /* nextAvailable */
        start local 3 // int nextAvailable
         1: .line 573
            aload 0 /* alreadyDecided */
            getstatic com.oracle.objectfile.LayoutDecision$Kind.VADDR:Lcom/oracle/objectfile/LayoutDecision$Kind;
            new com.oracle.objectfile.ObjectFile$IntegerDecisionComparator
            dup
            iconst_0
            invokespecial com.oracle.objectfile.ObjectFile$IntegerDecisionComparator.<init>:(Z)V
            invokestatic com.oracle.objectfile.ObjectFile.maximalDecisionValues:(Ljava/util/Map;Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/util/Comparator;)Ljava/util/List;
            astore 4 /* maxVaddrDecisions */
        start local 4 // java.util.List maxVaddrDecisions
         2: .line 575
            aload 4 /* maxVaddrDecisions */
            new com.oracle.objectfile.ObjectFile$SizeTiebreakComparator
            dup
            aload 0 /* alreadyDecided */
            iconst_0
            invokespecial com.oracle.objectfile.ObjectFile$SizeTiebreakComparator.<init>:(Ljava/util/Map;Z)V
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
         3: .line 578
            aload 4 /* maxVaddrDecisions */
            aload 4 /* maxVaddrDecisions */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecision
            astore 5 /* maxVaddrDecision */
        start local 5 // com.oracle.objectfile.LayoutDecision maxVaddrDecision
         4: .line 579
            aload 5 /* maxVaddrDecision */
            ifnull 5
            aload 5 /* maxVaddrDecision */
            invokevirtual com.oracle.objectfile.LayoutDecision.isTaken:()Z
            ifne 7
         5: .line 584
      StackMap locals: int java.util.List com.oracle.objectfile.LayoutDecision
      StackMap stack:
            iload 2 /* defaultValue */
            istore 3 /* nextAvailable */
         6: .line 585
            goto 11
         7: .line 586
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 8
            aload 0 /* alreadyDecided */
            aload 5 /* maxVaddrDecision */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.SIZE:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.isTaken:()Z
            ifne 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 587
      StackMap locals:
      StackMap stack:
            aload 0 /* alreadyDecided */
            aload 5 /* maxVaddrDecision */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.VADDR:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecidedValue:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 6 /* vaddr */
        start local 6 // int vaddr
         9: .line 588
            aload 5 /* maxVaddrDecision */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            aload 0 /* alreadyDecided */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getMemSize:(Ljava/util/Map;)I
            istore 7 /* size */
        start local 7 // int size
        10: .line 589
            iload 6 /* vaddr */
            iload 7 /* size */
            iadd
            istore 3 /* nextAvailable */
        end local 7 // int size
        end local 6 // int vaddr
        11: .line 591
      StackMap locals:
      StackMap stack:
            iload 3 /* nextAvailable */
            iload 1 /* base */
            if_icmpge 13
        12: .line 592
            iload 1 /* base */
            ireturn
        13: .line 594
      StackMap locals:
      StackMap stack:
            iload 3 /* nextAvailable */
            ireturn
        end local 5 // com.oracle.objectfile.LayoutDecision maxVaddrDecision
        end local 4 // java.util.List maxVaddrDecisions
        end local 3 // int nextAvailable
        end local 2 // int defaultValue
        end local 1 // int base
        end local 0 // java.util.Map alreadyDecided
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   14     0     alreadyDecided  Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
            0   14     1               base  I
            0   14     2       defaultValue  I
            1   14     3      nextAvailable  I
            2   14     4  maxVaddrDecisions  Ljava/util/List<Lcom/oracle/objectfile/LayoutDecision;>;
            4   14     5   maxVaddrDecision  Lcom/oracle/objectfile/LayoutDecision;
            9   11     6              vaddr  I
           10   11     7               size  I
    Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;II)I
    MethodParameters:
                Name  Flags
      alreadyDecided  final
      base            
      defaultValue    

  protected static java.util.List<com.oracle.objectfile.LayoutDecision> maximalDecisionValues(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, com.oracle.objectfile.LayoutDecision$Kind, java.util.Comparator<com.oracle.objectfile.LayoutDecision>);
    descriptor: (Ljava/util/Map;Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/util/Comparator;)Ljava/util/List;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // java.util.Map alreadyDecided
        start local 1 // com.oracle.objectfile.LayoutDecision$Kind k
        start local 2 // java.util.Comparator cmp
         0: .line 599
            aconst_null
            astore 3 /* currentMax */
        start local 3 // java.util.ArrayList currentMax
         1: .line 600
            aload 0 /* alreadyDecided */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 13
      StackMap locals: java.util.Map com.oracle.objectfile.LayoutDecision$Kind java.util.Comparator java.util.ArrayList top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* eOuter */
        start local 4 // java.util.Map$Entry eOuter
         3: .line 601
            aload 4 /* eOuter */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            aload 1 /* k */
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            astore 6 /* decisionToCompare */
        start local 6 // com.oracle.objectfile.LayoutDecision decisionToCompare
         4: .line 602
            aload 3 /* currentMax */
            ifnonnull 5
            aconst_null
            goto 6
      StackMap locals: java.util.Map com.oracle.objectfile.LayoutDecision$Kind java.util.Comparator java.util.ArrayList java.util.Map$Entry java.util.Iterator com.oracle.objectfile.LayoutDecision
      StackMap stack:
         5: aload 2 /* cmp */
            aload 6 /* decisionToCompare */
            aload 3 /* currentMax */
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecision
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
      StackMap locals:
      StackMap stack: java.lang.Integer
         6: astore 7 /* compareResult */
        start local 7 // java.lang.Integer compareResult
         7: .line 603
            aload 3 /* currentMax */
            ifnull 8
            aload 7 /* compareResult */
            invokevirtual java.lang.Integer.intValue:()I
            ifle 11
         8: .line 605
      StackMap locals: java.lang.Integer
      StackMap stack:
            new java.util.ArrayList
            dup
            iconst_1
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* currentMax */
         9: .line 606
            aload 3 /* currentMax */
            aload 6 /* decisionToCompare */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        10: .line 607
            goto 13
      StackMap locals:
      StackMap stack:
        11: aload 7 /* compareResult */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 13
        12: .line 609
            aload 3 /* currentMax */
            aload 6 /* decisionToCompare */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.Integer compareResult
        end local 6 // com.oracle.objectfile.LayoutDecision decisionToCompare
        end local 4 // java.util.Map$Entry eOuter
        13: .line 600
      StackMap locals: java.util.Map com.oracle.objectfile.LayoutDecision$Kind java.util.Comparator java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        14: .line 612
            aload 3 /* currentMax */
            areturn
        end local 3 // java.util.ArrayList currentMax
        end local 2 // java.util.Comparator cmp
        end local 1 // com.oracle.objectfile.LayoutDecision$Kind k
        end local 0 // java.util.Map alreadyDecided
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   15     0     alreadyDecided  Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
            0   15     1                  k  Lcom/oracle/objectfile/LayoutDecision$Kind;
            0   15     2                cmp  Ljava/util/Comparator<Lcom/oracle/objectfile/LayoutDecision;>;
            1   15     3         currentMax  Ljava/util/ArrayList<Lcom/oracle/objectfile/LayoutDecision;>;
            3   13     4             eOuter  Ljava/util/Map$Entry<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
            4   13     6  decisionToCompare  Lcom/oracle/objectfile/LayoutDecision;
            7   13     7      compareResult  Ljava/lang/Integer;
    Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/util/Comparator<Lcom/oracle/objectfile/LayoutDecision;>;)Ljava/util/List<Lcom/oracle/objectfile/LayoutDecision;>;
    MethodParameters:
                Name  Flags
      alreadyDecided  
      k               
      cmp             

  protected static java.util.List<com.oracle.objectfile.LayoutDecision> minimalDecisionValues(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, com.oracle.objectfile.LayoutDecision$Kind, java.util.Comparator<com.oracle.objectfile.LayoutDecision>);
    descriptor: (Ljava/util/Map;Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/util/Comparator;)Ljava/util/List;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // java.util.Map alreadyDecided
        start local 1 // com.oracle.objectfile.LayoutDecision$Kind k
        start local 2 // java.util.Comparator cmp
         0: .line 616
            aconst_null
            astore 3 /* currentMin */
        start local 3 // java.util.ArrayList currentMin
         1: .line 617
            aload 0 /* alreadyDecided */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 15
      StackMap locals: java.util.Map com.oracle.objectfile.LayoutDecision$Kind java.util.Comparator java.util.ArrayList top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* eOuter */
        start local 4 // java.util.Map$Entry eOuter
         3: .line 618
            aload 4 /* eOuter */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            aload 1 /* k */
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            astore 6 /* decisionToCompare */
        start local 6 // com.oracle.objectfile.LayoutDecision decisionToCompare
         4: .line 620
            aload 6 /* decisionToCompare */
            ifnonnull 6
         5: .line 621
            goto 15
         6: .line 623
      StackMap locals: java.util.Map com.oracle.objectfile.LayoutDecision$Kind java.util.Comparator java.util.ArrayList java.util.Map$Entry java.util.Iterator com.oracle.objectfile.LayoutDecision
      StackMap stack:
            aload 3 /* currentMin */
            ifnonnull 7
            aconst_null
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 2 /* cmp */
            aload 6 /* decisionToCompare */
            aload 3 /* currentMin */
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecision
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
      StackMap locals:
      StackMap stack: java.lang.Integer
         8: astore 7 /* compareResult */
        start local 7 // java.lang.Integer compareResult
         9: .line 624
            aload 3 /* currentMin */
            ifnull 10
            aload 7 /* compareResult */
            invokevirtual java.lang.Integer.intValue:()I
            ifge 13
        10: .line 626
      StackMap locals: java.lang.Integer
      StackMap stack:
            new java.util.ArrayList
            dup
            iconst_1
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* currentMin */
        11: .line 627
            aload 3 /* currentMin */
            aload 6 /* decisionToCompare */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        12: .line 628
            goto 15
      StackMap locals:
      StackMap stack:
        13: aload 7 /* compareResult */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 15
        14: .line 629
            aload 3 /* currentMin */
            aload 6 /* decisionToCompare */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.Integer compareResult
        end local 6 // com.oracle.objectfile.LayoutDecision decisionToCompare
        end local 4 // java.util.Map$Entry eOuter
        15: .line 617
      StackMap locals: java.util.Map com.oracle.objectfile.LayoutDecision$Kind java.util.Comparator java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        16: .line 632
            aload 3 /* currentMin */
            areturn
        end local 3 // java.util.ArrayList currentMin
        end local 2 // java.util.Comparator cmp
        end local 1 // com.oracle.objectfile.LayoutDecision$Kind k
        end local 0 // java.util.Map alreadyDecided
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   17     0     alreadyDecided  Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
            0   17     1                  k  Lcom/oracle/objectfile/LayoutDecision$Kind;
            0   17     2                cmp  Ljava/util/Comparator<Lcom/oracle/objectfile/LayoutDecision;>;
            1   17     3         currentMin  Ljava/util/ArrayList<Lcom/oracle/objectfile/LayoutDecision;>;
            3   15     4             eOuter  Ljava/util/Map$Entry<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
            4   15     6  decisionToCompare  Lcom/oracle/objectfile/LayoutDecision;
            9   15     7      compareResult  Ljava/lang/Integer;
    Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/util/Comparator<Lcom/oracle/objectfile/LayoutDecision;>;)Ljava/util/List<Lcom/oracle/objectfile/LayoutDecision;>;
    MethodParameters:
                Name  Flags
      alreadyDecided  
      k               
      cmp             

  protected static java.util.List<com.oracle.objectfile.LayoutDecision> sortedDecisionValues(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, com.oracle.objectfile.LayoutDecision$Kind, java.util.Comparator<com.oracle.objectfile.LayoutDecision>);
    descriptor: (Ljava/util/Map;Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/util/Comparator;)Ljava/util/List;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // java.util.Map alreadyDecided
        start local 1 // com.oracle.objectfile.LayoutDecision$Kind k
        start local 2 // java.util.Comparator cmp
         0: .line 658
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* l */
        start local 3 // java.util.List l
         1: .line 659
            aload 1 /* k */
            aload 0 /* alreadyDecided */
            invokestatic com.oracle.objectfile.ObjectFile.decisionsByKind:(Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/util/Map;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 4
      StackMap locals: java.util.Map com.oracle.objectfile.LayoutDecision$Kind java.util.Comparator java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecision
            astore 4 /* d */
        start local 4 // com.oracle.objectfile.LayoutDecision d
         3: .line 660
            aload 3 /* l */
            aload 4 /* d */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // com.oracle.objectfile.LayoutDecision d
         4: .line 659
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 662
            aload 3 /* l */
            aload 2 /* cmp */
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
         6: .line 663
            aload 3 /* l */
            areturn
        end local 3 // java.util.List l
        end local 2 // java.util.Comparator cmp
        end local 1 // com.oracle.objectfile.LayoutDecision$Kind k
        end local 0 // java.util.Map alreadyDecided
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0  alreadyDecided  Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
            0    7     1               k  Lcom/oracle/objectfile/LayoutDecision$Kind;
            0    7     2             cmp  Ljava/util/Comparator<Lcom/oracle/objectfile/LayoutDecision;>;
            1    7     3               l  Ljava/util/List<Lcom/oracle/objectfile/LayoutDecision;>;
            3    4     4               d  Lcom/oracle/objectfile/LayoutDecision;
    Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/util/Comparator<Lcom/oracle/objectfile/LayoutDecision;>;)Ljava/util/List<Lcom/oracle/objectfile/LayoutDecision;>;
    MethodParameters:
                Name  Flags
      alreadyDecided  
      k               
      cmp             

  protected static int nextAvailableOffset(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>);
    descriptor: (Ljava/util/Map;)I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // java.util.Map alreadyDecided
         0: .line 691
            iconst_m1
            istore 1 /* ret */
        start local 1 // int ret
         1: .line 692
            aload 0 /* alreadyDecided */
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            new com.oracle.objectfile.ObjectFile$IntegerDecisionComparator
            dup
            iconst_0
            invokespecial com.oracle.objectfile.ObjectFile$IntegerDecisionComparator.<init>:(Z)V
            invokestatic com.oracle.objectfile.ObjectFile.maximalDecisionValues:(Ljava/util/Map;Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/util/Comparator;)Ljava/util/List;
            astore 2 /* maxOffsetDecisions */
        start local 2 // java.util.List maxOffsetDecisions
         2: .line 694
            aload 2 /* maxOffsetDecisions */
            new com.oracle.objectfile.ObjectFile$SizeTiebreakComparator
            dup
            aload 0 /* alreadyDecided */
            iconst_0
            invokespecial com.oracle.objectfile.ObjectFile$SizeTiebreakComparator.<init>:(Ljava/util/Map;Z)V
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
         3: .line 697
            aload 2 /* maxOffsetDecisions */
            aload 2 /* maxOffsetDecisions */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecision
            astore 3 /* maxOffsetDecision */
        start local 3 // com.oracle.objectfile.LayoutDecision maxOffsetDecision
         4: .line 699
            aload 3 /* maxOffsetDecision */
            ifnull 5
            aload 3 /* maxOffsetDecision */
            invokevirtual com.oracle.objectfile.LayoutDecision.isTaken:()Z
            ifne 7
         5: .line 701
      StackMap locals: int java.util.List com.oracle.objectfile.LayoutDecision
      StackMap stack:
            iconst_0
            istore 1 /* ret */
         6: .line 702
            goto 11
         7: .line 703
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 8
            aload 0 /* alreadyDecided */
            aload 3 /* maxOffsetDecision */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.SIZE:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.isTaken:()Z
            ifne 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 704
      StackMap locals:
      StackMap stack:
            aload 0 /* alreadyDecided */
            aload 3 /* maxOffsetDecision */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 4 /* offset */
        start local 4 // int offset
         9: .line 705
            aload 0 /* alreadyDecided */
            aload 3 /* maxOffsetDecision */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.SIZE:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 5 /* size */
        start local 5 // int size
        10: .line 706
            iload 4 /* offset */
            iload 5 /* size */
            iadd
            istore 1 /* ret */
        end local 5 // int size
        end local 4 // int offset
        11: .line 708
      StackMap locals:
      StackMap stack:
            iload 1 /* ret */
            ireturn
        end local 3 // com.oracle.objectfile.LayoutDecision maxOffsetDecision
        end local 2 // java.util.List maxOffsetDecisions
        end local 1 // int ret
        end local 0 // java.util.Map alreadyDecided
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   12     0      alreadyDecided  Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
            1   12     1                 ret  I
            2   12     2  maxOffsetDecisions  Ljava/util/List<Lcom/oracle/objectfile/LayoutDecision;>;
            4   12     3   maxOffsetDecision  Lcom/oracle/objectfile/LayoutDecision;
            9   11     4              offset  I
           10   11     5                size  I
    Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;)I
    MethodParameters:
                Name  Flags
      alreadyDecided  final

  public abstract int getWordSizeInBytes();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean shouldRecordDebugRelocations();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public static java.util.HashSet<com.oracle.objectfile.BuildDependency> basicDependencies(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, com.oracle.objectfile.ObjectFile$Element, boolean, boolean);
    descriptor: (Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;ZZ)Ljava/util/HashSet;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // java.util.Map decisions
        start local 1 // com.oracle.objectfile.ObjectFile$Element el
        start local 2 // boolean sizeOnContent
        start local 3 // boolean vaddrOnOffset
         0: .line 717
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* deps */
        start local 4 // java.util.HashSet deps
         1: .line 723
            aload 4 /* deps */
            aload 0 /* decisions */
            aload 1 /* el */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            aload 0 /* decisions */
            aload 1 /* el */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.SIZE:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            invokestatic com.oracle.objectfile.BuildDependency.createOrGet:(Lcom/oracle/objectfile/LayoutDecision;Lcom/oracle/objectfile/LayoutDecision;)Lcom/oracle/objectfile/BuildDependency;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         2: .line 724
            aload 0 /* decisions */
            aload 1 /* el */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.VADDR:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            ifnull 4
         3: .line 725
            aload 4 /* deps */
            aload 0 /* decisions */
            aload 1 /* el */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.VADDR:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            aload 0 /* decisions */
            aload 1 /* el */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.SIZE:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            invokestatic com.oracle.objectfile.BuildDependency.createOrGet:(Lcom/oracle/objectfile/LayoutDecision;Lcom/oracle/objectfile/LayoutDecision;)Lcom/oracle/objectfile/BuildDependency;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         4: .line 727
      StackMap locals: java.util.HashSet
      StackMap stack:
            iload 2 /* sizeOnContent */
            ifeq 6
         5: .line 728
            aload 4 /* deps */
            aload 0 /* decisions */
            aload 1 /* el */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.SIZE:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            aload 0 /* decisions */
            aload 1 /* el */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.CONTENT:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            invokestatic com.oracle.objectfile.BuildDependency.createOrGet:(Lcom/oracle/objectfile/LayoutDecision;Lcom/oracle/objectfile/LayoutDecision;)Lcom/oracle/objectfile/BuildDependency;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         6: .line 731
      StackMap locals:
      StackMap stack:
            iload 3 /* vaddrOnOffset */
            ifeq 8
            aload 0 /* decisions */
            aload 1 /* el */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.VADDR:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            ifnull 8
         7: .line 732
            aload 4 /* deps */
            aload 0 /* decisions */
            aload 1 /* el */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.VADDR:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            aload 0 /* decisions */
            aload 1 /* el */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            invokestatic com.oracle.objectfile.BuildDependency.createOrGet:(Lcom/oracle/objectfile/LayoutDecision;Lcom/oracle/objectfile/LayoutDecision;)Lcom/oracle/objectfile/BuildDependency;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         8: .line 734
      StackMap locals:
      StackMap stack:
            aload 4 /* deps */
            areturn
        end local 4 // java.util.HashSet deps
        end local 3 // boolean vaddrOnOffset
        end local 2 // boolean sizeOnContent
        end local 1 // com.oracle.objectfile.ObjectFile$Element el
        end local 0 // java.util.Map decisions
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0      decisions  Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
            0    9     1             el  Lcom/oracle/objectfile/ObjectFile$Element;
            0    9     2  sizeOnContent  Z
            0    9     3  vaddrOnOffset  Z
            1    9     4           deps  Ljava/util/HashSet<Lcom/oracle/objectfile/BuildDependency;>;
    Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;Lcom/oracle/objectfile/ObjectFile$Element;ZZ)Ljava/util/HashSet<Lcom/oracle/objectfile/BuildDependency;>;
    MethodParameters:
               Name  Flags
      decisions      
      el             
      sizeOnContent  
      vaddrOnOffset  

  public static java.util.HashSet<com.oracle.objectfile.BuildDependency> minimalDependencies(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, com.oracle.objectfile.ObjectFile$Element);
    descriptor: (Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;)Ljava/util/HashSet;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.util.Map decisions
        start local 1 // com.oracle.objectfile.ObjectFile$Element el
         0: .line 738
            aload 0 /* decisions */
            aload 1 /* el */
            iconst_0
            iconst_1
            invokestatic com.oracle.objectfile.ObjectFile.basicDependencies:(Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;ZZ)Ljava/util/HashSet;
            areturn
        end local 1 // com.oracle.objectfile.ObjectFile$Element el
        end local 0 // java.util.Map decisions
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  decisions  Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
            0    1     1         el  Lcom/oracle/objectfile/ObjectFile$Element;
    Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;Lcom/oracle/objectfile/ObjectFile$Element;)Ljava/util/HashSet<Lcom/oracle/objectfile/BuildDependency;>;
    MethodParameters:
           Name  Flags
      decisions  
      el         

  public static java.util.HashSet<com.oracle.objectfile.BuildDependency> defaultDependencies(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, com.oracle.objectfile.ObjectFile$Element);
    descriptor: (Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;)Ljava/util/HashSet;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.util.Map decisions
        start local 1 // com.oracle.objectfile.ObjectFile$Element el
         0: .line 747
            aload 0 /* decisions */
            aload 1 /* el */
            iconst_1
            iconst_1
            invokestatic com.oracle.objectfile.ObjectFile.basicDependencies:(Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;ZZ)Ljava/util/HashSet;
            areturn
        end local 1 // com.oracle.objectfile.ObjectFile$Element el
        end local 0 // java.util.Map decisions
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  decisions  Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
            0    1     1         el  Lcom/oracle/objectfile/ObjectFile$Element;
    Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;Lcom/oracle/objectfile/ObjectFile$Element;)Ljava/util/HashSet<Lcom/oracle/objectfile/BuildDependency;>;
    MethodParameters:
           Name  Flags
      decisions  
      el         

  public static <T> T defaultGetOrDecide(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecision$Kind, );
    descriptor: (Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // java.util.Map alreadyDecided
        start local 1 // com.oracle.objectfile.ObjectFile$Element el
        start local 2 // com.oracle.objectfile.LayoutDecision$Kind k
        start local 3 // java.lang.Object hint
         0: .line 753
            aload 0 /* alreadyDecided */
            aload 1 /* el */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            astore 4 /* m */
        start local 4 // com.oracle.objectfile.LayoutDecisionMap m
         1: .line 754
            aload 4 /* m */
            ifnull 3
            aload 4 /* m */
            aload 2 /* k */
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            ifnull 3
            aload 4 /* m */
            aload 2 /* k */
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.isTaken:()Z
            ifeq 3
         2: .line 755
            aload 4 /* m */
            aload 2 /* k */
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecidedValue:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Ljava/lang/Object;
            areturn
         3: .line 757
      StackMap locals: com.oracle.objectfile.LayoutDecisionMap
      StackMap stack:
            aload 3 /* hint */
            areturn
        end local 4 // com.oracle.objectfile.LayoutDecisionMap m
        end local 3 // java.lang.Object hint
        end local 2 // com.oracle.objectfile.LayoutDecision$Kind k
        end local 1 // com.oracle.objectfile.ObjectFile$Element el
        end local 0 // java.util.Map alreadyDecided
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0  alreadyDecided  Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
            0    4     1              el  Lcom/oracle/objectfile/ObjectFile$Element;
            0    4     2               k  Lcom/oracle/objectfile/LayoutDecision$Kind;
            0    4     3            hint  TT;
            1    4     4               m  Lcom/oracle/objectfile/LayoutDecisionMap;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecision$Kind;TT;)TT;
    MethodParameters:
                Name  Flags
      alreadyDecided  
      el              
      k               
      hint            

  public static int defaultGetOrDecideOffset(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, com.oracle.objectfile.ObjectFile$Element, );
    descriptor: (Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.util.Map alreadyDecided
        start local 1 // com.oracle.objectfile.ObjectFile$Element el
        start local 2 // int offsetHint
         0: .line 765
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 1
            aload 0 /* alreadyDecided */
            aload 1 /* el */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.VADDR:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            ifnull 1
            aload 0 /* alreadyDecided */
            aload 1 /* el */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.VADDR:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.isTaken:()Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 769
      StackMap locals:
      StackMap stack:
            aload 0 /* alreadyDecided */
            aload 1 /* el */
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            iload 2 /* offsetHint */
            aload 1 /* el */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getAlignment:()I
            invokestatic com.oracle.objectfile.ObjectFile.nextIntegerMultiple:(II)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic com.oracle.objectfile.ObjectFile.defaultGetOrDecide:(Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 2 // int offsetHint
        end local 1 // com.oracle.objectfile.ObjectFile$Element el
        end local 0 // java.util.Map alreadyDecided
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0  alreadyDecided  Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
            0    2     1              el  Lcom/oracle/objectfile/ObjectFile$Element;
            0    2     2      offsetHint  I
    Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;Lcom/oracle/objectfile/ObjectFile$Element;I)I
    MethodParameters:
                Name  Flags
      alreadyDecided  
      el              
      offsetHint      

  public static byte[] defaultGetOrDecideContent(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, com.oracle.objectfile.ObjectFile$Element, );
    descriptor: (Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;[B)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.util.Map alreadyDecided
        start local 1 // com.oracle.objectfile.ObjectFile$Element el
        start local 2 // byte[] contentHint
         0: .line 773
            aload 0 /* alreadyDecided */
            aload 1 /* el */
            getstatic com.oracle.objectfile.LayoutDecision$Kind.CONTENT:Lcom/oracle/objectfile/LayoutDecision$Kind;
            aload 2 /* contentHint */
            invokestatic com.oracle.objectfile.ObjectFile.defaultGetOrDecide:(Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            areturn
        end local 2 // byte[] contentHint
        end local 1 // com.oracle.objectfile.ObjectFile$Element el
        end local 0 // java.util.Map alreadyDecided
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  alreadyDecided  Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
            0    1     1              el  Lcom/oracle/objectfile/ObjectFile$Element;
            0    1     2     contentHint  [B
    Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;Lcom/oracle/objectfile/ObjectFile$Element;[B)[B
    MethodParameters:
                Name  Flags
      alreadyDecided  
      el              
      contentHint     

  public static int defaultGetOrDecideSize(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, com.oracle.objectfile.ObjectFile$Element, );
    descriptor: (Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.util.Map alreadyDecided
        start local 1 // com.oracle.objectfile.ObjectFile$Element el
        start local 2 // int sizeHint
         0: .line 777
            aload 0 /* alreadyDecided */
            aload 1 /* el */
            getstatic com.oracle.objectfile.LayoutDecision$Kind.SIZE:Lcom/oracle/objectfile/LayoutDecision$Kind;
            iload 2 /* sizeHint */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic com.oracle.objectfile.ObjectFile.defaultGetOrDecide:(Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 2 // int sizeHint
        end local 1 // com.oracle.objectfile.ObjectFile$Element el
        end local 0 // java.util.Map alreadyDecided
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  alreadyDecided  Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
            0    1     1              el  Lcom/oracle/objectfile/ObjectFile$Element;
            0    1     2        sizeHint  I
    Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;Lcom/oracle/objectfile/ObjectFile$Element;I)I
    MethodParameters:
                Name  Flags
      alreadyDecided  
      el              
      sizeHint        

  public static int defaultGetOrDecideVaddr(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, com.oracle.objectfile.ObjectFile$Element, );
    descriptor: (Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=17, args_size=3
        start local 0 // java.util.Map alreadyDecided
        start local 1 // com.oracle.objectfile.ObjectFile$Element el
        start local 2 // int vaddrHint
         0: .line 781
            aload 0 /* alreadyDecided */
            aload 1 /* el */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecidedValue:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 3 /* fileOffset */
        start local 3 // int fileOffset
         1: .line 782
            iload 2 /* vaddrHint */
            istore 4 /* nextAvailableVaddr */
        start local 4 // int nextAvailableVaddr
         2: .line 784
            aload 1 /* el */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getOwner:()Lcom/oracle/objectfile/ObjectFile;
            iload 2 /* vaddrHint */
            i2l
            aload 0 /* alreadyDecided */
            invokevirtual com.oracle.objectfile.ObjectFile.elementsMappedOnPage:(JLjava/util/Map;)Ljava/lang/Iterable;
            astore 5 /* onCurrentPage */
        start local 5 // java.lang.Iterable onCurrentPage
         3: .line 786
            iconst_0
            istore 6 /* mustStartNewPage */
        start local 6 // boolean mustStartNewPage
         4: .line 787
            aload 5 /* onCurrentPage */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 21
      StackMap locals: java.util.Map com.oracle.objectfile.ObjectFile$Element int int int java.lang.Iterable int top java.util.Iterator
      StackMap stack:
         5: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.ObjectFile$Element
            astore 7 /* alreadyMapped */
        start local 7 // com.oracle.objectfile.ObjectFile$Element alreadyMapped
         6: .line 792
            aload 0 /* alreadyDecided */
            aload 7 /* alreadyMapped */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecidedValue:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 9 /* existingOffset */
        start local 9 // int existingOffset
         7: .line 793
            aload 0 /* alreadyDecided */
            aload 7 /* alreadyMapped */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.SIZE:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecidedValue:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 10 /* existingSize */
        start local 10 // int existingSize
         8: .line 794
            iload 9 /* existingOffset */
            iload 10 /* existingSize */
            iadd
            istore 11 /* existingEndPos */
        start local 11 // int existingEndPos
         9: .line 795
            iload 11 /* existingEndPos */
            aload 1 /* el */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getOwner:()Lcom/oracle/objectfile/ObjectFile;
            invokevirtual com.oracle.objectfile.ObjectFile.getPageSizeShift:()I
            ishr
            istore 12 /* endPageNum */
        start local 12 // int endPageNum
        10: .line 796
            iload 3 /* fileOffset */
            aload 1 /* el */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getOwner:()Lcom/oracle/objectfile/ObjectFile;
            invokevirtual com.oracle.objectfile.ObjectFile.getPageSizeShift:()I
            ishr
            istore 13 /* ourPageNum */
        start local 13 // int ourPageNum
        11: .line 797
            iload 6 /* mustStartNewPage */
            iload 12 /* endPageNum */
            iload 13 /* ourPageNum */
            if_icmpeq 12
            iconst_1
            goto 13
      StackMap locals: java.util.Map com.oracle.objectfile.ObjectFile$Element int int int java.lang.Iterable int com.oracle.objectfile.ObjectFile$Element java.util.Iterator int int int int int
      StackMap stack: int
        12: iconst_0
      StackMap locals: java.util.Map com.oracle.objectfile.ObjectFile$Element int int int java.lang.Iterable int com.oracle.objectfile.ObjectFile$Element java.util.Iterator int int int int int
      StackMap stack: int int
        13: ior
            istore 6 /* mustStartNewPage */
        14: .line 798
            iload 6 /* mustStartNewPage */
            ifeq 16
        15: .line 799
            goto 22
        16: .line 804
      StackMap locals:
      StackMap stack:
            iload 6 /* mustStartNewPage */
            aload 1 /* el */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getOwner:()Lcom/oracle/objectfile/ObjectFile;
            aload 1 /* el */
            aload 7 /* alreadyMapped */
            iload 3 /* fileOffset */
            aload 0 /* alreadyDecided */
            aload 7 /* alreadyMapped */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecidedValue:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual com.oracle.objectfile.ObjectFile.elementsCanSharePage:(Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/ObjectFile$Element;II)Z
            ifeq 17
            iconst_0
            goto 18
      StackMap locals:
      StackMap stack: int
        17: iconst_1
      StackMap locals: java.util.Map com.oracle.objectfile.ObjectFile$Element int int int java.lang.Iterable int com.oracle.objectfile.ObjectFile$Element java.util.Iterator int int int int int
      StackMap stack: int int
        18: ior
            istore 6 /* mustStartNewPage */
        19: .line 806
            iload 6 /* mustStartNewPage */
            ifeq 21
        20: .line 807
            goto 22
        end local 13 // int ourPageNum
        end local 12 // int endPageNum
        end local 11 // int existingEndPos
        end local 10 // int existingSize
        end local 9 // int existingOffset
        end local 7 // com.oracle.objectfile.ObjectFile$Element alreadyMapped
        21: .line 787
      StackMap locals: java.util.Map com.oracle.objectfile.ObjectFile$Element int int int java.lang.Iterable int top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        22: .line 811
      StackMap locals: java.util.Map com.oracle.objectfile.ObjectFile$Element int int int java.lang.Iterable int
      StackMap stack:
            iload 6 /* mustStartNewPage */
            ifeq 24
        23: .line 812
            iload 4 /* nextAvailableVaddr */
            aload 1 /* el */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getOwner:()Lcom/oracle/objectfile/ObjectFile;
            invokevirtual com.oracle.objectfile.ObjectFile.getPageSizeShift:()I
            ishr
            iconst_1
            iadd
            aload 1 /* el */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getOwner:()Lcom/oracle/objectfile/ObjectFile;
            invokevirtual com.oracle.objectfile.ObjectFile.getPageSizeShift:()I
            ishl
            istore 4 /* nextAvailableVaddr */
        24: .line 827
      StackMap locals:
      StackMap stack:
            aload 0 /* alreadyDecided */
            aload 1 /* el */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecidedValue:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 7 /* myOffset */
        start local 7 // int myOffset
        25: .line 838
            aload 0 /* alreadyDecided */
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            new com.oracle.objectfile.ObjectFile$IntegerDecisionComparator
            dup
            iconst_1
            invokespecial com.oracle.objectfile.ObjectFile$IntegerDecisionComparator.<init>:(Z)V
            invokestatic com.oracle.objectfile.ObjectFile.sortedDecisionValues:(Ljava/util/Map;Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/util/Comparator;)Ljava/util/List;
            astore 8 /* sortedOffsetDecisions */
        start local 8 // java.util.List sortedOffsetDecisions
        26: .line 840
            aconst_null
            astore 9 /* predDecision */
        start local 9 // com.oracle.objectfile.LayoutDecision predDecision
        27: .line 841
            aconst_null
            astore 10 /* predElement */
        start local 10 // com.oracle.objectfile.ObjectFile$Element predElement
        28: .line 842
            aload 8 /* sortedOffsetDecisions */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 33
      StackMap locals: java.util.Map com.oracle.objectfile.ObjectFile$Element int int int java.lang.Iterable int int java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.ObjectFile$Element top java.util.Iterator
      StackMap stack:
        29: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecision
            astore 11 /* d */
        start local 11 // com.oracle.objectfile.LayoutDecision d
        30: .line 843
            aload 11 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            aload 1 /* el */
            if_acmpne 32
        31: .line 844
            goto 34
        32: .line 846
      StackMap locals: java.util.Map com.oracle.objectfile.ObjectFile$Element int int int java.lang.Iterable int int java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision java.util.Iterator
      StackMap stack:
            aload 11 /* d */
            astore 9 /* predDecision */
        end local 11 // com.oracle.objectfile.LayoutDecision d
        33: .line 842
      StackMap locals: java.util.Map com.oracle.objectfile.ObjectFile$Element int int int java.lang.Iterable int int java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.ObjectFile$Element top java.util.Iterator
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 29
        34: .line 848
      StackMap locals: java.util.Map com.oracle.objectfile.ObjectFile$Element int int int java.lang.Iterable int int java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.ObjectFile$Element
      StackMap stack:
            aload 9 /* predDecision */
            ifnull 36
        35: .line 849
            aload 9 /* predDecision */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            astore 10 /* predElement */
        36: .line 852
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 11 /* firstSection */
        start local 11 // boolean firstSection
        37: .line 853
            iconst_0
            istore 12 /* inAnySegment */
        start local 12 // boolean inAnySegment
        38: .line 854
            aload 1 /* el */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getOwner:()Lcom/oracle/objectfile/ObjectFile;
            invokevirtual com.oracle.objectfile.ObjectFile.getSegments:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 14
            goto 44
      StackMap locals: java.util.Map com.oracle.objectfile.ObjectFile$Element int int int java.lang.Iterable int int java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.ObjectFile$Element int int top java.util.Iterator
      StackMap stack:
        39: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 13 /* l */
        start local 13 // java.util.List l
        40: .line 855
            aload 13 /* l */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            aload 1 /* el */
            if_acmpne 42
        41: .line 856
            iconst_1
            istore 11 /* firstSection */
        42: .line 858
      StackMap locals: java.util.Map com.oracle.objectfile.ObjectFile$Element int int int java.lang.Iterable int int java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.ObjectFile$Element int int java.util.List java.util.Iterator
      StackMap stack:
            aload 13 /* l */
            aload 1 /* el */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 44
        43: .line 859
            iconst_1
            istore 12 /* inAnySegment */
        end local 13 // java.util.List l
        44: .line 854
      StackMap locals: java.util.Map com.oracle.objectfile.ObjectFile$Element int int int java.lang.Iterable int int java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.ObjectFile$Element int int top java.util.Iterator
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 39
        45: .line 863
            aload 10 /* predElement */
            instanceof com.oracle.objectfile.ObjectFile$Section
            ifeq 48
        46: .line 864
            aload 1 /* el */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getOwner:()Lcom/oracle/objectfile/ObjectFile;
            aload 1 /* el */
            aload 10 /* predElement */
            iload 7 /* myOffset */
            aload 0 /* alreadyDecided */
            aload 10 /* predElement */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecidedValue:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual com.oracle.objectfile.ObjectFile.elementsCanSharePage:(Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/ObjectFile$Element;II)Z
            ifne 48
        47: .line 863
            iconst_0
            goto 49
      StackMap locals: java.util.Map com.oracle.objectfile.ObjectFile$Element int int int java.lang.Iterable int int java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.ObjectFile$Element int int
      StackMap stack:
        48: iconst_1
      StackMap locals:
      StackMap stack: int
        49: istore 13 /* canSharePageWithPredecessor */
        start local 13 // boolean canSharePageWithPredecessor
        50: .line 865
            aload 10 /* predElement */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.isLoadable:()Z
            istore 14 /* predSectionIsAlloc */
        start local 14 // boolean predSectionIsAlloc
        51: .line 867
            iload 11 /* firstSection */
            ifne 53
            iload 14 /* predSectionIsAlloc */
            ifeq 53
            iload 12 /* inAnySegment */
            ifne 52
            aload 10 /* predElement */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.isLoadable:()Z
            ifne 53
      StackMap locals: int int
      StackMap stack:
        52: iload 13 /* canSharePageWithPredecessor */
            ifeq 53
            iconst_0
            goto 54
      StackMap locals:
      StackMap stack:
        53: iconst_1
      StackMap locals:
      StackMap stack: int
        54: istore 15 /* requireModuloConstraint */
        start local 15 // boolean requireModuloConstraint
        55: .line 869
            iload 15 /* requireModuloConstraint */
            ifne 56
            iload 4 /* nextAvailableVaddr */
            aload 1 /* el */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getAlignment:()I
            invokestatic com.oracle.objectfile.ObjectFile.nextIntegerMultiple:(II)I
            goto 57
        56: .line 870
      StackMap locals: int
      StackMap stack:
            iload 4 /* nextAvailableVaddr */
            aload 1 /* el */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getAlignment:()I
            iload 3 /* fileOffset */
            aload 1 /* el */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getOwner:()Lcom/oracle/objectfile/ObjectFile;
            invokevirtual com.oracle.objectfile.ObjectFile.getPageSize:()I
            irem
            aload 1 /* el */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getOwner:()Lcom/oracle/objectfile/ObjectFile;
            invokevirtual com.oracle.objectfile.ObjectFile.getPageSize:()I
            invokestatic com.oracle.objectfile.ObjectFile.nextIntegerMultipleWithCongruence:(IIII)I
        57: .line 869
      StackMap locals:
      StackMap stack: int
            istore 16 /* vaddr */
        start local 16 // int vaddr
        58: .line 871
            iload 16 /* vaddr */
            aload 1 /* el */
            aload 0 /* alreadyDecided */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getMemSize:(Ljava/util/Map;)I
            iadd
            istore 4 /* nextAvailableVaddr */
        59: .line 873
            iload 16 /* vaddr */
            ireturn
        end local 16 // int vaddr
        end local 15 // boolean requireModuloConstraint
        end local 14 // boolean predSectionIsAlloc
        end local 13 // boolean canSharePageWithPredecessor
        end local 12 // boolean inAnySegment
        end local 11 // boolean firstSection
        end local 10 // com.oracle.objectfile.ObjectFile$Element predElement
        end local 9 // com.oracle.objectfile.LayoutDecision predDecision
        end local 8 // java.util.List sortedOffsetDecisions
        end local 7 // int myOffset
        end local 6 // boolean mustStartNewPage
        end local 5 // java.lang.Iterable onCurrentPage
        end local 4 // int nextAvailableVaddr
        end local 3 // int fileOffset
        end local 2 // int vaddrHint
        end local 1 // com.oracle.objectfile.ObjectFile$Element el
        end local 0 // java.util.Map alreadyDecided
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   60     0               alreadyDecided  Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
            0   60     1                           el  Lcom/oracle/objectfile/ObjectFile$Element;
            0   60     2                    vaddrHint  I
            1   60     3                   fileOffset  I
            2   60     4           nextAvailableVaddr  I
            3   60     5                onCurrentPage  Ljava/lang/Iterable<Lcom/oracle/objectfile/ObjectFile$Element;>;
            4   60     6             mustStartNewPage  Z
            6   21     7                alreadyMapped  Lcom/oracle/objectfile/ObjectFile$Element;
            7   21     9               existingOffset  I
            8   21    10                 existingSize  I
            9   21    11               existingEndPos  I
           10   21    12                   endPageNum  I
           11   21    13                   ourPageNum  I
           25   60     7                     myOffset  I
           26   60     8        sortedOffsetDecisions  Ljava/util/List<Lcom/oracle/objectfile/LayoutDecision;>;
           27   60     9                 predDecision  Lcom/oracle/objectfile/LayoutDecision;
           28   60    10                  predElement  Lcom/oracle/objectfile/ObjectFile$Element;
           30   33    11                            d  Lcom/oracle/objectfile/LayoutDecision;
           37   60    11                 firstSection  Z
           38   60    12                 inAnySegment  Z
           40   44    13                            l  Ljava/util/List<Lcom/oracle/objectfile/ObjectFile$Element;>;
           50   60    13  canSharePageWithPredecessor  Z
           51   60    14           predSectionIsAlloc  Z
           55   60    15      requireModuloConstraint  Z
           58   60    16                        vaddr  I
    Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;Lcom/oracle/objectfile/ObjectFile$Element;I)I
    MethodParameters:
                Name  Flags
      alreadyDecided  
      el              
      vaddrHint       final

  public static com.oracle.objectfile.LayoutDecisionMap defaultDecisions(com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap);
    descriptor: (Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;)Lcom/oracle/objectfile/LayoutDecisionMap;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.objectfile.ObjectFile$Element e
        start local 1 // com.oracle.objectfile.LayoutDecisionMap copyingIn
         0: .line 877
            new com.oracle.objectfile.LayoutDecisionMap
            dup
            aload 0 /* e */
            invokespecial com.oracle.objectfile.LayoutDecisionMap.<init>:(Lcom/oracle/objectfile/ObjectFile$Element;)V
            astore 2 /* decisions */
        start local 2 // com.oracle.objectfile.LayoutDecisionMap decisions
         1: .line 878
            aload 2 /* decisions */
            getstatic com.oracle.objectfile.LayoutDecision$Kind.CONTENT:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.putUndecided:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            pop
         2: .line 879
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 3
            aload 2 /* decisions */
            getstatic com.oracle.objectfile.LayoutDecision$Kind.CONTENT:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.isTaken:()Z
            ifeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 880
      StackMap locals: com.oracle.objectfile.LayoutDecisionMap
      StackMap stack:
            aload 2 /* decisions */
            getstatic com.oracle.objectfile.LayoutDecision$Kind.SIZE:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.putUndecided:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            pop
         4: .line 881
            aload 2 /* decisions */
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.putUndecided:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            pop
         5: .line 882
            aload 0 /* e */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.isReferenceable:()Z
            ifeq 7
         6: .line 883
            aload 2 /* decisions */
            getstatic com.oracle.objectfile.LayoutDecision$Kind.VADDR:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.putUndecided:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            pop
         7: .line 887
      StackMap locals:
      StackMap stack:
            aload 2 /* decisions */
            aload 1 /* copyingIn */
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.putDecidedValues:(Lcom/oracle/objectfile/LayoutDecisionMap;)V
         8: .line 888
            aload 2 /* decisions */
            areturn
        end local 2 // com.oracle.objectfile.LayoutDecisionMap decisions
        end local 1 // com.oracle.objectfile.LayoutDecisionMap copyingIn
        end local 0 // com.oracle.objectfile.ObjectFile$Element e
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0          e  Lcom/oracle/objectfile/ObjectFile$Element;
            0    9     1  copyingIn  Lcom/oracle/objectfile/LayoutDecisionMap;
            1    9     2  decisions  Lcom/oracle/objectfile/LayoutDecisionMap;
    MethodParameters:
           Name  Flags
      e          
      copyingIn  

  protected boolean elementsCanSharePage(com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.ObjectFile$Element, int, int);
    descriptor: (Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/ObjectFile$Element;II)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // com.oracle.objectfile.ObjectFile$Element s1
        start local 2 // com.oracle.objectfile.ObjectFile$Element s2
        start local 3 // int offset1
        start local 4 // int offset2
         0: .line 1124
            iload 3 /* offset1 */
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.getPageSizeShift:()I
            ishr
            iload 4 /* offset2 */
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.getPageSizeShift:()I
            ishr
            if_icmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 5 /* offsetSpaceCompatible */
        start local 5 // boolean offsetSpaceCompatible
         3: .line 1126
            iload 5 /* offsetSpaceCompatible */
            ireturn
        end local 5 // boolean offsetSpaceCompatible
        end local 4 // int offset2
        end local 3 // int offset1
        end local 2 // com.oracle.objectfile.ObjectFile$Element s2
        end local 1 // com.oracle.objectfile.ObjectFile$Element s1
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    4     0                   this  Lcom/oracle/objectfile/ObjectFile;
            0    4     1                     s1  Lcom/oracle/objectfile/ObjectFile$Element;
            0    4     2                     s2  Lcom/oracle/objectfile/ObjectFile$Element;
            0    4     3                offset1  I
            0    4     4                offset2  I
            3    4     5  offsetSpaceCompatible  Z
    MethodParameters:
         Name  Flags
      s1       
      s2       
      offset1  
      offset2  

  public void installDebugInfo(com.oracle.objectfile.debuginfo.DebugInfoProvider);
    descriptor: (Lcom/oracle/objectfile/debuginfo/DebugInfoProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // com.oracle.objectfile.debuginfo.DebugInfoProvider debugInfoProvider
         0: .line 1141
            return
        end local 1 // com.oracle.objectfile.debuginfo.DebugInfoProvider debugInfoProvider
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0               this  Lcom/oracle/objectfile/ObjectFile;
            0    1     1  debugInfoProvider  Lcom/oracle/objectfile/debuginfo/DebugInfoProvider;
    MethodParameters:
                   Name  Flags
      debugInfoProvider  

  protected static java.lang.Iterable<com.oracle.objectfile.LayoutDecision> allDecisions(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>);
    descriptor: (Ljava/util/Map;)Ljava/lang/Iterable;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Map decisions
         0: .line 1144
            aload 0 /* decisions */
            invokedynamic iterator(Ljava/util/Map;)Ljava/lang/Iterable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/util/Iterator;
                  com/oracle/objectfile/ObjectFile.lambda$0(Ljava/util/Map;)Ljava/util/Iterator; (6)
                  ()Ljava/util/Iterator;
            areturn
        end local 0 // java.util.Map decisions
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  decisions  Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
    Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;)Ljava/lang/Iterable<Lcom/oracle/objectfile/LayoutDecision;>;
    MethodParameters:
           Name  Flags
      decisions  final

  protected static java.lang.Iterable<com.oracle.objectfile.LayoutDecision> decisionsByKind(com.oracle.objectfile.LayoutDecision$Kind, java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>);
    descriptor: (Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/util/Map;)Ljava/lang/Iterable;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.objectfile.LayoutDecision$Kind kind
        start local 1 // java.util.Map decisions
         0: .line 1149
            aload 1 /* decisions */
            aload 0 /* kind */
            invokedynamic iterator(Ljava/util/Map;Lcom/oracle/objectfile/LayoutDecision$Kind;)Ljava/lang/Iterable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/util/Iterator;
                  com/oracle/objectfile/ObjectFile.lambda$2(Ljava/util/Map;Lcom/oracle/objectfile/LayoutDecision$Kind;)Ljava/util/Iterator; (6)
                  ()Ljava/util/Iterator;
            areturn
        end local 1 // java.util.Map decisions
        end local 0 // com.oracle.objectfile.LayoutDecision$Kind kind
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       kind  Lcom/oracle/objectfile/LayoutDecision$Kind;
            0    1     1  decisions  Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
    Signature: (Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;)Ljava/lang/Iterable<Lcom/oracle/objectfile/LayoutDecision;>;
    MethodParameters:
           Name  Flags
      kind       final
      decisions  final

  public java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap> getDecisionsTaken();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.objectfile.ObjectFile this
         0: .line 1155
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            areturn
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/objectfile/ObjectFile;
    Signature: ()Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;

  protected java.lang.Iterable<com.oracle.objectfile.ObjectFile$Element> elementsMappedOnPage(long, java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>);
    descriptor: (JLjava/util/Map;)Ljava/lang/Iterable;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=18, args_size=3
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // long vaddr
        start local 3 // java.util.Map alreadyDecided
         0: .line 1159
            lload 1 /* vaddr */
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.getPageSizeShift:()I
            lshr
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.getPageSizeShift:()I
            lshl
            lstore 4 /* vaddrRoundedDown */
        start local 4 // long vaddrRoundedDown
         1: .line 1162
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* ss */
        start local 6 // java.util.ArrayList ss
         2: .line 1164
            getstatic com.oracle.objectfile.LayoutDecision$Kind.VADDR:Lcom/oracle/objectfile/LayoutDecision$Kind;
            aload 3 /* alreadyDecided */
            invokestatic com.oracle.objectfile.ObjectFile.decisionsByKind:(Lcom/oracle/objectfile/LayoutDecision$Kind;Ljava/util/Map;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 15
      StackMap locals: com.oracle.objectfile.ObjectFile long java.util.Map long java.util.ArrayList top java.util.Iterator
      StackMap stack:
         3: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecision
            astore 7 /* d */
        start local 7 // com.oracle.objectfile.LayoutDecision d
         4: .line 1165
            aload 7 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            astore 9 /* s */
        start local 9 // com.oracle.objectfile.ObjectFile$Element s
         5: .line 1166
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 6
            aload 7 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getKind:()Lcom/oracle/objectfile/LayoutDecision$Kind;
            getstatic com.oracle.objectfile.LayoutDecision$Kind.VADDR:Lcom/oracle/objectfile/LayoutDecision$Kind;
            if_acmpeq 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 1167
      StackMap locals: com.oracle.objectfile.ObjectFile long java.util.Map long java.util.ArrayList com.oracle.objectfile.LayoutDecision java.util.Iterator com.oracle.objectfile.ObjectFile$Element
      StackMap stack:
            aload 7 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 10 /* va */
        start local 10 // int va
         7: .line 1168
            aload 7 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            aload 3 /* alreadyDecided */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getMemSize:(Ljava/util/Map;)I
            istore 11 /* sizeInMemory */
        start local 11 // int sizeInMemory
         8: .line 1169
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 9
            iload 11 /* sizeInMemory */
            iconst_m1
            if_icmpne 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 1173
      StackMap locals: int int
      StackMap stack:
            iload 10 /* va */
            istore 12 /* mappingBegin */
        start local 12 // int mappingBegin
        10: .line 1174
            iload 10 /* va */
            iload 11 /* sizeInMemory */
            iadd
            istore 13 /* mappingEnd */
        start local 13 // int mappingEnd
        11: .line 1175
            lload 4 /* vaddrRoundedDown */
            lstore 14 /* pageBegin */
        start local 14 // long pageBegin
        12: .line 1176
            lload 4 /* vaddrRoundedDown */
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.getPageSize:()I
            i2l
            ladd
            lstore 16 /* pageEnd */
        start local 16 // long pageEnd
        13: .line 1177
            iload 12 /* mappingBegin */
            i2l
            lload 16 /* pageEnd */
            lcmp
            ifge 15
            iload 13 /* mappingEnd */
            i2l
            lload 14 /* pageBegin */
            lcmp
            ifle 15
        14: .line 1178
            aload 6 /* ss */
            aload 9 /* s */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 16 // long pageEnd
        end local 14 // long pageBegin
        end local 13 // int mappingEnd
        end local 12 // int mappingBegin
        end local 11 // int sizeInMemory
        end local 10 // int va
        end local 9 // com.oracle.objectfile.ObjectFile$Element s
        end local 7 // com.oracle.objectfile.LayoutDecision d
        15: .line 1164
      StackMap locals: com.oracle.objectfile.ObjectFile long java.util.Map long java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        16: .line 1181
            aload 6 /* ss */
            areturn
        end local 6 // java.util.ArrayList ss
        end local 4 // long vaddrRoundedDown
        end local 3 // java.util.Map alreadyDecided
        end local 1 // long vaddr
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lcom/oracle/objectfile/ObjectFile;
            0   17     1             vaddr  J
            0   17     3    alreadyDecided  Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
            1   17     4  vaddrRoundedDown  J
            2   17     6                ss  Ljava/util/ArrayList<Lcom/oracle/objectfile/ObjectFile$Element;>;
            4   15     7                 d  Lcom/oracle/objectfile/LayoutDecision;
            5   15     9                 s  Lcom/oracle/objectfile/ObjectFile$Element;
            7   15    10                va  I
            8   15    11      sizeInMemory  I
           10   15    12      mappingBegin  I
           11   15    13        mappingEnd  I
           12   15    14         pageBegin  J
           13   15    16           pageEnd  J
    Signature: (JLjava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;)Ljava/lang/Iterable<Lcom/oracle/objectfile/ObjectFile$Element;>;
    MethodParameters:
                Name  Flags
      vaddr           
      alreadyDecided  

  protected com.oracle.objectfile.ElementList createElementList();
    descriptor: ()Lcom/oracle/objectfile/ElementList;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.objectfile.ObjectFile this
         0: .line 1198
            new com.oracle.objectfile.ElementList
            dup
            invokespecial com.oracle.objectfile.ElementList.<init>:()V
            areturn
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/objectfile/ObjectFile;

  public java.util.List<com.oracle.objectfile.ObjectFile$Element> getElements();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.objectfile.ObjectFile this
         0: .line 1202
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.elements:Lcom/oracle/objectfile/ElementList;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/objectfile/ObjectFile;
    Signature: ()Ljava/util/List<Lcom/oracle/objectfile/ObjectFile$Element;>;

  public com.oracle.objectfile.ObjectFile$Element elementForName(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/oracle/objectfile/ObjectFile$Element;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // java.lang.String s
         0: .line 1206
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.elements:Lcom/oracle/objectfile/ElementList;
            aload 1 /* s */
            invokevirtual com.oracle.objectfile.ElementList.forName:(Ljava/lang/String;)Lcom/oracle/objectfile/ObjectFile$Element;
            areturn
        end local 1 // java.lang.String s
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/objectfile/ObjectFile;
            0    1     1     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  public java.lang.String nameForElement(com.oracle.objectfile.ObjectFile$Element);
    descriptor: (Lcom/oracle/objectfile/ObjectFile$Element;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // com.oracle.objectfile.ObjectFile$Element e
         0: .line 1210
            aload 1 /* e */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getName:()Ljava/lang/String;
            areturn
        end local 1 // com.oracle.objectfile.ObjectFile$Element e
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/objectfile/ObjectFile;
            0    1     1     e  Lcom/oracle/objectfile/ObjectFile$Element;
    MethodParameters:
      Name  Flags
      e     

  public java.util.List<com.oracle.objectfile.ObjectFile$Section> getSections();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.oracle.objectfile.ObjectFile this
         0: .line 1216
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.elements:Lcom/oracle/objectfile/ElementList;
            invokevirtual com.oracle.objectfile.ElementList.sectionsCount:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* sections */
        start local 1 // java.util.List sections
         1: .line 1217
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.elements:Lcom/oracle/objectfile/ElementList;
            invokevirtual com.oracle.objectfile.ElementList.sectionsIterator:()Ljava/util/Iterator;
            astore 2 /* it */
        start local 2 // java.util.Iterator it
         2: .line 1218
            goto 4
         3: .line 1219
      StackMap locals: java.util.List java.util.Iterator
      StackMap stack:
            aload 1 /* sections */
            aload 2 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.ObjectFile$Section
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 1218
      StackMap locals:
      StackMap stack:
            aload 2 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         5: .line 1221
            aload 1 /* sections */
            areturn
        end local 2 // java.util.Iterator it
        end local 1 // java.util.List sections
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/objectfile/ObjectFile;
            1    6     1  sections  Ljava/util/List<Lcom/oracle/objectfile/ObjectFile$Section;>;
            2    6     2        it  Ljava/util/Iterator<Lcom/oracle/objectfile/ObjectFile$Section;>;
    Signature: ()Ljava/util/List<Lcom/oracle/objectfile/ObjectFile$Section;>;

  public abstract java.util.Set<com.oracle.objectfile.ObjectFile$Segment> getSegments();
    descriptor: ()Ljava/util/Set;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/Set<Lcom/oracle/objectfile/ObjectFile$Segment;>;

  public com.oracle.objectfile.ObjectFile$Header getHeader();
    descriptor: ()Lcom/oracle/objectfile/ObjectFile$Header;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.objectfile.ObjectFile this
         0: .line 1231
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.elements:Lcom/oracle/objectfile/ElementList;
            invokevirtual com.oracle.objectfile.ElementList.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* headers */
        start local 1 // java.util.ArrayList headers
         1: .line 1232
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.elements:Lcom/oracle/objectfile/ElementList;
            invokevirtual com.oracle.objectfile.ElementList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.ArrayList top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.ObjectFile$Element
            astore 2 /* e */
        start local 2 // com.oracle.objectfile.ObjectFile$Element e
         3: .line 1233
            aload 2 /* e */
            instanceof com.oracle.objectfile.ObjectFile$Header
            ifeq 5
         4: .line 1234
            aload 1 /* headers */
            aload 2 /* e */
            checkcast com.oracle.objectfile.ObjectFile$Header
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // com.oracle.objectfile.ObjectFile$Element e
         5: .line 1232
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 1237
            aload 1 /* headers */
            invokevirtual java.util.ArrayList.size:()I
            ifne 8
         7: .line 1238
            new java.lang.IllegalStateException
            dup
            ldc "file has no header"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 1239
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.ArrayList
      StackMap stack:
            aload 1 /* headers */
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            if_icmple 10
         9: .line 1240
            new java.lang.IllegalStateException
            dup
            ldc "file has multiple headers"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 1242
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 11
            aload 1 /* headers */
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            if_icmpeq 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 1244
      StackMap locals:
      StackMap stack:
            aload 1 /* headers */
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.oracle.objectfile.ObjectFile$Header
            areturn
        end local 1 // java.util.ArrayList headers
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lcom/oracle/objectfile/ObjectFile;
            1   12     1  headers  Ljava/util/ArrayList<Lcom/oracle/objectfile/ObjectFile$Header;>;
            3    5     2        e  Lcom/oracle/objectfile/ObjectFile$Element;

  public com.oracle.objectfile.ObjectFile$Element getOffsetBootstrapElement();
    descriptor: ()Lcom/oracle/objectfile/ObjectFile$Element;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.objectfile.ObjectFile this
         0: .line 1253
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.getHeader:()Lcom/oracle/objectfile/ObjectFile$Header;
            areturn
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/objectfile/ObjectFile;

  public final void write(java.nio.channels.FileChannel);
    descriptor: (Ljava/nio/channels/FileChannel;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // java.nio.channels.FileChannel outputChannel
         0: .line 1267
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* sortedObjectFileElements */
        start local 2 // java.util.List sortedObjectFileElements
         1: .line 1268
            aload 0 /* this */
            aload 2 /* sortedObjectFileElements */
            invokevirtual com.oracle.objectfile.ObjectFile.bake:(Ljava/util/List;)I
            istore 3 /* totalSize */
        start local 3 // int totalSize
         2: .line 1270
            aload 1 /* outputChannel */
            getstatic java.nio.channels.FileChannel$MapMode.READ_WRITE:Ljava/nio/channels/FileChannel$MapMode;
            lconst_0
            iload 3 /* totalSize */
            i2l
            invokevirtual java.nio.channels.FileChannel.map:(Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer;
            astore 4 /* buffer */
        start local 4 // java.nio.ByteBuffer buffer
         3: .line 1271
            aconst_null
            astore 5
            aconst_null
            astore 6
         4: aload 4 /* buffer */
            invokedynamic close(Ljava/nio/ByteBuffer;)Ljava/io/Closeable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  com/oracle/objectfile/ObjectFile.lambda$5(Ljava/nio/ByteBuffer;)V (6)
                  ()V
            astore 7 /* ignored */
        start local 7 // java.io.Closeable ignored
         5: .line 1272
            aload 0 /* this */
            aload 2 /* sortedObjectFileElements */
            aload 4 /* buffer */
            invokevirtual com.oracle.objectfile.ObjectFile.writeBuffer:(Ljava/util/List;Ljava/nio/ByteBuffer;)V
         6: .line 1273
            aload 7 /* ignored */
            ifnull 14
            aload 7 /* ignored */
            invokeinterface java.io.Closeable.close:()V
            goto 14
      StackMap locals: com.oracle.objectfile.ObjectFile java.nio.channels.FileChannel java.util.List int java.nio.ByteBuffer java.lang.Throwable java.lang.Throwable java.io.Closeable
      StackMap stack: java.lang.Throwable
         7: astore 5
            aload 7 /* ignored */
            ifnull 8
            aload 7 /* ignored */
            invokeinterface java.io.Closeable.close:()V
        end local 7 // java.io.Closeable ignored
      StackMap locals:
      StackMap stack:
         8: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 6
            aload 5
            ifnonnull 10
            aload 6
            astore 5
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 5
            aload 6
            if_acmpeq 11
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 5
            athrow
        end local 4 // java.nio.ByteBuffer buffer
        12: .line 1274
      StackMap locals: com.oracle.objectfile.ObjectFile java.nio.channels.FileChannel java.util.List int
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        13: .line 1275
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException e
        14: .line 1277
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int totalSize
        end local 2 // java.util.List sortedObjectFileElements
        end local 1 // java.nio.channels.FileChannel outputChannel
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   15     0                      this  Lcom/oracle/objectfile/ObjectFile;
            0   15     1             outputChannel  Ljava/nio/channels/FileChannel;
            1   15     2  sortedObjectFileElements  Ljava/util/List<Lcom/oracle/objectfile/ObjectFile$Element;>;
            2   15     3                 totalSize  I
            3   12     4                    buffer  Ljava/nio/ByteBuffer;
            5    8     7                   ignored  Ljava/io/Closeable;
           13   14     4                         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           5     6       7  any
           4     9       9  any
           2    12      12  Class java.io.IOException
    MethodParameters:
               Name  Flags
      outputChannel  

  void putDependency(com.oracle.objectfile.BuildDependency);
    descriptor: (Lcom/oracle/objectfile/BuildDependency;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // com.oracle.objectfile.BuildDependency d
         0: .line 1293
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDependencies:Ljava/util/TreeSet;
            aload 1 /* d */
            invokevirtual java.util.TreeSet.add:(Ljava/lang/Object;)Z
            pop
         1: .line 1294
            return
        end local 1 // com.oracle.objectfile.BuildDependency d
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/objectfile/ObjectFile;
            0    2     1     d  Lcom/oracle/objectfile/BuildDependency;
    MethodParameters:
      Name  Flags
      d     

  com.oracle.objectfile.BuildDependency getExistingDependency(com.oracle.objectfile.BuildDependency);
    descriptor: (Lcom/oracle/objectfile/BuildDependency;)Lcom/oracle/objectfile/BuildDependency;
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // com.oracle.objectfile.BuildDependency d
         0: .line 1305
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDependencies:Ljava/util/TreeSet;
            aload 1 /* d */
            invokevirtual java.util.TreeSet.contains:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1306
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDependencies:Ljava/util/TreeSet;
            aload 1 /* d */
            iconst_1
            aload 1 /* d */
            iconst_1
            invokevirtual java.util.TreeSet.subSet:(Ljava/lang/Object;ZLjava/lang/Object;Z)Ljava/util/NavigableSet;
            invokeinterface java.util.NavigableSet.first:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.BuildDependency
            areturn
         2: .line 1308
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // com.oracle.objectfile.BuildDependency d
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/objectfile/ObjectFile;
            0    3     1     d  Lcom/oracle/objectfile/BuildDependency;
    MethodParameters:
      Name  Flags
      d     

  private java.lang.String dependencyGraphAsDotString(java.util.Set<com.oracle.objectfile.LayoutDecision>);
    descriptor: (Ljava/util/Set;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // java.util.Set decisionsToInclude
         0: .line 1315
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 1316
            aload 2 /* sb */
            ldc "digraph deps {\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 1317
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDependencies:Ljava/util/TreeSet;
            invokevirtual java.util.TreeSet.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.Set java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.BuildDependency
            astore 3 /* d */
        start local 3 // com.oracle.objectfile.BuildDependency d
         4: .line 1318
            aload 1 /* decisionsToInclude */
            ifnull 5
            aload 1 /* decisionsToInclude */
            aload 3 /* d */
            getfield com.oracle.objectfile.BuildDependency.depending:Lcom/oracle/objectfile/LayoutDecision;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 6
            aload 1 /* decisionsToInclude */
            aload 3 /* d */
            getfield com.oracle.objectfile.BuildDependency.dependedOn:Lcom/oracle/objectfile/LayoutDecision;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 1319
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.Set java.lang.StringBuilder com.oracle.objectfile.BuildDependency java.util.Iterator
      StackMap stack:
            aload 2 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "\t\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* d */
            getfield com.oracle.objectfile.BuildDependency.depending:Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\" -> \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* d */
            getfield com.oracle.objectfile.BuildDependency.dependedOn:Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\";\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 3 // com.oracle.objectfile.BuildDependency d
         6: .line 1317
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.Set java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 1322
            aload 2 /* sb */
            ldc "}\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 1323
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // java.util.Set decisionsToInclude
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    9     0                this  Lcom/oracle/objectfile/ObjectFile;
            0    9     1  decisionsToInclude  Ljava/util/Set<Lcom/oracle/objectfile/LayoutDecision;>;
            1    9     2                  sb  Ljava/lang/StringBuilder;
            4    6     3                   d  Lcom/oracle/objectfile/BuildDependency;
    Signature: (Ljava/util/Set<Lcom/oracle/objectfile/LayoutDecision;>;)Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      decisionsToInclude  

  public int bake(java.util.List<com.oracle.objectfile.ObjectFile$Element>);
    descriptor: (Ljava/util/List;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=21, args_size=2
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // java.util.List sortedObjectFileElements
         0: .line 1343
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDecisions:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.clear:()V
         1: .line 1344
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsByElement:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         2: .line 1345
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.dependenciesByDependingElement:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         3: .line 1346
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.dependenciesByDependedOnElement:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         4: .line 1352
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.elements:Lcom/oracle/objectfile/ElementList;
            invokevirtual com.oracle.objectfile.ElementList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 13
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List top java.util.Iterator
      StackMap stack:
         5: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.ObjectFile$Element
            astore 2 /* e */
        start local 2 // com.oracle.objectfile.ObjectFile$Element e
         6: .line 1353
            aload 2 /* e */
            new com.oracle.objectfile.LayoutDecisionMap
            dup
            aload 2 /* e */
            invokespecial com.oracle.objectfile.LayoutDecisionMap.<init>:(Lcom/oracle/objectfile/ObjectFile$Element;)V
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getDecisions:(Lcom/oracle/objectfile/LayoutDecisionMap;)Lcom/oracle/objectfile/LayoutDecisionMap;
            astore 4 /* m */
        start local 4 // com.oracle.objectfile.LayoutDecisionMap m
         7: .line 1355
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDecisions:Ljava/util/HashSet;
            aload 4 /* m */
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecisions:()Ljava/util/Collection;
            invokevirtual java.util.HashSet.addAll:(Ljava/util/Collection;)Z
            pop
         8: .line 1357
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsByElement:Ljava/util/Map;
            aload 2 /* e */
            aload 4 /* m */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 1363
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 10
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsByElement:Ljava/util/Map;
            aload 2 /* e */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 1364
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.ObjectFile$Element java.util.Iterator com.oracle.objectfile.LayoutDecisionMap
      StackMap stack:
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 11
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsByElement:Ljava/util/Map;
            aload 2 /* e */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.CONTENT:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.containsKey:(Ljava/lang/Object;)Z
            ifne 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 1365
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 12
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsByElement:Ljava/util/Map;
            aload 2 /* e */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.SIZE:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.containsKey:(Ljava/lang/Object;)Z
            ifne 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 1366
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 13
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsByElement:Ljava/util/Map;
            aload 2 /* e */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.containsKey:(Ljava/lang/Object;)Z
            ifne 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 4 // com.oracle.objectfile.LayoutDecisionMap m
        end local 2 // com.oracle.objectfile.ObjectFile$Element e
        13: .line 1352
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        14: .line 1377
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.elements:Lcom/oracle/objectfile/ElementList;
            invokevirtual com.oracle.objectfile.ElementList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 35
      StackMap locals:
      StackMap stack:
        15: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.ObjectFile$Element
            astore 2 /* e */
        start local 2 // com.oracle.objectfile.ObjectFile$Element e
        16: .line 1378
            aload 2 /* e */
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsByElement:Ljava/util/Map;
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getDependencies:(Ljava/util/Map;)Ljava/lang/Iterable;
            astore 4 /* deps */
        start local 4 // java.lang.Iterable deps
        17: .line 1379
            aload 4 /* deps */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 34
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.ObjectFile$Element java.util.Iterator java.lang.Iterable top java.util.Iterator
      StackMap stack:
        18: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.BuildDependency
            astore 5 /* dep */
        start local 5 // com.oracle.objectfile.BuildDependency dep
        19: .line 1380
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDependencies:Ljava/util/TreeSet;
            aload 5 /* dep */
            invokevirtual java.util.TreeSet.add:(Ljava/lang/Object;)Z
            pop
        20: .line 1385
            aload 5 /* dep */
            getfield com.oracle.objectfile.BuildDependency.depending:Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            astore 7 /* dependingElement */
        start local 7 // com.oracle.objectfile.ObjectFile$Element dependingElement
        21: .line 1386
            aload 5 /* dep */
            getfield com.oracle.objectfile.BuildDependency.dependedOn:Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            astore 8 /* dependedOnElement */
        start local 8 // com.oracle.objectfile.ObjectFile$Element dependedOnElement
        22: .line 1388
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.dependenciesByDependingElement:Ljava/util/Map;
            aload 7 /* dependingElement */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 9 /* byDepending */
        start local 9 // java.util.List byDepending
        23: .line 1389
            aload 9 /* byDepending */
            ifnonnull 26
        24: .line 1390
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 9 /* byDepending */
        25: .line 1391
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.dependenciesByDependingElement:Ljava/util/Map;
            aload 7 /* dependingElement */
            aload 9 /* byDepending */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        26: .line 1393
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.ObjectFile$Element java.util.Iterator java.lang.Iterable com.oracle.objectfile.BuildDependency java.util.Iterator com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.ObjectFile$Element java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.dependenciesByDependedOnElement:Ljava/util/Map;
            aload 8 /* dependedOnElement */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 10 /* byDependedOn */
        start local 10 // java.util.List byDependedOn
        27: .line 1394
            aload 10 /* byDependedOn */
            ifnonnull 30
        28: .line 1395
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* byDependedOn */
        29: .line 1396
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.dependenciesByDependedOnElement:Ljava/util/Map;
            aload 8 /* dependedOnElement */
            aload 10 /* byDependedOn */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        30: .line 1398
      StackMap locals: java.util.List
      StackMap stack:
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 31
            aload 5 /* dep */
            getfield com.oracle.objectfile.BuildDependency.depending:Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            aload 7 /* dependingElement */
            if_acmpeq 31
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        31: .line 1399
      StackMap locals:
      StackMap stack:
            aload 9 /* byDepending */
            aload 5 /* dep */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        32: .line 1400
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 33
            aload 5 /* dep */
            getfield com.oracle.objectfile.BuildDependency.dependedOn:Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            aload 8 /* dependedOnElement */
            if_acmpeq 33
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        33: .line 1401
      StackMap locals:
      StackMap stack:
            aload 10 /* byDependedOn */
            aload 5 /* dep */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // java.util.List byDependedOn
        end local 9 // java.util.List byDepending
        end local 8 // com.oracle.objectfile.ObjectFile$Element dependedOnElement
        end local 7 // com.oracle.objectfile.ObjectFile$Element dependingElement
        end local 5 // com.oracle.objectfile.BuildDependency dep
        34: .line 1379
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.ObjectFile$Element java.util.Iterator java.lang.Iterable top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        end local 4 // java.lang.Iterable deps
        end local 2 // com.oracle.objectfile.ObjectFile$Element e
        35: .line 1377
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        36: .line 1409
            new com.oracle.objectfile.LayoutDecision
            dup
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            aconst_null
            aconst_null
            invokespecial com.oracle.objectfile.LayoutDecision.<init>:(Lcom/oracle/objectfile/LayoutDecision$Kind;Lcom/oracle/objectfile/ObjectFile$Element;Ljava/lang/Object;)V
            astore 2 /* dummyFinalDecision */
        start local 2 // com.oracle.objectfile.LayoutDecision dummyFinalDecision
        37: .line 1411
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDecisions:Ljava/util/HashSet;
            iconst_0
            anewarray com.oracle.objectfile.LayoutDecision
            invokevirtual java.util.HashSet.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecision[]
            astore 3 /* realDecisions */
        start local 3 // com.oracle.objectfile.LayoutDecision[] realDecisions
        38: .line 1413
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDecisions:Ljava/util/HashSet;
            aload 2 /* dummyFinalDecision */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        39: .line 1414
            aload 3 /* realDecisions */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 45
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] top int int com.oracle.objectfile.LayoutDecision[]
      StackMap stack:
        40: aload 7
            iload 5
            aaload
            astore 4 /* decision */
        start local 4 // com.oracle.objectfile.LayoutDecision decision
        41: .line 1415
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 42
            aload 4 /* decision */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            ifnonnull 42
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        42: .line 1416
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.LayoutDecision int int com.oracle.objectfile.LayoutDecision[]
      StackMap stack:
            aload 2 /* dummyFinalDecision */
            invokevirtual com.oracle.objectfile.LayoutDecision.dependsOn:()Ljava/util/List;
            aload 4 /* decision */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        43: .line 1417
            aload 4 /* decision */
            invokevirtual com.oracle.objectfile.LayoutDecision.dependedOnBy:()Ljava/util/List;
            aload 2 /* dummyFinalDecision */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // com.oracle.objectfile.LayoutDecision decision
        44: .line 1414
            iinc 5 1
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] top int int com.oracle.objectfile.LayoutDecision[]
      StackMap stack:
        45: iload 5
            iload 6
            if_icmplt 40
        46: .line 1419
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 47
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDecisions:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.size:()I
            iconst_1
            if_icmpgt 47
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        47: .line 1425
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[]
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.getOffsetBootstrapElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            astore 4 /* offsetBootstrapElement */
        start local 4 // com.oracle.objectfile.ObjectFile$Element offsetBootstrapElement
        48: .line 1426
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsByElement:Ljava/util/Map;
            aload 4 /* offsetBootstrapElement */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            astore 5 /* offsetBootstrapDecision */
        start local 5 // com.oracle.objectfile.LayoutDecision offsetBootstrapDecision
        49: .line 1427
            iconst_0
            istore 6 /* added */
        start local 6 // boolean added
        50: .line 1428
            iconst_0
            istore 7 /* sawBootstrapOffsetDecision */
        start local 7 // boolean sawBootstrapOffsetDecision
        51: .line 1429
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDecisions:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
            astore 9
            goto 91
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int top java.util.Iterator
      StackMap stack:
        52: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecision
            astore 8 /* d */
        start local 8 // com.oracle.objectfile.LayoutDecision d
        53: .line 1430
            aload 8 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getKind:()Lcom/oracle/objectfile/LayoutDecision$Kind;
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            if_acmpne 59
            aload 8 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            aload 4 /* offsetBootstrapElement */
            if_acmpne 59
        54: .line 1431
            iconst_1
            istore 7 /* sawBootstrapOffsetDecision */
        55: .line 1433
            aload 8 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.dependsOn:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 58
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int com.oracle.objectfile.LayoutDecision java.util.Iterator top java.util.Iterator
      StackMap stack:
        56: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecision
            astore 10 /* dependedOn */
        start local 10 // com.oracle.objectfile.LayoutDecision dependedOn
        57: .line 1434
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 58
            aload 10 /* dependedOn */
            invokevirtual com.oracle.objectfile.LayoutDecision.getKind:()Lcom/oracle/objectfile/LayoutDecision$Kind;
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            if_acmpne 58
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 10 // com.oracle.objectfile.LayoutDecision dependedOn
        58: .line 1433
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 56
        59: .line 1438
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int com.oracle.objectfile.LayoutDecision java.util.Iterator
      StackMap stack:
            aload 8 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getKind:()Lcom/oracle/objectfile/LayoutDecision$Kind;
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            if_acmpne 91
            aload 8 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            aload 4 /* offsetBootstrapElement */
            if_acmpeq 91
            aload 8 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            ifnull 91
        60: .line 1443
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.dependenciesByDependingElement:Ljava/util/Map;
            aload 8 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 10 /* l1 */
        start local 10 // java.util.List l1
        61: .line 1445
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.dependenciesByDependedOnElement:Ljava/util/Map;
            aload 4 /* offsetBootstrapElement */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 11 /* l2 */
        start local 11 // java.util.List l2
        62: .line 1446
            aload 10 /* l1 */
            ifnonnull 65
        63: .line 1447
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* l1 */
        64: .line 1448
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.dependenciesByDependingElement:Ljava/util/Map;
            aload 8 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            aload 10 /* l1 */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        65: .line 1450
      StackMap locals: java.util.List java.util.List
      StackMap stack:
            aload 11 /* l2 */
            ifnonnull 68
        66: .line 1451
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 11 /* l2 */
        67: .line 1452
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.dependenciesByDependedOnElement:Ljava/util/Map;
            aload 4 /* offsetBootstrapElement */
            aload 11 /* l2 */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        68: .line 1455
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 12 /* l1contains */
        start local 12 // boolean l1contains
        69: .line 1456
            aload 10 /* l1 */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 74
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int com.oracle.objectfile.LayoutDecision java.util.Iterator java.util.List java.util.List int top java.util.Iterator
      StackMap stack:
        70: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.BuildDependency
            astore 13 /* dep1 */
        start local 13 // com.oracle.objectfile.BuildDependency dep1
        71: .line 1457
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 72
            aload 13 /* dep1 */
            getfield com.oracle.objectfile.BuildDependency.depending:Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            aload 8 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            if_acmpeq 72
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        72: .line 1458
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int com.oracle.objectfile.LayoutDecision java.util.Iterator java.util.List java.util.List int com.oracle.objectfile.BuildDependency java.util.Iterator
      StackMap stack:
            aload 13 /* dep1 */
            getfield com.oracle.objectfile.BuildDependency.depending:Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.getKind:()Lcom/oracle/objectfile/LayoutDecision$Kind;
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            if_acmpne 74
            aload 13 /* dep1 */
            getfield com.oracle.objectfile.BuildDependency.dependedOn:Lcom/oracle/objectfile/LayoutDecision;
            aload 5 /* offsetBootstrapDecision */
            if_acmpne 74
        73: .line 1459
            iconst_1
            istore 12 /* l1contains */
        end local 13 // com.oracle.objectfile.BuildDependency dep1
        74: .line 1456
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int com.oracle.objectfile.LayoutDecision java.util.Iterator java.util.List java.util.List int top java.util.Iterator
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 70
        75: .line 1462
            iconst_0
            istore 13 /* l2contains */
        start local 13 // boolean l2contains
        76: .line 1463
            aload 11 /* l2 */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 15
            goto 81
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int com.oracle.objectfile.LayoutDecision java.util.Iterator java.util.List java.util.List int int top java.util.Iterator
      StackMap stack:
        77: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.BuildDependency
            astore 14 /* dep2 */
        start local 14 // com.oracle.objectfile.BuildDependency dep2
        78: .line 1464
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 79
            aload 14 /* dep2 */
            getfield com.oracle.objectfile.BuildDependency.dependedOn:Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            aload 4 /* offsetBootstrapElement */
            if_acmpeq 79
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        79: .line 1465
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int com.oracle.objectfile.LayoutDecision java.util.Iterator java.util.List java.util.List int int com.oracle.objectfile.BuildDependency java.util.Iterator
      StackMap stack:
            aload 14 /* dep2 */
            getfield com.oracle.objectfile.BuildDependency.dependedOn:Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.getKind:()Lcom/oracle/objectfile/LayoutDecision$Kind;
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            if_acmpne 81
            aload 14 /* dep2 */
            getfield com.oracle.objectfile.BuildDependency.depending:Lcom/oracle/objectfile/LayoutDecision;
            aload 8 /* d */
            if_acmpne 81
        80: .line 1466
            iconst_1
            istore 13 /* l2contains */
        end local 14 // com.oracle.objectfile.BuildDependency dep2
        81: .line 1463
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int com.oracle.objectfile.LayoutDecision java.util.Iterator java.util.List java.util.List int int top java.util.Iterator
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 77
        82: .line 1469
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 85
            iload 12 /* l1contains */
            ifne 83
            iload 13 /* l2contains */
            ifeq 85
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int com.oracle.objectfile.LayoutDecision java.util.Iterator java.util.List java.util.List int int
      StackMap stack:
        83: iload 12 /* l1contains */
            ifeq 84
            iload 13 /* l2contains */
            ifne 85
      StackMap locals:
      StackMap stack:
        84: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        85: .line 1471
      StackMap locals:
      StackMap stack:
            iload 12 /* l1contains */
            ifne 90
        86: .line 1472
            aload 8 /* d */
            aload 5 /* offsetBootstrapDecision */
            invokestatic com.oracle.objectfile.BuildDependency.createOrGet:(Lcom/oracle/objectfile/LayoutDecision;Lcom/oracle/objectfile/LayoutDecision;)Lcom/oracle/objectfile/BuildDependency;
            astore 14 /* dep */
        start local 14 // com.oracle.objectfile.BuildDependency dep
        87: .line 1473
            aload 10 /* l1 */
            aload 14 /* dep */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        88: .line 1474
            aload 11 /* l2 */
            aload 14 /* dep */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        89: .line 1475
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDependencies:Ljava/util/TreeSet;
            aload 14 /* dep */
            invokevirtual java.util.TreeSet.add:(Ljava/lang/Object;)Z
            pop
        end local 14 // com.oracle.objectfile.BuildDependency dep
        90: .line 1478
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* added */
        end local 13 // boolean l2contains
        end local 12 // boolean l1contains
        end local 11 // java.util.List l2
        end local 10 // java.util.List l1
        end local 8 // com.oracle.objectfile.LayoutDecision d
        91: .line 1429
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 52
        92: .line 1481
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 93
            iload 7 /* sawBootstrapOffsetDecision */
            ifne 93
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        93: .line 1482
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int
      StackMap stack:
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 94
            iload 6 /* added */
            ifne 94
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.elements:Lcom/oracle/objectfile/ElementList;
            invokevirtual com.oracle.objectfile.ElementList.size:()I
            iconst_1
            if_icmpeq 94
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        94: .line 1495
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* reverseBuildOrder */
        start local 8 // java.util.List reverseBuildOrder
        95: .line 1498
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 9 /* decisionsWithNoInEdges */
        start local 9 // java.util.Set decisionsWithNoInEdges
        96: .line 1500
            aload 9 /* decisionsWithNoInEdges */
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDecisions:Ljava/util/HashSet;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        97: .line 1501
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDecisions:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
            astore 11
            goto 100
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int java.util.List java.util.Set top java.util.Iterator
      StackMap stack:
        98: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecision
            astore 10 /* d */
        start local 10 // com.oracle.objectfile.LayoutDecision d
        99: .line 1502
            aload 9 /* decisionsWithNoInEdges */
            aload 10 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.dependsOn:()Ljava/util/List;
            invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
            pop
        end local 10 // com.oracle.objectfile.LayoutDecision d
       100: .line 1501
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 98
       101: .line 1505
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 102
            aload 9 /* decisionsWithNoInEdges */
            aload 2 /* dummyFinalDecision */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 102
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       102: .line 1514
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int java.util.List java.util.Set
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 10 /* removedEdgesDependingOn */
        start local 10 // java.util.Map removedEdgesDependingOn
       103: .line 1515
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 11 /* removedEdgesDependedOnBy */
        start local 11 // java.util.Map removedEdgesDependedOnBy
       104: .line 1516
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDecisions:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
            astore 13
            goto 108
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int java.util.List java.util.Set java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
       105: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecision
            astore 12 /* l */
        start local 12 // com.oracle.objectfile.LayoutDecision l
       106: .line 1517
            aload 10 /* removedEdgesDependingOn */
            aload 12 /* l */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       107: .line 1518
            aload 11 /* removedEdgesDependedOnBy */
            aload 12 /* l */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 12 // com.oracle.objectfile.LayoutDecision l
       108: .line 1516
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 105
       109: .line 1522
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            astore 12 /* working */
        start local 12 // java.util.Set working
       110: .line 1523
            aload 12 /* working */
            aload 9 /* decisionsWithNoInEdges */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
       111: .line 1524
            goto 129
       112: .line 1525
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int java.util.List java.util.Set java.util.Map java.util.Map java.util.Set
      StackMap stack:
            aload 12 /* working */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecision
            astore 13 /* n */
        start local 13 // com.oracle.objectfile.LayoutDecision n
       113: .line 1526
            aload 12 /* working */
            aload 13 /* n */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
       114: .line 1527
            aload 8 /* reverseBuildOrder */
            aload 13 /* n */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       115: .line 1529
            aload 13 /* n */
            invokevirtual com.oracle.objectfile.LayoutDecision.dependsOn:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 15
            goto 128
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int java.util.List java.util.Set java.util.Map java.util.Map java.util.Set com.oracle.objectfile.LayoutDecision top java.util.Iterator
      StackMap stack:
       116: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecision
            astore 14 /* m */
        start local 14 // com.oracle.objectfile.LayoutDecision m
       117: .line 1531
            aload 10 /* removedEdgesDependingOn */
            aload 13 /* n */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.ArrayList
            aload 14 /* m */
            invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
            ifeq 119
       118: .line 1532
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 128
            aload 11 /* removedEdgesDependedOnBy */
            aload 14 /* m */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.ArrayList
            aload 13 /* n */
            invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
            ifne 128
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       119: .line 1536
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int java.util.List java.util.Set java.util.Map java.util.Map java.util.Set com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision java.util.Iterator
      StackMap stack:
            aload 10 /* removedEdgesDependingOn */
            aload 13 /* n */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.ArrayList
            aload 14 /* m */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       120: .line 1537
            aload 11 /* removedEdgesDependedOnBy */
            aload 14 /* m */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.ArrayList
            aload 13 /* n */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       121: .line 1539
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 16 /* mInEdges */
        start local 16 // java.util.ArrayList mInEdges
       122: .line 1540
            aload 16 /* mInEdges */
            aload 14 /* m */
            invokevirtual com.oracle.objectfile.LayoutDecision.dependedOnBy:()Ljava/util/List;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
       123: .line 1541
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 124
            aload 16 /* mInEdges */
            aload 13 /* n */
            invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
            ifne 124
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       124: .line 1542
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 16 /* mInEdges */
            aload 11 /* removedEdgesDependedOnBy */
            aload 14 /* m */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            invokevirtual java.util.ArrayList.removeAll:(Ljava/util/Collection;)Z
            pop
       125: .line 1543
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 126
            aload 16 /* mInEdges */
            aload 13 /* n */
            invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
            ifeq 126
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       126: .line 1544
      StackMap locals:
      StackMap stack:
            aload 16 /* mInEdges */
            invokevirtual java.util.ArrayList.size:()I
            ifne 128
       127: .line 1545
            aload 12 /* working */
            aload 14 /* m */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 16 // java.util.ArrayList mInEdges
        end local 14 // com.oracle.objectfile.LayoutDecision m
       128: .line 1529
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int java.util.List java.util.Set java.util.Map java.util.Map java.util.Set com.oracle.objectfile.LayoutDecision top java.util.Iterator
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 116
        end local 13 // com.oracle.objectfile.LayoutDecision n
       129: .line 1524
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int java.util.List java.util.Set java.util.Map java.util.Map java.util.Set
      StackMap stack:
            aload 12 /* working */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 112
       130: .line 1550
            aload 8 /* reverseBuildOrder */
            invokeinterface java.util.List.size:()I
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDecisions:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.size:()I
            if_icmpeq 135
       131: .line 1554
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 13 /* remainingDecisions */
        start local 13 // java.util.Set remainingDecisions
       132: .line 1555
            aload 13 /* remainingDecisions */
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.allDecisions:Ljava/util/HashSet;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
       133: .line 1556
            aload 13 /* remainingDecisions */
            aload 8 /* reverseBuildOrder */
            invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
            pop
       134: .line 1557
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cyclic build dependencies: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            aload 13 /* remainingDecisions */
            invokevirtual com.oracle.objectfile.ObjectFile.dependencyGraphAsDotString:(Ljava/util/Set;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 13 // java.util.Set remainingDecisions
       135: .line 1559
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 136
            aload 8 /* reverseBuildOrder */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            aload 2 /* dummyFinalDecision */
            if_acmpeq 136
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       136: .line 1561
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 8 /* reverseBuildOrder */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 13 /* buildOrder */
        start local 13 // java.util.ArrayList buildOrder
       137: .line 1562
            aload 8 /* reverseBuildOrder */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            istore 14 /* i */
        start local 14 // int i
       138: goto 141
       139: .line 1563
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            aload 13 /* buildOrder */
            aload 8 /* reverseBuildOrder */
            iload 14 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecision
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       140: .line 1562
            iinc 14 /* i */ -1
      StackMap locals:
      StackMap stack:
       141: iload 14 /* i */
            ifge 139
        end local 14 // int i
       142: .line 1569
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
       143: .line 1571
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.elements:Lcom/oracle/objectfile/ElementList;
            invokevirtual com.oracle.objectfile.ElementList.iterator:()Ljava/util/Iterator;
            astore 15
            goto 146
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int java.util.List java.util.Set java.util.Map java.util.Map java.util.Set java.util.ArrayList top java.util.Iterator
      StackMap stack:
       144: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.ObjectFile$Element
            astore 14 /* e */
        start local 14 // com.oracle.objectfile.ObjectFile$Element e
       145: .line 1572
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            aload 14 /* e */
            new com.oracle.objectfile.LayoutDecisionMap
            dup
            aload 14 /* e */
            invokespecial com.oracle.objectfile.LayoutDecisionMap.<init>:(Lcom/oracle/objectfile/ObjectFile$Element;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 14 // com.oracle.objectfile.ObjectFile$Element e
       146: .line 1571
      StackMap locals:
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 144
       147: .line 1582
            aload 13 /* buildOrder */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 15
            goto 178
      StackMap locals:
      StackMap stack:
       148: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecision
            astore 14 /* d */
        start local 14 // com.oracle.objectfile.LayoutDecision d
       149: .line 1583
            aload 14 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getElement:()Lcom/oracle/objectfile/ObjectFile$Element;
            astore 16 /* e */
        start local 16 // com.oracle.objectfile.ObjectFile$Element e
       150: .line 1584
            aload 16 /* e */
            ifnonnull 152
       151: .line 1585
            goto 178
       152: .line 1588
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int java.util.List java.util.Set java.util.Map java.util.Map java.util.Set java.util.ArrayList com.oracle.objectfile.LayoutDecision java.util.Iterator com.oracle.objectfile.ObjectFile$Element
      StackMap stack:
            aconst_null
            astore 17 /* valueDecided */
        start local 17 // java.lang.Object valueDecided
       153: .line 1589
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            invokestatic com.oracle.objectfile.ObjectFile.nextAvailableOffset:(Ljava/util/Map;)I
            istore 18 /* offsetHint */
        start local 18 // int offsetHint
       154: .line 1602
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            iconst_0
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.initialVaddr:()I
            invokestatic com.oracle.objectfile.ObjectFile.nextAvailableVaddr:(Ljava/util/Map;II)I
            istore 19 /* vaddrHint */
        start local 19 // int vaddrHint
       155: .line 1603
            aload 14 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.isTaken:()Z
            ifeq 158
       156: .line 1604
            aload 14 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getValue:()Ljava/lang/Object;
            astore 17 /* valueDecided */
       157: .line 1605
            goto 175
       158: .line 1606
      StackMap locals: java.lang.Object int int
      StackMap stack:
            invokestatic com.oracle.objectfile.ObjectFile.$SWITCH_TABLE$com$oracle$objectfile$LayoutDecision$Kind:()[I
            aload 14 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getKind:()Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecision$Kind.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 161
                    2: 163
                    3: 159
                    4: 173
                    5: 171
              default: 173
          }
       159: .line 1608
      StackMap locals:
      StackMap stack:
            aload 16 /* e */
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            iconst_0
            newarray 8
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getOrDecideContent:(Ljava/util/Map;[B)[B
            astore 17 /* valueDecided */
       160: .line 1609
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 174
            aload 17 /* valueDecided */
            ifnonnull 174
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       161: .line 1612
      StackMap locals:
      StackMap stack:
            aload 16 /* e */
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            iload 18 /* offsetHint */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getOrDecideOffset:(Ljava/util/Map;I)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 17 /* valueDecided */
       162: .line 1613
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 174
            aload 17 /* valueDecided */
            ifnonnull 174
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       163: .line 1617
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 20 /* decidedContent */
        start local 20 // byte[] decidedContent
       164: .line 1618
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            aload 16 /* e */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.CONTENT:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            ifnull 166
       165: .line 1619
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            aload 16 /* e */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.CONTENT:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.getValue:()Ljava/lang/Object;
            checkcast byte[]
            astore 20 /* decidedContent */
       166: .line 1621
      StackMap locals: byte[]
      StackMap stack:
            aload 16 /* e */
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            aload 20 /* decidedContent */
            ifnull 167
            aload 20 /* decidedContent */
            arraylength
            goto 168
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int java.util.List java.util.Set java.util.Map java.util.Map java.util.Set java.util.ArrayList com.oracle.objectfile.LayoutDecision java.util.Iterator com.oracle.objectfile.ObjectFile$Element java.lang.Object int int byte[]
      StackMap stack: com.oracle.objectfile.ObjectFile$Element java.util.Map
       167: iconst_m1
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int java.util.List java.util.Set java.util.Map java.util.Map java.util.Set java.util.ArrayList com.oracle.objectfile.LayoutDecision java.util.Iterator com.oracle.objectfile.ObjectFile$Element java.lang.Object int int byte[]
      StackMap stack: com.oracle.objectfile.ObjectFile$Element java.util.Map int
       168: invokevirtual com.oracle.objectfile.ObjectFile$Element.getOrDecideSize:(Ljava/util/Map;I)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 17 /* valueDecided */
       169: .line 1622
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 170
            aload 17 /* valueDecided */
            ifnonnull 170
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       170: .line 1623
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 174
            aload 17 /* valueDecided */
            instanceof java.lang.Integer
            ifeq 174
            aload 17 /* valueDecided */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_m1
            if_icmpne 174
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 20 // byte[] decidedContent
       171: .line 1626
      StackMap locals:
      StackMap stack:
            aload 16 /* e */
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            iload 19 /* vaddrHint */
            invokevirtual com.oracle.objectfile.ObjectFile$Element.getOrDecideVaddr:(Ljava/util/Map;I)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 17 /* valueDecided */
       172: .line 1627
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 174
            aload 17 /* valueDecided */
            ifnonnull 174
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       173: .line 1630
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            ldc "unreachable"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
       174: .line 1632
      StackMap locals:
      StackMap stack:
            aload 14 /* d */
            aload 17 /* valueDecided */
            invokevirtual com.oracle.objectfile.LayoutDecision.setValue:(Ljava/lang/Object;)V
       175: .line 1635
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            aload 16 /* e */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            astore 20 /* m */
        start local 20 // com.oracle.objectfile.LayoutDecisionMap m
       176: .line 1636
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 177
            aload 20 /* m */
            ifnonnull 177
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       177: .line 1639
      StackMap locals: com.oracle.objectfile.LayoutDecisionMap
      StackMap stack:
            aload 20 /* m */
            getfield com.oracle.objectfile.LayoutDecisionMap.decisions:Ljava/util/HashMap;
            aload 14 /* d */
            invokevirtual com.oracle.objectfile.LayoutDecision.getKind:()Lcom/oracle/objectfile/LayoutDecision$Kind;
            aload 14 /* d */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 20 // com.oracle.objectfile.LayoutDecisionMap m
        end local 19 // int vaddrHint
        end local 18 // int offsetHint
        end local 17 // java.lang.Object valueDecided
        end local 16 // com.oracle.objectfile.ObjectFile$Element e
        end local 14 // com.oracle.objectfile.LayoutDecision d
       178: .line 1582
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int java.util.List java.util.Set java.util.Map java.util.Map java.util.Set java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 148
       179: .line 1647
            aload 1 /* sortedObjectFileElements */
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.elements:Lcom/oracle/objectfile/ElementList;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
       180: .line 1648
            aload 1 /* sortedObjectFileElements */
            new com.oracle.objectfile.ObjectFile$ElementComparatorByDecidedOffset
            dup
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsByElement:Ljava/util/Map;
            invokespecial com.oracle.objectfile.ObjectFile$ElementComparatorByDecidedOffset.<init>:(Ljava/util/Map;)V
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
       181: .line 1650
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.getMinimumFileSize:()I
            istore 14 /* totalSize */
        start local 14 // int totalSize
       182: .line 1651
            aload 1 /* sortedObjectFileElements */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 16
            goto 185
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List com.oracle.objectfile.LayoutDecision com.oracle.objectfile.LayoutDecision[] com.oracle.objectfile.ObjectFile$Element com.oracle.objectfile.LayoutDecision int int java.util.List java.util.Set java.util.Map java.util.Map java.util.Set java.util.ArrayList int top java.util.Iterator
      StackMap stack:
       183: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.ObjectFile$Element
            astore 15 /* e */
        start local 15 // com.oracle.objectfile.ObjectFile$Element e
       184: .line 1652
            iload 14 /* totalSize */
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            aload 15 /* e */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            aload 15 /* e */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.SIZE:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecidedValue:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iadd
            invokestatic java.lang.Math.max:(II)I
            istore 14 /* totalSize */
        end local 15 // com.oracle.objectfile.ObjectFile$Element e
       185: .line 1651
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 183
       186: .line 1654
            iload 14 /* totalSize */
            ireturn
        end local 14 // int totalSize
        end local 13 // java.util.ArrayList buildOrder
        end local 12 // java.util.Set working
        end local 11 // java.util.Map removedEdgesDependedOnBy
        end local 10 // java.util.Map removedEdgesDependingOn
        end local 9 // java.util.Set decisionsWithNoInEdges
        end local 8 // java.util.List reverseBuildOrder
        end local 7 // boolean sawBootstrapOffsetDecision
        end local 6 // boolean added
        end local 5 // com.oracle.objectfile.LayoutDecision offsetBootstrapDecision
        end local 4 // com.oracle.objectfile.ObjectFile$Element offsetBootstrapElement
        end local 3 // com.oracle.objectfile.LayoutDecision[] realDecisions
        end local 2 // com.oracle.objectfile.LayoutDecision dummyFinalDecision
        end local 1 // java.util.List sortedObjectFileElements
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0  187     0                        this  Lcom/oracle/objectfile/ObjectFile;
            0  187     1    sortedObjectFileElements  Ljava/util/List<Lcom/oracle/objectfile/ObjectFile$Element;>;
            6   13     2                           e  Lcom/oracle/objectfile/ObjectFile$Element;
            7   13     4                           m  Lcom/oracle/objectfile/LayoutDecisionMap;
           16   35     2                           e  Lcom/oracle/objectfile/ObjectFile$Element;
           17   35     4                        deps  Ljava/lang/Iterable<Lcom/oracle/objectfile/BuildDependency;>;
           19   34     5                         dep  Lcom/oracle/objectfile/BuildDependency;
           21   34     7            dependingElement  Lcom/oracle/objectfile/ObjectFile$Element;
           22   34     8           dependedOnElement  Lcom/oracle/objectfile/ObjectFile$Element;
           23   34     9                 byDepending  Ljava/util/List<Lcom/oracle/objectfile/BuildDependency;>;
           27   34    10                byDependedOn  Ljava/util/List<Lcom/oracle/objectfile/BuildDependency;>;
           37  187     2          dummyFinalDecision  Lcom/oracle/objectfile/LayoutDecision;
           38  187     3               realDecisions  [Lcom/oracle/objectfile/LayoutDecision;
           41   44     4                    decision  Lcom/oracle/objectfile/LayoutDecision;
           48  187     4      offsetBootstrapElement  Lcom/oracle/objectfile/ObjectFile$Element;
           49  187     5     offsetBootstrapDecision  Lcom/oracle/objectfile/LayoutDecision;
           50  187     6                       added  Z
           51  187     7  sawBootstrapOffsetDecision  Z
           53   91     8                           d  Lcom/oracle/objectfile/LayoutDecision;
           57   58    10                  dependedOn  Lcom/oracle/objectfile/LayoutDecision;
           61   91    10                          l1  Ljava/util/List<Lcom/oracle/objectfile/BuildDependency;>;
           62   91    11                          l2  Ljava/util/List<Lcom/oracle/objectfile/BuildDependency;>;
           69   91    12                  l1contains  Z
           71   74    13                        dep1  Lcom/oracle/objectfile/BuildDependency;
           76   91    13                  l2contains  Z
           78   81    14                        dep2  Lcom/oracle/objectfile/BuildDependency;
           87   90    14                         dep  Lcom/oracle/objectfile/BuildDependency;
           95  187     8           reverseBuildOrder  Ljava/util/List<Lcom/oracle/objectfile/LayoutDecision;>;
           96  187     9      decisionsWithNoInEdges  Ljava/util/Set<Lcom/oracle/objectfile/LayoutDecision;>;
           99  100    10                           d  Lcom/oracle/objectfile/LayoutDecision;
          103  187    10     removedEdgesDependingOn  Ljava/util/Map<Lcom/oracle/objectfile/LayoutDecision;Ljava/util/ArrayList<Lcom/oracle/objectfile/LayoutDecision;>;>;
          104  187    11    removedEdgesDependedOnBy  Ljava/util/Map<Lcom/oracle/objectfile/LayoutDecision;Ljava/util/ArrayList<Lcom/oracle/objectfile/LayoutDecision;>;>;
          106  108    12                           l  Lcom/oracle/objectfile/LayoutDecision;
          110  187    12                     working  Ljava/util/Set<Lcom/oracle/objectfile/LayoutDecision;>;
          113  129    13                           n  Lcom/oracle/objectfile/LayoutDecision;
          117  128    14                           m  Lcom/oracle/objectfile/LayoutDecision;
          122  128    16                    mInEdges  Ljava/util/ArrayList<Lcom/oracle/objectfile/LayoutDecision;>;
          132  135    13          remainingDecisions  Ljava/util/Set<Lcom/oracle/objectfile/LayoutDecision;>;
          137  187    13                  buildOrder  Ljava/util/ArrayList<Lcom/oracle/objectfile/LayoutDecision;>;
          138  142    14                           i  I
          145  146    14                           e  Lcom/oracle/objectfile/ObjectFile$Element;
          149  178    14                           d  Lcom/oracle/objectfile/LayoutDecision;
          150  178    16                           e  Lcom/oracle/objectfile/ObjectFile$Element;
          153  178    17                valueDecided  Ljava/lang/Object;
          154  178    18                  offsetHint  I
          155  178    19                   vaddrHint  I
          164  171    20              decidedContent  [B
          176  178    20                           m  Lcom/oracle/objectfile/LayoutDecisionMap;
          182  187    14                   totalSize  I
          184  185    15                           e  Lcom/oracle/objectfile/ObjectFile$Element;
    Signature: (Ljava/util/List<Lcom/oracle/objectfile/ObjectFile$Element;>;)I
    MethodParameters:
                          Name  Flags
      sortedObjectFileElements  

  public java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap> getDecisionsByElement();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.objectfile.ObjectFile this
         0: .line 1658
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsByElement:Ljava/util/Map;
            areturn
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/objectfile/ObjectFile;
    Signature: ()Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;

  private static java.nio.Buffer asBaseBuffer(java.nio.Buffer);
    descriptor: (Ljava/nio/Buffer;)Ljava/nio/Buffer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.nio.Buffer obj
         0: .line 1665
            aload 0 /* obj */
            areturn
        end local 0 // java.nio.Buffer obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Ljava/nio/Buffer;
    MethodParameters:
      Name  Flags
      obj   

  public void writeBuffer(java.util.List<com.oracle.objectfile.ObjectFile$Element>, java.nio.ByteBuffer);
    descriptor: (Ljava/util/List;Ljava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // java.util.List sortedObjectFileElements
        start local 2 // java.nio.ByteBuffer out
         0: .line 1670
            aload 1 /* sortedObjectFileElements */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List java.nio.ByteBuffer top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.objectfile.ObjectFile$Element
            astore 3 /* e */
        start local 3 // com.oracle.objectfile.ObjectFile$Element e
         2: .line 1671
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            aload 3 /* e */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecision:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Lcom/oracle/objectfile/LayoutDecision;
            invokevirtual com.oracle.objectfile.LayoutDecision.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 5 /* off */
        start local 5 // int off
         3: .line 1672
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 4
            iload 5 /* off */
            ldc 2147483647
            if_icmpne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 1673
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List java.nio.ByteBuffer com.oracle.objectfile.ObjectFile$Element java.util.Iterator int
      StackMap stack:
            aload 2 /* out */
            invokestatic com.oracle.objectfile.ObjectFile.asBaseBuffer:(Ljava/nio/Buffer;)Ljava/nio/Buffer;
            iload 5 /* off */
            invokevirtual java.nio.Buffer.position:(I)Ljava/nio/Buffer;
            pop
         5: .line 1674
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            aload 3 /* e */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.SIZE:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecidedValue:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 6 /* expectedSize */
        start local 6 // int expectedSize
         6: .line 1675
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.decisionsTaken:Ljava/util/Map;
            aload 3 /* e */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.objectfile.LayoutDecisionMap
            getstatic com.oracle.objectfile.LayoutDecision$Kind.CONTENT:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.getDecidedValue:(Lcom/oracle/objectfile/LayoutDecision$Kind;)Ljava/lang/Object;
            checkcast byte[]
            astore 7 /* content */
        start local 7 // byte[] content
         7: .line 1676
            aload 2 /* out */
            aload 7 /* content */
            invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
            pop
         8: .line 1677
            aload 2 /* out */
            invokevirtual java.nio.ByteBuffer.position:()I
            iload 5 /* off */
            isub
            istore 8 /* emittedSize */
        start local 8 // int emittedSize
         9: .line 1678
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 10
            iload 8 /* emittedSize */
            ifge 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 1679
      StackMap locals: int byte[] int
      StackMap stack:
            iload 8 /* emittedSize */
            iload 6 /* expectedSize */
            if_icmpeq 12
        11: .line 1680
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "For element "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", expected size "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* expectedSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " but emitted size "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 8 /* emittedSize */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // int emittedSize
        end local 7 // byte[] content
        end local 6 // int expectedSize
        end local 5 // int off
        end local 3 // com.oracle.objectfile.ObjectFile$Element e
        12: .line 1670
      StackMap locals: com.oracle.objectfile.ObjectFile java.util.List java.nio.ByteBuffer top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        13: .line 1684
            return
        end local 2 // java.nio.ByteBuffer out
        end local 1 // java.util.List sortedObjectFileElements
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   14     0                      this  Lcom/oracle/objectfile/ObjectFile;
            0   14     1  sortedObjectFileElements  Ljava/util/List<Lcom/oracle/objectfile/ObjectFile$Element;>;
            0   14     2                       out  Ljava/nio/ByteBuffer;
            2   12     3                         e  Lcom/oracle/objectfile/ObjectFile$Element;
            3   12     5                       off  I
            6   12     6              expectedSize  I
            7   12     7                   content  [B
            9   12     8               emittedSize  I
    Signature: (Ljava/util/List<Lcom/oracle/objectfile/ObjectFile$Element;>;Ljava/nio/ByteBuffer;)V
    MethodParameters:
                          Name  Flags
      sortedObjectFileElements  
      out                       

  protected abstract int getMinimumFileSize();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  public int getPageSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.objectfile.ObjectFile this
         0: .line 1689
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.pageSize:I
            ifgt 1
            new java.lang.AssertionError
            dup
            ldc "must be initialized"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 1690
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.pageSize:I
            ireturn
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/objectfile/ObjectFile;

  public int getPageSizeShift();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // com.oracle.objectfile.ObjectFile this
         0: .line 1694
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.getPageSize:()I
            istore 1 /* pagesize */
        start local 1 // int pagesize
         1: .line 1695
            iload 1 /* pagesize */
            invokestatic java.lang.Integer.numberOfTrailingZeros:(I)I
            istore 2 /* pageSizeShift */
        start local 2 // int pageSizeShift
         2: .line 1696
            iload 2 /* pageSizeShift */
            ireturn
        end local 2 // int pageSizeShift
        end local 1 // int pagesize
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/oracle/objectfile/ObjectFile;
            1    3     1       pagesize  I
            2    3     2  pageSizeShift  I

  public int roundUpToPageSize(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // int x
         0: .line 1700
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.getPageSizeShift:()I
            istore 2 /* pageShift */
        start local 2 // int pageShift
         1: .line 1701
            iload 1 /* x */
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.getPageSize:()I
            irem
            ifne 3
         2: .line 1702
            iload 1 /* x */
            ireturn
         3: .line 1704
      StackMap locals: int
      StackMap stack:
            iload 1 /* x */
            iload 2 /* pageShift */
            ishr
            iconst_1
            iadd
            iload 2 /* pageShift */
            ishl
            ireturn
        end local 2 // int pageShift
        end local 1 // int x
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/oracle/objectfile/ObjectFile;
            0    4     1          x  I
            1    4     2  pageShift  I
    MethodParameters:
      Name  Flags
      x     

  public abstract com.oracle.objectfile.ObjectFile$Symbol createDefinedSymbol(java.lang.String, com.oracle.objectfile.ObjectFile$Element, long, int, boolean, boolean);
    descriptor: (Ljava/lang/String;Lcom/oracle/objectfile/ObjectFile$Element;JIZZ)Lcom/oracle/objectfile/ObjectFile$Symbol;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
             Name  Flags
      name         
      baseSection  
      position     
      size         
      isCode       
      isGlobal     

  public abstract com.oracle.objectfile.ObjectFile$Symbol createUndefinedSymbol(java.lang.String, int, boolean);
    descriptor: (Ljava/lang/String;IZ)Lcom/oracle/objectfile/ObjectFile$Symbol;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      name    
      size    
      isCode  

  protected abstract com.oracle.objectfile.SymbolTable createSymbolTable();
    descriptor: ()Lcom/oracle/objectfile/SymbolTable;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  public abstract com.oracle.objectfile.SymbolTable getSymbolTable();
    descriptor: ()Lcom/oracle/objectfile/SymbolTable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public final com.oracle.objectfile.SymbolTable getOrCreateSymbolTable();
    descriptor: ()Lcom/oracle/objectfile/SymbolTable;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.objectfile.ObjectFile this
         0: .line 1775
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.getSymbolTable:()Lcom/oracle/objectfile/SymbolTable;
            astore 1 /* t */
        start local 1 // com.oracle.objectfile.SymbolTable t
         1: .line 1776
            aload 1 /* t */
            ifnull 3
         2: .line 1777
            aload 1 /* t */
            areturn
         3: .line 1779
      StackMap locals: com.oracle.objectfile.SymbolTable
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.objectfile.ObjectFile.createSymbolTable:()Lcom/oracle/objectfile/SymbolTable;
            areturn
        end local 1 // com.oracle.objectfile.SymbolTable t
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/objectfile/ObjectFile;
            1    4     1     t  Lcom/oracle/objectfile/SymbolTable;

  public void withDebugContext(org.graalvm.compiler.debug.DebugContext, java.lang.String, java.lang.Runnable);
    descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Ljava/lang/String;Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=8, args_size=4
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // org.graalvm.compiler.debug.DebugContext context
        start local 2 // java.lang.String scopeName
        start local 3 // java.lang.Runnable task
         0: .line 1802
            aconst_null
            astore 4
            aconst_null
            astore 5
         1: aload 1 /* context */
            aload 2 /* scopeName */
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 6 /* s */
        start local 6 // org.graalvm.compiler.debug.DebugContext$Scope s
         2: .line 1803
            aload 0 /* this */
            aload 1 /* context */
            putfield com.oracle.objectfile.ObjectFile.debugContext:Lorg/graalvm/compiler/debug/DebugContext;
         3: .line 1804
            aload 3 /* task */
            invokeinterface java.lang.Runnable.run:()V
         4: .line 1805
            aload 6 /* s */
            ifnull 15
            aload 6 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 15
      StackMap locals: com.oracle.objectfile.ObjectFile org.graalvm.compiler.debug.DebugContext java.lang.String java.lang.Runnable java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
         5: astore 4
            aload 6 /* s */
            ifnull 6
            aload 6 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 6 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
         6: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 5
            aload 4
            ifnonnull 8
            aload 5
            astore 4
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 4
            aload 5
            if_acmpeq 9
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         9: aload 4
            athrow
      StackMap locals: com.oracle.objectfile.ObjectFile org.graalvm.compiler.debug.DebugContext java.lang.String java.lang.Runnable
      StackMap stack: java.lang.Throwable
        10: astore 4 /* e */
        start local 4 // java.lang.Throwable e
        11: .line 1806
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.debugContext:Lorg/graalvm/compiler/debug/DebugContext;
            aload 4 /* e */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // java.lang.Throwable e
        12: .line 1807
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        13: .line 1808
            aload 0 /* this */
            aconst_null
            putfield com.oracle.objectfile.ObjectFile.debugContext:Lorg/graalvm/compiler/debug/DebugContext;
        14: .line 1809
            aload 7
            athrow
        15: .line 1808
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.objectfile.ObjectFile.debugContext:Lorg/graalvm/compiler/debug/DebugContext;
        16: .line 1810
            return
        end local 3 // java.lang.Runnable task
        end local 2 // java.lang.String scopeName
        end local 1 // org.graalvm.compiler.debug.DebugContext context
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lcom/oracle/objectfile/ObjectFile;
            0   17     1    context  Lorg/graalvm/compiler/debug/DebugContext;
            0   17     2  scopeName  Ljava/lang/String;
            0   17     3       task  Ljava/lang/Runnable;
            2    6     6          s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
           11   12     4          e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     4       5  any
           1     7       7  any
           0    10      10  Class java.lang.Throwable
           0    12      12  any
    MethodParameters:
           Name  Flags
      context    
      scopeName  
      task       

  public void debugContext(java.lang.String, java.util.function.Consumer<org.graalvm.compiler.debug.DebugContext>);
    descriptor: (Ljava/lang/String;Ljava/util/function/Consumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // com.oracle.objectfile.ObjectFile this
        start local 1 // java.lang.String scopeName
        start local 2 // java.util.function.Consumer action
         0: .line 1821
            getstatic com.oracle.objectfile.ObjectFile.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.debugContext:Lorg/graalvm/compiler/debug/DebugContext;
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1822
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3
            aconst_null
            astore 4
         2: aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.debugContext:Lorg/graalvm/compiler/debug/DebugContext;
            aload 1 /* scopeName */
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 5 /* s */
        start local 5 // org.graalvm.compiler.debug.DebugContext$Scope s
         3: .line 1823
            aload 2 /* action */
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.debugContext:Lorg/graalvm/compiler/debug/DebugContext;
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
         4: .line 1824
            aload 5 /* s */
            ifnull 12
            aload 5 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 12
      StackMap locals: com.oracle.objectfile.ObjectFile java.lang.String java.util.function.Consumer java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
         5: astore 3
            aload 5 /* s */
            ifnull 6
            aload 5 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 5 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
         6: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 4
            aload 3
            ifnonnull 8
            aload 4
            astore 3
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 3
            aload 4
            if_acmpeq 9
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         9: aload 3
            athrow
      StackMap locals: com.oracle.objectfile.ObjectFile java.lang.String java.util.function.Consumer
      StackMap stack: java.lang.Throwable
        10: astore 3 /* e */
        start local 3 // java.lang.Throwable e
        11: .line 1825
            aload 0 /* this */
            getfield com.oracle.objectfile.ObjectFile.debugContext:Lorg/graalvm/compiler/debug/DebugContext;
            aload 3 /* e */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable e
        12: .line 1827
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.function.Consumer action
        end local 1 // java.lang.String scopeName
        end local 0 // com.oracle.objectfile.ObjectFile this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lcom/oracle/objectfile/ObjectFile;
            0   13     1  scopeName  Ljava/lang/String;
            0   13     2     action  Ljava/util/function/Consumer<Lorg/graalvm/compiler/debug/DebugContext;>;
            3    6     5          s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
           11   12     3          e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3     4       5  any
           2     7       7  any
           1    10      10  Class java.lang.Throwable
    Signature: (Ljava/lang/String;Ljava/util/function/Consumer<Lorg/graalvm/compiler/debug/DebugContext;>;)V
    MethodParameters:
           Name  Flags
      scopeName  
      action     

  static int[] $SWITCH_TABLE$com$oracle$objectfile$ObjectFile$Format();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 66
            getstatic com.oracle.objectfile.ObjectFile.$SWITCH_TABLE$com$oracle$objectfile$ObjectFile$Format:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.objectfile.ObjectFile$Format.values:()[Lcom/oracle/objectfile/ObjectFile$Format;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.objectfile.ObjectFile$Format.ELF:Lcom/oracle/objectfile/ObjectFile$Format;
            invokevirtual com.oracle.objectfile.ObjectFile$Format.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.objectfile.ObjectFile$Format.MACH_O:Lcom/oracle/objectfile/ObjectFile$Format;
            invokevirtual com.oracle.objectfile.ObjectFile$Format.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.objectfile.ObjectFile$Format.PECOFF:Lcom/oracle/objectfile/ObjectFile$Format;
            invokevirtual com.oracle.objectfile.ObjectFile$Format.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic com.oracle.objectfile.ObjectFile.$SWITCH_TABLE$com$oracle$objectfile$ObjectFile$Format:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError

  static int[] $SWITCH_TABLE$com$oracle$objectfile$LayoutDecision$Kind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 66
            getstatic com.oracle.objectfile.ObjectFile.$SWITCH_TABLE$com$oracle$objectfile$LayoutDecision$Kind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.objectfile.LayoutDecision$Kind.values:()[Lcom/oracle/objectfile/LayoutDecision$Kind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.objectfile.LayoutDecision$Kind.CONTENT:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecision$Kind.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.objectfile.LayoutDecision$Kind.IDENTITY:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecision$Kind.ordinal:()I
            iconst_4
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.objectfile.LayoutDecision$Kind.OFFSET:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecision$Kind.ordinal:()I
            iconst_1
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.oracle.objectfile.LayoutDecision$Kind.SIZE:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecision$Kind.ordinal:()I
            iconst_2
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic com.oracle.objectfile.LayoutDecision$Kind.VADDR:Lcom/oracle/objectfile/LayoutDecision$Kind;
            invokevirtual com.oracle.objectfile.LayoutDecision$Kind.ordinal:()I
            iconst_5
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic com.oracle.objectfile.ObjectFile.$SWITCH_TABLE$com$oracle$objectfile$LayoutDecision$Kind:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError

  private static java.util.Iterator lambda$0(java.util.Map);
    descriptor: (Ljava/util/Map;)Ljava/util/Iterator;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
         0: .line 1144
            aload 0
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.spliterator:()Ljava/util/Spliterator;
            iconst_0
            invokestatic java.util.stream.StreamSupport.stream:(Ljava/util/Spliterator;Z)Ljava/util/stream/Stream;
         1: .line 1145
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/objectfile/ObjectFile.lambda$1(Lcom/oracle/objectfile/LayoutDecisionMap;)Ljava/util/stream/Stream; (6)
                  (Lcom/oracle/objectfile/LayoutDecisionMap;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.iterator:()Ljava/util/Iterator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.util.Iterator lambda$2(java.util.Map, com.oracle.objectfile.LayoutDecision$Kind);
    descriptor: (Ljava/util/Map;Lcom/oracle/objectfile/LayoutDecision$Kind;)Ljava/util/Iterator;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1149
            aload 0
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.spliterator:()Ljava/util/Spliterator;
            iconst_0
            invokestatic java.util.stream.StreamSupport.stream:(Ljava/util/Spliterator;Z)Ljava/util/stream/Stream;
         1: .line 1150
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/objectfile/ObjectFile.lambda$3(Lcom/oracle/objectfile/LayoutDecisionMap;)Ljava/util/stream/Stream; (6)
                  (Lcom/oracle/objectfile/LayoutDecisionMap;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         2: .line 1151
            aload 1
            invokedynamic test(Lcom/oracle/objectfile/LayoutDecision$Kind;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/oracle/objectfile/ObjectFile.lambda$4(Lcom/oracle/objectfile/LayoutDecision$Kind;Lcom/oracle/objectfile/LayoutDecision;)Z (6)
                  (Lcom/oracle/objectfile/LayoutDecision;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.iterator:()Ljava/util/Iterator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void lambda$5(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1271
            aload 0
            checkcast sun.nio.ch.DirectBuffer
            invokeinterface sun.nio.ch.DirectBuffer.cleaner:()Ljdk/internal/ref/Cleaner;
            invokevirtual jdk.internal.ref.Cleaner.clean:()V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException

  private static java.util.stream.Stream lambda$1(com.oracle.objectfile.LayoutDecisionMap);
    descriptor: (Lcom/oracle/objectfile/LayoutDecisionMap;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.objectfile.LayoutDecisionMap layoutDecisionMap
         0: .line 1145
            aload 0 /* layoutDecisionMap */
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.spliterator:()Ljava/util/Spliterator;
            iconst_0
            invokestatic java.util.stream.StreamSupport.stream:(Ljava/util/Spliterator;Z)Ljava/util/stream/Stream;
            areturn
        end local 0 // com.oracle.objectfile.LayoutDecisionMap layoutDecisionMap
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0  layoutDecisionMap  Lcom/oracle/objectfile/LayoutDecisionMap;

  private static java.util.stream.Stream lambda$3(com.oracle.objectfile.LayoutDecisionMap);
    descriptor: (Lcom/oracle/objectfile/LayoutDecisionMap;)Ljava/util/stream/Stream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.objectfile.LayoutDecisionMap layoutDecisionMap
         0: .line 1150
            aload 0 /* layoutDecisionMap */
            invokevirtual com.oracle.objectfile.LayoutDecisionMap.spliterator:()Ljava/util/Spliterator;
            iconst_0
            invokestatic java.util.stream.StreamSupport.stream:(Ljava/util/Spliterator;Z)Ljava/util/stream/Stream;
            areturn
        end local 0 // com.oracle.objectfile.LayoutDecisionMap layoutDecisionMap
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0  layoutDecisionMap  Lcom/oracle/objectfile/LayoutDecisionMap;

  private static boolean lambda$4(com.oracle.objectfile.LayoutDecision$Kind, com.oracle.objectfile.LayoutDecision);
    descriptor: (Lcom/oracle/objectfile/LayoutDecision$Kind;Lcom/oracle/objectfile/LayoutDecision;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.oracle.objectfile.LayoutDecision decision
         0: .line 1151
            aload 1 /* decision */
            invokevirtual com.oracle.objectfile.LayoutDecision.getKind:()Lcom/oracle/objectfile/LayoutDecision$Kind;
            aload 0
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // com.oracle.objectfile.LayoutDecision decision
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     1  decision  Lcom/oracle/objectfile/LayoutDecision;
}
SourceFile: "ObjectFile.java"
NestMembers:
  com.oracle.objectfile.ObjectFile$Element  com.oracle.objectfile.ObjectFile$ElementComparatorByDecidedOffset  com.oracle.objectfile.ObjectFile$Format  com.oracle.objectfile.ObjectFile$Header  com.oracle.objectfile.ObjectFile$IntegerDecisionComparator  com.oracle.objectfile.ObjectFile$NobitsSectionImpl  com.oracle.objectfile.ObjectFile$ProgbitsSectionImpl  com.oracle.objectfile.ObjectFile$RelocatableSectionImpl  com.oracle.objectfile.ObjectFile$RelocationKind  com.oracle.objectfile.ObjectFile$RelocationMethod  com.oracle.objectfile.ObjectFile$RelocationRecord  com.oracle.objectfile.ObjectFile$RelocationSiteInfo  com.oracle.objectfile.ObjectFile$Section  com.oracle.objectfile.ObjectFile$Segment  com.oracle.objectfile.ObjectFile$SizeTiebreakComparator  com.oracle.objectfile.ObjectFile$Symbol  com.oracle.objectfile.ObjectFile$ValueEnum
InnerClasses:
  public final Kind = com.oracle.objectfile.LayoutDecision$Kind of com.oracle.objectfile.LayoutDecision
  public abstract Element = com.oracle.objectfile.ObjectFile$Element of com.oracle.objectfile.ObjectFile
  public ElementComparatorByDecidedOffset = com.oracle.objectfile.ObjectFile$ElementComparatorByDecidedOffset of com.oracle.objectfile.ObjectFile
  public final Format = com.oracle.objectfile.ObjectFile$Format of com.oracle.objectfile.ObjectFile
  public abstract Header = com.oracle.objectfile.ObjectFile$Header of com.oracle.objectfile.ObjectFile
  public IntegerDecisionComparator = com.oracle.objectfile.ObjectFile$IntegerDecisionComparator of com.oracle.objectfile.ObjectFile
  public abstract NobitsSectionImpl = com.oracle.objectfile.ObjectFile$NobitsSectionImpl of com.oracle.objectfile.ObjectFile
  public abstract ProgbitsSectionImpl = com.oracle.objectfile.ObjectFile$ProgbitsSectionImpl of com.oracle.objectfile.ObjectFile
  public abstract RelocatableSectionImpl = com.oracle.objectfile.ObjectFile$RelocatableSectionImpl of com.oracle.objectfile.ObjectFile
  public final RelocationKind = com.oracle.objectfile.ObjectFile$RelocationKind of com.oracle.objectfile.ObjectFile
  public abstract RelocationMethod = com.oracle.objectfile.ObjectFile$RelocationMethod of com.oracle.objectfile.ObjectFile
  public abstract RelocationRecord = com.oracle.objectfile.ObjectFile$RelocationRecord of com.oracle.objectfile.ObjectFile
  public abstract RelocationSiteInfo = com.oracle.objectfile.ObjectFile$RelocationSiteInfo of com.oracle.objectfile.ObjectFile
  public abstract Section = com.oracle.objectfile.ObjectFile$Section of com.oracle.objectfile.ObjectFile
  public abstract Segment = com.oracle.objectfile.ObjectFile$Segment of com.oracle.objectfile.ObjectFile
  public SizeTiebreakComparator = com.oracle.objectfile.ObjectFile$SizeTiebreakComparator of com.oracle.objectfile.ObjectFile
  public abstract Symbol = com.oracle.objectfile.ObjectFile$Symbol of com.oracle.objectfile.ObjectFile
  public abstract ValueEnum = com.oracle.objectfile.ObjectFile$ValueEnum of com.oracle.objectfile.ObjectFile
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public MapMode = java.nio.channels.FileChannel$MapMode of java.nio.channels.FileChannel
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext