final class org.graalvm.polyglot.io.IOHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.polyglot.io.IOHelper
  super_class: java.lang.Object
{
  static final org.graalvm.polyglot.impl.AbstractPolyglotImpl IMPL;
    descriptor: Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 187
            invokestatic org.graalvm.polyglot.io.IOHelper.initImpl:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;
            putstatic org.graalvm.polyglot.io.IOHelper.IMPL:Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.io.IOHelper this
         0: .line 69
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 70
            new java.lang.IllegalStateException
            dup
            ldc "No instance allowed."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.polyglot.io.IOHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/polyglot/io/IOHelper;

  static void copy(java.nio.file.Path, java.nio.file.Path, org.graalvm.polyglot.io.FileSystem, java.nio.file.CopyOption[]);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;Lorg/graalvm/polyglot/io/FileSystem;[Ljava/nio/file/CopyOption;)V
    flags: (0x0088) ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.nio.file.Path source
        start local 1 // java.nio.file.Path target
        start local 2 // org.graalvm.polyglot.io.FileSystem fileSystem
        start local 3 // java.nio.file.CopyOption[] options
         0: .line 74
            aload 0 /* source */
            aload 1 /* target */
            aload 2 /* fileSystem */
            aload 2 /* fileSystem */
            aload 3 /* options */
            invokestatic org.graalvm.polyglot.io.IOHelper.copy:(Ljava/nio/file/Path;Ljava/nio/file/Path;Lorg/graalvm/polyglot/io/FileSystem;Lorg/graalvm/polyglot/io/FileSystem;[Ljava/nio/file/CopyOption;)V
         1: .line 75
            return
        end local 3 // java.nio.file.CopyOption[] options
        end local 2 // org.graalvm.polyglot.io.FileSystem fileSystem
        end local 1 // java.nio.file.Path target
        end local 0 // java.nio.file.Path source
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0      source  Ljava/nio/file/Path;
            0    2     1      target  Ljava/nio/file/Path;
            0    2     2  fileSystem  Lorg/graalvm/polyglot/io/FileSystem;
            0    2     3     options  [Ljava/nio/file/CopyOption;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      source      final
      target      final
      fileSystem  final
      options     

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

  static void copy(java.nio.file.Path, java.nio.file.Path, org.graalvm.polyglot.io.FileSystem, org.graalvm.polyglot.io.FileSystem, java.nio.file.CopyOption[]);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;Lorg/graalvm/polyglot/io/FileSystem;Lorg/graalvm/polyglot/io/FileSystem;[Ljava/nio/file/CopyOption;)V
    flags: (0x0088) ACC_STATIC, ACC_VARARGS
    Code:
      stack=6, locals=17, args_size=5
        start local 0 // java.nio.file.Path source
        start local 1 // java.nio.file.Path target
        start local 2 // org.graalvm.polyglot.io.FileSystem sourceFileSystem
        start local 3 // org.graalvm.polyglot.io.FileSystem targetFileSystem
        start local 4 // java.nio.file.CopyOption[] options
         0: .line 85
            aload 0 /* source */
            aload 1 /* target */
            invokeinterface java.nio.file.Path.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 86
            return
         2: .line 88
      StackMap locals:
      StackMap stack:
            aload 2 /* sourceFileSystem */
            aload 0 /* source */
            iconst_1
            anewarray java.nio.file.LinkOption
            dup
            iconst_0
            getstatic java.nio.file.LinkOption.NOFOLLOW_LINKS:Ljava/nio/file/LinkOption;
            aastore
            invokeinterface org.graalvm.polyglot.io.FileSystem.toRealPath:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Ljava/nio/file/Path;
            astore 5 /* sourceReal */
        start local 5 // java.nio.file.Path sourceReal
         3: .line 89
            aload 3 /* targetFileSystem */
            aload 1 /* target */
            iconst_1
            anewarray java.nio.file.LinkOption
            dup
            iconst_0
            getstatic java.nio.file.LinkOption.NOFOLLOW_LINKS:Ljava/nio/file/LinkOption;
            aastore
            invokeinterface org.graalvm.polyglot.io.FileSystem.toRealPath:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Ljava/nio/file/Path;
            astore 6 /* targetReal */
        start local 6 // java.nio.file.Path targetReal
         4: .line 90
            aload 5 /* sourceReal */
            aload 6 /* targetReal */
            invokeinterface java.nio.file.Path.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 91
            return
         6: .line 93
      StackMap locals: java.nio.file.Path java.nio.file.Path
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 7 /* linkOptions */
        start local 7 // java.util.Set linkOptions
         7: .line 94
            ldc Ljava/nio/file/StandardCopyOption;
            invokestatic java.util.EnumSet.noneOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
            astore 8 /* copyOptions */
        start local 8 // java.util.Set copyOptions
         8: .line 95
            aload 4 /* options */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 16
      StackMap locals: java.nio.file.Path java.nio.file.Path org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.nio.file.CopyOption[] java.nio.file.Path java.nio.file.Path java.util.Set java.util.Set top int int java.nio.file.CopyOption[]
      StackMap stack:
         9: aload 12
            iload 10
            aaload
            astore 9 /* option */
        start local 9 // java.nio.file.CopyOption option
        10: .line 96
            aload 9 /* option */
            instanceof java.nio.file.StandardCopyOption
            ifeq 13
        11: .line 97
            aload 8 /* copyOptions */
            aload 9 /* option */
            checkcast java.nio.file.StandardCopyOption
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        12: .line 98
            goto 15
      StackMap locals: java.nio.file.Path java.nio.file.Path org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.nio.file.CopyOption[] java.nio.file.Path java.nio.file.Path java.util.Set java.util.Set java.nio.file.CopyOption int int java.nio.file.CopyOption[]
      StackMap stack:
        13: aload 9 /* option */
            instanceof java.nio.file.LinkOption
            ifeq 15
        14: .line 99
            aload 7 /* linkOptions */
            aload 9 /* option */
            checkcast java.nio.file.LinkOption
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.nio.file.CopyOption option
        15: .line 95
      StackMap locals: java.nio.file.Path java.nio.file.Path org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.nio.file.CopyOption[] java.nio.file.Path java.nio.file.Path java.util.Set java.util.Set top int int java.nio.file.CopyOption[]
      StackMap stack:
            iinc 10 1
      StackMap locals:
      StackMap stack:
        16: iload 10
            iload 11
            if_icmplt 9
        17: .line 102
            aload 8 /* copyOptions */
            getstatic java.nio.file.StandardCopyOption.ATOMIC_MOVE:Ljava/nio/file/StandardCopyOption;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 19
        18: .line 103
            new java.nio.file.AtomicMoveNotSupportedException
            dup
            aload 0 /* source */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            aload 1 /* target */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            ldc "Atomic move not supported"
            invokespecial java.nio.file.AtomicMoveNotSupportedException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            athrow
        19: .line 105
      StackMap locals: java.nio.file.Path java.nio.file.Path org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.nio.file.CopyOption[] java.nio.file.Path java.nio.file.Path java.util.Set java.util.Set
      StackMap stack:
            aload 2 /* sourceFileSystem */
        20: .line 106
            aload 5 /* sourceReal */
        21: .line 107
            ldc "basic:isSymbolicLink,isDirectory,lastModifiedTime,lastAccessTime,creationTime"
        22: .line 108
            aload 7 /* linkOptions */
            aload 7 /* linkOptions */
            invokeinterface java.util.Set.size:()I
            anewarray java.nio.file.LinkOption
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.nio.file.LinkOption[]
        23: .line 105
            invokeinterface org.graalvm.polyglot.io.FileSystem.readAttributes:(Ljava/nio/file/Path;Ljava/lang/String;[Ljava/nio/file/LinkOption;)Ljava/util/Map;
            astore 9 /* sourceAttributes */
        start local 9 // java.util.Map sourceAttributes
        24: .line 109
            aload 9 /* sourceAttributes */
            ldc "isSymbolicLink"
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 26
        25: .line 110
            new java.io.IOException
            dup
            ldc "Copying of symbolic links is not supported."
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 112
      StackMap locals: java.util.Map
      StackMap stack:
            aload 8 /* copyOptions */
            getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 31
        27: .line 114
            aload 3 /* targetFileSystem */
            aload 6 /* targetReal */
            invokeinterface org.graalvm.polyglot.io.FileSystem.delete:(Ljava/nio/file/Path;)V
        28: .line 115
            goto 38
      StackMap locals:
      StackMap stack: java.nio.file.NoSuchFileException
        29: pop
        30: .line 118
            goto 38
        31: .line 121
      StackMap locals:
      StackMap stack:
            aload 3 /* targetFileSystem */
            aload 6 /* targetReal */
            ldc Ljava/nio/file/AccessMode;
            invokestatic java.util.EnumSet.noneOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokeinterface org.graalvm.polyglot.io.FileSystem.checkAccess:(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/LinkOption;)V
        32: .line 122
            iconst_1
            istore 10 /* exists */
        start local 10 // boolean exists
        33: .line 123
            goto 36
        end local 10 // boolean exists
      StackMap locals:
      StackMap stack: java.io.IOException
        34: pop
        35: .line 124
            iconst_0
            istore 10 /* exists */
        start local 10 // boolean exists
        36: .line 126
      StackMap locals: int
      StackMap stack:
            iload 10 /* exists */
            ifeq 38
        37: .line 127
            new java.nio.file.FileAlreadyExistsException
            dup
            aload 1 /* target */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokespecial java.nio.file.FileAlreadyExistsException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // boolean exists
        38: .line 130
      StackMap locals:
      StackMap stack:
            aload 9 /* sourceAttributes */
            ldc "isDirectory"
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 41
        39: .line 131
            aload 3 /* targetFileSystem */
            aload 6 /* targetReal */
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokeinterface org.graalvm.polyglot.io.FileSystem.createDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)V
        40: .line 132
            goto 65
        41: .line 133
      StackMap locals:
      StackMap stack:
            getstatic java.nio.file.StandardOpenOption.READ:Ljava/nio/file/StandardOpenOption;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
            astore 10 /* readOptions */
        start local 10 // java.util.Set readOptions
        42: .line 134
            getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
            getstatic java.nio.file.StandardOpenOption.CREATE_NEW:Ljava/nio/file/StandardOpenOption;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
            astore 11 /* writeOptions */
        start local 11 // java.util.Set writeOptions
        43: .line 135
            aconst_null
            astore 12
            aconst_null
            astore 13
        44: aload 2 /* sourceFileSystem */
            aload 5 /* sourceReal */
            aload 10 /* readOptions */
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokeinterface org.graalvm.polyglot.io.FileSystem.newByteChannel:(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/SeekableByteChannel;
            astore 14 /* sourceChannel */
        start local 14 // java.nio.channels.SeekableByteChannel sourceChannel
        45: .line 136
            aload 3 /* targetFileSystem */
            aload 6 /* targetReal */
            aload 11 /* writeOptions */
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokeinterface org.graalvm.polyglot.io.FileSystem.newByteChannel:(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/SeekableByteChannel;
            astore 15 /* targetChannel */
        start local 15 // java.nio.channels.SeekableByteChannel targetChannel
        46: .line 137
            ldc 65536
            invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
            astore 16 /* buffer */
        start local 16 // java.nio.ByteBuffer buffer
        47: .line 138
            goto 53
        48: .line 139
      StackMap locals: java.nio.file.Path java.nio.file.Path org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.nio.file.CopyOption[] java.nio.file.Path java.nio.file.Path java.util.Set java.util.Set java.util.Map java.util.Set java.util.Set java.lang.Throwable java.lang.Throwable java.nio.channels.SeekableByteChannel java.nio.channels.SeekableByteChannel java.nio.ByteBuffer
      StackMap stack:
            aload 16 /* buffer */
            invokestatic org.graalvm.polyglot.io.IOHelper.asBaseBuffer:(Ljava/nio/Buffer;)Ljava/nio/Buffer;
            invokevirtual java.nio.Buffer.flip:()Ljava/nio/Buffer;
            pop
        49: .line 140
            goto 51
        50: .line 141
      StackMap locals:
      StackMap stack:
            aload 15 /* targetChannel */
            aload 16 /* buffer */
            invokeinterface java.nio.channels.SeekableByteChannel.write:(Ljava/nio/ByteBuffer;)I
            pop
        51: .line 140
      StackMap locals:
      StackMap stack:
            aload 16 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 50
        52: .line 143
            aload 16 /* buffer */
            invokestatic org.graalvm.polyglot.io.IOHelper.asBaseBuffer:(Ljava/nio/Buffer;)Ljava/nio/Buffer;
            invokevirtual java.nio.Buffer.clear:()Ljava/nio/Buffer;
            pop
        53: .line 138
      StackMap locals:
      StackMap stack:
            aload 14 /* sourceChannel */
            aload 16 /* buffer */
            invokeinterface java.nio.channels.SeekableByteChannel.read:(Ljava/nio/ByteBuffer;)I
            iconst_m1
            if_icmpne 48
        end local 16 // java.nio.ByteBuffer buffer
        54: .line 145
            aload 15 /* targetChannel */
            ifnull 57
            aload 15 /* targetChannel */
            invokeinterface java.nio.channels.SeekableByteChannel.close:()V
            goto 57
      StackMap locals: java.nio.file.Path java.nio.file.Path org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.nio.file.CopyOption[] java.nio.file.Path java.nio.file.Path java.util.Set java.util.Set java.util.Map java.util.Set java.util.Set java.lang.Throwable java.lang.Throwable java.nio.channels.SeekableByteChannel java.nio.channels.SeekableByteChannel
      StackMap stack: java.lang.Throwable
        55: astore 12
            aload 15 /* targetChannel */
            ifnull 56
            aload 15 /* targetChannel */
            invokeinterface java.nio.channels.SeekableByteChannel.close:()V
        end local 15 // java.nio.channels.SeekableByteChannel targetChannel
      StackMap locals:
      StackMap stack:
        56: aload 12
            athrow
      StackMap locals:
      StackMap stack:
        57: aload 14 /* sourceChannel */
            ifnull 65
            aload 14 /* sourceChannel */
            invokeinterface java.nio.channels.SeekableByteChannel.close:()V
            goto 65
      StackMap locals:
      StackMap stack: java.lang.Throwable
        58: astore 13
            aload 12
            ifnonnull 59
            aload 13
            astore 12
            goto 60
      StackMap locals:
      StackMap stack:
        59: aload 12
            aload 13
            if_acmpeq 60
            aload 12
            aload 13
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        60: aload 14 /* sourceChannel */
            ifnull 61
            aload 14 /* sourceChannel */
            invokeinterface java.nio.channels.SeekableByteChannel.close:()V
        end local 14 // java.nio.channels.SeekableByteChannel sourceChannel
      StackMap locals:
      StackMap stack:
        61: aload 12
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        62: astore 13
            aload 12
            ifnonnull 63
            aload 13
            astore 12
            goto 64
      StackMap locals:
      StackMap stack:
        63: aload 12
            aload 13
            if_acmpeq 64
            aload 12
            aload 13
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        64: aload 12
            athrow
        end local 11 // java.util.Set writeOptions
        end local 10 // java.util.Set readOptions
        65: .line 147
      StackMap locals: java.nio.file.Path java.nio.file.Path org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.nio.file.CopyOption[] java.nio.file.Path java.nio.file.Path java.util.Set java.util.Set java.util.Map
      StackMap stack:
            aload 8 /* copyOptions */
            getstatic java.nio.file.StandardCopyOption.COPY_ATTRIBUTES:Ljava/nio/file/StandardCopyOption;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 81
        66: .line 148
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "lastModifiedTime"
            aastore
            dup
            iconst_1
            ldc "lastAccessTime"
            aastore
            dup
            iconst_2
            ldc "creationTime"
            aastore
            astore 10 /* basicMutableAttributes */
        start local 10 // java.lang.String[] basicMutableAttributes
        67: .line 150
            aload 10 /* basicMutableAttributes */
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 73
      StackMap locals: java.nio.file.Path java.nio.file.Path org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.nio.file.CopyOption[] java.nio.file.Path java.nio.file.Path java.util.Set java.util.Set java.util.Map java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        68: aload 14
            iload 12
            aaload
            astore 11 /* key */
        start local 11 // java.lang.String key
        69: .line 151
            aload 9 /* sourceAttributes */
            aload 11 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 15 /* value */
        start local 15 // java.lang.Object value
        70: .line 152
            aload 15 /* value */
            ifnull 72
        71: .line 153
            aload 3 /* targetFileSystem */
            aload 6 /* targetReal */
            aload 11 /* key */
            aload 15 /* value */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokeinterface org.graalvm.polyglot.io.FileSystem.setAttribute:(Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/Object;[Ljava/nio/file/LinkOption;)V
        end local 15 // java.lang.Object value
        end local 11 // java.lang.String key
        72: .line 150
      StackMap locals:
      StackMap stack:
            iinc 12 1
      StackMap locals:
      StackMap stack:
        73: iload 12
            iload 13
            if_icmplt 68
        74: .line 156
            goto 81
      StackMap locals: java.nio.file.Path java.nio.file.Path org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.nio.file.CopyOption[] java.nio.file.Path java.nio.file.Path java.util.Set java.util.Set java.util.Map java.lang.String[]
      StackMap stack: java.lang.Throwable
        75: astore 11 /* rootCause */
        start local 11 // java.lang.Throwable rootCause
        76: .line 158
            aload 3 /* targetFileSystem */
            aload 6 /* targetReal */
            invokeinterface org.graalvm.polyglot.io.FileSystem.delete:(Ljava/nio/file/Path;)V
        77: .line 159
            goto 80
      StackMap locals: java.nio.file.Path java.nio.file.Path org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.nio.file.CopyOption[] java.nio.file.Path java.nio.file.Path java.util.Set java.util.Set java.util.Map java.lang.String[] java.lang.Throwable
      StackMap stack: java.lang.Throwable
        78: astore 12 /* suppressed */
        start local 12 // java.lang.Throwable suppressed
        79: .line 160
            aload 11 /* rootCause */
            aload 12 /* suppressed */
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
        end local 12 // java.lang.Throwable suppressed
        80: .line 162
      StackMap locals:
      StackMap stack:
            aload 11 /* rootCause */
            athrow
        end local 11 // java.lang.Throwable rootCause
        end local 10 // java.lang.String[] basicMutableAttributes
        81: .line 165
      StackMap locals:
      StackMap stack:
            return
        end local 9 // java.util.Map sourceAttributes
        end local 8 // java.util.Set copyOptions
        end local 7 // java.util.Set linkOptions
        end local 6 // java.nio.file.Path targetReal
        end local 5 // java.nio.file.Path sourceReal
        end local 4 // java.nio.file.CopyOption[] options
        end local 3 // org.graalvm.polyglot.io.FileSystem targetFileSystem
        end local 2 // org.graalvm.polyglot.io.FileSystem sourceFileSystem
        end local 1 // java.nio.file.Path target
        end local 0 // java.nio.file.Path source
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   82     0                  source  Ljava/nio/file/Path;
            0   82     1                  target  Ljava/nio/file/Path;
            0   82     2        sourceFileSystem  Lorg/graalvm/polyglot/io/FileSystem;
            0   82     3        targetFileSystem  Lorg/graalvm/polyglot/io/FileSystem;
            0   82     4                 options  [Ljava/nio/file/CopyOption;
            3   82     5              sourceReal  Ljava/nio/file/Path;
            4   82     6              targetReal  Ljava/nio/file/Path;
            7   82     7             linkOptions  Ljava/util/Set<Ljava/nio/file/LinkOption;>;
            8   82     8             copyOptions  Ljava/util/Set<Ljava/nio/file/StandardCopyOption;>;
           10   15     9                  option  Ljava/nio/file/CopyOption;
           24   82     9        sourceAttributes  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
           33   34    10                  exists  Z
           36   38    10                  exists  Z
           42   65    10             readOptions  Ljava/util/Set<Ljava/nio/file/StandardOpenOption;>;
           43   65    11            writeOptions  Ljava/util/Set<Ljava/nio/file/StandardOpenOption;>;
           45   61    14           sourceChannel  Ljava/nio/channels/SeekableByteChannel;
           46   56    15           targetChannel  Ljava/nio/channels/SeekableByteChannel;
           47   54    16                  buffer  Ljava/nio/ByteBuffer;
           67   81    10  basicMutableAttributes  [Ljava/lang/String;
           69   72    11                     key  Ljava/lang/String;
           70   72    15                   value  Ljava/lang/Object;
           76   81    11               rootCause  Ljava/lang/Throwable;
           79   80    12              suppressed  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          27    28      29  Class java.nio.file.NoSuchFileException
          31    33      34  Class java.io.IOException
          46    54      55  any
          45    57      58  any
          44    62      62  any
          67    74      75  Class java.lang.Throwable
          76    77      78  Class java.lang.Throwable
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      source            final
      target            final
      sourceFileSystem  final
      targetFileSystem  final
      options           

  static void move(java.nio.file.Path, java.nio.file.Path, org.graalvm.polyglot.io.FileSystem, java.nio.file.CopyOption[]);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;Lorg/graalvm/polyglot/io/FileSystem;[Ljava/nio/file/CopyOption;)V
    flags: (0x0088) ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // java.nio.file.Path source
        start local 1 // java.nio.file.Path target
        start local 2 // org.graalvm.polyglot.io.FileSystem fileSystem
        start local 3 // java.nio.file.CopyOption[] options
         0: .line 168
            aload 3 /* options */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 5
      StackMap locals: java.nio.file.Path java.nio.file.Path org.graalvm.polyglot.io.FileSystem java.nio.file.CopyOption[] top int int java.nio.file.CopyOption[]
      StackMap stack:
         1: aload 7
            iload 5
            aaload
            astore 4 /* option */
        start local 4 // java.nio.file.CopyOption option
         2: .line 169
            getstatic java.nio.file.StandardCopyOption.ATOMIC_MOVE:Ljava/nio/file/StandardCopyOption;
            aload 4 /* option */
            invokevirtual java.nio.file.StandardCopyOption.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 170
            new java.nio.file.AtomicMoveNotSupportedException
            dup
            aload 0 /* source */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            aload 1 /* target */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            ldc "Atomic move not supported"
            invokespecial java.nio.file.AtomicMoveNotSupportedException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            athrow
        end local 4 // java.nio.file.CopyOption option
         4: .line 168
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
         5: iload 5
            iload 6
            if_icmplt 1
         6: .line 173
            aload 2 /* fileSystem */
            aload 0 /* source */
            aload 1 /* target */
            aload 3 /* options */
            invokeinterface org.graalvm.polyglot.io.FileSystem.copy:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)V
         7: .line 174
            aload 2 /* fileSystem */
            aload 0 /* source */
            invokeinterface org.graalvm.polyglot.io.FileSystem.delete:(Ljava/nio/file/Path;)V
         8: .line 175
            return
        end local 3 // java.nio.file.CopyOption[] options
        end local 2 // org.graalvm.polyglot.io.FileSystem fileSystem
        end local 1 // java.nio.file.Path target
        end local 0 // java.nio.file.Path source
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0      source  Ljava/nio/file/Path;
            0    9     1      target  Ljava/nio/file/Path;
            0    9     2  fileSystem  Lorg/graalvm/polyglot/io/FileSystem;
            0    9     3     options  [Ljava/nio/file/CopyOption;
            2    4     4      option  Ljava/nio/file/CopyOption;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      source      final
      target      final
      fileSystem  final
      options     

  static void move(java.nio.file.Path, java.nio.file.Path, org.graalvm.polyglot.io.FileSystem, org.graalvm.polyglot.io.FileSystem, java.nio.file.CopyOption[]);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;Lorg/graalvm/polyglot/io/FileSystem;Lorg/graalvm/polyglot/io/FileSystem;[Ljava/nio/file/CopyOption;)V
    flags: (0x0088) ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // java.nio.file.Path source
        start local 1 // java.nio.file.Path target
        start local 2 // org.graalvm.polyglot.io.FileSystem sourceFileSystem
        start local 3 // org.graalvm.polyglot.io.FileSystem targetFileSystem
        start local 4 // java.nio.file.CopyOption[] options
         0: .line 178
            aload 4 /* options */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 5
      StackMap locals: java.nio.file.Path java.nio.file.Path org.graalvm.polyglot.io.FileSystem org.graalvm.polyglot.io.FileSystem java.nio.file.CopyOption[] top int int java.nio.file.CopyOption[]
      StackMap stack:
         1: aload 8
            iload 6
            aaload
            astore 5 /* option */
        start local 5 // java.nio.file.CopyOption option
         2: .line 179
            getstatic java.nio.file.StandardCopyOption.ATOMIC_MOVE:Ljava/nio/file/StandardCopyOption;
            aload 5 /* option */
            invokevirtual java.nio.file.StandardCopyOption.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 180
            new java.nio.file.AtomicMoveNotSupportedException
            dup
            aload 0 /* source */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            aload 1 /* target */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            ldc "Atomic move not supported"
            invokespecial java.nio.file.AtomicMoveNotSupportedException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            athrow
        end local 5 // java.nio.file.CopyOption option
         4: .line 178
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         5: iload 6
            iload 7
            if_icmplt 1
         6: .line 183
            aload 0 /* source */
            aload 1 /* target */
            aload 2 /* sourceFileSystem */
            aload 3 /* targetFileSystem */
            aload 4 /* options */
            invokestatic org.graalvm.polyglot.io.IOHelper.copy:(Ljava/nio/file/Path;Ljava/nio/file/Path;Lorg/graalvm/polyglot/io/FileSystem;Lorg/graalvm/polyglot/io/FileSystem;[Ljava/nio/file/CopyOption;)V
         7: .line 184
            aload 2 /* sourceFileSystem */
            aload 0 /* source */
            invokeinterface org.graalvm.polyglot.io.FileSystem.delete:(Ljava/nio/file/Path;)V
         8: .line 185
            return
        end local 4 // java.nio.file.CopyOption[] options
        end local 3 // org.graalvm.polyglot.io.FileSystem targetFileSystem
        end local 2 // org.graalvm.polyglot.io.FileSystem sourceFileSystem
        end local 1 // java.nio.file.Path target
        end local 0 // java.nio.file.Path source
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0            source  Ljava/nio/file/Path;
            0    9     1            target  Ljava/nio/file/Path;
            0    9     2  sourceFileSystem  Lorg/graalvm/polyglot/io/FileSystem;
            0    9     3  targetFileSystem  Lorg/graalvm/polyglot/io/FileSystem;
            0    9     4           options  [Ljava/nio/file/CopyOption;
            2    4     5            option  Ljava/nio/file/CopyOption;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      source            final
      target            final
      sourceFileSystem  final
      targetFileSystem  final
      options           

  private static org.graalvm.polyglot.impl.AbstractPolyglotImpl initImpl();
    descriptor: ()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=0
         0: .line 191
            ldc Lorg/graalvm/polyglot/Engine;
            ldc "getImpl"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 0 /* method */
        start local 0 // java.lang.reflect.Method method
         1: .line 192
            aload 0 /* method */
            iconst_1
            invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
         2: .line 193
            aload 0 /* method */
            aconst_null
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.impl.AbstractPolyglotImpl
            astore 1 /* polyglotImpl */
        start local 1 // org.graalvm.polyglot.impl.AbstractPolyglotImpl polyglotImpl
         3: .line 194
            aload 1 /* polyglotImpl */
            new org.graalvm.polyglot.io.IOHelper$IOAccessImpl
            dup
            invokespecial org.graalvm.polyglot.io.IOHelper$IOAccessImpl.<init>:()V
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl.setIO:(Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$IOAccess;)V
         4: .line 195
            aload 1 /* polyglotImpl */
         5: areturn
        end local 1 // org.graalvm.polyglot.impl.AbstractPolyglotImpl polyglotImpl
        end local 0 // java.lang.reflect.Method method
         6: .line 196
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 0 /* e */
        start local 0 // java.lang.Exception e
         7: .line 197
            new java.lang.IllegalStateException
            dup
            ldc "Failed to initialize execution listener class."
            aload 0 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 0 // java.lang.Exception e
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            1    6     0        method  Ljava/lang/reflect/Method;
            3    6     1  polyglotImpl  Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;
            7    8     0             e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     5       6  Class java.lang.Exception
}
SourceFile: "IOHelper.java"
NestMembers:
  org.graalvm.polyglot.io.IOHelper$IOAccessImpl
InnerClasses:
  public abstract IOAccess = org.graalvm.polyglot.impl.AbstractPolyglotImpl$IOAccess of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  private final IOAccessImpl = org.graalvm.polyglot.io.IOHelper$IOAccessImpl of org.graalvm.polyglot.io.IOHelper