final class com.oracle.truffle.polyglot.FileSystems$NIOFileSystem implements com.oracle.truffle.polyglot.FileSystems$InternalFileSystem
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.polyglot.FileSystems$NIOFileSystem
  super_class: java.lang.Object
{
  private final java.nio.file.spi.FileSystemProvider hostfs;
    descriptor: Ljava/nio/file/spi/FileSystemProvider;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean explicitUserDir;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile java.nio.file.Path userDir;
    descriptor: Ljava/nio/file/Path;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile java.nio.file.Path tmpDir;
    descriptor: Ljava/nio/file/Path;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  void <init>(java.nio.file.spi.FileSystemProvider);
    descriptor: (Ljava/nio/file/spi/FileSystemProvider;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.spi.FileSystemProvider fileSystemProvider
         0: .line 705
            aload 0 /* this */
            aload 1 /* fileSystemProvider */
            iconst_0
            aconst_null
            invokespecial com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.<init>:(Ljava/nio/file/spi/FileSystemProvider;ZLjava/nio/file/Path;)V
         1: .line 706
            return
        end local 1 // java.nio.file.spi.FileSystemProvider fileSystemProvider
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    2     1  fileSystemProvider  Ljava/nio/file/spi/FileSystemProvider;
    MethodParameters:
                    Name  Flags
      fileSystemProvider  final

  void <init>(java.nio.file.spi.FileSystemProvider, java.nio.file.Path);
    descriptor: (Ljava/nio/file/spi/FileSystemProvider;Ljava/nio/file/Path;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.spi.FileSystemProvider fileSystemProvider
        start local 2 // java.nio.file.Path userDir
         0: .line 709
            aload 0 /* this */
            aload 1 /* fileSystemProvider */
            iconst_1
            aload 2 /* userDir */
            invokespecial com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.<init>:(Ljava/nio/file/spi/FileSystemProvider;ZLjava/nio/file/Path;)V
         1: .line 710
            return
        end local 2 // java.nio.file.Path userDir
        end local 1 // java.nio.file.spi.FileSystemProvider fileSystemProvider
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    2     1  fileSystemProvider  Ljava/nio/file/spi/FileSystemProvider;
            0    2     2             userDir  Ljava/nio/file/Path;
    MethodParameters:
                    Name  Flags
      fileSystemProvider  final
      userDir             final

  private void <init>(java.nio.file.spi.FileSystemProvider, boolean, java.nio.file.Path);
    descriptor: (Ljava/nio/file/spi/FileSystemProvider;ZLjava/nio/file/Path;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.spi.FileSystemProvider fileSystemProvider
        start local 2 // boolean explicitUserDir
        start local 3 // java.nio.file.Path userDir
         0: .line 712
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 713
            aload 1 /* fileSystemProvider */
            ldc "FileSystemProvider must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 714
            aload 0 /* this */
            aload 1 /* fileSystemProvider */
            putfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
         3: .line 715
            aload 0 /* this */
            iload 2 /* explicitUserDir */
            putfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.explicitUserDir:Z
         4: .line 716
            aload 0 /* this */
            aload 3 /* userDir */
            putfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.userDir:Ljava/nio/file/Path;
         5: .line 717
            return
        end local 3 // java.nio.file.Path userDir
        end local 2 // boolean explicitUserDir
        end local 1 // java.nio.file.spi.FileSystemProvider fileSystemProvider
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    6     1  fileSystemProvider  Ljava/nio/file/spi/FileSystemProvider;
            0    6     2     explicitUserDir  Z
            0    6     3             userDir  Ljava/nio/file/Path;
    MethodParameters:
                    Name  Flags
      fileSystemProvider  final
      explicitUserDir     final
      userDir             final

  public boolean hasAllAccess();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
         0: .line 721
            ldc "file"
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            invokevirtual java.nio.file.spi.FileSystemProvider.getScheme:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;

  public java.nio.file.Path parsePath(java.net.URI);
    descriptor: (Ljava/net/URI;)Ljava/nio/file/Path;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.net.URI uri
         0: .line 727
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 1 /* uri */
            invokevirtual java.nio.file.spi.FileSystemProvider.getPath:(Ljava/net/URI;)Ljava/nio/file/Path;
         1: areturn
         2: .line 728
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 2 /* e */
        start local 2 // java.lang.RuntimeException e
         3: .line 729
            new java.lang.UnsupportedOperationException
            dup
            aload 2 /* e */
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.RuntimeException e
        end local 1 // java.net.URI uri
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    4     1   uri  Ljava/net/URI;
            3    4     2     e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
           0     1       2  Class java.nio.file.FileSystemNotFoundException
    MethodParameters:
      Name  Flags
      uri   

  public java.nio.file.Path parsePath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/nio/file/Path;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.lang.String path
         0: .line 735
            ldc "file"
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            invokevirtual java.nio.file.spi.FileSystemProvider.getScheme:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 736
            new java.lang.IllegalStateException
            dup
            ldc "The ParsePath(String path) should be called only for file scheme."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 738
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            areturn
        end local 1 // java.lang.String path
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    3     1  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  public void checkAccess(java.nio.file.Path, java.util.Set<? extends java.nio.file.AccessMode>, java.nio.file.LinkOption[]);
    descriptor: (Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/LinkOption;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path path
        start local 2 // java.util.Set modes
        start local 3 // java.nio.file.LinkOption[] linkOptions
         0: .line 743
            aload 3 /* linkOptions */
            invokestatic com.oracle.truffle.polyglot.FileSystems.isFollowLinks:([Ljava/nio/file/LinkOption;)Z
            ifeq 3
         1: .line 744
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            aload 2 /* modes */
            aload 2 /* modes */
            invokeinterface java.util.Set.size:()I
            anewarray java.nio.file.AccessMode
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.nio.file.AccessMode[]
            invokevirtual java.nio.file.spi.FileSystemProvider.checkAccess:(Ljava/nio/file/Path;[Ljava/nio/file/AccessMode;)V
         2: .line 745
            goto 7
      StackMap locals:
      StackMap stack:
         3: aload 2 /* modes */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 6
         4: .line 746
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 1 /* path */
            ldc "isRegularFile"
            iconst_1
            anewarray java.nio.file.LinkOption
            dup
            iconst_0
            getstatic java.nio.file.LinkOption.NOFOLLOW_LINKS:Ljava/nio/file/LinkOption;
            aastore
            invokevirtual java.nio.file.spi.FileSystemProvider.readAttributes:(Ljava/nio/file/Path;Ljava/lang/String;[Ljava/nio/file/LinkOption;)Ljava/util/Map;
            pop
         5: .line 747
            goto 7
         6: .line 748
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            ldc "CheckAccess for NIO Provider is unsupported with non empty AccessMode and NOFOLLOW_LINKS."
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 750
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.nio.file.LinkOption[] linkOptions
        end local 2 // java.util.Set modes
        end local 1 // java.nio.file.Path path
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    8     1         path  Ljava/nio/file/Path;
            0    8     2        modes  Ljava/util/Set<+Ljava/nio/file/AccessMode;>;
            0    8     3  linkOptions  [Ljava/nio/file/LinkOption;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/Path;Ljava/util/Set<+Ljava/nio/file/AccessMode;>;[Ljava/nio/file/LinkOption;)V
    MethodParameters:
             Name  Flags
      path         
      modes        
      linkOptions  

  public void createDirectory(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>[]);
    descriptor: (Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path dir
        start local 2 // java.nio.file.attribute.FileAttribute[] attrs
         0: .line 754
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 0 /* this */
            aload 1 /* dir */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            aload 2 /* attrs */
            invokevirtual java.nio.file.spi.FileSystemProvider.createDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)V
         1: .line 755
            return
        end local 2 // java.nio.file.attribute.FileAttribute[] attrs
        end local 1 // java.nio.file.Path dir
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    2     1    dir  Ljava/nio/file/Path;
            0    2     2  attrs  [Ljava/nio/file/attribute/FileAttribute;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute<*>;)V
    MethodParameters:
       Name  Flags
      dir    
      attrs  

  public void delete(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path path
         0: .line 759
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            invokevirtual java.nio.file.spi.FileSystemProvider.delete:(Ljava/nio/file/Path;)V
         1: .line 760
            return
        end local 1 // java.nio.file.Path path
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    2     1  path  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      path  

  public void copy(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption[]);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path source
        start local 2 // java.nio.file.Path target
        start local 3 // java.nio.file.CopyOption[] options
         0: .line 764
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            aload 0 /* this */
            aload 2 /* target */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            aload 3 /* options */
            invokevirtual java.nio.file.spi.FileSystemProvider.copy:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)V
         1: .line 765
            return
        end local 3 // java.nio.file.CopyOption[] options
        end local 2 // java.nio.file.Path target
        end local 1 // java.nio.file.Path source
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    2     1   source  Ljava/nio/file/Path;
            0    2     2   target  Ljava/nio/file/Path;
            0    2     3  options  [Ljava/nio/file/CopyOption;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      source   
      target   
      options  

  public void move(java.nio.file.Path, java.nio.file.Path, java.nio.file.CopyOption[]);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path source
        start local 2 // java.nio.file.Path target
        start local 3 // java.nio.file.CopyOption[] options
         0: .line 769
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 0 /* this */
            aload 1 /* source */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            aload 0 /* this */
            aload 2 /* target */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            aload 3 /* options */
            invokevirtual java.nio.file.spi.FileSystemProvider.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)V
         1: .line 770
            return
        end local 3 // java.nio.file.CopyOption[] options
        end local 2 // java.nio.file.Path target
        end local 1 // java.nio.file.Path source
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    2     1   source  Ljava/nio/file/Path;
            0    2     2   target  Ljava/nio/file/Path;
            0    2     3  options  [Ljava/nio/file/CopyOption;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      source   
      target   
      options  

  public java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path, java.util.Set<? extends java.nio.file.OpenOption>, java.nio.file.attribute.FileAttribute<?>[]);
    descriptor: (Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/SeekableByteChannel;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path path
        start local 2 // java.util.Set options
        start local 3 // java.nio.file.attribute.FileAttribute[] attrs
         0: .line 774
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 4 /* resolved */
        start local 4 // java.nio.file.Path resolved
         1: .line 776
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 4 /* resolved */
            aload 2 /* options */
            aload 3 /* attrs */
            invokevirtual java.nio.file.spi.FileSystemProvider.newFileChannel:(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/FileChannel;
         2: areturn
         3: .line 777
      StackMap locals: com.oracle.truffle.polyglot.FileSystems$NIOFileSystem java.nio.file.Path java.util.Set java.nio.file.attribute.FileAttribute[] java.nio.file.Path
      StackMap stack: java.lang.UnsupportedOperationException
            pop
         4: .line 778
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 4 /* resolved */
            aload 2 /* options */
            aload 3 /* attrs */
            invokevirtual java.nio.file.spi.FileSystemProvider.newByteChannel:(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/SeekableByteChannel;
            areturn
        end local 4 // java.nio.file.Path resolved
        end local 3 // java.nio.file.attribute.FileAttribute[] attrs
        end local 2 // java.util.Set options
        end local 1 // java.nio.file.Path path
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    5     1      path  Ljava/nio/file/Path;
            0    5     2   options  Ljava/util/Set<+Ljava/nio/file/OpenOption;>;
            0    5     3     attrs  [Ljava/nio/file/attribute/FileAttribute;
            1    5     4  resolved  Ljava/nio/file/Path;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.UnsupportedOperationException
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/Path;Ljava/util/Set<+Ljava/nio/file/OpenOption;>;[Ljava/nio/file/attribute/FileAttribute<*>;)Ljava/nio/channels/SeekableByteChannel;
    MethodParameters:
         Name  Flags
      path     
      options  
      attrs    

  public java.nio.file.DirectoryStream<java.nio.file.Path> newDirectoryStream(java.nio.file.Path, java.nio.file.DirectoryStream$Filter<? super java.nio.file.Path>);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/DirectoryStream$Filter;)Ljava/nio/file/DirectoryStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path dir
        start local 2 // java.nio.file.DirectoryStream$Filter filter
         0: .line 784
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.userDir:Ljava/nio/file/Path;
            astore 3 /* cwd */
        start local 3 // java.nio.file.Path cwd
         1: .line 787
            aload 1 /* dir */
            invokeinterface java.nio.file.Path.isAbsolute:()Z
            ifne 5
            aload 3 /* cwd */
            ifnull 5
         2: .line 788
            aload 3 /* cwd */
            aload 1 /* dir */
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 4 /* resolvedPath */
        start local 4 // java.nio.file.Path resolvedPath
         3: .line 789
            iconst_1
            istore 5 /* relativize */
        start local 5 // boolean relativize
         4: .line 790
            goto 7
        end local 5 // boolean relativize
        end local 4 // java.nio.file.Path resolvedPath
         5: .line 791
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 1 /* dir */
            astore 4 /* resolvedPath */
        start local 4 // java.nio.file.Path resolvedPath
         6: .line 792
            iconst_0
            istore 5 /* relativize */
        start local 5 // boolean relativize
         7: .line 794
      StackMap locals: java.nio.file.Path int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 4 /* resolvedPath */
            aload 2 /* filter */
            invokevirtual java.nio.file.spi.FileSystemProvider.newDirectoryStream:(Ljava/nio/file/Path;Ljava/nio/file/DirectoryStream$Filter;)Ljava/nio/file/DirectoryStream;
            astore 6 /* result */
        start local 6 // java.nio.file.DirectoryStream result
         8: .line 795
            iload 5 /* relativize */
            ifeq 10
         9: .line 796
            new com.oracle.truffle.polyglot.FileSystems$NIOFileSystem$RelativizeDirectoryStream
            dup
            aload 3 /* cwd */
            aload 6 /* result */
            invokespecial com.oracle.truffle.polyglot.FileSystems$NIOFileSystem$RelativizeDirectoryStream.<init>:(Ljava/nio/file/Path;Ljava/nio/file/DirectoryStream;)V
            astore 6 /* result */
        10: .line 798
      StackMap locals: java.nio.file.DirectoryStream
      StackMap stack:
            aload 6 /* result */
            areturn
        end local 6 // java.nio.file.DirectoryStream result
        end local 5 // boolean relativize
        end local 4 // java.nio.file.Path resolvedPath
        end local 3 // java.nio.file.Path cwd
        end local 2 // java.nio.file.DirectoryStream$Filter filter
        end local 1 // java.nio.file.Path dir
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0   11     1           dir  Ljava/nio/file/Path;
            0   11     2        filter  Ljava/nio/file/DirectoryStream$Filter<-Ljava/nio/file/Path;>;
            1   11     3           cwd  Ljava/nio/file/Path;
            3    5     4  resolvedPath  Ljava/nio/file/Path;
            6   11     4  resolvedPath  Ljava/nio/file/Path;
            4    5     5    relativize  Z
            7   11     5    relativize  Z
            8   11     6        result  Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/Path;Ljava/nio/file/DirectoryStream$Filter<-Ljava/nio/file/Path;>;)Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
    MethodParameters:
        Name  Flags
      dir     
      filter  

  public void createLink(java.nio.file.Path, java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path link
        start local 2 // java.nio.file.Path existing
         0: .line 803
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 0 /* this */
            aload 1 /* link */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            aload 0 /* this */
            aload 2 /* existing */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            invokevirtual java.nio.file.spi.FileSystemProvider.createLink:(Ljava/nio/file/Path;Ljava/nio/file/Path;)V
         1: .line 804
            return
        end local 2 // java.nio.file.Path existing
        end local 1 // java.nio.file.Path link
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    2     1      link  Ljava/nio/file/Path;
            0    2     2  existing  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      link      
      existing  

  public void createSymbolicLink(java.nio.file.Path, java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>[]);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path link
        start local 2 // java.nio.file.Path target
        start local 3 // java.nio.file.attribute.FileAttribute[] attrs
         0: .line 808
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 0 /* this */
            aload 1 /* link */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            aload 2 /* target */
            aload 3 /* attrs */
            invokevirtual java.nio.file.spi.FileSystemProvider.createSymbolicLink:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)V
         1: .line 809
            return
        end local 3 // java.nio.file.attribute.FileAttribute[] attrs
        end local 2 // java.nio.file.Path target
        end local 1 // java.nio.file.Path link
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    2     1    link  Ljava/nio/file/Path;
            0    2     2  target  Ljava/nio/file/Path;
            0    2     3   attrs  [Ljava/nio/file/attribute/FileAttribute;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute<*>;)V
    MethodParameters:
        Name  Flags
      link    
      target  
      attrs   

  public java.nio.file.Path readSymbolicLink(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljava/nio/file/Path;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path link
         0: .line 813
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 0 /* this */
            aload 1 /* link */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            invokevirtual java.nio.file.spi.FileSystemProvider.readSymbolicLink:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            areturn
        end local 1 // java.nio.file.Path link
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    1     1  link  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      link  

  public java.util.Map<java.lang.String, java.lang.Object> readAttributes(java.nio.file.Path, java.lang.String, java.nio.file.LinkOption[]);
    descriptor: (Ljava/nio/file/Path;Ljava/lang/String;[Ljava/nio/file/LinkOption;)Ljava/util/Map;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path path
        start local 2 // java.lang.String attributes
        start local 3 // java.nio.file.LinkOption[] options
         0: .line 818
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            aload 2 /* attributes */
            aload 3 /* options */
            invokevirtual java.nio.file.spi.FileSystemProvider.readAttributes:(Ljava/nio/file/Path;Ljava/lang/String;[Ljava/nio/file/LinkOption;)Ljava/util/Map;
            areturn
        end local 3 // java.nio.file.LinkOption[] options
        end local 2 // java.lang.String attributes
        end local 1 // java.nio.file.Path path
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    1     1        path  Ljava/nio/file/Path;
            0    1     2  attributes  Ljava/lang/String;
            0    1     3     options  [Ljava/nio/file/LinkOption;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/Path;Ljava/lang/String;[Ljava/nio/file/LinkOption;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    MethodParameters:
            Name  Flags
      path        
      attributes  
      options     

  public void setAttribute(java.nio.file.Path, java.lang.String, java.lang.Object, java.nio.file.LinkOption[]);
    descriptor: (Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/Object;[Ljava/nio/file/LinkOption;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path path
        start local 2 // java.lang.String attribute
        start local 3 // java.lang.Object value
        start local 4 // java.nio.file.LinkOption[] options
         0: .line 823
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            aload 2 /* attribute */
            aload 3 /* value */
            aload 4 /* options */
            invokevirtual java.nio.file.spi.FileSystemProvider.setAttribute:(Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/Object;[Ljava/nio/file/LinkOption;)V
         1: .line 824
            return
        end local 4 // java.nio.file.LinkOption[] options
        end local 3 // java.lang.Object value
        end local 2 // java.lang.String attribute
        end local 1 // java.nio.file.Path path
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    2     1       path  Ljava/nio/file/Path;
            0    2     2  attribute  Ljava/lang/String;
            0    2     3      value  Ljava/lang/Object;
            0    2     4    options  [Ljava/nio/file/LinkOption;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      path       
      attribute  
      value      
      options    

  public java.nio.file.Path toAbsolutePath(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljava/nio/file/Path;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path path
         0: .line 828
            aload 1 /* path */
            invokeinterface java.nio.file.Path.isAbsolute:()Z
            ifeq 2
         1: .line 829
            aload 1 /* path */
            areturn
         2: .line 831
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.userDir:Ljava/nio/file/Path;
            astore 2 /* cwd */
        start local 2 // java.nio.file.Path cwd
         3: .line 832
            aload 2 /* cwd */
            ifnonnull 7
         4: .line 833
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.explicitUserDir:Z
            ifeq 6
         5: .line 834
            new java.lang.SecurityException
            dup
            ldc "Access to user.dir is not allowed."
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 836
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 1 /* path */
            invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
            areturn
         7: .line 838
      StackMap locals:
      StackMap stack:
            aload 2 /* cwd */
            aload 1 /* path */
            invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            areturn
        end local 2 // java.nio.file.Path cwd
        end local 1 // java.nio.file.Path path
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    8     1  path  Ljava/nio/file/Path;
            3    8     2   cwd  Ljava/nio/file/Path;
    MethodParameters:
      Name  Flags
      path  

  public void setCurrentWorkingDirectory(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path currentWorkingDirectory
         0: .line 844
            aload 1 /* currentWorkingDirectory */
            ldc "Current working directory must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 845
            aload 1 /* currentWorkingDirectory */
            invokeinterface java.nio.file.Path.isAbsolute:()Z
            ifne 3
         2: .line 846
            new java.lang.IllegalArgumentException
            dup
            ldc "Current working directory must be absolute."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 850
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 1 /* currentWorkingDirectory */
            ldc "isDirectory"
            iconst_0
            anewarray java.nio.file.LinkOption
            invokevirtual java.nio.file.spi.FileSystemProvider.readAttributes:(Ljava/nio/file/Path;Ljava/lang/String;[Ljava/nio/file/LinkOption;)Ljava/util/Map;
            ldc "isDirectory"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            istore 2 /* isDirectory */
        start local 2 // boolean isDirectory
         4: .line 851
            goto 7
        end local 2 // boolean isDirectory
      StackMap locals:
      StackMap stack: java.io.IOException
         5: pop
         6: .line 852
            iconst_0
            istore 2 /* isDirectory */
        start local 2 // boolean isDirectory
         7: .line 854
      StackMap locals: int
      StackMap stack:
            iload 2 /* isDirectory */
            ifne 9
         8: .line 855
            new java.lang.IllegalArgumentException
            dup
            ldc "Current working directory must be directory."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 857
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.explicitUserDir:Z
            ifeq 11
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.userDir:Ljava/nio/file/Path;
            ifnonnull 11
        10: .line 858
            new java.lang.SecurityException
            dup
            ldc "Modification of current working directory is not allowed."
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 860
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* currentWorkingDirectory */
            putfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.userDir:Ljava/nio/file/Path;
        12: .line 861
            return
        end local 2 // boolean isDirectory
        end local 1 // java.nio.file.Path currentWorkingDirectory
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   13     0                     this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0   13     1  currentWorkingDirectory  Ljava/nio/file/Path;
            4    5     2              isDirectory  Z
            7   13     2              isDirectory  Z
      Exception table:
        from    to  target  type
           3     4       5  Class java.io.IOException
    MethodParameters:
                         Name  Flags
      currentWorkingDirectory  

  public java.nio.file.Path toRealPath(java.nio.file.Path, java.nio.file.LinkOption[]);
    descriptor: (Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Ljava/nio/file/Path;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path path
        start local 2 // java.nio.file.LinkOption[] linkOptions
         0: .line 865
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 3 /* resolvedPath */
        start local 3 // java.nio.file.Path resolvedPath
         1: .line 866
            aload 3 /* resolvedPath */
            aload 2 /* linkOptions */
            invokeinterface java.nio.file.Path.toRealPath:([Ljava/nio/file/LinkOption;)Ljava/nio/file/Path;
            areturn
        end local 3 // java.nio.file.Path resolvedPath
        end local 2 // java.nio.file.LinkOption[] linkOptions
        end local 1 // java.nio.file.Path path
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    2     1          path  Ljava/nio/file/Path;
            0    2     2   linkOptions  [Ljava/nio/file/LinkOption;
            1    2     3  resolvedPath  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      path         
      linkOptions  

  public java.nio.file.Path getTempDirectory();
    descriptor: ()Ljava/nio/file/Path;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
         0: .line 871
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.tmpDir:Ljava/nio/file/Path;
            astore 1 /* result */
        start local 1 // java.nio.file.Path result
         1: .line 872
            aload 1 /* result */
            ifnonnull 6
         2: .line 873
            getstatic com.oracle.truffle.polyglot.FileSystems.TMP_FILE:Ljava/lang/String;
            ifnonnull 4
         3: .line 874
            new java.lang.IllegalStateException
            dup
            ldc "The java.io.tmpdir is not set."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 876
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 0 /* this */
            getstatic com.oracle.truffle.polyglot.FileSystems.TMP_FILE:Ljava/lang/String;
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.parsePath:(Ljava/lang/String;)Ljava/nio/file/Path;
            astore 1 /* result */
         5: .line 877
            aload 0 /* this */
            aload 1 /* result */
            putfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.tmpDir:Ljava/nio/file/Path;
         6: .line 879
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // java.nio.file.Path result
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            1    7     1  result  Ljava/nio/file/Path;

  public boolean isSameFile(java.nio.file.Path, java.nio.file.Path, java.nio.file.LinkOption[]);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path path1
        start local 2 // java.nio.file.Path path2
        start local 3 // java.nio.file.LinkOption[] options
         0: .line 884
            aload 3 /* options */
            invokestatic com.oracle.truffle.polyglot.FileSystems.isFollowLinks:([Ljava/nio/file/LinkOption;)Z
            ifeq 4
         1: .line 885
            aload 0 /* this */
            aload 1 /* path1 */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 4 /* absolutePath1 */
        start local 4 // java.nio.file.Path absolutePath1
         2: .line 886
            aload 0 /* this */
            aload 2 /* path2 */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.resolveRelative:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 5 /* absolutePath2 */
        start local 5 // java.nio.file.Path absolutePath2
         3: .line 887
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.hostfs:Ljava/nio/file/spi/FileSystemProvider;
            aload 4 /* absolutePath1 */
            aload 5 /* absolutePath2 */
            invokevirtual java.nio.file.spi.FileSystemProvider.isSameFile:(Ljava/nio/file/Path;Ljava/nio/file/Path;)Z
            ireturn
        end local 5 // java.nio.file.Path absolutePath2
        end local 4 // java.nio.file.Path absolutePath1
         4: .line 891
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* path1 */
            aload 2 /* path2 */
            aload 3 /* options */
            invokespecial com.oracle.truffle.polyglot.FileSystems$InternalFileSystem.isSameFile:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ireturn
        end local 3 // java.nio.file.LinkOption[] options
        end local 2 // java.nio.file.Path path2
        end local 1 // java.nio.file.Path path1
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    5     1          path1  Ljava/nio/file/Path;
            0    5     2          path2  Ljava/nio/file/Path;
            0    5     3        options  [Ljava/nio/file/LinkOption;
            2    4     4  absolutePath1  Ljava/nio/file/Path;
            3    4     5  absolutePath2  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      path1    
      path2    
      options  

  private java.nio.file.Path resolveRelative(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljava/nio/file/Path;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
        start local 1 // java.nio.file.Path path
         0: .line 896
            aload 1 /* path */
            invokeinterface java.nio.file.Path.isAbsolute:()Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.userDir:Ljava/nio/file/Path;
            ifnull 1
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual com.oracle.truffle.polyglot.FileSystems$NIOFileSystem.toAbsolutePath:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* path */
      StackMap locals:
      StackMap stack: java.nio.file.Path
         2: areturn
        end local 1 // java.nio.file.Path path
        end local 0 // com.oracle.truffle.polyglot.FileSystems$NIOFileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/polyglot/FileSystems$NIOFileSystem;
            0    3     1  path  Ljava/nio/file/Path;
    MethodParameters:
      Name  Flags
      path  
}
SourceFile: "FileSystems.java"
NestHost: com.oracle.truffle.polyglot.FileSystems
InnerClasses:
  private abstract InternalFileSystem = com.oracle.truffle.polyglot.FileSystems$InternalFileSystem of com.oracle.truffle.polyglot.FileSystems
  private final NIOFileSystem = com.oracle.truffle.polyglot.FileSystems$NIOFileSystem of com.oracle.truffle.polyglot.FileSystems
  private final RelativizeDirectoryStream = com.oracle.truffle.polyglot.FileSystems$NIOFileSystem$RelativizeDirectoryStream of com.oracle.truffle.polyglot.FileSystems$NIOFileSystem
  public abstract Filter = java.nio.file.DirectoryStream$Filter of java.nio.file.DirectoryStream