final class com.oracle.svm.driver.NativeImageServer extends com.oracle.svm.driver.NativeImage
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.driver.NativeImageServer
  super_class: com.oracle.svm.driver.NativeImage
{
  private static final java.lang.String serverDirPrefix;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "server-id-"

  private static final java.lang.String machineDirPrefix;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "machine-id-"

  private static final java.lang.String sessionDirPrefix;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "session-id-"

  private static final java.lang.String defaultLockFileName;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ".lock"

  private static final java.lang.String pKeyMaxServers;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "MaxServers"

  private static final java.lang.String machineProperties;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "machine.properties"

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

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

  private java.lang.String sessionName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private volatile com.oracle.svm.driver.NativeImageServer$Server building;
    descriptor: Lcom/oracle/svm/driver/NativeImageServer$Server;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final java.util.List<java.nio.channels.FileChannel> openFileChannels;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/nio/channels/FileChannel;>;

  private final com.oracle.svm.driver.ServerOptionHandler serverOptionHandler;
    descriptor: Lcom/oracle/svm/driver/ServerOptionHandler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private void <init>(com.oracle.svm.driver.NativeImage$BuildConfiguration);
    descriptor: (Lcom/oracle/svm/driver/NativeImage$BuildConfiguration;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 1 // com.oracle.svm.driver.NativeImage$BuildConfiguration buildConfiguration
         0: .line 89
            aload 0 /* this */
            aload 1 /* buildConfiguration */
            invokespecial com.oracle.svm.driver.NativeImage.<init>:(Lcom/oracle/svm/driver/NativeImage$BuildConfiguration;)V
         1: .line 79
            aload 0 /* this */
            iconst_0
            putfield com.oracle.svm.driver.NativeImageServer.useServer:Z
         2: .line 80
            aload 0 /* this */
            iconst_0
            putfield com.oracle.svm.driver.NativeImageServer.verboseServer:Z
         3: .line 81
            aload 0 /* this */
            aconst_null
            putfield com.oracle.svm.driver.NativeImageServer.sessionName:Ljava/lang/String;
         4: .line 83
            aload 0 /* this */
            aconst_null
            putfield com.oracle.svm.driver.NativeImageServer.building:Lcom/oracle/svm/driver/NativeImageServer$Server;
         5: .line 84
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.oracle.svm.driver.NativeImageServer.openFileChannels:Ljava/util/List;
         6: .line 90
            aload 0 /* this */
            new com.oracle.svm.driver.ServerOptionHandler
            dup
            aload 0 /* this */
            invokespecial com.oracle.svm.driver.ServerOptionHandler.<init>:(Lcom/oracle/svm/driver/NativeImageServer;)V
            putfield com.oracle.svm.driver.NativeImageServer.serverOptionHandler:Lcom/oracle/svm/driver/ServerOptionHandler;
         7: .line 91
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.serverOptionHandler:Lcom/oracle/svm/driver/ServerOptionHandler;
            invokevirtual com.oracle.svm.driver.NativeImageServer.registerOptionHandler:(Lcom/oracle/svm/driver/NativeImage$OptionHandler;)V
         8: .line 92
            return
        end local 1 // com.oracle.svm.driver.NativeImage$BuildConfiguration buildConfiguration
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    9     0                this  Lcom/oracle/svm/driver/NativeImageServer;
            0    9     1  buildConfiguration  Lcom/oracle/svm/driver/NativeImage$BuildConfiguration;
    MethodParameters:
                    Name  Flags
      buildConfiguration  

  static com.oracle.svm.driver.NativeImage create(com.oracle.svm.driver.NativeImage$BuildConfiguration);
    descriptor: (Lcom/oracle/svm/driver/NativeImage$BuildConfiguration;)Lcom/oracle/svm/driver/NativeImage;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.svm.driver.NativeImage$BuildConfiguration config
         0: .line 95
            invokestatic com.oracle.svm.driver.NativeImageServerHelper.isInConfiguration:()Z
            ifeq 2
         1: .line 96
            new com.oracle.svm.driver.NativeImageServer
            dup
            aload 0 /* config */
            invokespecial com.oracle.svm.driver.NativeImageServer.<init>:(Lcom/oracle/svm/driver/NativeImage$BuildConfiguration;)V
            areturn
         2: .line 98
      StackMap locals:
      StackMap stack:
            new com.oracle.svm.driver.NativeImage
            dup
            aload 0 /* config */
            invokespecial com.oracle.svm.driver.NativeImage.<init>:(Lcom/oracle/svm/driver/NativeImage$BuildConfiguration;)V
            areturn
        end local 0 // com.oracle.svm.driver.NativeImage$BuildConfiguration config
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  config  Lcom/oracle/svm/driver/NativeImage$BuildConfiguration;
    MethodParameters:
        Name  Flags
      config  

  private static java.util.function.Consumer<byte[]> byteStreamToByteConsumer(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)Ljava/util/function/Consumer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.OutputStream stream
         0: .line 334
            aload 0 /* stream */
            invokedynamic accept(Ljava/io/OutputStream;)Ljava/util/function/Consumer;
              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;)V
                  com/oracle/svm/driver/NativeImageServer.lambda$0(Ljava/io/OutputStream;[B)V (6)
                  ([B)V
            areturn
        end local 0 // java.io.OutputStream stream
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  stream  Ljava/io/OutputStream;
    Signature: (Ljava/io/OutputStream;)Ljava/util/function/Consumer<[B>;
    MethodParameters:
        Name  Flags
      stream  

  private java.lang.String getSessionID();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.svm.driver.NativeImageServer this
         0: .line 344
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.sessionName:Ljava/lang/String;
            ifnull 2
         1: .line 345
            new java.lang.StringBuilder
            dup
            ldc "session-id-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.sessionName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         2: .line 347
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "session-id-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            invokestatic org.graalvm.nativeimage.ProcessProperties.getProcessID:()J
            invokestatic java.lang.Math.toIntExact:(J)I
            invokestatic com.oracle.svm.driver.Unistd.getsid:(I)I
            i2l
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/svm/driver/NativeImageServer;

  private static java.lang.String getMachineID();
    descriptor: ()Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 352
            ldc "/etc/machine-id"
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.lines:(Ljava/nio/file/Path;)Ljava/util/stream/Stream;
            ldc ""
            ldc "machine-id-"
            ldc ""
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
         1: areturn
         2: .line 353
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         3: .line 355
            new java.lang.StringBuilder
            dup
            ldc "machine-id-hostid-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            invokestatic com.oracle.svm.driver.Unistd.gethostid:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception

  private java.nio.file.Path getMachineDir();
    descriptor: ()Ljava/nio/file/Path;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.svm.driver.NativeImageServer this
         0: .line 360
            aload 0 /* this */
            invokevirtual com.oracle.svm.driver.NativeImageServer.getUserConfigDir:()Ljava/nio/file/Path;
            invokestatic com.oracle.svm.driver.NativeImageServer.getMachineID:()Ljava/lang/String;
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 1 /* machineDir */
        start local 1 // java.nio.file.Path machineDir
         1: .line 361
            aload 1 /* machineDir */
            invokestatic com.oracle.svm.driver.NativeImageServer.ensureDirectoryExists:(Ljava/nio/file/Path;)V
         2: .line 362
            aload 1 /* machineDir */
            areturn
        end local 1 // java.nio.file.Path machineDir
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/svm/driver/NativeImageServer;
            1    3     1  machineDir  Ljava/nio/file/Path;

  private java.nio.file.Path getSessionDir();
    descriptor: ()Ljava/nio/file/Path;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.svm.driver.NativeImageServer this
         0: .line 366
            aload 0 /* this */
            invokevirtual com.oracle.svm.driver.NativeImageServer.getMachineDir:()Ljava/nio/file/Path;
            aload 0 /* this */
            invokevirtual com.oracle.svm.driver.NativeImageServer.getSessionID:()Ljava/lang/String;
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 1 /* sessionDir */
        start local 1 // java.nio.file.Path sessionDir
         1: .line 367
            aload 1 /* sessionDir */
            invokestatic com.oracle.svm.driver.NativeImageServer.ensureDirectoryExists:(Ljava/nio/file/Path;)V
         2: .line 368
            aload 1 /* sessionDir */
            areturn
        end local 1 // java.nio.file.Path sessionDir
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/oracle/svm/driver/NativeImageServer;
            1    3     1  sessionDir  Ljava/nio/file/Path;

  private static java.lang.String getDurationString(java.time.Instant);
    descriptor: (Ljava/time/Instant;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // java.time.Instant since
         0: .line 372
            getstatic java.time.temporal.ChronoUnit.SECONDS:Ljava/time/temporal/ChronoUnit;
            aload 0 /* since */
            invokestatic java.time.Instant.now:()Ljava/time/Instant;
            invokevirtual java.time.temporal.ChronoUnit.between:(Ljava/time/temporal/Temporal;Ljava/time/temporal/Temporal;)J
            lstore 1 /* seconds */
        start local 1 // long seconds
         1: .line 373
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            lload 1 /* seconds */
            invokevirtual java.util.concurrent.TimeUnit.toHours:(J)J
            lstore 3 /* hours */
        start local 3 // long hours
         2: .line 374
            lload 1 /* seconds */
            getstatic java.util.concurrent.TimeUnit.HOURS:Ljava/util/concurrent/TimeUnit;
            lload 3 /* hours */
            invokevirtual java.util.concurrent.TimeUnit.toSeconds:(J)J
            lsub
            lstore 1 /* seconds */
         3: .line 375
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            lload 1 /* seconds */
            invokevirtual java.util.concurrent.TimeUnit.toMinutes:(J)J
            lstore 5 /* minutes */
        start local 5 // long minutes
         4: .line 376
            lload 1 /* seconds */
            getstatic java.util.concurrent.TimeUnit.MINUTES:Ljava/util/concurrent/TimeUnit;
            lload 5 /* minutes */
            invokevirtual java.util.concurrent.TimeUnit.toSeconds:(J)J
            lsub
            lstore 1 /* seconds */
         5: .line 377
            ldc "%02d:%02d:%02d"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            lload 3 /* hours */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            lload 5 /* minutes */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            lload 1 /* seconds */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 5 // long minutes
        end local 3 // long hours
        end local 1 // long seconds
        end local 0 // java.time.Instant since
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0    since  Ljava/time/Instant;
            1    6     1  seconds  J
            2    6     3    hours  J
            4    6     5  minutes  J
    MethodParameters:
       Name  Flags
      since  

  private com.oracle.svm.driver.NativeImageServer$Server getServerInstance(java.util.LinkedHashSet<java.nio.file.Path>, java.util.LinkedHashSet<java.nio.file.Path>, java.util.List<java.lang.String>);
    descriptor: (Ljava/util/LinkedHashSet;Ljava/util/LinkedHashSet;Ljava/util/List;)Lcom/oracle/svm/driver/NativeImageServer$Server;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 1 // java.util.LinkedHashSet classpath
        start local 2 // java.util.LinkedHashSet bootClasspath
        start local 3 // java.util.List javaArgs
         0: .line 382
            iconst_1
            anewarray com.oracle.svm.driver.NativeImageServer$Server
            astore 4 /* result */
        start local 4 // com.oracle.svm.driver.NativeImageServer$Server[] result
         1: .line 384
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.svm.driver.NativeImageServer.getMachineDir:()Ljava/nio/file/Path;
            ldc "create-server.lock"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            aload 0 /* this */
            aload 3 /* javaArgs */
            aload 1 /* classpath */
            aload 2 /* bootClasspath */
            aload 4 /* result */
            invokedynamic accept(Lcom/oracle/svm/driver/NativeImageServer;Ljava/util/List;Ljava/util/LinkedHashSet;Ljava/util/LinkedHashSet;[Lcom/oracle/svm/driver/NativeImageServer$Server;)Ljava/util/function/Consumer;
              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;)V
                  com/oracle/svm/driver/NativeImageServer.lambda$1(Ljava/util/List;Ljava/util/LinkedHashSet;Ljava/util/LinkedHashSet;[Lcom/oracle/svm/driver/NativeImageServer$Server;Ljava/nio/channels/FileChannel;)V (7)
                  (Ljava/nio/channels/FileChannel;)V
            invokevirtual com.oracle.svm.driver.NativeImageServer.withFileChannel:(Ljava/nio/file/Path;Ljava/util/function/Consumer;)V
         2: .line 453
            aload 4 /* result */
            iconst_0
            aaload
            areturn
        end local 4 // com.oracle.svm.driver.NativeImageServer$Server[] result
        end local 3 // java.util.List javaArgs
        end local 2 // java.util.LinkedHashSet bootClasspath
        end local 1 // java.util.LinkedHashSet classpath
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/oracle/svm/driver/NativeImageServer;
            0    3     1      classpath  Ljava/util/LinkedHashSet<Ljava/nio/file/Path;>;
            0    3     2  bootClasspath  Ljava/util/LinkedHashSet<Ljava/nio/file/Path;>;
            0    3     3       javaArgs  Ljava/util/List<Ljava/lang/String;>;
            1    3     4         result  [Lcom/oracle/svm/driver/NativeImageServer$Server;
    Signature: (Ljava/util/LinkedHashSet<Ljava/nio/file/Path;>;Ljava/util/LinkedHashSet<Ljava/nio/file/Path;>;Ljava/util/List<Ljava/lang/String;>;)Lcom/oracle/svm/driver/NativeImageServer$Server;
    MethodParameters:
               Name  Flags
      classpath      
      bootClasspath  
      javaArgs       

  private static com.oracle.svm.driver.NativeImageServer$Server findVictim(java.util.List<com.oracle.svm.driver.NativeImageServer$Server>);
    descriptor: (Ljava/util/List;)Lcom/oracle/svm/driver/NativeImageServer$Server;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.List aliveServers
         0: .line 457
            aload 0 /* aliveServers */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         1: .line 458
            invokedynamic test()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/svm/driver/NativeImageServer$Server.isAlive()Z (5)
                  (Lcom/oracle/svm/driver/NativeImageServer$Server;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 459
            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/svm/driver/NativeImageServer.lambda$4(Lcom/oracle/svm/driver/NativeImageServer$Server;)Ljava/time/Instant; (6)
                  (Lcom/oracle/svm/driver/NativeImageServer$Server;)Ljava/time/Instant;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.min:(Ljava/util/Comparator;)Ljava/util/Optional;
         3: .line 460
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.svm.driver.NativeImageServer$Server
         4: .line 457
            areturn
        end local 0 // java.util.List aliveServers
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0  aliveServers  Ljava/util/List<Lcom/oracle/svm/driver/NativeImageServer$Server;>;
    Signature: (Ljava/util/List<Lcom/oracle/svm/driver/NativeImageServer$Server;>;)Lcom/oracle/svm/driver/NativeImageServer$Server;
    MethodParameters:
              Name  Flags
      aliveServers  

  private java.util.List<java.nio.file.Path> getSessionDirs(boolean);
    descriptor: (Z)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 1 // boolean machineWide
         0: .line 464
            aload 0 /* this */
            invokevirtual com.oracle.svm.driver.NativeImageServer.getSessionDir:()Ljava/nio/file/Path;
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            astore 2 /* sessionDirs */
        start local 2 // java.util.List sessionDirs
         1: .line 465
            iload 1 /* machineWide */
            ifeq 10
         2: .line 467
            aload 0 /* this */
            invokevirtual com.oracle.svm.driver.NativeImageServer.getMachineDir:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.list:(Ljava/nio/file/Path;)Ljava/util/stream/Stream;
            invokedynamic test()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/svm/driver/NativeImageServer.lambda$17(Ljava/nio/file/Path;)Z (6)
                  (Ljava/nio/file/Path;)Z
         3: .line 468
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         4: .line 469
            invokedynamic test()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/svm/driver/NativeImageServer.lambda$6(Ljava/nio/file/Path;)Z (6)
                  (Ljava/nio/file/Path;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         5: .line 470
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
         6: .line 467
            astore 2 /* sessionDirs */
         7: .line 471
            goto 10
      StackMap locals: com.oracle.svm.driver.NativeImageServer int java.util.List
      StackMap stack: java.io.IOException
         8: astore 3 /* e */
        start local 3 // java.io.IOException e
         9: .line 472
            new java.lang.StringBuilder
            dup
            ldc "Accessing MachineDir "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual com.oracle.svm.driver.NativeImageServer.getMachineDir:()Ljava/nio/file/Path;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " failed"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokestatic com.oracle.svm.driver.NativeImageServer.showError:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/lang/Error;
            athrow
        end local 3 // java.io.IOException e
        10: .line 475
      StackMap locals:
      StackMap stack:
            aload 2 /* sessionDirs */
            areturn
        end local 2 // java.util.List sessionDirs
        end local 1 // boolean machineWide
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lcom/oracle/svm/driver/NativeImageServer;
            0   11     1  machineWide  Z
            1   11     2  sessionDirs  Ljava/util/List<Ljava/nio/file/Path;>;
            9   10     3            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     7       8  Class java.io.IOException
    Signature: (Z)Ljava/util/List<Ljava/nio/file/Path;>;
    MethodParameters:
             Name  Flags
      machineWide  

  private java.util.List<com.oracle.svm.driver.NativeImageServer$Server> findServers(java.util.List<java.nio.file.Path>);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 1 // java.util.List sessionDirs
         0: .line 479
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* servers */
        start local 2 // java.util.ArrayList servers
         1: .line 480
            aload 1 /* sessionDirs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.util.List java.util.ArrayList top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 3 /* sessionDir */
        start local 3 // java.nio.file.Path sessionDir
         3: .line 482
            aload 3 /* sessionDir */
            invokestatic java.nio.file.Files.list:(Ljava/nio/file/Path;)Ljava/util/stream/Stream;
            invokedynamic test()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/svm/driver/NativeImageServer.lambda$18(Ljava/nio/file/Path;)Z (6)
                  (Ljava/nio/file/Path;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            aload 0 /* this */
            aload 2 /* servers */
            invokedynamic accept(Lcom/oracle/svm/driver/NativeImageServer;Ljava/util/ArrayList;)Ljava/util/function/Consumer;
              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;)V
                  com/oracle/svm/driver/NativeImageServer.lambda$8(Ljava/util/ArrayList;Ljava/nio/file/Path;)V (7)
                  (Ljava/nio/file/Path;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         4: .line 492
            goto 7
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.util.List java.util.ArrayList java.nio.file.Path java.util.Iterator
      StackMap stack: java.io.IOException
         5: astore 5 /* e */
        start local 5 // java.io.IOException e
         6: .line 493
            new java.lang.StringBuilder
            dup
            ldc "Accessing SessionDir "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* sessionDir */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " failed"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* e */
            invokestatic com.oracle.svm.driver.NativeImageServer.showError:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/lang/Error;
            athrow
        end local 5 // java.io.IOException e
        end local 3 // java.nio.file.Path sessionDir
         7: .line 480
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.util.List java.util.ArrayList top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 496
            aload 2 /* servers */
            areturn
        end local 2 // java.util.ArrayList servers
        end local 1 // java.util.List sessionDirs
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lcom/oracle/svm/driver/NativeImageServer;
            0    9     1  sessionDirs  Ljava/util/List<Ljava/nio/file/Path;>;
            1    9     2      servers  Ljava/util/ArrayList<Lcom/oracle/svm/driver/NativeImageServer$Server;>;
            3    7     3   sessionDir  Ljava/nio/file/Path;
            6    7     5            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.io.IOException
    Signature: (Ljava/util/List<Ljava/nio/file/Path;>;)Ljava/util/List<Lcom/oracle/svm/driver/NativeImageServer$Server;>;
    MethodParameters:
             Name  Flags
      sessionDirs  

  void listServers(boolean, boolean);
    descriptor: (ZZ)V
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 1 // boolean machineWide
        start local 2 // boolean details
         0: .line 500
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* machineWide */
            invokevirtual com.oracle.svm.driver.NativeImageServer.getSessionDirs:(Z)Ljava/util/List;
            invokevirtual com.oracle.svm.driver.NativeImageServer.findServers:(Ljava/util/List;)Ljava/util/List;
            astore 3 /* servers */
        start local 3 // java.util.List servers
         1: .line 501
            aload 3 /* servers */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: com.oracle.svm.driver.NativeImageServer int int java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.driver.NativeImageServer$Server
            astore 4 /* server */
        start local 4 // com.oracle.svm.driver.NativeImageServer$Server server
         3: .line 502
            iload 1 /* machineWide */
            ifeq 4
            new java.lang.StringBuilder
            dup
            ldc "Session "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* server */
            getfield com.oracle.svm.driver.NativeImageServer$Server.serverDir:Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 5
      StackMap locals: com.oracle.svm.driver.NativeImageServer int int java.util.List com.oracle.svm.driver.NativeImageServer$Server java.util.Iterator
      StackMap stack:
         4: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
         5: astore 6 /* sessionInfo */
        start local 6 // java.lang.String sessionInfo
         6: .line 503
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 6 /* sessionInfo */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* server */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            aload 4 /* server */
            aload 4 /* server */
            invokevirtual com.oracle.svm.driver.NativeImageServer$Server.isAlive:()Z
            invokevirtual com.oracle.svm.driver.NativeImageServer$Server.getLivenessInfo:(Z)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* server */
            invokevirtual com.oracle.svm.driver.NativeImageServer$Server.getLastBuildInfo:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.svm.driver.NativeImageServer.showMessage:(Ljava/lang/String;)V
         7: .line 504
            iload 2 /* details */
            ifeq 10
         8: .line 505
            aload 0 /* this */
            ldc "Details:"
            invokevirtual com.oracle.svm.driver.NativeImageServer.showMessage:(Ljava/lang/String;)V
         9: .line 506
            aload 0 /* this */
            aload 4 /* server */
            invokevirtual com.oracle.svm.driver.NativeImageServer$Server.getServerInfo:()Ljava/lang/String;
            invokevirtual com.oracle.svm.driver.NativeImageServer.showMessage:(Ljava/lang/String;)V
        end local 6 // java.lang.String sessionInfo
        end local 4 // com.oracle.svm.driver.NativeImageServer$Server server
        10: .line 501
      StackMap locals: com.oracle.svm.driver.NativeImageServer int int java.util.List top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        11: .line 509
            return
        end local 3 // java.util.List servers
        end local 2 // boolean details
        end local 1 // boolean machineWide
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lcom/oracle/svm/driver/NativeImageServer;
            0   12     1  machineWide  Z
            0   12     2      details  Z
            1   12     3      servers  Ljava/util/List<Lcom/oracle/svm/driver/NativeImageServer$Server;>;
            3   10     4       server  Lcom/oracle/svm/driver/NativeImageServer$Server;
            6   10     6  sessionInfo  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      machineWide  
      details      

  void wipeMachineDir();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.driver.NativeImageServer this
         0: .line 512
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.svm.driver.NativeImageServer.getMachineDir:()Ljava/nio/file/Path;
            invokevirtual com.oracle.svm.driver.NativeImageServer.deleteAllFiles:(Ljava/nio/file/Path;)V
         1: .line 513
            return
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/driver/NativeImageServer;

  java.util.List<com.oracle.svm.driver.NativeImageServer$Server> cleanupServers(boolean, boolean, boolean);
    descriptor: (ZZZ)Ljava/util/List;
    flags: (0x0000) 
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 1 // boolean serverShutdown
        start local 2 // boolean machineWide
        start local 3 // boolean quiet
         0: .line 517
            aload 0 /* this */
            iload 2 /* machineWide */
            invokevirtual com.oracle.svm.driver.NativeImageServer.getSessionDirs:(Z)Ljava/util/List;
            astore 4 /* sessionDirs */
        start local 4 // java.util.List sessionDirs
         1: .line 520
            aload 4 /* sessionDirs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 5
      StackMap locals: com.oracle.svm.driver.NativeImageServer int int int java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 5 /* sessionDir */
        start local 5 // java.nio.file.Path sessionDir
         3: .line 521
            aload 5 /* sessionDir */
            invokestatic com.oracle.svm.driver.NativeImageServer.isDeletedPath:(Ljava/nio/file/Path;)Z
            ifeq 5
         4: .line 522
            aload 0 /* this */
            aload 5 /* sessionDir */
            invokevirtual com.oracle.svm.driver.NativeImageServer.deleteAllFiles:(Ljava/nio/file/Path;)V
        end local 5 // java.nio.file.Path sessionDir
         5: .line 520
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 526
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* aliveServers */
        start local 5 // java.util.List aliveServers
         7: .line 527
            aload 4 /* sessionDirs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 10
      StackMap locals: com.oracle.svm.driver.NativeImageServer int int int java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         8: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 6 /* sessionDir */
        start local 6 // java.nio.file.Path sessionDir
         9: .line 528
            aload 0 /* this */
            aload 6 /* sessionDir */
            aload 0 /* this */
            aload 6 /* sessionDir */
            iload 1 /* serverShutdown */
            iload 3 /* quiet */
            aload 5 /* aliveServers */
            invokedynamic accept(Lcom/oracle/svm/driver/NativeImageServer;Ljava/nio/file/Path;ZZLjava/util/List;)Ljava/util/function/Consumer;
              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;)V
                  com/oracle/svm/driver/NativeImageServer.lambda$9(Ljava/nio/file/Path;ZZLjava/util/List;Ljava/nio/channels/FileChannel;)V (7)
                  (Ljava/nio/channels/FileChannel;)V
            invokevirtual com.oracle.svm.driver.NativeImageServer.withLockDirFileChannel:(Ljava/nio/file/Path;Ljava/util/function/Consumer;)V
        end local 6 // java.nio.file.Path sessionDir
        10: .line 527
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 548
            aload 5 /* aliveServers */
            areturn
        end local 5 // java.util.List aliveServers
        end local 4 // java.util.List sessionDirs
        end local 3 // boolean quiet
        end local 2 // boolean machineWide
        end local 1 // boolean serverShutdown
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lcom/oracle/svm/driver/NativeImageServer;
            0   12     1  serverShutdown  Z
            0   12     2     machineWide  Z
            0   12     3           quiet  Z
            1   12     4     sessionDirs  Ljava/util/List<Ljava/nio/file/Path;>;
            3    5     5      sessionDir  Ljava/nio/file/Path;
            7   12     5    aliveServers  Ljava/util/List<Lcom/oracle/svm/driver/NativeImageServer$Server;>;
            9   10     6      sessionDir  Ljava/nio/file/Path;
    Signature: (ZZZ)Ljava/util/List<Lcom/oracle/svm/driver/NativeImageServer$Server;>;
    MethodParameters:
                Name  Flags
      serverShutdown  
      machineWide     
      quiet           

  private com.oracle.svm.driver.NativeImageServer$Server startServer(java.nio.file.Path, java.nio.file.Path, int, java.util.LinkedHashSet<java.nio.file.Path>, java.util.LinkedHashSet<java.nio.file.Path>, java.util.List<java.lang.String>);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;ILjava/util/LinkedHashSet;Ljava/util/LinkedHashSet;Ljava/util/List;)Lcom/oracle/svm/driver/NativeImageServer$Server;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=14, args_size=7
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 1 // java.nio.file.Path javaExePath
        start local 2 // java.nio.file.Path serverDir
        start local 3 // int serverPort
        start local 4 // java.util.LinkedHashSet classpath
        start local 5 // java.util.LinkedHashSet bootClasspath
        start local 6 // java.util.List javaArgs
         0: .line 552
            new java.lang.ProcessBuilder
            dup
            iconst_0
            anewarray java.lang.String
            invokespecial java.lang.ProcessBuilder.<init>:([Ljava/lang/String;)V
            astore 7 /* pb */
        start local 7 // java.lang.ProcessBuilder pb
         1: .line 553
            aload 7 /* pb */
            aload 2 /* serverDir */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            invokevirtual java.lang.ProcessBuilder.directory:(Ljava/io/File;)Ljava/lang/ProcessBuilder;
            pop
         2: .line 554
            aload 7 /* pb */
            iconst_1
            invokevirtual java.lang.ProcessBuilder.redirectErrorStream:(Z)Ljava/lang/ProcessBuilder;
            pop
         3: .line 555
            aload 7 /* pb */
            invokevirtual java.lang.ProcessBuilder.command:()Ljava/util/List;
            astore 8 /* command */
        start local 8 // java.util.List command
         4: .line 556
            aload 8 /* command */
            aload 1 /* javaExePath */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 557
            aload 5 /* bootClasspath */
            invokevirtual java.util.LinkedHashSet.isEmpty:()Z
            ifne 7
         6: .line 558
            aload 8 /* command */
            aload 5 /* bootClasspath */
            invokevirtual java.util.LinkedHashSet.stream:()Ljava/util/stream/Stream;
            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;
                  java/nio/file/Path.toString()Ljava/lang/String; (9 itf)
                  (Ljava/nio/file/Path;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            ldc "-Xbootclasspath/a:"
            ldc ""
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 560
      StackMap locals: java.lang.ProcessBuilder java.util.List
      StackMap stack:
            aload 8 /* command */
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "-cp"
            aastore
            dup
            iconst_1
            aload 4 /* classpath */
            invokevirtual java.util.LinkedHashSet.stream:()Ljava/util/stream/Stream;
            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;
                  java/nio/file/Path.toString()Ljava/lang/String; (9 itf)
                  (Ljava/nio/file/Path;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         8: .line 561
            aload 8 /* command */
            aload 6 /* javaArgs */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         9: .line 563
            aload 8 /* command */
            ldc "-Dgraal.LogFile=%e"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 564
            aload 8 /* command */
            ldc "com.oracle.svm.hosted.server.NativeImageBuildServer"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 565
            aload 8 /* command */
            new java.lang.StringBuilder
            dup
            ldc "-port="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* serverPort */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 566
            aload 2 /* serverDir */
            ldc "server.log"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 9 /* logFilePath */
        start local 9 // java.nio.file.Path logFilePath
        13: .line 567
            aload 8 /* command */
            new java.lang.StringBuilder
            dup
            ldc "-logFile="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* logFilePath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 568
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.svm.driver.NativeImageServer.isVerbose:()Z
            ldc "StartServer ["
            invokevirtual com.oracle.svm.driver.NativeImageServer.showVerboseMessage:(ZLjava/lang/String;)V
        15: .line 569
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.svm.driver.NativeImageServer.isVerbose:()Z
            aload 8 /* command */
            iconst_1
            invokestatic com.oracle.svm.core.SubstrateUtil.getShellCommandString:(Ljava/util/List;Z)Ljava/lang/String;
            invokevirtual com.oracle.svm.driver.NativeImageServer.showVerboseMessage:(ZLjava/lang/String;)V
        16: .line 570
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.svm.driver.NativeImageServer.isVerbose:()Z
            ldc "]"
            invokevirtual com.oracle.svm.driver.NativeImageServer.showVerboseMessage:(ZLjava/lang/String;)V
        17: .line 571
            aload 0 /* this */
            aload 2 /* serverDir */
            aload 7 /* pb */
            iload 3 /* serverPort */
            aload 4 /* classpath */
            aload 5 /* bootClasspath */
            aload 6 /* javaArgs */
            invokedynamic run(Lcom/oracle/svm/driver/NativeImageServer;Ljava/nio/file/Path;Ljava/lang/ProcessBuilder;ILjava/util/LinkedHashSet;Ljava/util/LinkedHashSet;Ljava/util/List;)Ljava/lang/Runnable;
              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/svm/driver/NativeImageServer.lambda$12(Ljava/nio/file/Path;Ljava/lang/ProcessBuilder;ILjava/util/LinkedHashSet;Ljava/util/LinkedHashSet;Ljava/util/List;)V (7)
                  ()V
            invokestatic com.oracle.svm.driver.NativeImageServerHelper.daemonize:(Ljava/lang/Runnable;)I
            istore 10 /* childPid */
        start local 10 // int childPid
        18: .line 613
            iload 10 /* childPid */
            i2l
            invokestatic org.graalvm.nativeimage.ProcessProperties.waitForProcessExit:(J)I
            istore 11 /* exitStatus */
        start local 11 // int exitStatus
        19: .line 614
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.verboseServer:Z
            new java.lang.StringBuilder
            dup
            ldc "Exit status forked child process: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* exitStatus */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.svm.driver.NativeImageServer.showVerboseMessage:(ZLjava/lang/String;)V
        20: .line 615
            iload 11 /* exitStatus */
            ifne 39
        21: .line 618
            new com.oracle.svm.driver.NativeImageServer$Server
            dup
            aload 0 /* this */
            aload 2 /* serverDir */
            invokespecial com.oracle.svm.driver.NativeImageServer$Server.<init>:(Lcom/oracle/svm/driver/NativeImageServer;Ljava/nio/file/Path;)V
            astore 12 /* server */
        start local 12 // com.oracle.svm.driver.NativeImageServer$Server server
        22: .line 619
            goto 26
        end local 12 // com.oracle.svm.driver.NativeImageServer$Server server
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.nio.file.Path java.nio.file.Path int java.util.LinkedHashSet java.util.LinkedHashSet java.util.List java.lang.ProcessBuilder java.util.List java.nio.file.Path int int
      StackMap stack: java.lang.Exception
        23: pop
        24: .line 620
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.verboseServer:Z
            ldc "Image-build server unusable."
            invokevirtual com.oracle.svm.driver.NativeImageServer.showVerboseMessage:(ZLjava/lang/String;)V
        25: .line 622
            aconst_null
            areturn
        start local 12 // com.oracle.svm.driver.NativeImageServer$Server server
        26: .line 625
      StackMap locals: com.oracle.svm.driver.NativeImageServer$Server
      StackMap stack:
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        27: goto 36
        28: .line 627
      StackMap locals: int
      StackMap stack:
            aload 12 /* server */
            invokevirtual com.oracle.svm.driver.NativeImageServer$Server.isAlive:()Z
            ifeq 31
        29: .line 628
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.verboseServer:Z
            ldc "Image-build server found."
            invokevirtual com.oracle.svm.driver.NativeImageServer.showVerboseMessage:(ZLjava/lang/String;)V
        30: .line 629
            aload 12 /* server */
            areturn
        31: .line 632
      StackMap locals:
      StackMap stack:
            ldc 200
            invokestatic java.lang.Thread.sleep:(J)V
        32: .line 633
            goto 35
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        33: pop
        34: .line 634
            goto 37
        35: .line 625
      StackMap locals:
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        36: iload 13 /* i */
            bipush 6
            if_icmplt 28
        end local 13 // int i
        37: .line 637
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.verboseServer:Z
            ldc "Image-build server not responding."
            invokevirtual com.oracle.svm.driver.NativeImageServer.showVerboseMessage:(ZLjava/lang/String;)V
        38: .line 638
            aload 12 /* server */
            invokevirtual com.oracle.svm.driver.NativeImageServer$Server.shutdown:()V
        end local 12 // com.oracle.svm.driver.NativeImageServer$Server server
        39: .line 640
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 11 // int exitStatus
        end local 10 // int childPid
        end local 9 // java.nio.file.Path logFilePath
        end local 8 // java.util.List command
        end local 7 // java.lang.ProcessBuilder pb
        end local 6 // java.util.List javaArgs
        end local 5 // java.util.LinkedHashSet bootClasspath
        end local 4 // java.util.LinkedHashSet classpath
        end local 3 // int serverPort
        end local 2 // java.nio.file.Path serverDir
        end local 1 // java.nio.file.Path javaExePath
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   40     0           this  Lcom/oracle/svm/driver/NativeImageServer;
            0   40     1    javaExePath  Ljava/nio/file/Path;
            0   40     2      serverDir  Ljava/nio/file/Path;
            0   40     3     serverPort  I
            0   40     4      classpath  Ljava/util/LinkedHashSet<Ljava/nio/file/Path;>;
            0   40     5  bootClasspath  Ljava/util/LinkedHashSet<Ljava/nio/file/Path;>;
            0   40     6       javaArgs  Ljava/util/List<Ljava/lang/String;>;
            1   40     7             pb  Ljava/lang/ProcessBuilder;
            4   40     8        command  Ljava/util/List<Ljava/lang/String;>;
           13   40     9    logFilePath  Ljava/nio/file/Path;
           18   40    10       childPid  I
           19   40    11     exitStatus  I
           22   23    12         server  Lcom/oracle/svm/driver/NativeImageServer$Server;
           26   39    12         server  Lcom/oracle/svm/driver/NativeImageServer$Server;
           27   37    13              i  I
      Exception table:
        from    to  target  type
          21    22      23  Class java.lang.Exception
          31    32      33  Class java.lang.InterruptedException
    Signature: (Ljava/nio/file/Path;Ljava/nio/file/Path;ILjava/util/LinkedHashSet<Ljava/nio/file/Path;>;Ljava/util/LinkedHashSet<Ljava/nio/file/Path;>;Ljava/util/List<Ljava/lang/String;>;)Lcom/oracle/svm/driver/NativeImageServer$Server;
    MethodParameters:
               Name  Flags
      javaExePath    
      serverDir      
      serverPort     
      classpath      
      bootClasspath  
      javaArgs       

  private static void writeServerFile(java.nio.file.Path, int, long, java.util.LinkedHashSet<java.nio.file.Path>, java.util.LinkedHashSet<java.nio.file.Path>, java.util.List<java.lang.String>);
    descriptor: (Ljava/nio/file/Path;IJLjava/util/LinkedHashSet;Ljava/util/LinkedHashSet;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=12, args_size=6
        start local 0 // java.nio.file.Path serverDir
        start local 1 // int port
        start local 2 // long pid
        start local 4 // java.util.LinkedHashSet classpath
        start local 5 // java.util.LinkedHashSet bootClasspath
        start local 6 // java.util.List javaArgs
         0: .line 644
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 7 /* sp */
        start local 7 // java.util.Properties sp
         1: .line 645
            aload 7 /* sp */
            ldc "Port"
            iload 1 /* port */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 646
            aload 7 /* sp */
            ldc "PID"
            lload 2 /* pid */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 647
            aload 7 /* sp */
            ldc "JavaArgs"
            ldc " "
            aload 6 /* javaArgs */
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         4: .line 648
            aload 7 /* sp */
            ldc "BootClasspath"
            aload 5 /* bootClasspath */
            invokevirtual java.util.LinkedHashSet.stream:()Ljava/util/stream/Stream;
            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/svm/core/util/ClasspathUtils.classpathToString(Ljava/nio/file/Path;)Ljava/lang/String; (6)
                  (Ljava/nio/file/Path;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            ldc " "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         5: .line 649
            aload 7 /* sp */
            ldc "Classpath"
            aload 4 /* classpath */
            invokevirtual java.util.LinkedHashSet.stream:()Ljava/util/stream/Stream;
            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/svm/core/util/ClasspathUtils.classpathToString(Ljava/nio/file/Path;)Ljava/lang/String; (6)
                  (Ljava/nio/file/Path;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            ldc " "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         6: .line 650
            aload 0 /* serverDir */
            ldc "server.properties"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 8 /* serverPropertiesPath */
        start local 8 // java.nio.file.Path serverPropertiesPath
         7: .line 651
            aconst_null
            astore 9
            aconst_null
            astore 10
         8: aload 8 /* serverPropertiesPath */
            iconst_0
            anewarray java.nio.file.OpenOption
            invokestatic java.nio.file.Files.newOutputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/OutputStream;
            astore 11 /* os */
        start local 11 // java.io.OutputStream os
         9: .line 652
            aload 7 /* sp */
            aload 11 /* os */
            ldc ""
            invokevirtual java.util.Properties.store:(Ljava/io/OutputStream;Ljava/lang/String;)V
        10: .line 653
            aload 11 /* os */
            ifnull 16
            aload 11 /* os */
            invokevirtual java.io.OutputStream.close:()V
            goto 16
      StackMap locals: java.nio.file.Path int long java.util.LinkedHashSet java.util.LinkedHashSet java.util.List java.util.Properties java.nio.file.Path java.lang.Throwable java.lang.Throwable java.io.OutputStream
      StackMap stack: java.lang.Throwable
        11: astore 9
            aload 11 /* os */
            ifnull 12
            aload 11 /* os */
            invokevirtual java.io.OutputStream.close:()V
        end local 11 // java.io.OutputStream os
      StackMap locals:
      StackMap stack:
        12: aload 9
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 10
            aload 9
            ifnonnull 14
            aload 10
            astore 9
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 9
            aload 10
            if_acmpeq 15
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 9
            athrow
        16: .line 654
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.nio.file.Path serverPropertiesPath
        end local 7 // java.util.Properties sp
        end local 6 // java.util.List javaArgs
        end local 5 // java.util.LinkedHashSet bootClasspath
        end local 4 // java.util.LinkedHashSet classpath
        end local 2 // long pid
        end local 1 // int port
        end local 0 // java.nio.file.Path serverDir
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   17     0             serverDir  Ljava/nio/file/Path;
            0   17     1                  port  I
            0   17     2                   pid  J
            0   17     4             classpath  Ljava/util/LinkedHashSet<Ljava/nio/file/Path;>;
            0   17     5         bootClasspath  Ljava/util/LinkedHashSet<Ljava/nio/file/Path;>;
            0   17     6              javaArgs  Ljava/util/List<Ljava/lang/String;>;
            1   17     7                    sp  Ljava/util/Properties;
            7   17     8  serverPropertiesPath  Ljava/nio/file/Path;
            9   12    11                    os  Ljava/io/OutputStream;
      Exception table:
        from    to  target  type
           9    10      11  any
           8    13      13  any
    Exceptions:
      throws java.lang.Exception
    Signature: (Ljava/nio/file/Path;IJLjava/util/LinkedHashSet<Ljava/nio/file/Path;>;Ljava/util/LinkedHashSet<Ljava/nio/file/Path;>;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
               Name  Flags
      serverDir      
      port           
      pid            
      classpath      
      bootClasspath  
      javaArgs       

  private void withLockDirFileChannel(java.nio.file.Path, java.util.function.Consumer<java.nio.channels.FileChannel>);
    descriptor: (Ljava/nio/file/Path;Ljava/util/function/Consumer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 1 // java.nio.file.Path lockDir
        start local 2 // java.util.function.Consumer consumer
         0: .line 657
            aload 0 /* this */
            aload 1 /* lockDir */
            ldc ".lock"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            aload 2 /* consumer */
            invokevirtual com.oracle.svm.driver.NativeImageServer.withFileChannel:(Ljava/nio/file/Path;Ljava/util/function/Consumer;)V
         1: .line 658
            return
        end local 2 // java.util.function.Consumer consumer
        end local 1 // java.nio.file.Path lockDir
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/oracle/svm/driver/NativeImageServer;
            0    2     1   lockDir  Ljava/nio/file/Path;
            0    2     2  consumer  Ljava/util/function/Consumer<Ljava/nio/channels/FileChannel;>;
    Signature: (Ljava/nio/file/Path;Ljava/util/function/Consumer<Ljava/nio/channels/FileChannel;>;)V
    MethodParameters:
          Name  Flags
      lockDir   
      consumer  

  private void withFileChannel(java.nio.file.Path, java.util.function.Consumer<java.nio.channels.FileChannel>);
    descriptor: (Ljava/nio/file/Path;Ljava/util/function/Consumer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 1 // java.nio.file.Path filePath
        start local 2 // java.util.function.Consumer consumer
         0: .line 663
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.openFileChannels:Ljava/util/List;
            dup
            astore 4
            monitorenter
         1: .line 664
            aload 1 /* filePath */
            iconst_3
            anewarray java.nio.file.OpenOption
            dup
            iconst_0
            getstatic java.nio.file.StandardOpenOption.CREATE:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_1
            getstatic java.nio.file.StandardOpenOption.READ:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_2
            getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
            aastore
            invokestatic java.nio.channels.FileChannel.open:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
            astore 3 /* fileChannel */
        start local 3 // java.nio.channels.FileChannel fileChannel
         2: .line 665
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.openFileChannels:Ljava/util/List;
            aload 3 /* fileChannel */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 663
            aload 4
            monitorexit
         4: goto 7
        end local 3 // java.nio.channels.FileChannel fileChannel
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.nio.file.Path java.util.function.Consumer top java.util.List
      StackMap stack: java.lang.Throwable
         5: aload 4
            monitorexit
         6: athrow
        start local 3 // java.nio.channels.FileChannel fileChannel
         7: .line 668
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.nio.file.Path java.util.function.Consumer java.nio.channels.FileChannel
      StackMap stack:
            aload 2 /* consumer */
            aload 3 /* fileChannel */
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
         8: .line 670
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.openFileChannels:Ljava/util/List;
            dup
            astore 4
            monitorenter
         9: .line 671
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.openFileChannels:Ljava/util/List;
            aload 3 /* fileChannel */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
        10: .line 672
            aload 3 /* fileChannel */
            invokevirtual java.nio.channels.FileChannel.close:()V
        11: .line 670
            aload 4
            monitorexit
        12: goto 17
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.nio.file.Path java.util.function.Consumer java.nio.channels.FileChannel java.util.List
      StackMap stack: java.lang.Throwable
        13: aload 4
            monitorexit
        14: athrow
        end local 3 // java.nio.channels.FileChannel fileChannel
        15: .line 674
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.nio.file.Path java.util.function.Consumer
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        16: .line 675
            new java.lang.StringBuilder
            dup
            ldc "Using FileChannel for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* filePath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " failed"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokestatic com.oracle.svm.driver.NativeImageServer.showError:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/lang/Error;
            athrow
        end local 3 // java.io.IOException e
        17: .line 677
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.function.Consumer consumer
        end local 1 // java.nio.file.Path filePath
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lcom/oracle/svm/driver/NativeImageServer;
            0   18     1     filePath  Ljava/nio/file/Path;
            0   18     2     consumer  Ljava/util/function/Consumer<Ljava/nio/channels/FileChannel;>;
            2    5     3  fileChannel  Ljava/nio/channels/FileChannel;
            7   15     3  fileChannel  Ljava/nio/channels/FileChannel;
           16   17     3            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
           9    12      13  any
          13    14      13  any
           0    15      15  Class java.io.IOException
    Signature: (Ljava/nio/file/Path;Ljava/util/function/Consumer<Ljava/nio/channels/FileChannel;>;)V
    MethodParameters:
          Name  Flags
      filePath  
      consumer  

  private static java.nio.channels.FileLock lockFileChannel(java.nio.channels.FileChannel);
    descriptor: (Ljava/nio/channels/FileChannel;)Ljava/nio/channels/FileLock;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.nio.channels.FileChannel channel
         0: .line 680
            new java.lang.Thread
            dup
            aload 0 /* channel */
            invokedynamic run(Ljava/nio/channels/FileChannel;)Ljava/lang/Runnable;
              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/svm/driver/NativeImageServer.lambda$15(Ljava/nio/channels/FileChannel;)V (6)
                  ()V
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
            astore 1 /* lockWatcher */
        start local 1 // java.lang.Thread lockWatcher
         1: .line 694
            aload 1 /* lockWatcher */
            invokevirtual java.lang.Thread.start:()V
         2: .line 695
            aload 0 /* channel */
            invokevirtual java.nio.channels.FileChannel.lock:()Ljava/nio/channels/FileLock;
            astore 2 /* lock */
        start local 2 // java.nio.channels.FileLock lock
         3: .line 696
            aload 1 /* lockWatcher */
            invokevirtual java.lang.Thread.interrupt:()V
         4: .line 697
            aload 2 /* lock */
            areturn
        end local 2 // java.nio.channels.FileLock lock
        end local 1 // java.lang.Thread lockWatcher
        end local 0 // java.nio.channels.FileChannel channel
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0      channel  Ljava/nio/channels/FileChannel;
            1    5     1  lockWatcher  Ljava/lang/Thread;
            3    5     2         lock  Ljava/nio/channels/FileLock;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      channel  

  protected int buildImage(java.util.List<java.lang.String>, java.util.LinkedHashSet<java.nio.file.Path>, java.util.LinkedHashSet<java.nio.file.Path>, java.util.LinkedHashSet<java.lang.String>, java.util.LinkedHashSet<java.nio.file.Path>);
    descriptor: (Ljava/util/List;Ljava/util/LinkedHashSet;Ljava/util/LinkedHashSet;Ljava/util/LinkedHashSet;Ljava/util/LinkedHashSet;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=10, args_size=6
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 1 // java.util.List javaArgs
        start local 2 // java.util.LinkedHashSet bcp
        start local 3 // java.util.LinkedHashSet cp
        start local 4 // java.util.LinkedHashSet imageArgs
        start local 5 // java.util.LinkedHashSet imagecp
         0: .line 742
            aload 4 /* imageArgs */
            invokevirtual java.util.LinkedHashSet.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic test(Lcom/oracle/svm/driver/NativeImageServer;)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/svm/driver/NativeImageServer.lambda$16(Ljava/lang/String;)Z (7)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            istore 6 /* printFlags */
        start local 6 // boolean printFlags
         1: .line 743
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.useServer:Z
            ifeq 14
            iload 6 /* printFlags */
            ifne 14
            aload 0 /* this */
            invokevirtual com.oracle.svm.driver.NativeImageServer.useDebugAttach:()Z
            ifne 14
         2: .line 744
            new com.oracle.svm.driver.NativeImageServer$AbortBuildSignalHandler
            dup
            aload 0 /* this */
            invokespecial com.oracle.svm.driver.NativeImageServer$AbortBuildSignalHandler.<init>:(Lcom/oracle/svm/driver/NativeImageServer;)V
            astore 7 /* signalHandler */
        start local 7 // com.oracle.svm.driver.NativeImageServer$AbortBuildSignalHandler signalHandler
         3: .line 745
            new sun.misc.Signal
            dup
            ldc "TERM"
            invokespecial sun.misc.Signal.<init>:(Ljava/lang/String;)V
            aload 7 /* signalHandler */
            invokestatic sun.misc.Signal.handle:(Lsun/misc/Signal;Lsun/misc/SignalHandler;)Lsun/misc/SignalHandler;
            pop
         4: .line 746
            new sun.misc.Signal
            dup
            ldc "INT"
            invokespecial sun.misc.Signal.<init>:(Ljava/lang/String;)V
            aload 7 /* signalHandler */
            invokestatic sun.misc.Signal.handle:(Lsun/misc/Signal;Lsun/misc/SignalHandler;)Lsun/misc/SignalHandler;
            pop
         5: .line 748
            aload 0 /* this */
            aload 3 /* cp */
            aload 2 /* bcp */
            aload 1 /* javaArgs */
            invokevirtual com.oracle.svm.driver.NativeImageServer.getServerInstance:(Ljava/util/LinkedHashSet;Ljava/util/LinkedHashSet;Ljava/util/List;)Lcom/oracle/svm/driver/NativeImageServer$Server;
            astore 8 /* server */
        start local 8 // com.oracle.svm.driver.NativeImageServer$Server server
         6: .line 749
            aload 8 /* server */
            ifnull 14
         7: .line 750
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.verboseServer:Z
            new java.lang.StringBuilder
            dup
            ldc "\n"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* server */
            invokevirtual com.oracle.svm.driver.NativeImageServer$Server.getServerInfo:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)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 com.oracle.svm.driver.NativeImageServer.showVerboseMessage:(ZLjava/lang/String;)V
         8: .line 752
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Build on "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* server */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.svm.driver.NativeImageServer.showMessage:(Ljava/lang/String;)V
         9: .line 753
            aload 0 /* this */
            aload 8 /* server */
            putfield com.oracle.svm.driver.NativeImageServer.building:Lcom/oracle/svm/driver/NativeImageServer$Server;
        10: .line 754
            aload 8 /* server */
            aload 5 /* imagecp */
            aload 4 /* imageArgs */
            invokevirtual com.oracle.svm.driver.NativeImageServer$Server.sendBuildRequest:(Ljava/util/LinkedHashSet;Ljava/util/LinkedHashSet;)I
            istore 9 /* status */
        start local 9 // int status
        11: .line 755
            aload 8 /* server */
            invokevirtual com.oracle.svm.driver.NativeImageServer$Server.isAlive:()Z
            ifne 13
        12: .line 757
            aload 0 /* this */
            iconst_0
            iconst_0
            iconst_1
            invokevirtual com.oracle.svm.driver.NativeImageServer.cleanupServers:(ZZZ)Ljava/util/List;
            pop
        13: .line 759
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.util.List java.util.LinkedHashSet java.util.LinkedHashSet java.util.LinkedHashSet java.util.LinkedHashSet int com.oracle.svm.driver.NativeImageServer$AbortBuildSignalHandler com.oracle.svm.driver.NativeImageServer$Server int
      StackMap stack:
            iload 9 /* status */
            ireturn
        end local 9 // int status
        end local 8 // com.oracle.svm.driver.NativeImageServer$Server server
        end local 7 // com.oracle.svm.driver.NativeImageServer$AbortBuildSignalHandler signalHandler
        14: .line 762
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* javaArgs */
            aload 2 /* bcp */
            aload 3 /* cp */
            aload 4 /* imageArgs */
            aload 5 /* imagecp */
            invokespecial com.oracle.svm.driver.NativeImage.buildImage:(Ljava/util/List;Ljava/util/LinkedHashSet;Ljava/util/LinkedHashSet;Ljava/util/LinkedHashSet;Ljava/util/LinkedHashSet;)I
            ireturn
        end local 6 // boolean printFlags
        end local 5 // java.util.LinkedHashSet imagecp
        end local 4 // java.util.LinkedHashSet imageArgs
        end local 3 // java.util.LinkedHashSet cp
        end local 2 // java.util.LinkedHashSet bcp
        end local 1 // java.util.List javaArgs
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           this  Lcom/oracle/svm/driver/NativeImageServer;
            0   15     1       javaArgs  Ljava/util/List<Ljava/lang/String;>;
            0   15     2            bcp  Ljava/util/LinkedHashSet<Ljava/nio/file/Path;>;
            0   15     3             cp  Ljava/util/LinkedHashSet<Ljava/nio/file/Path;>;
            0   15     4      imageArgs  Ljava/util/LinkedHashSet<Ljava/lang/String;>;
            0   15     5        imagecp  Ljava/util/LinkedHashSet<Ljava/nio/file/Path;>;
            1   15     6     printFlags  Z
            3   14     7  signalHandler  Lcom/oracle/svm/driver/NativeImageServer$AbortBuildSignalHandler;
            6   14     8         server  Lcom/oracle/svm/driver/NativeImageServer$Server;
           11   14     9         status  I
    Signature: (Ljava/util/List<Ljava/lang/String;>;Ljava/util/LinkedHashSet<Ljava/nio/file/Path;>;Ljava/util/LinkedHashSet<Ljava/nio/file/Path;>;Ljava/util/LinkedHashSet<Ljava/lang/String;>;Ljava/util/LinkedHashSet<Ljava/nio/file/Path;>;)I
    MethodParameters:
           Name  Flags
      javaArgs   
      bcp        
      cp         
      imageArgs  
      imagecp    

  private static java.lang.String imageServerUID(java.nio.file.Path, java.util.List<java.lang.String>, java.util.List<java.util.Collection<java.nio.file.Path>>);
    descriptor: (Ljava/nio/file/Path;Ljava/util/List;Ljava/util/List;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=10, args_size=3
        start local 0 // java.nio.file.Path javaExecutable
        start local 1 // java.util.List vmArgs
        start local 2 // java.util.List builderPaths
         0: .line 768
            ldc "SHA-512"
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 3 /* digest */
        start local 3 // java.security.MessageDigest digest
         1: .line 769
            goto 4
        end local 3 // java.security.MessageDigest digest
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
         2: astore 4 /* e */
        start local 4 // java.security.NoSuchAlgorithmException e
         3: .line 770
            ldc "SHA-512 digest is not available"
            aload 4 /* e */
            invokestatic com.oracle.svm.driver.NativeImageServer.showError:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/lang/Error;
            athrow
        end local 4 // java.security.NoSuchAlgorithmException e
        start local 3 // java.security.MessageDigest digest
         4: .line 772
      StackMap locals: java.security.MessageDigest
      StackMap stack:
            aload 3 /* digest */
            aload 0 /* javaExecutable */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            invokevirtual java.security.MessageDigest.update:([B)V
         5: .line 773
            aload 2 /* builderPaths */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 12
      StackMap locals: java.nio.file.Path java.util.List java.util.List java.security.MessageDigest top java.util.Iterator
      StackMap stack:
         6: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Collection
            astore 4 /* paths */
        start local 4 // java.util.Collection paths
         7: .line 774
            aload 4 /* paths */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 11
      StackMap locals: java.nio.file.Path java.util.List java.util.List java.security.MessageDigest java.util.Collection java.util.Iterator top java.util.Iterator
      StackMap stack:
         8: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 6 /* path */
        start local 6 // java.nio.file.Path path
         9: .line 775
            aload 3 /* digest */
            aload 6 /* path */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            invokevirtual java.security.MessageDigest.update:([B)V
        10: .line 776
            aload 3 /* digest */
            aload 6 /* path */
            invokestatic com.oracle.svm.driver.NativeImageServer.updateHash:(Ljava/security/MessageDigest;Ljava/nio/file/Path;)V
        end local 6 // java.nio.file.Path path
        11: .line 774
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        end local 4 // java.util.Collection paths
        12: .line 773
      StackMap locals: java.nio.file.Path java.util.List java.util.List java.security.MessageDigest top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        13: .line 779
            aload 1 /* vmArgs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 16
      StackMap locals:
      StackMap stack:
        14: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* string */
        start local 4 // java.lang.String string
        15: .line 780
            aload 3 /* digest */
            aload 4 /* string */
            invokevirtual java.lang.String.getBytes:()[B
            invokevirtual java.security.MessageDigest.update:([B)V
        end local 4 // java.lang.String string
        16: .line 779
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        17: .line 783
            aload 3 /* digest */
            invokevirtual java.security.MessageDigest.digest:()[B
            astore 4 /* digestBytes */
        start local 4 // byte[] digestBytes
        18: .line 784
            new java.lang.StringBuilder
            dup
            aload 4 /* digestBytes */
            arraylength
            iconst_2
            imul
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 5 /* sb */
        start local 5 // java.lang.StringBuilder sb
        19: .line 785
            aload 4 /* digestBytes */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 23
      StackMap locals: java.nio.file.Path java.util.List java.util.List java.security.MessageDigest byte[] java.lang.StringBuilder top int int byte[]
      StackMap stack:
        20: aload 9
            iload 7
            baload
            istore 6 /* b */
        start local 6 // byte b
        21: .line 786
            aload 5 /* sb */
            ldc "%02x"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 6 /* b */
            sipush 255
            iand
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 6 // byte b
        22: .line 785
            iinc 7 1
      StackMap locals:
      StackMap stack:
        23: iload 7
            iload 8
            if_icmplt 20
        24: .line 788
            aload 5 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 5 // java.lang.StringBuilder sb
        end local 4 // byte[] digestBytes
        end local 3 // java.security.MessageDigest digest
        end local 2 // java.util.List builderPaths
        end local 1 // java.util.List vmArgs
        end local 0 // java.nio.file.Path javaExecutable
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   25     0  javaExecutable  Ljava/nio/file/Path;
            0   25     1          vmArgs  Ljava/util/List<Ljava/lang/String;>;
            0   25     2    builderPaths  Ljava/util/List<Ljava/util/Collection<Ljava/nio/file/Path;>;>;
            1    2     3          digest  Ljava/security/MessageDigest;
            4   25     3          digest  Ljava/security/MessageDigest;
            3    4     4               e  Ljava/security/NoSuchAlgorithmException;
            7   12     4           paths  Ljava/util/Collection<Ljava/nio/file/Path;>;
            9   11     6            path  Ljava/nio/file/Path;
           15   16     4          string  Ljava/lang/String;
           18   25     4     digestBytes  [B
           19   25     5              sb  Ljava/lang/StringBuilder;
           21   22     6               b  B
      Exception table:
        from    to  target  type
           0     1       2  Class java.security.NoSuchAlgorithmException
    Signature: (Ljava/nio/file/Path;Ljava/util/List<Ljava/lang/String;>;Ljava/util/List<Ljava/util/Collection<Ljava/nio/file/Path;>;>;)Ljava/lang/String;
    MethodParameters:
                Name  Flags
      javaExecutable  
      vmArgs          
      builderPaths    

  private static void updateHash(java.security.MessageDigest, java.nio.file.Path);
    descriptor: (Ljava/security/MessageDigest;Ljava/nio/file/Path;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.security.MessageDigest md
        start local 1 // java.nio.file.Path pathElement
         0: .line 793
            aload 1 /* pathElement */
            invokestatic java.nio.file.Files.isReadable:(Ljava/nio/file/Path;)Z
            ifeq 1
            aload 1 /* pathElement */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            ldc ".jar"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 2
         1: .line 794
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Build server classpath must only contain valid jar-files: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* pathElement */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.svm.driver.NativeImageServer.showError:(Ljava/lang/String;)Ljava/lang/Error;
            athrow
         2: .line 796
      StackMap locals:
      StackMap stack:
            aload 0 /* md */
            aload 1 /* pathElement */
            invokestatic java.nio.file.Files.readAllBytes:(Ljava/nio/file/Path;)[B
            invokevirtual java.security.MessageDigest.update:([B)V
         3: .line 797
            goto 6
      StackMap locals:
      StackMap stack: java.io.IOException
         4: astore 2 /* e */
        start local 2 // java.io.IOException e
         5: .line 798
            new java.lang.StringBuilder
            dup
            ldc "Problem reading classpath entries: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.svm.driver.NativeImageServer.showError:(Ljava/lang/String;)Ljava/lang/Error;
            athrow
        end local 2 // java.io.IOException e
         6: .line 800
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.nio.file.Path pathElement
        end local 0 // java.security.MessageDigest md
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0           md  Ljava/security/MessageDigest;
            0    7     1  pathElement  Ljava/nio/file/Path;
            5    6     2            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.io.IOException
    MethodParameters:
             Name  Flags
      md           
      pathElement  

  void setUseServer(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 1 // boolean val
         0: .line 803
            aload 0 /* this */
            iload 1 /* val */
            putfield com.oracle.svm.driver.NativeImageServer.useServer:Z
         1: .line 804
            return
        end local 1 // boolean val
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/driver/NativeImageServer;
            0    2     1   val  Z
    MethodParameters:
      Name  Flags
      val   

  boolean useServer();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.driver.NativeImageServer this
         0: .line 807
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.useServer:Z
            ireturn
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/driver/NativeImageServer;

  protected void setDryRun(boolean);
    descriptor: (Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 1 // boolean val
         0: .line 812
            aload 0 /* this */
            iload 1 /* val */
            invokespecial com.oracle.svm.driver.NativeImage.setDryRun:(Z)V
         1: .line 813
            iload 1 /* val */
            ifeq 3
         2: .line 814
            aload 0 /* this */
            iconst_0
            putfield com.oracle.svm.driver.NativeImageServer.useServer:Z
         3: .line 816
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean val
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/svm/driver/NativeImageServer;
            0    4     1   val  Z
    MethodParameters:
      Name  Flags
      val   

  void setVerboseServer(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 1 // boolean val
         0: .line 819
            aload 0 /* this */
            iload 1 /* val */
            putfield com.oracle.svm.driver.NativeImageServer.verboseServer:Z
         1: .line 820
            return
        end local 1 // boolean val
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/svm/driver/NativeImageServer;
            0    2     1   val  Z
    MethodParameters:
      Name  Flags
      val   

  boolean verboseServer();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.driver.NativeImageServer this
         0: .line 823
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.verboseServer:Z
            ireturn
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/driver/NativeImageServer;

  void setSessionName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 1 // java.lang.String val
         0: .line 827
            aload 1 /* val */
            ifnull 2
            aload 1 /* val */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 828
            ldc "Empty string not allowed as session-name"
            invokestatic com.oracle.svm.driver.NativeImageServer.showError:(Ljava/lang/String;)Ljava/lang/Error;
            athrow
         2: .line 830
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* val */
            putfield com.oracle.svm.driver.NativeImageServer.sessionName:Ljava/lang/String;
         3: .line 831
            return
        end local 1 // java.lang.String val
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/svm/driver/NativeImageServer;
            0    4     1   val  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      val   

  private static void lambda$0(java.io.OutputStream, byte[]);
    descriptor: (Ljava/io/OutputStream;[B)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // byte[] b
         0: .line 336
            aload 0
            aload 1 /* b */
            invokevirtual java.io.OutputStream.write:([B)V
         1: .line 337
            goto 4
      StackMap locals:
      StackMap stack: java.io.IOException
         2: pop
         3: .line 338
            new java.lang.RuntimeException
            dup
            ldc "Byte stream write failed."
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 340
      StackMap locals:
      StackMap stack:
            return
        end local 1 // byte[] b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     1     b  [B
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException

  private void lambda$1(java.util.List, java.util.LinkedHashSet, java.util.LinkedHashSet, com.oracle.svm.driver.NativeImageServer$Server[], java.nio.channels.FileChannel);
    descriptor: (Ljava/util/List;Ljava/util/LinkedHashSet;Ljava/util/LinkedHashSet;[Lcom/oracle/svm/driver/NativeImageServer$Server;Ljava/nio/channels/FileChannel;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=25, args_size=6
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 5 // java.nio.channels.FileChannel lockFileChannel
         0: .line 385
            aconst_null
            astore 6
            aconst_null
            astore 7
         1: aload 5 /* lockFileChannel */
            invokestatic com.oracle.svm.driver.NativeImageServer.lockFileChannel:(Ljava/nio/channels/FileChannel;)Ljava/nio/channels/FileLock;
            astore 8 /* lock */
        start local 8 // java.nio.channels.FileLock lock
         2: .line 387
            aload 0 /* this */
            iconst_0
            iconst_1
            iconst_1
            invokevirtual com.oracle.svm.driver.NativeImageServer.cleanupServers:(ZZZ)Ljava/util/List;
            astore 9 /* aliveServers */
        start local 9 // java.util.List aliveServers
         3: .line 390
            aload 0 /* this */
            invokevirtual com.oracle.svm.driver.NativeImageServer.getMachineDir:()Ljava/nio/file/Path;
            ldc "machine.properties"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            invokestatic com.oracle.svm.driver.NativeImageServer.loadProperties:(Ljava/nio/file/Path;)Ljava/util/Map;
            ldc "MaxServers"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* maxServersStr */
        start local 10 // java.lang.String maxServersStr
         4: .line 391
            aload 10 /* maxServersStr */
            ifnull 5
            aload 10 /* maxServersStr */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 6
         5: .line 392
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.util.List java.util.LinkedHashSet java.util.LinkedHashSet com.oracle.svm.driver.NativeImageServer$Server[] java.nio.channels.FileChannel java.lang.Throwable java.lang.Throwable java.nio.channels.FileLock java.util.List java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.svm.driver.NativeImageServer.getUserConfigProperties:()Ljava/util/Map;
            ldc "MaxServers"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* maxServersStr */
         6: .line 395
      StackMap locals:
      StackMap stack:
            aload 10 /* maxServersStr */
            ifnull 7
            aload 10 /* maxServersStr */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 9
         7: .line 396
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 11 /* maxServers */
        start local 11 // int maxServers
         8: .line 397
            goto 10
        end local 11 // int maxServers
         9: .line 398
      StackMap locals:
      StackMap stack:
            iconst_1
            aload 10 /* maxServersStr */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokestatic java.lang.Math.max:(II)I
            istore 11 /* maxServers */
        start local 11 // int maxServers
        10: .line 402
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 11 /* maxServers */
            invokevirtual com.oracle.svm.driver.NativeImageServer.getXmxValue:(I)Ljava/lang/String;
            astore 12 /* xmxValueStr */
        start local 12 // java.lang.String xmxValueStr
        11: .line 403
            aload 1
            ldc "-Xmx"
            aload 12 /* xmxValueStr */
            invokestatic com.oracle.svm.driver.NativeImageServer.replaceArg:(Ljava/util/Collection;Ljava/lang/String;Ljava/lang/String;)Z
            pop
        12: .line 404
            aload 0 /* this */
            invokevirtual com.oracle.svm.driver.NativeImageServer.getXmsValue:()Ljava/lang/String;
            astore 13 /* xmsValueStr */
        start local 13 // java.lang.String xmsValueStr
        13: .line 405
            aload 12 /* xmxValueStr */
            invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.parseLong:(Ljava/lang/String;)J
            lstore 14 /* xmxValue */
        start local 14 // long xmxValue
        14: .line 406
            aload 13 /* xmsValueStr */
            invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.parseLong:(Ljava/lang/String;)J
            lstore 16 /* xmsValue */
        start local 16 // long xmsValue
        15: .line 407
            lload 16 /* xmsValue */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            lload 14 /* xmxValue */
            invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.aboveThan:(Lorg/graalvm/word/UnsignedWord;)Z
            ifeq 17
        16: .line 408
            lload 14 /* xmxValue */
            invokestatic java.lang.Long.toUnsignedString:(J)Ljava/lang/String;
            astore 13 /* xmsValueStr */
        17: .line 410
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.util.List java.util.LinkedHashSet java.util.LinkedHashSet com.oracle.svm.driver.NativeImageServer$Server[] java.nio.channels.FileChannel java.lang.Throwable java.lang.Throwable java.nio.channels.FileLock java.util.List java.lang.String int java.lang.String java.lang.String long long
      StackMap stack:
            aload 1
            ldc "-Xms"
            aload 13 /* xmsValueStr */
            invokestatic com.oracle.svm.driver.NativeImageServer.replaceArg:(Ljava/util/Collection;Ljava/lang/String;Ljava/lang/String;)Z
            pop
        18: .line 412
            aload 0 /* this */
            invokevirtual com.oracle.svm.driver.NativeImageServer.getSessionDir:()Ljava/nio/file/Path;
            astore 18 /* sessionDir */
        start local 18 // java.nio.file.Path sessionDir
        19: .line 413
            new java.util.ArrayList
            dup
            iconst_2
            anewarray java.util.LinkedHashSet
            dup
            iconst_0
            aload 2
            aastore
            dup
            iconst_1
            aload 3
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 19 /* builderPaths */
        start local 19 // java.util.List builderPaths
        20: .line 414
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.config:Lcom/oracle/svm/driver/NativeImage$BuildConfiguration;
            invokeinterface com.oracle.svm.driver.NativeImage$BuildConfiguration.useJavaModules:()Z
            ifeq 22
        21: .line 415
            aload 19 /* builderPaths */
            iconst_2
            anewarray java.util.List
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.config:Lcom/oracle/svm/driver/NativeImage$BuildConfiguration;
            invokeinterface com.oracle.svm.driver.NativeImage$BuildConfiguration.getBuilderModulePath:()Ljava/util/List;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.config:Lcom/oracle/svm/driver/NativeImage$BuildConfiguration;
            invokeinterface com.oracle.svm.driver.NativeImage$BuildConfiguration.getBuilderUpgradeModulePath:()Ljava/util/List;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        22: .line 417
      StackMap locals: java.nio.file.Path java.util.List
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.config:Lcom/oracle/svm/driver/NativeImage$BuildConfiguration;
            invokeinterface com.oracle.svm.driver.NativeImage$BuildConfiguration.getJavaExecutable:()Ljava/nio/file/Path;
            invokevirtual com.oracle.svm.driver.NativeImageServer.canonicalize:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 20 /* javaExePath */
        start local 20 // java.nio.file.Path javaExePath
        23: .line 418
            aload 20 /* javaExePath */
            aload 1
            aload 19 /* builderPaths */
            invokestatic com.oracle.svm.driver.NativeImageServer.imageServerUID:(Ljava/nio/file/Path;Ljava/util/List;Ljava/util/List;)Ljava/lang/String;
            astore 21 /* serverUID */
        start local 21 // java.lang.String serverUID
        24: .line 419
            aload 18 /* sessionDir */
            new java.lang.StringBuilder
            dup
            ldc "server-id-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 21 /* serverUID */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 22 /* serverDir */
        start local 22 // java.nio.file.Path serverDir
        25: .line 420
            aload 9 /* aliveServers */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            aload 22 /* serverDir */
            invokedynamic test(Ljava/nio/file/Path;)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/svm/driver/NativeImageServer.lambda$2(Ljava/nio/file/Path;Lcom/oracle/svm/driver/NativeImageServer$Server;)Z (6)
                  (Lcom/oracle/svm/driver/NativeImageServer$Server;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            astore 23 /* reusableServer */
        start local 23 // java.util.Optional reusableServer
        26: .line 421
            aload 23 /* reusableServer */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 33
        27: .line 422
            aload 23 /* reusableServer */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast com.oracle.svm.driver.NativeImageServer$Server
            astore 24 /* server */
        start local 24 // com.oracle.svm.driver.NativeImageServer$Server server
        28: .line 423
            aload 24 /* server */
            invokevirtual com.oracle.svm.driver.NativeImageServer$Server.isAlive:()Z
            ifne 30
        29: .line 424
            new java.lang.StringBuilder
            dup
            ldc "Found defunct image-build server:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 24 /* server */
            invokevirtual com.oracle.svm.driver.NativeImageServer$Server.getServerInfo:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.svm.driver.NativeImageServer.showError:(Ljava/lang/String;)Ljava/lang/Error;
            athrow
        30: .line 426
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.util.List java.util.LinkedHashSet java.util.LinkedHashSet com.oracle.svm.driver.NativeImageServer$Server[] java.nio.channels.FileChannel java.lang.Throwable java.lang.Throwable java.nio.channels.FileLock java.util.List java.lang.String int java.lang.String java.lang.String long long java.nio.file.Path java.util.List java.nio.file.Path java.lang.String java.nio.file.Path java.util.Optional com.oracle.svm.driver.NativeImageServer$Server
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.verboseServer:Z
            new java.lang.StringBuilder
            dup
            ldc "Reuse existing image-build server: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 24 /* server */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.svm.driver.NativeImageServer.showVerboseMessage:(ZLjava/lang/String;)V
        31: .line 427
            aload 4
            iconst_0
            aload 24 /* server */
            aastore
        end local 24 // com.oracle.svm.driver.NativeImageServer$Server server
        32: .line 428
            goto 45
        33: .line 429
      StackMap locals:
      StackMap stack:
            aload 9 /* aliveServers */
            invokeinterface java.util.List.size:()I
            iload 11 /* maxServers */
            if_icmplt 41
        34: .line 431
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.verboseServer:Z
            ldc "Image-build server limit reached -> remove least recently used"
            invokevirtual com.oracle.svm.driver.NativeImageServer.showVerboseMessage:(ZLjava/lang/String;)V
        35: .line 433
            aload 9 /* aliveServers */
            invokestatic com.oracle.svm.driver.NativeImageServer.findVictim:(Ljava/util/List;)Lcom/oracle/svm/driver/NativeImageServer$Server;
            astore 24 /* victim */
        start local 24 // com.oracle.svm.driver.NativeImageServer$Server victim
        36: .line 435
            aload 24 /* victim */
            ifnull 40
        37: .line 436
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Shutdown "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 24 /* victim */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.svm.driver.NativeImageServer.showMessage:(Ljava/lang/String;)V
        38: .line 437
            aload 24 /* victim */
            invokevirtual com.oracle.svm.driver.NativeImageServer$Server.shutdown:()V
        39: .line 438
            goto 41
        40: .line 439
      StackMap locals: com.oracle.svm.driver.NativeImageServer$Server
      StackMap stack:
            ldc "Image-build server limit exceeded. Use options --server{-list,-shutdown[-all]} to fix the problem."
            invokestatic com.oracle.svm.driver.NativeImageServer.showWarning:(Ljava/lang/String;)V
        end local 24 // com.oracle.svm.driver.NativeImageServer$Server victim
        41: .line 443
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 20 /* javaExePath */
            aload 22 /* serverDir */
            iconst_0
            aload 2
            aload 3
            aload 1
            invokevirtual com.oracle.svm.driver.NativeImageServer.startServer:(Ljava/nio/file/Path;Ljava/nio/file/Path;ILjava/util/LinkedHashSet;Ljava/util/LinkedHashSet;Ljava/util/List;)Lcom/oracle/svm/driver/NativeImageServer$Server;
            astore 24 /* server */
        start local 24 // com.oracle.svm.driver.NativeImageServer$Server server
        42: .line 444
            aload 24 /* server */
            ifnonnull 44
        43: .line 445
            ldc "Creating image-build server failed. Fallback to one-shot image building ..."
            invokestatic com.oracle.svm.driver.NativeImageServer.showWarning:(Ljava/lang/String;)V
        44: .line 447
      StackMap locals: com.oracle.svm.driver.NativeImageServer$Server
      StackMap stack:
            aload 4
            iconst_0
            aload 24 /* server */
            aastore
        end local 24 // com.oracle.svm.driver.NativeImageServer$Server server
        end local 23 // java.util.Optional reusableServer
        end local 22 // java.nio.file.Path serverDir
        end local 21 // java.lang.String serverUID
        end local 20 // java.nio.file.Path javaExePath
        end local 19 // java.util.List builderPaths
        end local 18 // java.nio.file.Path sessionDir
        end local 16 // long xmsValue
        end local 14 // long xmxValue
        end local 13 // java.lang.String xmsValueStr
        end local 12 // java.lang.String xmxValueStr
        end local 11 // int maxServers
        end local 10 // java.lang.String maxServersStr
        end local 9 // java.util.List aliveServers
        45: .line 449
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.util.List java.util.LinkedHashSet java.util.LinkedHashSet com.oracle.svm.driver.NativeImageServer$Server[] java.nio.channels.FileChannel java.lang.Throwable java.lang.Throwable java.nio.channels.FileLock
      StackMap stack:
            aload 8 /* lock */
            ifnull 53
            aload 8 /* lock */
            invokevirtual java.nio.channels.FileLock.close:()V
            goto 53
      StackMap locals:
      StackMap stack: java.lang.Throwable
        46: astore 6
            aload 8 /* lock */
            ifnull 47
            aload 8 /* lock */
            invokevirtual java.nio.channels.FileLock.close:()V
        end local 8 // java.nio.channels.FileLock lock
      StackMap locals:
      StackMap stack:
        47: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        48: astore 7
            aload 6
            ifnonnull 49
            aload 7
            astore 6
            goto 50
      StackMap locals:
      StackMap stack:
        49: aload 6
            aload 7
            if_acmpeq 50
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        50: aload 6
            athrow
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.util.List java.util.LinkedHashSet java.util.LinkedHashSet com.oracle.svm.driver.NativeImageServer$Server[] java.nio.channels.FileChannel
      StackMap stack: java.io.IOException
        51: astore 6 /* e */
        start local 6 // java.io.IOException e
        52: .line 450
            ldc "ServerInstance-creation locking failed"
            aload 6 /* e */
            invokestatic com.oracle.svm.driver.NativeImageServer.showError:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/lang/Error;
            athrow
        end local 6 // java.io.IOException e
        53: .line 452
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.nio.channels.FileChannel lockFileChannel
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   54     0             this  Lcom/oracle/svm/driver/NativeImageServer;
            0   54     5  lockFileChannel  Ljava/nio/channels/FileChannel;
            2   47     8             lock  Ljava/nio/channels/FileLock;
            3   45     9     aliveServers  Ljava/util/List<Lcom/oracle/svm/driver/NativeImageServer$Server;>;
            4   45    10    maxServersStr  Ljava/lang/String;
            8    9    11       maxServers  I
           10   45    11       maxServers  I
           11   45    12      xmxValueStr  Ljava/lang/String;
           13   45    13      xmsValueStr  Ljava/lang/String;
           14   45    14         xmxValue  J
           15   45    16         xmsValue  J
           19   45    18       sessionDir  Ljava/nio/file/Path;
           20   45    19     builderPaths  Ljava/util/List<Ljava/util/Collection<Ljava/nio/file/Path;>;>;
           23   45    20      javaExePath  Ljava/nio/file/Path;
           24   45    21        serverUID  Ljava/lang/String;
           25   45    22        serverDir  Ljava/nio/file/Path;
           26   45    23   reusableServer  Ljava/util/Optional<Lcom/oracle/svm/driver/NativeImageServer$Server;>;
           28   32    24           server  Lcom/oracle/svm/driver/NativeImageServer$Server;
           36   41    24           victim  Lcom/oracle/svm/driver/NativeImageServer$Server;
           42   45    24           server  Lcom/oracle/svm/driver/NativeImageServer$Server;
           52   53     6                e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2    45      46  any
           1    48      48  any
           0    51      51  Class java.io.IOException

  private static java.time.Instant lambda$4(com.oracle.svm.driver.NativeImageServer$Server);
    descriptor: (Lcom/oracle/svm/driver/NativeImageServer$Server;)Ljava/time/Instant;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.driver.NativeImageServer$Server s
         0: .line 459
            aload 0 /* s */
            getfield com.oracle.svm.driver.NativeImageServer$Server.lastBuildRequest:Ljava/time/Instant;
            areturn
        end local 0 // com.oracle.svm.driver.NativeImageServer$Server s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Lcom/oracle/svm/driver/NativeImageServer$Server;

  private static boolean lambda$17(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.nio.file.Path  arg0
         0: aload 0 /*  arg0 */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ireturn
        end local 0 // java.nio.file.Path  arg0
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   arg0  Ljava/nio/file/Path;

  private static boolean lambda$6(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.nio.file.Path sessionDir
         0: .line 469
            aload 0 /* sessionDir */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            ldc "session-id-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ireturn
        end local 0 // java.nio.file.Path sessionDir
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  sessionDir  Ljava/nio/file/Path;

  private static boolean lambda$18(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.nio.file.Path  arg0
         0: aload 0 /*  arg0 */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ireturn
        end local 0 // java.nio.file.Path  arg0
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   arg0  Ljava/nio/file/Path;

  private void lambda$8(java.util.ArrayList, java.nio.file.Path);
    descriptor: (Ljava/util/ArrayList;Ljava/nio/file/Path;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 2 // java.nio.file.Path serverDir
         0: .line 483
            aload 2 /* serverDir */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            ldc "server-id-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 6
         1: .line 485
            aload 1
            new com.oracle.svm.driver.NativeImageServer$Server
            dup
            aload 0 /* this */
            aload 2 /* serverDir */
            invokespecial com.oracle.svm.driver.NativeImageServer$Server.<init>:(Lcom/oracle/svm/driver/NativeImageServer;Ljava/nio/file/Path;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         2: .line 486
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Exception
         3: pop
         4: .line 487
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.verboseServer:Z
            new java.lang.StringBuilder
            dup
            ldc "Found corrupt ServerDir "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* serverDir */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.svm.driver.NativeImageServer.showVerboseMessage:(ZLjava/lang/String;)V
         5: .line 488
            aload 0 /* this */
            aload 2 /* serverDir */
            invokevirtual com.oracle.svm.driver.NativeImageServer.deleteAllFiles:(Ljava/nio/file/Path;)V
         6: .line 491
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.nio.file.Path serverDir
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/oracle/svm/driver/NativeImageServer;
            0    7     2  serverDir  Ljava/nio/file/Path;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Exception

  private void lambda$9(java.nio.file.Path, boolean, boolean, java.util.List, java.nio.channels.FileChannel);
    descriptor: (Ljava/nio/file/Path;ZZLjava/util/List;Ljava/nio/channels/FileChannel;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=13, args_size=6
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 5 // java.nio.channels.FileChannel lockFileChannel
         0: .line 529
            aconst_null
            astore 6
            aconst_null
            astore 7
         1: aload 5 /* lockFileChannel */
            invokevirtual java.nio.channels.FileChannel.lock:()Ljava/nio/channels/FileLock;
            astore 8 /* lock */
        start local 8 // java.nio.channels.FileLock lock
         2: .line 530
            aload 0 /* this */
            aload 1
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokevirtual com.oracle.svm.driver.NativeImageServer.findServers:(Ljava/util/List;)Ljava/util/List;
            astore 9 /* servers */
        start local 9 // java.util.List servers
         3: .line 531
            aload 9 /* servers */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 12
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.nio.file.Path int int java.util.List java.nio.channels.FileChannel java.lang.Throwable java.lang.Throwable java.nio.channels.FileLock java.util.List top java.util.Iterator
      StackMap stack:
         4: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.driver.NativeImageServer$Server
            astore 10 /* server */
        start local 10 // com.oracle.svm.driver.NativeImageServer$Server server
         5: .line 532
            aload 10 /* server */
            invokevirtual com.oracle.svm.driver.NativeImageServer$Server.isAlive:()Z
            istore 12 /* alive */
        start local 12 // boolean alive
         6: .line 533
            iload 12 /* alive */
            ifeq 7
            iload 2
            ifeq 11
         7: .line 534
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.nio.file.Path int int java.util.List java.nio.channels.FileChannel java.lang.Throwable java.lang.Throwable java.nio.channels.FileLock java.util.List com.oracle.svm.driver.NativeImageServer$Server java.util.Iterator int
      StackMap stack:
            iload 3
            ifne 9
         8: .line 535
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Cleanup "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* server */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            aload 10 /* server */
            iload 12 /* alive */
            invokevirtual com.oracle.svm.driver.NativeImageServer$Server.getLivenessInfo:(Z)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.svm.driver.NativeImageServer.showMessage:(Ljava/lang/String;)V
         9: .line 537
      StackMap locals:
      StackMap stack:
            aload 10 /* server */
            invokevirtual com.oracle.svm.driver.NativeImageServer$Server.shutdown:()V
        10: .line 538
            goto 12
        11: .line 539
      StackMap locals:
      StackMap stack:
            aload 4
            aload 10 /* server */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // boolean alive
        end local 10 // com.oracle.svm.driver.NativeImageServer$Server server
        12: .line 531
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.nio.file.Path int int java.util.List java.nio.channels.FileChannel java.lang.Throwable java.lang.Throwable java.nio.channels.FileLock java.util.List top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 9 // java.util.List servers
        13: .line 542
            aload 8 /* lock */
            ifnull 21
            aload 8 /* lock */
            invokevirtual java.nio.channels.FileLock.close:()V
            goto 21
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.nio.file.Path int int java.util.List java.nio.channels.FileChannel java.lang.Throwable java.lang.Throwable java.nio.channels.FileLock
      StackMap stack: java.lang.Throwable
        14: astore 6
            aload 8 /* lock */
            ifnull 15
            aload 8 /* lock */
            invokevirtual java.nio.channels.FileLock.close:()V
        end local 8 // java.nio.channels.FileLock lock
      StackMap locals:
      StackMap stack:
        15: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 7
            aload 6
            ifnonnull 17
            aload 7
            astore 6
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 6
            aload 7
            if_acmpeq 18
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        18: aload 6
            athrow
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.nio.file.Path int int java.util.List java.nio.channels.FileChannel
      StackMap stack: java.io.IOException
        19: astore 6 /* e */
        start local 6 // java.io.IOException e
        20: .line 543
            new java.lang.StringBuilder
            dup
            ldc "Locking SessionDir "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " failed"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 6 /* e */
            invokestatic com.oracle.svm.driver.NativeImageServer.showError:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/lang/Error;
            athrow
        end local 6 // java.io.IOException e
        21: .line 545
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.nio.channels.FileChannel lockFileChannel
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   22     0             this  Lcom/oracle/svm/driver/NativeImageServer;
            0   22     5  lockFileChannel  Ljava/nio/channels/FileChannel;
            2   15     8             lock  Ljava/nio/channels/FileLock;
            3   13     9          servers  Ljava/util/List<Lcom/oracle/svm/driver/NativeImageServer$Server;>;
            5   12    10           server  Lcom/oracle/svm/driver/NativeImageServer$Server;
            6   12    12            alive  Z
           20   21     6                e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2    13      14  any
           1    16      16  any
           0    19      19  Class java.io.IOException

  private void lambda$12(java.nio.file.Path, java.lang.ProcessBuilder, int, java.util.LinkedHashSet, java.util.LinkedHashSet, java.util.List);
    descriptor: (Ljava/nio/file/Path;Ljava/lang/ProcessBuilder;ILjava/util/LinkedHashSet;Ljava/util/LinkedHashSet;Ljava/util/List;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=18, args_size=7
        start local 0 // com.oracle.svm.driver.NativeImageServer this
         0: .line 573
            aload 1
            invokestatic com.oracle.svm.driver.NativeImageServer.ensureDirectoryExists:(Ljava/nio/file/Path;)V
         1: .line 574
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.verboseServer:Z
            ldc "Starting new server ..."
            invokevirtual com.oracle.svm.driver.NativeImageServer.showVerboseMessage:(ZLjava/lang/String;)V
         2: .line 575
            aload 2
            invokevirtual java.lang.ProcessBuilder.start:()Ljava/lang/Process;
            astore 7 /* process */
        start local 7 // java.lang.Process process
         3: .line 576
            aload 7 /* process */
            invokestatic org.graalvm.nativeimage.ProcessProperties.getProcessID:(Ljava/lang/Process;)J
            lstore 8 /* serverPID */
        start local 8 // long serverPID
         4: .line 577
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.verboseServer:Z
            new java.lang.StringBuilder
            dup
            ldc "New image-build server pid: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 8 /* serverPID */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.svm.driver.NativeImageServer.showVerboseMessage:(ZLjava/lang/String;)V
         5: .line 578
            iload 3
            istore 10 /* selectedPort */
        start local 10 // int selectedPort
         6: .line 579
            iload 10 /* selectedPort */
            ifne 32
         7: .line 580
            aconst_null
            astore 11
            aconst_null
            astore 12
         8: new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            aload 7 /* process */
            invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 13 /* serverStdout */
        start local 13 // java.io.BufferedReader serverStdout
         9: .line 582
            bipush 60
            istore 15 /* readLineTries */
        start local 15 // int readLineTries
        10: .line 583
            new java.util.ArrayList
            dup
            iload 15 /* readLineTries */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 16 /* lines */
        start local 16 // java.util.ArrayList lines
        11: .line 584
            goto 18
        start local 14 // java.lang.String line
        12: .line 585
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.nio.file.Path java.lang.ProcessBuilder int java.util.LinkedHashSet java.util.LinkedHashSet java.util.List java.lang.Process long int java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.String int java.util.ArrayList
      StackMap stack:
            aload 16 /* lines */
            aload 14 /* line */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        13: .line 586
            aload 14 /* line */
            ldc "Started image build server on port: "
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 18
        14: .line 587
            aload 14 /* line */
            ldc "Started image build server on port: "
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 17 /* portStr */
        start local 17 // java.lang.String portStr
        15: .line 589
            aload 17 /* portStr */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 10 /* selectedPort */
        16: .line 590
            goto 20
        17: .line 591
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.nio.file.Path java.lang.ProcessBuilder int java.util.LinkedHashSet java.util.LinkedHashSet java.util.List java.lang.Process long int java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.String int java.util.ArrayList java.lang.String
      StackMap stack: java.lang.NumberFormatException
            pop
        end local 17 // java.lang.String portStr
        end local 14 // java.lang.String line
        18: .line 584
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.nio.file.Path java.lang.ProcessBuilder int java.util.LinkedHashSet java.util.LinkedHashSet java.util.List java.lang.Process long int java.lang.Throwable java.lang.Throwable java.io.BufferedReader top int java.util.ArrayList
      StackMap stack:
            aload 13 /* serverStdout */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            dup
            astore 14 /* line */
        start local 14 // java.lang.String line
        19: ifnull 20
            iinc 15 /* readLineTries */ -1
            iload 15 /* readLineTries */
            ifgt 12
        20: .line 596
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.nio.file.Path java.lang.ProcessBuilder int java.util.LinkedHashSet java.util.LinkedHashSet java.util.List java.lang.Process long int java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.String int java.util.ArrayList
      StackMap stack:
            iload 10 /* selectedPort */
            ifne 25
        21: .line 597
            ldc ""
            astore 17 /* serverOutputMessage */
        start local 17 // java.lang.String serverOutputMessage
        22: .line 598
            aload 16 /* lines */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifne 24
        23: .line 599
            new java.lang.StringBuilder
            dup
            ldc "\nServer stdout/stderr:\n"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            aload 16 /* lines */
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 17 /* serverOutputMessage */
        24: .line 601
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Could not determine port for sending image-build requests."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 17 /* serverOutputMessage */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.svm.driver.NativeImageServer.showError:(Ljava/lang/String;)Ljava/lang/Error;
            athrow
        end local 17 // java.lang.String serverOutputMessage
        25: .line 603
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.verboseServer:Z
            new java.lang.StringBuilder
            dup
            ldc "Image-build server selected port "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 10 /* selectedPort */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.svm.driver.NativeImageServer.showVerboseMessage:(ZLjava/lang/String;)V
        end local 16 // java.util.ArrayList lines
        end local 15 // int readLineTries
        end local 14 // java.lang.String line
        26: .line 604
            aload 13 /* serverStdout */
            ifnull 32
            aload 13 /* serverStdout */
            invokevirtual java.io.BufferedReader.close:()V
            goto 32
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.nio.file.Path java.lang.ProcessBuilder int java.util.LinkedHashSet java.util.LinkedHashSet java.util.List java.lang.Process long int java.lang.Throwable java.lang.Throwable java.io.BufferedReader
      StackMap stack: java.lang.Throwable
        27: astore 11
            aload 13 /* serverStdout */
            ifnull 28
            aload 13 /* serverStdout */
            invokevirtual java.io.BufferedReader.close:()V
        end local 13 // java.io.BufferedReader serverStdout
      StackMap locals:
      StackMap stack:
        28: aload 11
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        29: astore 12
            aload 11
            ifnonnull 30
            aload 12
            astore 11
            goto 31
      StackMap locals:
      StackMap stack:
        30: aload 11
            aload 12
            if_acmpeq 31
            aload 11
            aload 12
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        31: aload 11
            athrow
        32: .line 606
      StackMap locals:
      StackMap stack:
            aload 1
            iload 10 /* selectedPort */
            lload 8 /* serverPID */
            aload 4
            aload 5
            aload 6
            invokestatic com.oracle.svm.driver.NativeImageServer.writeServerFile:(Ljava/nio/file/Path;IJLjava/util/LinkedHashSet;Ljava/util/LinkedHashSet;Ljava/util/List;)V
        end local 10 // int selectedPort
        end local 8 // long serverPID
        end local 7 // java.lang.Process process
        33: .line 607
            goto 37
      StackMap locals: com.oracle.svm.driver.NativeImageServer java.nio.file.Path java.lang.ProcessBuilder int java.util.LinkedHashSet java.util.LinkedHashSet java.util.List
      StackMap stack: java.lang.Throwable
        34: astore 7 /* e */
        start local 7 // java.lang.Throwable e
        35: .line 608
            aload 0 /* this */
            aload 1
            invokevirtual com.oracle.svm.driver.NativeImageServer.deleteAllFiles:(Ljava/nio/file/Path;)V
        36: .line 609
            ldc "Starting image-build server instance failed"
            aload 7 /* e */
            invokestatic com.oracle.svm.driver.NativeImageServer.showError:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/lang/Error;
            athrow
        end local 7 // java.lang.Throwable e
        37: .line 611
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   38     0                 this  Lcom/oracle/svm/driver/NativeImageServer;
            3   33     7              process  Ljava/lang/Process;
            4   33     8            serverPID  J
            6   33    10         selectedPort  I
            9   28    13         serverStdout  Ljava/io/BufferedReader;
           12   18    14                 line  Ljava/lang/String;
           19   26    14                 line  Ljava/lang/String;
           10   26    15        readLineTries  I
           11   26    16                lines  Ljava/util/ArrayList<Ljava/lang/String;>;
           15   18    17              portStr  Ljava/lang/String;
           22   25    17  serverOutputMessage  Ljava/lang/String;
           35   37     7                    e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          15    16      17  Class java.lang.NumberFormatException
           9    26      27  any
           8    29      29  any
           0    33      34  Class java.lang.Throwable

  private static void lambda$15(java.nio.channels.FileChannel);
    descriptor: (Ljava/nio/channels/FileChannel;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=1
         0: .line 682
            getstatic java.util.concurrent.TimeUnit.MINUTES:Ljava/util/concurrent/TimeUnit;
            ldc 10
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
            invokestatic java.lang.Thread.sleep:(J)V
         1: .line 684
            ldc "Timeout while waiting for FileChannel.lock"
            invokestatic com.oracle.svm.driver.NativeImageServer.showWarning:(Ljava/lang/String;)V
         2: .line 686
            aload 0
            invokevirtual java.nio.channels.FileChannel.close:()V
         3: .line 687
            goto 7
      StackMap locals:
      StackMap stack: java.io.IOException
         4: astore 1 /* e */
        start local 1 // java.io.IOException e
         5: .line 688
            ldc "LockWatcher closing FileChannel of LockFile failed"
            aload 1 /* e */
            invokestatic com.oracle.svm.driver.NativeImageServer.showError:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/lang/Error;
            athrow
        end local 1 // java.io.IOException e
         6: .line 690
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            pop
         7: .line 693
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            5    6     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     3       4  Class java.io.IOException
           0     6       6  Class java.lang.InterruptedException

  private boolean lambda$16(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.driver.NativeImageServer this
        start local 1 // java.lang.String arg
         0: .line 742
            aload 1 /* arg */
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.enablePrintFlags:Ljava/lang/String;
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 1
            aload 1 /* arg */
            aload 0 /* this */
            getfield com.oracle.svm.driver.NativeImageServer.enablePrintFlagsWithExtraHelp:Ljava/lang/String;
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.String arg
        end local 0 // com.oracle.svm.driver.NativeImageServer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/svm/driver/NativeImageServer;
            0    3     1   arg  Ljava/lang/String;

  private static boolean lambda$2(java.nio.file.Path, com.oracle.svm.driver.NativeImageServer$Server);
    descriptor: (Ljava/nio/file/Path;Lcom/oracle/svm/driver/NativeImageServer$Server;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // com.oracle.svm.driver.NativeImageServer$Server s
         0: .line 420
            aload 1 /* s */
            getfield com.oracle.svm.driver.NativeImageServer$Server.serverDir:Ljava/nio/file/Path;
            aload 0
            invokeinterface java.nio.file.Path.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // com.oracle.svm.driver.NativeImageServer$Server s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     s  Lcom/oracle/svm/driver/NativeImageServer$Server;
}
SourceFile: "NativeImageServer.java"
NestMembers:
  com.oracle.svm.driver.NativeImageServer$AbortBuildSignalHandler  com.oracle.svm.driver.NativeImageServer$Server  com.oracle.svm.driver.NativeImageServer$ServerInstanceError
InnerClasses:
  public abstract BuildConfiguration = com.oracle.svm.driver.NativeImage$BuildConfiguration of com.oracle.svm.driver.NativeImage
  abstract OptionHandler = com.oracle.svm.driver.NativeImage$OptionHandler of com.oracle.svm.driver.NativeImage
  private final AbortBuildSignalHandler = com.oracle.svm.driver.NativeImageServer$AbortBuildSignalHandler of com.oracle.svm.driver.NativeImageServer
  private final Server = com.oracle.svm.driver.NativeImageServer$Server of com.oracle.svm.driver.NativeImageServer
  private final ServerInstanceError = com.oracle.svm.driver.NativeImageServer$ServerInstanceError of com.oracle.svm.driver.NativeImageServer
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles