public final class org.xnio.channels.Channels
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.xnio.channels.Channels
  super_class: java.lang.Object
{
  private static final java.nio.channels.FileChannel NULL_FILE_CHANNEL;
    descriptor: Ljava/nio/channels/FileChannel;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.nio.ByteBuffer DRAIN_BUFFER;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 790
            sipush 16384
            invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
            putstatic org.xnio.channels.Channels.DRAIN_BUFFER:Ljava/nio/ByteBuffer;
         1: .line 988
            new org.xnio.channels.Channels$1
            dup
            invokespecial org.xnio.channels.Channels$1.<init>:()V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.nio.channels.FileChannel
            putstatic org.xnio.channels.Channels.NULL_FILE_CHANNEL:Ljava/nio/channels/FileChannel;
         2: .line 1002
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.Channels this
         0: .line 50
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            return
        end local 0 // org.xnio.channels.Channels this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/channels/Channels;

  public static void flushBlocking(org.xnio.channels.SuspendableWriteChannel);
    descriptor: (Lorg/xnio/channels/SuspendableWriteChannel;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.SuspendableWriteChannel channel
         0: .line 63
            goto 2
         1: .line 64
      StackMap locals:
      StackMap stack:
            aload 0 /* channel */
            invokeinterface org.xnio.channels.SuspendableWriteChannel.awaitWritable:()V
         2: .line 63
      StackMap locals:
      StackMap stack:
            aload 0 /* channel */
            invokeinterface org.xnio.channels.SuspendableWriteChannel.flush:()Z
            ifeq 1
         3: .line 66
            return
        end local 0 // org.xnio.channels.SuspendableWriteChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  channel  Lorg/xnio/channels/SuspendableWriteChannel;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      channel  

  public static void shutdownWritesBlocking(org.xnio.channels.SuspendableWriteChannel);
    descriptor: (Lorg/xnio/channels/SuspendableWriteChannel;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.SuspendableWriteChannel channel
         0: .line 78
            aload 0 /* channel */
            invokeinterface org.xnio.channels.SuspendableWriteChannel.shutdownWrites:()V
         1: .line 79
            aload 0 /* channel */
            invokestatic org.xnio.channels.Channels.flushBlocking:(Lorg/xnio/channels/SuspendableWriteChannel;)V
         2: .line 80
            return
        end local 0 // org.xnio.channels.SuspendableWriteChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  channel  Lorg/xnio/channels/SuspendableWriteChannel;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      channel  

  public static <C extends java.nio.channels.WritableByteChannel, org.xnio.channels.SuspendableWriteChannel> int writeBlocking(C, java.nio.ByteBuffer);
    descriptor: (Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.nio.channels.WritableByteChannel channel
        start local 1 // java.nio.ByteBuffer buffer
         0: .line 95
            iconst_0
            istore 2 /* t */
        start local 2 // int t
         1: .line 96
            goto 7
         2: .line 97
      StackMap locals: int
      StackMap stack:
            aload 0 /* channel */
            aload 1 /* buffer */
            invokeinterface java.nio.channels.WritableByteChannel.write:(Ljava/nio/ByteBuffer;)I
            istore 3 /* res */
        start local 3 // int res
         3: .line 98
            iload 3 /* res */
            ifne 6
         4: .line 99
            aload 0 /* channel */
            checkcast org.xnio.channels.SuspendableWriteChannel
            invokeinterface org.xnio.channels.SuspendableWriteChannel.awaitWritable:()V
         5: .line 100
            goto 7
         6: .line 101
      StackMap locals: int
      StackMap stack:
            iload 2 /* t */
            iload 3 /* res */
            iadd
            istore 2 /* t */
        end local 3 // int res
         7: .line 96
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 2
         8: .line 104
            iload 2 /* t */
            ireturn
        end local 2 // int t
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // java.nio.channels.WritableByteChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0  channel  TC;
            0    9     1   buffer  Ljava/nio/ByteBuffer;
            1    9     2        t  I
            3    7     3      res  I
    Exceptions:
      throws java.io.IOException
    Signature: <C::Ljava/nio/channels/WritableByteChannel;:Lorg/xnio/channels/SuspendableWriteChannel;>(TC;Ljava/nio/ByteBuffer;)I
    MethodParameters:
         Name  Flags
      channel  
      buffer   

  public static <C extends java.nio.channels.WritableByteChannel, org.xnio.channels.SuspendableWriteChannel> int writeBlocking(C, java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=11, args_size=4
        start local 0 // java.nio.channels.WritableByteChannel channel
        start local 1 // java.nio.ByteBuffer buffer
        start local 2 // long time
        start local 4 // java.util.concurrent.TimeUnit unit
         0: .line 121
            aload 4 /* unit */
            lload 2 /* time */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 5 /* remaining */
        start local 5 // long remaining
         1: .line 122
            invokestatic java.lang.System.nanoTime:()J
            lstore 7 /* now */
        start local 7 // long now
         2: .line 123
            iconst_0
            istore 9 /* t */
        start local 9 // int t
         3: .line 124
            goto 10
         4: .line 125
      StackMap locals: long long int
      StackMap stack:
            aload 0 /* channel */
            aload 1 /* buffer */
            invokeinterface java.nio.channels.WritableByteChannel.write:(Ljava/nio/ByteBuffer;)I
            istore 10 /* res */
        start local 10 // int res
         5: .line 126
            iload 10 /* res */
            ifne 9
         6: .line 127
            aload 0 /* channel */
            checkcast org.xnio.channels.SuspendableWriteChannel
            lload 5 /* remaining */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface org.xnio.channels.SuspendableWriteChannel.awaitWritable:(JLjava/util/concurrent/TimeUnit;)V
         7: .line 128
            lload 5 /* remaining */
            lload 7 /* now */
            lneg
            invokestatic java.lang.System.nanoTime:()J
            dup2
            lstore 7 /* now */
            ladd
            lconst_0
            invokestatic java.lang.Math.max:(JJ)J
            lsub
            lstore 5 /* remaining */
         8: .line 129
            goto 10
         9: .line 130
      StackMap locals: int
      StackMap stack:
            iload 9 /* t */
            iload 10 /* res */
            iadd
            istore 9 /* t */
        end local 10 // int res
        10: .line 124
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 11
            lload 5 /* remaining */
            lconst_0
            lcmp
            ifgt 4
        11: .line 133
      StackMap locals:
      StackMap stack:
            iload 9 /* t */
            ireturn
        end local 9 // int t
        end local 7 // long now
        end local 5 // long remaining
        end local 4 // java.util.concurrent.TimeUnit unit
        end local 2 // long time
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // java.nio.channels.WritableByteChannel channel
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0    channel  TC;
            0   12     1     buffer  Ljava/nio/ByteBuffer;
            0   12     2       time  J
            0   12     4       unit  Ljava/util/concurrent/TimeUnit;
            1   12     5  remaining  J
            2   12     7        now  J
            3   12     9          t  I
            5   10    10        res  I
    Exceptions:
      throws java.io.IOException
    Signature: <C::Ljava/nio/channels/WritableByteChannel;:Lorg/xnio/channels/SuspendableWriteChannel;>(TC;Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;)I
    MethodParameters:
         Name  Flags
      channel  
      buffer   
      time     
      unit     

  public static <C extends java.nio.channels.GatheringByteChannel, org.xnio.channels.SuspendableWriteChannel> long writeBlocking(C, java.nio.ByteBuffer[], int, );
    descriptor: (Ljava/nio/channels/GatheringByteChannel;[Ljava/nio/ByteBuffer;II)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // java.nio.channels.GatheringByteChannel channel
        start local 1 // java.nio.ByteBuffer[] buffers
        start local 2 // int offs
        start local 3 // int len
         0: .line 150
            lconst_0
            lstore 4 /* t */
        start local 4 // long t
         1: .line 151
            goto 7
         2: .line 152
      StackMap locals: long
      StackMap stack:
            aload 0 /* channel */
            aload 1 /* buffers */
            iload 2 /* offs */
            iload 3 /* len */
            invokeinterface java.nio.channels.GatheringByteChannel.write:([Ljava/nio/ByteBuffer;II)J
            lstore 6 /* res */
        start local 6 // long res
         3: .line 153
            lload 6 /* res */
            lconst_0
            lcmp
            ifne 6
         4: .line 154
            aload 0 /* channel */
            checkcast org.xnio.channels.SuspendableWriteChannel
            invokeinterface org.xnio.channels.SuspendableWriteChannel.awaitWritable:()V
         5: .line 155
            goto 7
         6: .line 156
      StackMap locals: long
      StackMap stack:
            lload 4 /* t */
            lload 6 /* res */
            ladd
            lstore 4 /* t */
        end local 6 // long res
         7: .line 151
      StackMap locals:
      StackMap stack:
            aload 1 /* buffers */
            iload 2 /* offs */
            iload 3 /* len */
            invokestatic org.xnio.Buffers.hasRemaining:([Ljava/nio/Buffer;II)Z
            ifne 2
         8: .line 159
            lload 4 /* t */
            lreturn
        end local 4 // long t
        end local 3 // int len
        end local 2 // int offs
        end local 1 // java.nio.ByteBuffer[] buffers
        end local 0 // java.nio.channels.GatheringByteChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0  channel  TC;
            0    9     1  buffers  [Ljava/nio/ByteBuffer;
            0    9     2     offs  I
            0    9     3      len  I
            1    9     4        t  J
            3    7     6      res  J
    Exceptions:
      throws java.io.IOException
    Signature: <C::Ljava/nio/channels/GatheringByteChannel;:Lorg/xnio/channels/SuspendableWriteChannel;>(TC;[Ljava/nio/ByteBuffer;II)J
    MethodParameters:
         Name  Flags
      channel  
      buffers  
      offs     
      len      

  public static <C extends java.nio.channels.GatheringByteChannel, org.xnio.channels.SuspendableWriteChannel> long writeBlocking(C, java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/nio/channels/GatheringByteChannel;[Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=15, args_size=6
        start local 0 // java.nio.channels.GatheringByteChannel channel
        start local 1 // java.nio.ByteBuffer[] buffers
        start local 2 // int offs
        start local 3 // int len
        start local 4 // long time
        start local 6 // java.util.concurrent.TimeUnit unit
         0: .line 178
            aload 6 /* unit */
            lload 4 /* time */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 7 /* remaining */
        start local 7 // long remaining
         1: .line 179
            invokestatic java.lang.System.nanoTime:()J
            lstore 9 /* now */
        start local 9 // long now
         2: .line 180
            lconst_0
            lstore 11 /* t */
        start local 11 // long t
         3: .line 181
            goto 10
         4: .line 182
      StackMap locals: long long long
      StackMap stack:
            aload 0 /* channel */
            aload 1 /* buffers */
            iload 2 /* offs */
            iload 3 /* len */
            invokeinterface java.nio.channels.GatheringByteChannel.write:([Ljava/nio/ByteBuffer;II)J
            lstore 13 /* res */
        start local 13 // long res
         5: .line 183
            lload 13 /* res */
            lconst_0
            lcmp
            ifne 9
         6: .line 184
            aload 0 /* channel */
            checkcast org.xnio.channels.SuspendableWriteChannel
            lload 7 /* remaining */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface org.xnio.channels.SuspendableWriteChannel.awaitWritable:(JLjava/util/concurrent/TimeUnit;)V
         7: .line 185
            lload 7 /* remaining */
            lload 9 /* now */
            lneg
            invokestatic java.lang.System.nanoTime:()J
            dup2
            lstore 9 /* now */
            ladd
            lconst_0
            invokestatic java.lang.Math.max:(JJ)J
            lsub
            lstore 7 /* remaining */
         8: .line 186
            goto 10
         9: .line 187
      StackMap locals: long
      StackMap stack:
            lload 11 /* t */
            lload 13 /* res */
            ladd
            lstore 11 /* t */
        end local 13 // long res
        10: .line 181
      StackMap locals:
      StackMap stack:
            aload 1 /* buffers */
            iload 2 /* offs */
            iload 3 /* len */
            invokestatic org.xnio.Buffers.hasRemaining:([Ljava/nio/Buffer;II)Z
            ifeq 11
            lload 7 /* remaining */
            lconst_0
            lcmp
            ifgt 4
        11: .line 190
      StackMap locals:
      StackMap stack:
            lload 11 /* t */
            lreturn
        end local 11 // long t
        end local 9 // long now
        end local 7 // long remaining
        end local 6 // java.util.concurrent.TimeUnit unit
        end local 4 // long time
        end local 3 // int len
        end local 2 // int offs
        end local 1 // java.nio.ByteBuffer[] buffers
        end local 0 // java.nio.channels.GatheringByteChannel channel
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0    channel  TC;
            0   12     1    buffers  [Ljava/nio/ByteBuffer;
            0   12     2       offs  I
            0   12     3        len  I
            0   12     4       time  J
            0   12     6       unit  Ljava/util/concurrent/TimeUnit;
            1   12     7  remaining  J
            2   12     9        now  J
            3   12    11          t  J
            5   10    13        res  J
    Exceptions:
      throws java.io.IOException
    Signature: <C::Ljava/nio/channels/GatheringByteChannel;:Lorg/xnio/channels/SuspendableWriteChannel;>(TC;[Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;)J
    MethodParameters:
         Name  Flags
      channel  
      buffers  
      offs     
      len      
      time     
      unit     

  public static <C extends org.xnio.channels.WritableMessageChannel> void sendBlocking(C, java.nio.ByteBuffer);
    descriptor: (Lorg/xnio/channels/WritableMessageChannel;Ljava/nio/ByteBuffer;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.xnio.channels.WritableMessageChannel channel
        start local 1 // java.nio.ByteBuffer buffer
         0: .line 203
            goto 2
         1: .line 204
      StackMap locals:
      StackMap stack:
            aload 0 /* channel */
            invokeinterface org.xnio.channels.WritableMessageChannel.awaitWritable:()V
         2: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* channel */
            aload 1 /* buffer */
            invokeinterface org.xnio.channels.WritableMessageChannel.send:(Ljava/nio/ByteBuffer;)Z
            ifeq 1
         3: .line 206
            return
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // org.xnio.channels.WritableMessageChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  channel  TC;
            0    4     1   buffer  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    Signature: <C::Lorg/xnio/channels/WritableMessageChannel;>(TC;Ljava/nio/ByteBuffer;)V
    MethodParameters:
         Name  Flags
      channel  
      buffer   

  public static <C extends org.xnio.channels.WritableMessageChannel> boolean sendBlocking(C, java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit);
    descriptor: (Lorg/xnio/channels/WritableMessageChannel;Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=9, args_size=4
        start local 0 // org.xnio.channels.WritableMessageChannel channel
        start local 1 // java.nio.ByteBuffer buffer
        start local 2 // long time
        start local 4 // java.util.concurrent.TimeUnit unit
         0: .line 222
            aload 4 /* unit */
            lload 2 /* time */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 5 /* remaining */
        start local 5 // long remaining
         1: .line 223
            invokestatic java.lang.System.nanoTime:()J
            lstore 7 /* now */
        start local 7 // long now
         2: .line 224
            goto 8
         3: .line 225
      StackMap locals: long long
      StackMap stack:
            aload 0 /* channel */
            aload 1 /* buffer */
            invokeinterface org.xnio.channels.WritableMessageChannel.send:(Ljava/nio/ByteBuffer;)Z
            ifne 7
         4: .line 226
            aload 0 /* channel */
            lload 5 /* remaining */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface org.xnio.channels.WritableMessageChannel.awaitWritable:(JLjava/util/concurrent/TimeUnit;)V
         5: .line 227
            lload 5 /* remaining */
            lload 7 /* now */
            lneg
            invokestatic java.lang.System.nanoTime:()J
            dup2
            lstore 7 /* now */
            ladd
            lconst_0
            invokestatic java.lang.Math.max:(JJ)J
            lsub
            lstore 5 /* remaining */
         6: .line 228
            goto 8
         7: .line 229
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         8: .line 224
      StackMap locals:
      StackMap stack:
            lload 5 /* remaining */
            lconst_0
            lcmp
            ifgt 3
         9: .line 232
            iconst_0
            ireturn
        end local 7 // long now
        end local 5 // long remaining
        end local 4 // java.util.concurrent.TimeUnit unit
        end local 2 // long time
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // org.xnio.channels.WritableMessageChannel channel
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0    channel  TC;
            0   10     1     buffer  Ljava/nio/ByteBuffer;
            0   10     2       time  J
            0   10     4       unit  Ljava/util/concurrent/TimeUnit;
            1   10     5  remaining  J
            2   10     7        now  J
    Exceptions:
      throws java.io.IOException
    Signature: <C::Lorg/xnio/channels/WritableMessageChannel;>(TC;Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;)Z
    MethodParameters:
         Name  Flags
      channel  
      buffer   
      time     
      unit     

  public static <C extends org.xnio.channels.WritableMessageChannel> void sendBlocking(C, java.nio.ByteBuffer[], int, );
    descriptor: (Lorg/xnio/channels/WritableMessageChannel;[Ljava/nio/ByteBuffer;II)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.xnio.channels.WritableMessageChannel channel
        start local 1 // java.nio.ByteBuffer[] buffers
        start local 2 // int offs
        start local 3 // int len
         0: .line 247
            goto 2
         1: .line 248
      StackMap locals:
      StackMap stack:
            aload 0 /* channel */
            invokeinterface org.xnio.channels.WritableMessageChannel.awaitWritable:()V
         2: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* channel */
            aload 1 /* buffers */
            iload 2 /* offs */
            iload 3 /* len */
            invokeinterface org.xnio.channels.WritableMessageChannel.send:([Ljava/nio/ByteBuffer;II)Z
            ifeq 1
         3: .line 250
            return
        end local 3 // int len
        end local 2 // int offs
        end local 1 // java.nio.ByteBuffer[] buffers
        end local 0 // org.xnio.channels.WritableMessageChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  channel  TC;
            0    4     1  buffers  [Ljava/nio/ByteBuffer;
            0    4     2     offs  I
            0    4     3      len  I
    Exceptions:
      throws java.io.IOException
    Signature: <C::Lorg/xnio/channels/WritableMessageChannel;>(TC;[Ljava/nio/ByteBuffer;II)V
    MethodParameters:
         Name  Flags
      channel  
      buffers  
      offs     
      len      

  public static <C extends org.xnio.channels.WritableMessageChannel> boolean sendBlocking(C, java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit);
    descriptor: (Lorg/xnio/channels/WritableMessageChannel;[Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=11, args_size=6
        start local 0 // org.xnio.channels.WritableMessageChannel channel
        start local 1 // java.nio.ByteBuffer[] buffers
        start local 2 // int offs
        start local 3 // int len
        start local 4 // long time
        start local 6 // java.util.concurrent.TimeUnit unit
         0: .line 268
            aload 6 /* unit */
            lload 4 /* time */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 7 /* remaining */
        start local 7 // long remaining
         1: .line 269
            invokestatic java.lang.System.nanoTime:()J
            lstore 9 /* now */
        start local 9 // long now
         2: .line 270
            goto 8
         3: .line 271
      StackMap locals: long long
      StackMap stack:
            aload 0 /* channel */
            aload 1 /* buffers */
            iload 2 /* offs */
            iload 3 /* len */
            invokeinterface org.xnio.channels.WritableMessageChannel.send:([Ljava/nio/ByteBuffer;II)Z
            ifne 7
         4: .line 272
            aload 0 /* channel */
            lload 7 /* remaining */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface org.xnio.channels.WritableMessageChannel.awaitWritable:(JLjava/util/concurrent/TimeUnit;)V
         5: .line 273
            lload 7 /* remaining */
            lload 9 /* now */
            lneg
            invokestatic java.lang.System.nanoTime:()J
            dup2
            lstore 9 /* now */
            ladd
            lconst_0
            invokestatic java.lang.Math.max:(JJ)J
            lsub
            lstore 7 /* remaining */
         6: .line 274
            goto 8
         7: .line 275
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         8: .line 270
      StackMap locals:
      StackMap stack:
            lload 7 /* remaining */
            lconst_0
            lcmp
            ifgt 3
         9: .line 278
            iconst_0
            ireturn
        end local 9 // long now
        end local 7 // long remaining
        end local 6 // java.util.concurrent.TimeUnit unit
        end local 4 // long time
        end local 3 // int len
        end local 2 // int offs
        end local 1 // java.nio.ByteBuffer[] buffers
        end local 0 // org.xnio.channels.WritableMessageChannel channel
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0    channel  TC;
            0   10     1    buffers  [Ljava/nio/ByteBuffer;
            0   10     2       offs  I
            0   10     3        len  I
            0   10     4       time  J
            0   10     6       unit  Ljava/util/concurrent/TimeUnit;
            1   10     7  remaining  J
            2   10     9        now  J
    Exceptions:
      throws java.io.IOException
    Signature: <C::Lorg/xnio/channels/WritableMessageChannel;>(TC;[Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;)Z
    MethodParameters:
         Name  Flags
      channel  
      buffers  
      offs     
      len      
      time     
      unit     

  public static <C extends java.nio.channels.ReadableByteChannel, org.xnio.channels.SuspendableReadChannel> int readBlocking(C, java.nio.ByteBuffer);
    descriptor: (Ljava/nio/channels/ReadableByteChannel;Ljava/nio/ByteBuffer;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.nio.channels.ReadableByteChannel channel
        start local 1 // java.nio.ByteBuffer buffer
         0: .line 294
            goto 2
        start local 2 // int res
         1: .line 295
      StackMap locals: int
      StackMap stack:
            aload 0 /* channel */
            checkcast org.xnio.channels.SuspendableReadChannel
            invokeinterface org.xnio.channels.SuspendableReadChannel.awaitReadable:()V
        end local 2 // int res
         2: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* channel */
            aload 1 /* buffer */
            invokeinterface java.nio.channels.ReadableByteChannel.read:(Ljava/nio/ByteBuffer;)I
            dup
            istore 2 /* res */
        start local 2 // int res
         3: ifne 4
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 1
         4: .line 297
      StackMap locals: int
      StackMap stack:
            iload 2 /* res */
            ireturn
        end local 2 // int res
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // java.nio.channels.ReadableByteChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  channel  TC;
            0    5     1   buffer  Ljava/nio/ByteBuffer;
            1    2     2      res  I
            3    5     2      res  I
    Exceptions:
      throws java.io.IOException
    Signature: <C::Ljava/nio/channels/ReadableByteChannel;:Lorg/xnio/channels/SuspendableReadChannel;>(TC;Ljava/nio/ByteBuffer;)I
    MethodParameters:
         Name  Flags
      channel  
      buffer   

  public static <C extends java.nio.channels.ReadableByteChannel, org.xnio.channels.SuspendableReadChannel> int readBlocking(C, java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/nio/channels/ReadableByteChannel;Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // java.nio.channels.ReadableByteChannel channel
        start local 1 // java.nio.ByteBuffer buffer
        start local 2 // long time
        start local 4 // java.util.concurrent.TimeUnit unit
         0: .line 314
            aload 0 /* channel */
            aload 1 /* buffer */
            invokeinterface java.nio.channels.ReadableByteChannel.read:(Ljava/nio/ByteBuffer;)I
            istore 5 /* res */
        start local 5 // int res
         1: .line 315
            iload 5 /* res */
            ifne 4
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 4
         2: .line 316
            aload 0 /* channel */
            checkcast org.xnio.channels.SuspendableReadChannel
            lload 2 /* time */
            aload 4 /* unit */
            invokeinterface org.xnio.channels.SuspendableReadChannel.awaitReadable:(JLjava/util/concurrent/TimeUnit;)V
         3: .line 317
            aload 0 /* channel */
            aload 1 /* buffer */
            invokeinterface java.nio.channels.ReadableByteChannel.read:(Ljava/nio/ByteBuffer;)I
            ireturn
         4: .line 319
      StackMap locals: int
      StackMap stack:
            iload 5 /* res */
            ireturn
        end local 5 // int res
        end local 4 // java.util.concurrent.TimeUnit unit
        end local 2 // long time
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // java.nio.channels.ReadableByteChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  channel  TC;
            0    5     1   buffer  Ljava/nio/ByteBuffer;
            0    5     2     time  J
            0    5     4     unit  Ljava/util/concurrent/TimeUnit;
            1    5     5      res  I
    Exceptions:
      throws java.io.IOException
    Signature: <C::Ljava/nio/channels/ReadableByteChannel;:Lorg/xnio/channels/SuspendableReadChannel;>(TC;Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;)I
    MethodParameters:
         Name  Flags
      channel  
      buffer   
      time     
      unit     

  public static <C extends java.nio.channels.ScatteringByteChannel, org.xnio.channels.SuspendableReadChannel> long readBlocking(C, java.nio.ByteBuffer[], int, );
    descriptor: (Ljava/nio/channels/ScatteringByteChannel;[Ljava/nio/ByteBuffer;II)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // java.nio.channels.ScatteringByteChannel channel
        start local 1 // java.nio.ByteBuffer[] buffers
        start local 2 // int offs
        start local 3 // int len
         0: .line 338
            goto 2
        start local 4 // long res
         1: .line 339
      StackMap locals: long
      StackMap stack:
            aload 0 /* channel */
            checkcast org.xnio.channels.SuspendableReadChannel
            invokeinterface org.xnio.channels.SuspendableReadChannel.awaitReadable:()V
        end local 4 // long res
         2: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* channel */
            aload 1 /* buffers */
            iload 2 /* offs */
            iload 3 /* len */
            invokeinterface java.nio.channels.ScatteringByteChannel.read:([Ljava/nio/ByteBuffer;II)J
            dup2
            lstore 4 /* res */
        start local 4 // long res
         3: lconst_0
            lcmp
            ifeq 1
         4: .line 341
            lload 4 /* res */
            lreturn
        end local 4 // long res
        end local 3 // int len
        end local 2 // int offs
        end local 1 // java.nio.ByteBuffer[] buffers
        end local 0 // java.nio.channels.ScatteringByteChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  channel  TC;
            0    5     1  buffers  [Ljava/nio/ByteBuffer;
            0    5     2     offs  I
            0    5     3      len  I
            1    2     4      res  J
            3    5     4      res  J
    Exceptions:
      throws java.io.IOException
    Signature: <C::Ljava/nio/channels/ScatteringByteChannel;:Lorg/xnio/channels/SuspendableReadChannel;>(TC;[Ljava/nio/ByteBuffer;II)J
    MethodParameters:
         Name  Flags
      channel  
      buffers  
      offs     
      len      

  public static <C extends java.nio.channels.ScatteringByteChannel, org.xnio.channels.SuspendableReadChannel> long readBlocking(C, java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/nio/channels/ScatteringByteChannel;[Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=6
        start local 0 // java.nio.channels.ScatteringByteChannel channel
        start local 1 // java.nio.ByteBuffer[] buffers
        start local 2 // int offs
        start local 3 // int len
        start local 4 // long time
        start local 6 // java.util.concurrent.TimeUnit unit
         0: .line 360
            aload 0 /* channel */
            aload 1 /* buffers */
            iload 2 /* offs */
            iload 3 /* len */
            invokeinterface java.nio.channels.ScatteringByteChannel.read:([Ljava/nio/ByteBuffer;II)J
            lstore 7 /* res */
        start local 7 // long res
         1: .line 361
            lload 7 /* res */
            lconst_0
            lcmp
            ifne 4
            aload 1 /* buffers */
            iload 2 /* offs */
            iload 3 /* len */
            invokestatic org.xnio.Buffers.hasRemaining:([Ljava/nio/Buffer;II)Z
            ifeq 4
         2: .line 362
            aload 0 /* channel */
            checkcast org.xnio.channels.SuspendableReadChannel
            lload 4 /* time */
            aload 6 /* unit */
            invokeinterface org.xnio.channels.SuspendableReadChannel.awaitReadable:(JLjava/util/concurrent/TimeUnit;)V
         3: .line 363
            aload 0 /* channel */
            aload 1 /* buffers */
            iload 2 /* offs */
            iload 3 /* len */
            invokeinterface java.nio.channels.ScatteringByteChannel.read:([Ljava/nio/ByteBuffer;II)J
            lreturn
         4: .line 365
      StackMap locals: long
      StackMap stack:
            lload 7 /* res */
            lreturn
        end local 7 // long res
        end local 6 // java.util.concurrent.TimeUnit unit
        end local 4 // long time
        end local 3 // int len
        end local 2 // int offs
        end local 1 // java.nio.ByteBuffer[] buffers
        end local 0 // java.nio.channels.ScatteringByteChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  channel  TC;
            0    5     1  buffers  [Ljava/nio/ByteBuffer;
            0    5     2     offs  I
            0    5     3      len  I
            0    5     4     time  J
            0    5     6     unit  Ljava/util/concurrent/TimeUnit;
            1    5     7      res  J
    Exceptions:
      throws java.io.IOException
    Signature: <C::Ljava/nio/channels/ScatteringByteChannel;:Lorg/xnio/channels/SuspendableReadChannel;>(TC;[Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;)J
    MethodParameters:
         Name  Flags
      channel  
      buffers  
      offs     
      len      
      time     
      unit     

  public static <C extends org.xnio.channels.ReadableMessageChannel> int receiveBlocking(C, java.nio.ByteBuffer);
    descriptor: (Lorg/xnio/channels/ReadableMessageChannel;Ljava/nio/ByteBuffer;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.xnio.channels.ReadableMessageChannel channel
        start local 1 // java.nio.ByteBuffer buffer
         0: .line 382
            goto 2
        start local 2 // int res
         1: .line 383
      StackMap locals: int
      StackMap stack:
            aload 0 /* channel */
            invokeinterface org.xnio.channels.ReadableMessageChannel.awaitReadable:()V
        end local 2 // int res
         2: .line 382
      StackMap locals:
      StackMap stack:
            aload 0 /* channel */
            aload 1 /* buffer */
            invokeinterface org.xnio.channels.ReadableMessageChannel.receive:(Ljava/nio/ByteBuffer;)I
            dup
            istore 2 /* res */
        start local 2 // int res
         3: ifeq 1
         4: .line 385
            iload 2 /* res */
            ireturn
        end local 2 // int res
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // org.xnio.channels.ReadableMessageChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  channel  TC;
            0    5     1   buffer  Ljava/nio/ByteBuffer;
            1    2     2      res  I
            3    5     2      res  I
    Exceptions:
      throws java.io.IOException
    Signature: <C::Lorg/xnio/channels/ReadableMessageChannel;>(TC;Ljava/nio/ByteBuffer;)I
    MethodParameters:
         Name  Flags
      channel  
      buffer   

  public static <C extends org.xnio.channels.ReadableMessageChannel> int receiveBlocking(C, java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit);
    descriptor: (Lorg/xnio/channels/ReadableMessageChannel;Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.xnio.channels.ReadableMessageChannel channel
        start local 1 // java.nio.ByteBuffer buffer
        start local 2 // long time
        start local 4 // java.util.concurrent.TimeUnit unit
         0: .line 402
            aload 0 /* channel */
            aload 1 /* buffer */
            invokeinterface org.xnio.channels.ReadableMessageChannel.receive:(Ljava/nio/ByteBuffer;)I
            istore 5 /* res */
        start local 5 // int res
         1: .line 403
            iload 5 /* res */
            ifne 4
         2: .line 404
            aload 0 /* channel */
            lload 2 /* time */
            aload 4 /* unit */
            invokeinterface org.xnio.channels.ReadableMessageChannel.awaitReadable:(JLjava/util/concurrent/TimeUnit;)V
         3: .line 405
            aload 0 /* channel */
            aload 1 /* buffer */
            invokeinterface org.xnio.channels.ReadableMessageChannel.receive:(Ljava/nio/ByteBuffer;)I
            ireturn
         4: .line 407
      StackMap locals: int
      StackMap stack:
            iload 5 /* res */
            ireturn
        end local 5 // int res
        end local 4 // java.util.concurrent.TimeUnit unit
        end local 2 // long time
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // org.xnio.channels.ReadableMessageChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  channel  TC;
            0    5     1   buffer  Ljava/nio/ByteBuffer;
            0    5     2     time  J
            0    5     4     unit  Ljava/util/concurrent/TimeUnit;
            1    5     5      res  I
    Exceptions:
      throws java.io.IOException
    Signature: <C::Lorg/xnio/channels/ReadableMessageChannel;>(TC;Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;)I
    MethodParameters:
         Name  Flags
      channel  
      buffer   
      time     
      unit     

  public static <C extends org.xnio.channels.ReadableMessageChannel> long receiveBlocking(C, java.nio.ByteBuffer[], int, );
    descriptor: (Lorg/xnio/channels/ReadableMessageChannel;[Ljava/nio/ByteBuffer;II)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.xnio.channels.ReadableMessageChannel channel
        start local 1 // java.nio.ByteBuffer[] buffers
        start local 2 // int offs
        start local 3 // int len
         0: .line 426
            goto 2
        start local 4 // long res
         1: .line 427
      StackMap locals: long
      StackMap stack:
            aload 0 /* channel */
            invokeinterface org.xnio.channels.ReadableMessageChannel.awaitReadable:()V
        end local 4 // long res
         2: .line 426
      StackMap locals:
      StackMap stack:
            aload 0 /* channel */
            aload 1 /* buffers */
            iload 2 /* offs */
            iload 3 /* len */
            invokeinterface org.xnio.channels.ReadableMessageChannel.receive:([Ljava/nio/ByteBuffer;II)J
            dup2
            lstore 4 /* res */
        start local 4 // long res
         3: lconst_0
            lcmp
            ifeq 1
         4: .line 429
            lload 4 /* res */
            lreturn
        end local 4 // long res
        end local 3 // int len
        end local 2 // int offs
        end local 1 // java.nio.ByteBuffer[] buffers
        end local 0 // org.xnio.channels.ReadableMessageChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  channel  TC;
            0    5     1  buffers  [Ljava/nio/ByteBuffer;
            0    5     2     offs  I
            0    5     3      len  I
            1    2     4      res  J
            3    5     4      res  J
    Exceptions:
      throws java.io.IOException
    Signature: <C::Lorg/xnio/channels/ReadableMessageChannel;>(TC;[Ljava/nio/ByteBuffer;II)J
    MethodParameters:
         Name  Flags
      channel  
      buffers  
      offs     
      len      

  public static <C extends org.xnio.channels.ReadableMessageChannel> long receiveBlocking(C, java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit);
    descriptor: (Lorg/xnio/channels/ReadableMessageChannel;[Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=6
        start local 0 // org.xnio.channels.ReadableMessageChannel channel
        start local 1 // java.nio.ByteBuffer[] buffers
        start local 2 // int offs
        start local 3 // int len
        start local 4 // long time
        start local 6 // java.util.concurrent.TimeUnit unit
         0: .line 448
            aload 0 /* channel */
            aload 1 /* buffers */
            iload 2 /* offs */
            iload 3 /* len */
            invokeinterface org.xnio.channels.ReadableMessageChannel.receive:([Ljava/nio/ByteBuffer;II)J
            lstore 7 /* res */
        start local 7 // long res
         1: .line 449
            lload 7 /* res */
            lconst_0
            lcmp
            ifne 4
         2: .line 450
            aload 0 /* channel */
            lload 4 /* time */
            aload 6 /* unit */
            invokeinterface org.xnio.channels.ReadableMessageChannel.awaitReadable:(JLjava/util/concurrent/TimeUnit;)V
         3: .line 451
            aload 0 /* channel */
            aload 1 /* buffers */
            iload 2 /* offs */
            iload 3 /* len */
            invokeinterface org.xnio.channels.ReadableMessageChannel.receive:([Ljava/nio/ByteBuffer;II)J
            lreturn
         4: .line 453
      StackMap locals: long
      StackMap stack:
            lload 7 /* res */
            lreturn
        end local 7 // long res
        end local 6 // java.util.concurrent.TimeUnit unit
        end local 4 // long time
        end local 3 // int len
        end local 2 // int offs
        end local 1 // java.nio.ByteBuffer[] buffers
        end local 0 // org.xnio.channels.ReadableMessageChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  channel  TC;
            0    5     1  buffers  [Ljava/nio/ByteBuffer;
            0    5     2     offs  I
            0    5     3      len  I
            0    5     4     time  J
            0    5     6     unit  Ljava/util/concurrent/TimeUnit;
            1    5     7      res  J
    Exceptions:
      throws java.io.IOException
    Signature: <C::Lorg/xnio/channels/ReadableMessageChannel;>(TC;[Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;)J
    MethodParameters:
         Name  Flags
      channel  
      buffers  
      offs     
      len      
      time     
      unit     

  public static <C extends org.xnio.channels.ConnectedChannel, A extends org.xnio.channels.AcceptingChannel<C>> C acceptBlocking();
    descriptor: (Lorg/xnio/channels/AcceptingChannel;)Lorg/xnio/channels/ConnectedChannel;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.xnio.channels.AcceptingChannel channel
         0: .line 470
            goto 2
        start local 1 // org.xnio.channels.ConnectedChannel accepted
         1: .line 471
      StackMap locals: org.xnio.channels.ConnectedChannel
      StackMap stack:
            aload 0 /* channel */
            invokeinterface org.xnio.channels.AcceptingChannel.awaitAcceptable:()V
        end local 1 // org.xnio.channels.ConnectedChannel accepted
         2: .line 470
      StackMap locals:
      StackMap stack:
            aload 0 /* channel */
            invokeinterface org.xnio.channels.AcceptingChannel.accept:()Lorg/xnio/channels/ConnectedChannel;
            dup
            astore 1 /* accepted */
        start local 1 // org.xnio.channels.ConnectedChannel accepted
         3: ifnull 1
         4: .line 473
            aload 1 /* accepted */
            areturn
        end local 1 // org.xnio.channels.ConnectedChannel accepted
        end local 0 // org.xnio.channels.AcceptingChannel channel
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0   channel  TA;
            1    2     1  accepted  TC;
            3    5     1  accepted  TC;
    Exceptions:
      throws java.io.IOException
    Signature: <C::Lorg/xnio/channels/ConnectedChannel;A::Lorg/xnio/channels/AcceptingChannel<TC;>;>(TA;)TC;
    MethodParameters:
         Name  Flags
      channel  

  public static <C extends org.xnio.channels.ConnectedChannel, A extends org.xnio.channels.AcceptingChannel<C>> C acceptBlocking(A, long, java.util.concurrent.TimeUnit);
    descriptor: (Lorg/xnio/channels/AcceptingChannel;JLjava/util/concurrent/TimeUnit;)Lorg/xnio/channels/ConnectedChannel;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.xnio.channels.AcceptingChannel channel
        start local 1 // long time
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 490
            aload 0 /* channel */
            invokeinterface org.xnio.channels.AcceptingChannel.accept:()Lorg/xnio/channels/ConnectedChannel;
            astore 4 /* accepted */
        start local 4 // org.xnio.channels.ConnectedChannel accepted
         1: .line 491
            aload 4 /* accepted */
            ifnonnull 4
         2: .line 492
            aload 0 /* channel */
            lload 1 /* time */
            aload 3 /* unit */
            invokeinterface org.xnio.channels.AcceptingChannel.awaitAcceptable:(JLjava/util/concurrent/TimeUnit;)V
         3: .line 493
            aload 0 /* channel */
            invokeinterface org.xnio.channels.AcceptingChannel.accept:()Lorg/xnio/channels/ConnectedChannel;
            areturn
         4: .line 495
      StackMap locals: org.xnio.channels.ConnectedChannel
      StackMap stack:
            aload 4 /* accepted */
            areturn
        end local 4 // org.xnio.channels.ConnectedChannel accepted
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long time
        end local 0 // org.xnio.channels.AcceptingChannel channel
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0   channel  TA;
            0    5     1      time  J
            0    5     3      unit  Ljava/util/concurrent/TimeUnit;
            1    5     4  accepted  TC;
    Exceptions:
      throws java.io.IOException
    Signature: <C::Lorg/xnio/channels/ConnectedChannel;A::Lorg/xnio/channels/AcceptingChannel<TC;>;>(TA;JLjava/util/concurrent/TimeUnit;)TC;
    MethodParameters:
         Name  Flags
      channel  
      time     
      unit     

  public static void transferBlocking(org.xnio.channels.StreamSinkChannel, java.nio.channels.FileChannel, long, long);
    descriptor: (Lorg/xnio/channels/StreamSinkChannel;Ljava/nio/channels/FileChannel;JJ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=13, args_size=4
        start local 0 // org.xnio.channels.StreamSinkChannel destination
        start local 1 // java.nio.channels.FileChannel source
        start local 2 // long startPosition
        start local 4 // long count
         0: .line 509
            lload 4 /* count */
            lstore 6 /* remaining */
        start local 6 // long remaining
         1: .line 511
            goto 14
        start local 8 // long res
         2: .line 514
      StackMap locals: long long
      StackMap stack:
            aload 0 /* destination */
            invokeinterface org.xnio.channels.StreamSinkChannel.awaitWritable:()V
         3: .line 515
            goto 10
      StackMap locals:
      StackMap stack: java.io.InterruptedIOException
         4: astore 10 /* e */
        start local 10 // java.io.InterruptedIOException e
         5: .line 516
            lload 4 /* count */
            lload 6 /* remaining */
            lsub
            lstore 11 /* bytes */
        start local 11 // long bytes
         6: .line 517
            lload 11 /* bytes */
            ldc 2147483647
            lcmp
            ifle 9
         7: .line 518
            aload 10 /* e */
            iconst_m1
            putfield java.io.InterruptedIOException.bytesTransferred:I
         8: .line 519
            goto 10
         9: .line 520
      StackMap locals: java.io.InterruptedIOException long
      StackMap stack:
            aload 10 /* e */
            lload 11 /* bytes */
            l2i
            putfield java.io.InterruptedIOException.bytesTransferred:I
        end local 11 // long bytes
        end local 10 // java.io.InterruptedIOException e
        end local 8 // long res
        10: .line 512
      StackMap locals:
      StackMap stack:
            aload 0 /* destination */
            aload 1 /* source */
            lload 2 /* startPosition */
            lload 6 /* remaining */
            invokeinterface org.xnio.channels.StreamSinkChannel.transferFrom:(Ljava/nio/channels/FileChannel;JJ)J
            dup2
            lstore 8 /* res */
        start local 8 // long res
        11: lconst_0
            lcmp
            ifeq 2
        12: .line 524
            lload 6 /* remaining */
            lload 8 /* res */
            lsub
            lstore 6 /* remaining */
        13: .line 525
            lload 2 /* startPosition */
            lload 8 /* res */
            ladd
            lstore 2 /* startPosition */
        end local 8 // long res
        14: .line 511
      StackMap locals:
      StackMap stack:
            lload 6 /* remaining */
            lconst_0
            lcmp
            ifgt 10
        15: .line 527
            return
        end local 6 // long remaining
        end local 4 // long count
        end local 2 // long startPosition
        end local 1 // java.nio.channels.FileChannel source
        end local 0 // org.xnio.channels.StreamSinkChannel destination
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0    destination  Lorg/xnio/channels/StreamSinkChannel;
            0   16     1         source  Ljava/nio/channels/FileChannel;
            0   16     2  startPosition  J
            0   16     4          count  J
            1   16     6      remaining  J
            2   10     8            res  J
           11   14     8            res  J
            5   10    10              e  Ljava/io/InterruptedIOException;
            6   10    11          bytes  J
      Exception table:
        from    to  target  type
           2     3       4  Class java.io.InterruptedIOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      destination    
      source         
      startPosition  
      count          final

  public static void transferBlocking(java.nio.channels.FileChannel, org.xnio.channels.StreamSourceChannel, long, long);
    descriptor: (Ljava/nio/channels/FileChannel;Lorg/xnio/channels/StreamSourceChannel;JJ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=13, args_size=4
        start local 0 // java.nio.channels.FileChannel destination
        start local 1 // org.xnio.channels.StreamSourceChannel source
        start local 2 // long startPosition
        start local 4 // long count
         0: .line 539
            lload 4 /* count */
            lstore 6 /* remaining */
        start local 6 // long remaining
         1: .line 541
            goto 14
        start local 8 // long res
         2: .line 544
      StackMap locals: long long
      StackMap stack:
            aload 1 /* source */
            invokeinterface org.xnio.channels.StreamSourceChannel.awaitReadable:()V
         3: .line 545
            goto 10
      StackMap locals:
      StackMap stack: java.io.InterruptedIOException
         4: astore 10 /* e */
        start local 10 // java.io.InterruptedIOException e
         5: .line 546
            lload 4 /* count */
            lload 6 /* remaining */
            lsub
            lstore 11 /* bytes */
        start local 11 // long bytes
         6: .line 547
            lload 11 /* bytes */
            ldc 2147483647
            lcmp
            ifle 9
         7: .line 548
            aload 10 /* e */
            iconst_m1
            putfield java.io.InterruptedIOException.bytesTransferred:I
         8: .line 549
            goto 10
         9: .line 550
      StackMap locals: java.io.InterruptedIOException long
      StackMap stack:
            aload 10 /* e */
            lload 11 /* bytes */
            l2i
            putfield java.io.InterruptedIOException.bytesTransferred:I
        end local 11 // long bytes
        end local 10 // java.io.InterruptedIOException e
        end local 8 // long res
        10: .line 542
      StackMap locals:
      StackMap stack:
            aload 1 /* source */
            lload 2 /* startPosition */
            lload 6 /* remaining */
            aload 0 /* destination */
            invokeinterface org.xnio.channels.StreamSourceChannel.transferTo:(JJLjava/nio/channels/FileChannel;)J
            dup2
            lstore 8 /* res */
        start local 8 // long res
        11: lconst_0
            lcmp
            ifeq 2
        12: .line 554
            lload 6 /* remaining */
            lload 8 /* res */
            lsub
            lstore 6 /* remaining */
        13: .line 555
            lload 2 /* startPosition */
            lload 8 /* res */
            ladd
            lstore 2 /* startPosition */
        end local 8 // long res
        14: .line 541
      StackMap locals:
      StackMap stack:
            lload 6 /* remaining */
            lconst_0
            lcmp
            ifgt 10
        15: .line 557
            return
        end local 6 // long remaining
        end local 4 // long count
        end local 2 // long startPosition
        end local 1 // org.xnio.channels.StreamSourceChannel source
        end local 0 // java.nio.channels.FileChannel destination
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0    destination  Ljava/nio/channels/FileChannel;
            0   16     1         source  Lorg/xnio/channels/StreamSourceChannel;
            0   16     2  startPosition  J
            0   16     4          count  J
            1   16     6      remaining  J
            2   10     8            res  J
           11   14     8            res  J
            5   10    10              e  Ljava/io/InterruptedIOException;
            6   10    11          bytes  J
      Exception table:
        from    to  target  type
           2     3       4  Class java.io.InterruptedIOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      destination    
      source         
      startPosition  
      count          final

  public static long transferBlocking(org.xnio.channels.StreamSinkChannel, org.xnio.channels.StreamSourceChannel, java.nio.ByteBuffer, long);
    descriptor: (Lorg/xnio/channels/StreamSinkChannel;Lorg/xnio/channels/StreamSourceChannel;Ljava/nio/ByteBuffer;J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=11, args_size=4
        start local 0 // org.xnio.channels.StreamSinkChannel destination
        start local 1 // org.xnio.channels.StreamSourceChannel source
        start local 2 // java.nio.ByteBuffer throughBuffer
        start local 3 // long count
         0: .line 570
            lconst_0
            lstore 5 /* t */
        start local 5 // long t
         1: .line 572
            goto 22
        start local 7 // long res
         2: .line 575
      StackMap locals: long long
      StackMap stack:
            aload 2 /* throughBuffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 5
         3: .line 576
            aload 0 /* destination */
            aload 2 /* throughBuffer */
            invokestatic org.xnio.channels.Channels.writeBlocking:(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)I
            pop
         4: .line 577
            goto 6
         5: .line 578
      StackMap locals:
      StackMap stack:
            aload 1 /* source */
            invokeinterface org.xnio.channels.StreamSourceChannel.awaitReadable:()V
        end local 7 // long res
         6: .line 574
      StackMap locals:
      StackMap stack:
            aload 1 /* source */
            lload 3 /* count */
            aload 2 /* throughBuffer */
            aload 0 /* destination */
            invokeinterface org.xnio.channels.StreamSourceChannel.transferTo:(JLjava/nio/ByteBuffer;Lorg/xnio/channels/StreamSinkChannel;)J
            dup2
            lstore 7 /* res */
        start local 7 // long res
         7: lconst_0
            lcmp
            ifeq 2
         8: .line 581
            lload 5 /* t */
            lload 7 /* res */
            ladd
            lstore 5 /* t */
         9: .line 582
            goto 18
        end local 7 // long res
      StackMap locals:
      StackMap stack: java.io.InterruptedIOException
        10: astore 9 /* e */
        start local 9 // java.io.InterruptedIOException e
        11: .line 583
            aload 9 /* e */
            getfield java.io.InterruptedIOException.bytesTransferred:I
            istore 10 /* transferred */
        start local 10 // int transferred
        12: .line 584
            lload 5 /* t */
            iload 10 /* transferred */
            i2l
            ladd
            lstore 5 /* t */
        13: .line 585
            iload 10 /* transferred */
            iflt 14
            lload 5 /* t */
            ldc 2147483647
            lcmp
            ifle 16
        14: .line 586
      StackMap locals: org.xnio.channels.StreamSinkChannel org.xnio.channels.StreamSourceChannel java.nio.ByteBuffer long long top top java.io.InterruptedIOException int
      StackMap stack:
            aload 9 /* e */
            iconst_m1
            putfield java.io.InterruptedIOException.bytesTransferred:I
        15: .line 587
            goto 17
        16: .line 588
      StackMap locals:
      StackMap stack:
            aload 9 /* e */
            lload 5 /* t */
            l2i
            putfield java.io.InterruptedIOException.bytesTransferred:I
        17: .line 590
      StackMap locals:
      StackMap stack:
            aload 9 /* e */
            athrow
        end local 10 // int transferred
        end local 9 // java.io.InterruptedIOException e
        start local 7 // long res
        18: .line 592
      StackMap locals: org.xnio.channels.StreamSinkChannel org.xnio.channels.StreamSourceChannel java.nio.ByteBuffer long long long
      StackMap stack:
            lload 7 /* res */
            ldc -1
            lcmp
            ifne 22
        19: .line 593
            lload 5 /* t */
            lconst_0
            lcmp
            ifne 20
            ldc -1
            goto 21
      StackMap locals:
      StackMap stack:
        20: lload 5 /* t */
      StackMap locals:
      StackMap stack: long
        21: lreturn
        end local 7 // long res
        22: .line 572
      StackMap locals:
      StackMap stack:
            lload 5 /* t */
            lload 3 /* count */
            lcmp
            iflt 6
        23: .line 596
            lload 5 /* t */
            lreturn
        end local 5 // long t
        end local 3 // long count
        end local 2 // java.nio.ByteBuffer throughBuffer
        end local 1 // org.xnio.channels.StreamSourceChannel source
        end local 0 // org.xnio.channels.StreamSinkChannel destination
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   24     0    destination  Lorg/xnio/channels/StreamSinkChannel;
            0   24     1         source  Lorg/xnio/channels/StreamSourceChannel;
            0   24     2  throughBuffer  Ljava/nio/ByteBuffer;
            0   24     3          count  J
            1   24     5              t  J
            2    6     7            res  J
            7   10     7            res  J
           18   22     7            res  J
           11   18     9              e  Ljava/io/InterruptedIOException;
           12   18    10    transferred  I
      Exception table:
        from    to  target  type
           2     9      10  Class java.io.InterruptedIOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      destination    
      source         
      throughBuffer  
      count          

  public static <T extends org.xnio.channels.CloseableChannel> void setCloseListener(T, org.xnio.ChannelListener<? super T>);
    descriptor: (Lorg/xnio/channels/CloseableChannel;Lorg/xnio/ChannelListener;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.xnio.channels.CloseableChannel channel
        start local 1 // org.xnio.ChannelListener listener
         0: .line 608
            aload 0 /* channel */
            invokeinterface org.xnio.channels.CloseableChannel.getCloseSetter:()Lorg/xnio/ChannelListener$Setter;
            astore 2 /* setter */
        start local 2 // org.xnio.ChannelListener$Setter setter
         1: .line 609
            aload 2 /* setter */
            aload 1 /* listener */
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
         2: .line 610
            return
        end local 2 // org.xnio.ChannelListener$Setter setter
        end local 1 // org.xnio.ChannelListener listener
        end local 0 // org.xnio.channels.CloseableChannel channel
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0   channel  TT;
            0    3     1  listener  Lorg/xnio/ChannelListener<-TT;>;
            1    3     2    setter  Lorg/xnio/ChannelListener$Setter<+TT;>;
    Signature: <T::Lorg/xnio/channels/CloseableChannel;>(TT;Lorg/xnio/ChannelListener<-TT;>;)V
    MethodParameters:
          Name  Flags
      channel   
      listener  

  public static <T extends org.xnio.channels.AcceptingChannel<?>> void setAcceptListener(T, org.xnio.ChannelListener<? super T>);
    descriptor: (Lorg/xnio/channels/AcceptingChannel;Lorg/xnio/ChannelListener;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.xnio.channels.AcceptingChannel channel
        start local 1 // org.xnio.ChannelListener listener
         0: .line 621
            aload 0 /* channel */
            invokeinterface org.xnio.channels.AcceptingChannel.getAcceptSetter:()Lorg/xnio/ChannelListener$Setter;
            astore 2 /* setter */
        start local 2 // org.xnio.ChannelListener$Setter setter
         1: .line 622
            aload 2 /* setter */
            aload 1 /* listener */
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
         2: .line 623
            return
        end local 2 // org.xnio.ChannelListener$Setter setter
        end local 1 // org.xnio.ChannelListener listener
        end local 0 // org.xnio.channels.AcceptingChannel channel
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0   channel  TT;
            0    3     1  listener  Lorg/xnio/ChannelListener<-TT;>;
            1    3     2    setter  Lorg/xnio/ChannelListener$Setter<+TT;>;
    Signature: <T::Lorg/xnio/channels/AcceptingChannel<*>;>(TT;Lorg/xnio/ChannelListener<-TT;>;)V
    MethodParameters:
          Name  Flags
      channel   
      listener  

  public static <T extends org.xnio.channels.SuspendableReadChannel> void setReadListener(T, org.xnio.ChannelListener<? super T>);
    descriptor: (Lorg/xnio/channels/SuspendableReadChannel;Lorg/xnio/ChannelListener;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.xnio.channels.SuspendableReadChannel channel
        start local 1 // org.xnio.ChannelListener listener
         0: .line 634
            aload 0 /* channel */
            invokeinterface org.xnio.channels.SuspendableReadChannel.getReadSetter:()Lorg/xnio/ChannelListener$Setter;
            astore 2 /* setter */
        start local 2 // org.xnio.ChannelListener$Setter setter
         1: .line 635
            aload 2 /* setter */
            aload 1 /* listener */
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
         2: .line 636
            return
        end local 2 // org.xnio.ChannelListener$Setter setter
        end local 1 // org.xnio.ChannelListener listener
        end local 0 // org.xnio.channels.SuspendableReadChannel channel
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0   channel  TT;
            0    3     1  listener  Lorg/xnio/ChannelListener<-TT;>;
            1    3     2    setter  Lorg/xnio/ChannelListener$Setter<+TT;>;
    Signature: <T::Lorg/xnio/channels/SuspendableReadChannel;>(TT;Lorg/xnio/ChannelListener<-TT;>;)V
    MethodParameters:
          Name  Flags
      channel   
      listener  

  public static <T extends org.xnio.channels.SuspendableWriteChannel> void setWriteListener(T, org.xnio.ChannelListener<? super T>);
    descriptor: (Lorg/xnio/channels/SuspendableWriteChannel;Lorg/xnio/ChannelListener;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.xnio.channels.SuspendableWriteChannel channel
        start local 1 // org.xnio.ChannelListener listener
         0: .line 647
            aload 0 /* channel */
            invokeinterface org.xnio.channels.SuspendableWriteChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
            astore 2 /* setter */
        start local 2 // org.xnio.ChannelListener$Setter setter
         1: .line 648
            aload 2 /* setter */
            aload 1 /* listener */
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
         2: .line 649
            return
        end local 2 // org.xnio.ChannelListener$Setter setter
        end local 1 // org.xnio.ChannelListener listener
        end local 0 // org.xnio.channels.SuspendableWriteChannel channel
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0   channel  TT;
            0    3     1  listener  Lorg/xnio/ChannelListener<-TT;>;
            1    3     2    setter  Lorg/xnio/ChannelListener$Setter<+TT;>;
    Signature: <T::Lorg/xnio/channels/SuspendableWriteChannel;>(TT;Lorg/xnio/ChannelListener<-TT;>;)V
    MethodParameters:
          Name  Flags
      channel   
      listener  

  public static org.xnio.channels.ByteChannel wrapByteChannel(org.xnio.channels.ByteChannel);
    descriptor: (Lorg/xnio/channels/ByteChannel;)Lorg/xnio/channels/ByteChannel;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.xnio.channels.ByteChannel original
         0: .line 658
            new org.xnio.channels.Channels$2
            dup
            aload 0 /* original */
            invokespecial org.xnio.channels.Channels$2.<init>:(Lorg/xnio/channels/ByteChannel;)V
            areturn
        end local 0 // org.xnio.channels.ByteChannel original
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  original  Lorg/xnio/channels/ByteChannel;
    MethodParameters:
          Name  Flags
      original  final

  public static <T> T getOption(org.xnio.channels.Configurable, org.xnio.Option<T>, );
    descriptor: (Lorg/xnio/channels/Configurable;Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.xnio.channels.Configurable configurable
        start local 1 // org.xnio.Option option
        start local 2 // java.lang.Object defaultValue
         0: .line 705
            aload 0 /* configurable */
            aload 1 /* option */
            invokeinterface org.xnio.channels.Configurable.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
            astore 3 /* value */
        start local 3 // java.lang.Object value
         1: .line 706
            aload 3 /* value */
            ifnonnull 2
            aload 2 /* defaultValue */
            goto 3
      StackMap locals: java.lang.Object
      StackMap stack:
         2: aload 3 /* value */
      StackMap locals:
      StackMap stack: java.lang.Object
         3: areturn
        end local 3 // java.lang.Object value
         4: .line 707
      StackMap locals: org.xnio.channels.Configurable org.xnio.Option java.lang.Object
      StackMap stack: java.io.IOException
            pop
         5: .line 708
            aload 2 /* defaultValue */
            areturn
        end local 2 // java.lang.Object defaultValue
        end local 1 // org.xnio.Option option
        end local 0 // org.xnio.channels.Configurable configurable
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0  configurable  Lorg/xnio/channels/Configurable;
            0    6     1        option  Lorg/xnio/Option<TT;>;
            0    6     2  defaultValue  TT;
            1    4     3         value  TT;
      Exception table:
        from    to  target  type
           0     3       4  Class java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Lorg/xnio/channels/Configurable;Lorg/xnio/Option<TT;>;TT;)TT;
    MethodParameters:
              Name  Flags
      configurable  
      option        
      defaultValue  

  public static boolean getOption(org.xnio.channels.Configurable, org.xnio.Option<java.lang.Boolean>, );
    descriptor: (Lorg/xnio/channels/Configurable;Lorg/xnio/Option;Z)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.xnio.channels.Configurable configurable
        start local 1 // org.xnio.Option option
        start local 2 // boolean defaultValue
         0: .line 723
            aload 0 /* configurable */
            aload 1 /* option */
            invokeinterface org.xnio.channels.Configurable.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 3 /* value */
        start local 3 // java.lang.Boolean value
         1: .line 724
            aload 3 /* value */
            ifnonnull 2
            iload 2 /* defaultValue */
            goto 3
      StackMap locals: java.lang.Boolean
      StackMap stack:
         2: aload 3 /* value */
            invokevirtual java.lang.Boolean.booleanValue:()Z
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 3 // java.lang.Boolean value
         4: .line 725
      StackMap locals: org.xnio.channels.Configurable org.xnio.Option int
      StackMap stack: java.io.IOException
            pop
         5: .line 726
            iload 2 /* defaultValue */
            ireturn
        end local 2 // boolean defaultValue
        end local 1 // org.xnio.Option option
        end local 0 // org.xnio.channels.Configurable configurable
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0  configurable  Lorg/xnio/channels/Configurable;
            0    6     1        option  Lorg/xnio/Option<Ljava/lang/Boolean;>;
            0    6     2  defaultValue  Z
            1    4     3         value  Ljava/lang/Boolean;
      Exception table:
        from    to  target  type
           0     3       4  Class java.io.IOException
    Signature: (Lorg/xnio/channels/Configurable;Lorg/xnio/Option<Ljava/lang/Boolean;>;Z)Z
    MethodParameters:
              Name  Flags
      configurable  
      option        
      defaultValue  

  public static int getOption(org.xnio.channels.Configurable, org.xnio.Option<java.lang.Integer>, );
    descriptor: (Lorg/xnio/channels/Configurable;Lorg/xnio/Option;I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.xnio.channels.Configurable configurable
        start local 1 // org.xnio.Option option
        start local 2 // int defaultValue
         0: .line 741
            aload 0 /* configurable */
            aload 1 /* option */
            invokeinterface org.xnio.channels.Configurable.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 3 /* value */
        start local 3 // java.lang.Integer value
         1: .line 742
            aload 3 /* value */
            ifnonnull 2
            iload 2 /* defaultValue */
            goto 3
      StackMap locals: java.lang.Integer
      StackMap stack:
         2: aload 3 /* value */
            invokevirtual java.lang.Integer.intValue:()I
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 3 // java.lang.Integer value
         4: .line 743
      StackMap locals: org.xnio.channels.Configurable org.xnio.Option int
      StackMap stack: java.io.IOException
            pop
         5: .line 744
            iload 2 /* defaultValue */
            ireturn
        end local 2 // int defaultValue
        end local 1 // org.xnio.Option option
        end local 0 // org.xnio.channels.Configurable configurable
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0  configurable  Lorg/xnio/channels/Configurable;
            0    6     1        option  Lorg/xnio/Option<Ljava/lang/Integer;>;
            0    6     2  defaultValue  I
            1    4     3         value  Ljava/lang/Integer;
      Exception table:
        from    to  target  type
           0     3       4  Class java.io.IOException
    Signature: (Lorg/xnio/channels/Configurable;Lorg/xnio/Option<Ljava/lang/Integer;>;I)I
    MethodParameters:
              Name  Flags
      configurable  
      option        
      defaultValue  

  public static long getOption(org.xnio.channels.Configurable, org.xnio.Option<java.lang.Long>, );
    descriptor: (Lorg/xnio/channels/Configurable;Lorg/xnio/Option;J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.xnio.channels.Configurable configurable
        start local 1 // org.xnio.Option option
        start local 2 // long defaultValue
         0: .line 759
            aload 0 /* configurable */
            aload 1 /* option */
            invokeinterface org.xnio.channels.Configurable.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
            checkcast java.lang.Long
            astore 4 /* value */
        start local 4 // java.lang.Long value
         1: .line 760
            aload 4 /* value */
            ifnonnull 2
            lload 2 /* defaultValue */
            goto 3
      StackMap locals: java.lang.Long
      StackMap stack:
         2: aload 4 /* value */
            invokevirtual java.lang.Long.longValue:()J
      StackMap locals:
      StackMap stack: long
         3: lreturn
        end local 4 // java.lang.Long value
         4: .line 761
      StackMap locals: org.xnio.channels.Configurable org.xnio.Option long
      StackMap stack: java.io.IOException
            pop
         5: .line 762
            lload 2 /* defaultValue */
            lreturn
        end local 2 // long defaultValue
        end local 1 // org.xnio.Option option
        end local 0 // org.xnio.channels.Configurable configurable
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0  configurable  Lorg/xnio/channels/Configurable;
            0    6     1        option  Lorg/xnio/Option<Ljava/lang/Long;>;
            0    6     2  defaultValue  J
            1    4     4         value  Ljava/lang/Long;
      Exception table:
        from    to  target  type
           0     3       4  Class java.io.IOException
    Signature: (Lorg/xnio/channels/Configurable;Lorg/xnio/Option<Ljava/lang/Long;>;J)J
    MethodParameters:
              Name  Flags
      configurable  
      option        
      defaultValue  

  public static <T extends java.nio.channels.Channel> T unwrap(java.lang.Class<T>, java.nio.channels.Channel);
    descriptor: (Ljava/lang/Class;Ljava/nio/channels/Channel;)Ljava/nio/channels/Channel;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Class targetType
        start local 1 // java.nio.channels.Channel channel
         0: .line 777
      StackMap locals:
      StackMap stack:
            aload 1 /* channel */
            ifnonnull 2
         1: .line 778
            aconst_null
            areturn
         2: .line 779
      StackMap locals:
      StackMap stack:
            aload 0 /* targetType */
            aload 1 /* channel */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 780
            aload 0 /* targetType */
            aload 1 /* channel */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.nio.channels.Channel
            areturn
         4: .line 781
      StackMap locals:
      StackMap stack:
            aload 1 /* channel */
            instanceof org.xnio.channels.WrappedChannel
            ifeq 7
         5: .line 782
            aload 1 /* channel */
            checkcast org.xnio.channels.WrappedChannel
            invokeinterface org.xnio.channels.WrappedChannel.getChannel:()Ljava/nio/channels/Channel;
            astore 1 /* channel */
         6: .line 783
            goto 0
         7: .line 784
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.nio.channels.Channel channel
        end local 0 // java.lang.Class targetType
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0  targetType  Ljava/lang/Class<TT;>;
            0    8     1     channel  Ljava/nio/channels/Channel;
    Signature: <T::Ljava/nio/channels/Channel;>(Ljava/lang/Class<TT;>;Ljava/nio/channels/Channel;)TT;
    MethodParameters:
            Name  Flags
      targetType  
      channel     

  public static long drain(org.xnio.channels.StreamSourceChannel, long);
    descriptor: (Lorg/xnio/channels/StreamSourceChannel;J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // org.xnio.channels.StreamSourceChannel channel
        start local 1 // long count
         0: .line 801
            lconst_0
            lstore 3 /* total */
        start local 3 // long total
         1: .line 803
            aconst_null
            astore 8 /* buffer */
        start local 8 // java.nio.ByteBuffer buffer
         2: .line 805
      StackMap locals: org.xnio.channels.StreamSourceChannel long long top top top java.nio.ByteBuffer
      StackMap stack:
            lload 1 /* count */
            lconst_0
            lcmp
            ifne 3
            lload 3 /* total */
            lreturn
         3: .line 806
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.channels.Channels.NULL_FILE_CHANNEL:Ljava/nio/channels/FileChannel;
            ifnull 12
         4: .line 807
            goto 10
         5: .line 808
      StackMap locals:
      StackMap stack:
            aload 0 /* channel */
            lconst_0
            lload 1 /* count */
            getstatic org.xnio.channels.Channels.NULL_FILE_CHANNEL:Ljava/nio/channels/FileChannel;
            invokeinterface org.xnio.channels.StreamSourceChannel.transferTo:(JJLjava/nio/channels/FileChannel;)J
            dup2
            lstore 5 /* lres */
        start local 5 // long lres
         6: lconst_0
            lcmp
            ifne 8
         7: .line 809
            goto 11
         8: .line 811
      StackMap locals: org.xnio.channels.StreamSourceChannel long long long top java.nio.ByteBuffer
      StackMap stack:
            lload 3 /* total */
            lload 5 /* lres */
            ladd
            lstore 3 /* total */
         9: .line 812
            lload 1 /* count */
            lload 5 /* lres */
            lsub
            lstore 1 /* count */
        end local 5 // long lres
        10: .line 807
      StackMap locals: org.xnio.channels.StreamSourceChannel long long top top top java.nio.ByteBuffer
      StackMap stack:
            lload 1 /* count */
            lconst_0
            lcmp
            ifgt 5
        11: .line 815
      StackMap locals:
      StackMap stack:
            lload 3 /* total */
            lconst_0
            lcmp
            ifle 12
            lload 3 /* total */
            lreturn
        12: .line 817
      StackMap locals:
      StackMap stack:
            aload 8 /* buffer */
            ifnonnull 13
            getstatic org.xnio.channels.Channels.DRAIN_BUFFER:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            astore 8 /* buffer */
        13: .line 818
      StackMap locals:
      StackMap stack:
            aload 8 /* buffer */
            invokevirtual java.nio.ByteBuffer.limit:()I
            i2l
            lload 1 /* count */
            lcmp
            ifle 14
            aload 8 /* buffer */
            lload 1 /* count */
            l2i
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        14: .line 819
      StackMap locals:
      StackMap stack:
            aload 0 /* channel */
            aload 8 /* buffer */
            invokeinterface org.xnio.channels.StreamSourceChannel.read:(Ljava/nio/ByteBuffer;)I
            istore 7 /* ires */
        start local 7 // int ires
        15: .line 820
            aload 8 /* buffer */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
        16: .line 821
            iload 7 /* ires */
            tableswitch { // -1 - 0
                   -1: 17
                    0: 20
              default: 21
          }
        17: .line 822
      StackMap locals: org.xnio.channels.StreamSourceChannel long long top top int java.nio.ByteBuffer
      StackMap stack:
            lload 3 /* total */
            lconst_0
            lcmp
            ifne 18
            ldc -1
            goto 19
      StackMap locals:
      StackMap stack:
        18: lload 3 /* total */
      StackMap locals:
      StackMap stack: long
        19: lreturn
        20: .line 823
      StackMap locals:
      StackMap stack:
            lload 3 /* total */
            lreturn
        21: .line 824
      StackMap locals:
      StackMap stack:
            lload 3 /* total */
            iload 7 /* ires */
            i2l
            ladd
            lstore 3 /* total */
            lload 1 /* count */
            iload 7 /* ires */
            i2l
            lsub
            lstore 1 /* count */
        end local 7 // int ires
        22: .line 804
            goto 2
        end local 8 // java.nio.ByteBuffer buffer
        end local 3 // long total
        end local 1 // long count
        end local 0 // org.xnio.channels.StreamSourceChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0  channel  Lorg/xnio/channels/StreamSourceChannel;
            0   23     1    count  J
            1   23     3    total  J
            6   10     5     lres  J
           15   22     7     ires  I
            2   23     8   buffer  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      channel  
      count    

  public static long drain(java.nio.channels.ReadableByteChannel, long);
    descriptor: (Ljava/nio/channels/ReadableByteChannel;J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // java.nio.channels.ReadableByteChannel channel
        start local 1 // long count
         0: .line 838
            aload 0 /* channel */
            instanceof org.xnio.channels.StreamSourceChannel
            ifeq 2
         1: .line 839
            aload 0 /* channel */
            checkcast org.xnio.channels.StreamSourceChannel
            lload 1 /* count */
            invokestatic org.xnio.channels.Channels.drain:(Lorg/xnio/channels/StreamSourceChannel;J)J
            lreturn
         2: .line 841
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 3 /* total */
        start local 3 // long total
         3: .line 843
            aconst_null
            astore 8 /* buffer */
        start local 8 // java.nio.ByteBuffer buffer
         4: .line 845
      StackMap locals: java.nio.channels.ReadableByteChannel long long top top top java.nio.ByteBuffer
      StackMap stack:
            lload 1 /* count */
            lconst_0
            lcmp
            ifne 5
            lload 3 /* total */
            lreturn
         5: .line 846
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.channels.Channels.NULL_FILE_CHANNEL:Ljava/nio/channels/FileChannel;
            ifnull 14
         6: .line 847
            goto 12
         7: .line 848
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.channels.Channels.NULL_FILE_CHANNEL:Ljava/nio/channels/FileChannel;
            aload 0 /* channel */
            lconst_0
            lload 1 /* count */
            invokevirtual java.nio.channels.FileChannel.transferFrom:(Ljava/nio/channels/ReadableByteChannel;JJ)J
            dup2
            lstore 5 /* lres */
        start local 5 // long lres
         8: lconst_0
            lcmp
            ifne 10
         9: .line 849
            goto 13
        10: .line 851
      StackMap locals: java.nio.channels.ReadableByteChannel long long long top java.nio.ByteBuffer
      StackMap stack:
            lload 3 /* total */
            lload 5 /* lres */
            ladd
            lstore 3 /* total */
        11: .line 852
            lload 1 /* count */
            lload 5 /* lres */
            lsub
            lstore 1 /* count */
        end local 5 // long lres
        12: .line 847
      StackMap locals: java.nio.channels.ReadableByteChannel long long top top top java.nio.ByteBuffer
      StackMap stack:
            lload 1 /* count */
            lconst_0
            lcmp
            ifgt 7
        13: .line 855
      StackMap locals:
      StackMap stack:
            lload 3 /* total */
            lconst_0
            lcmp
            ifle 14
            lload 3 /* total */
            lreturn
        14: .line 857
      StackMap locals:
      StackMap stack:
            aload 8 /* buffer */
            ifnonnull 15
            getstatic org.xnio.channels.Channels.DRAIN_BUFFER:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            astore 8 /* buffer */
        15: .line 858
      StackMap locals:
      StackMap stack:
            aload 8 /* buffer */
            invokevirtual java.nio.ByteBuffer.limit:()I
            i2l
            lload 1 /* count */
            lcmp
            ifle 16
            aload 8 /* buffer */
            lload 1 /* count */
            l2i
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        16: .line 859
      StackMap locals:
      StackMap stack:
            aload 0 /* channel */
            aload 8 /* buffer */
            invokeinterface java.nio.channels.ReadableByteChannel.read:(Ljava/nio/ByteBuffer;)I
            istore 7 /* ires */
        start local 7 // int ires
        17: .line 860
            aload 8 /* buffer */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
        18: .line 861
            iload 7 /* ires */
            tableswitch { // -1 - 0
                   -1: 19
                    0: 22
              default: 23
          }
        19: .line 862
      StackMap locals: java.nio.channels.ReadableByteChannel long long top top int java.nio.ByteBuffer
      StackMap stack:
            lload 3 /* total */
            lconst_0
            lcmp
            ifne 20
            ldc -1
            goto 21
      StackMap locals:
      StackMap stack:
        20: lload 3 /* total */
      StackMap locals:
      StackMap stack: long
        21: lreturn
        22: .line 863
      StackMap locals:
      StackMap stack:
            lload 3 /* total */
            lreturn
        23: .line 864
      StackMap locals:
      StackMap stack:
            lload 3 /* total */
            iload 7 /* ires */
            i2l
            ladd
            lstore 3 /* total */
            lload 1 /* count */
            iload 7 /* ires */
            i2l
            lsub
            lstore 1 /* count */
        end local 7 // int ires
        24: .line 844
            goto 4
        end local 8 // java.nio.ByteBuffer buffer
        end local 3 // long total
        end local 1 // long count
        end local 0 // java.nio.channels.ReadableByteChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   25     0  channel  Ljava/nio/channels/ReadableByteChannel;
            0   25     1    count  J
            3   25     3    total  J
            8   12     5     lres  J
           17   24     7     ires  I
            4   25     8   buffer  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      channel  
      count    

  public static long drain(java.nio.channels.FileChannel, long, long);
    descriptor: (Ljava/nio/channels/FileChannel;JJ)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // java.nio.channels.FileChannel channel
        start local 1 // long position
        start local 3 // long count
         0: .line 881
            aload 0 /* channel */
            instanceof org.xnio.channels.StreamSourceChannel
            ifeq 2
         1: .line 882
            aload 0 /* channel */
            checkcast org.xnio.channels.StreamSourceChannel
            lload 3 /* count */
            invokestatic org.xnio.channels.Channels.drain:(Lorg/xnio/channels/StreamSourceChannel;J)J
            lreturn
         2: .line 884
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 5 /* total */
        start local 5 // long total
         3: .line 886
            aconst_null
            astore 10 /* buffer */
        start local 10 // java.nio.ByteBuffer buffer
         4: .line 888
      StackMap locals: java.nio.channels.FileChannel long long long top top top java.nio.ByteBuffer
      StackMap stack:
            lload 3 /* count */
            lconst_0
            lcmp
            ifne 5
            lload 5 /* total */
            lreturn
         5: .line 889
      StackMap locals:
      StackMap stack:
            getstatic org.xnio.channels.Channels.NULL_FILE_CHANNEL:Ljava/nio/channels/FileChannel;
            ifnull 14
         6: .line 890
            goto 12
         7: .line 891
      StackMap locals:
      StackMap stack:
            aload 0 /* channel */
            lload 1 /* position */
            lload 3 /* count */
            getstatic org.xnio.channels.Channels.NULL_FILE_CHANNEL:Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.transferTo:(JJLjava/nio/channels/WritableByteChannel;)J
            dup2
            lstore 7 /* lres */
        start local 7 // long lres
         8: lconst_0
            lcmp
            ifne 10
         9: .line 892
            goto 13
        10: .line 894
      StackMap locals: java.nio.channels.FileChannel long long long long top java.nio.ByteBuffer
      StackMap stack:
            lload 5 /* total */
            lload 7 /* lres */
            ladd
            lstore 5 /* total */
        11: .line 895
            lload 3 /* count */
            lload 7 /* lres */
            lsub
            lstore 3 /* count */
        end local 7 // long lres
        12: .line 890
      StackMap locals: java.nio.channels.FileChannel long long long top top top java.nio.ByteBuffer
      StackMap stack:
            lload 3 /* count */
            lconst_0
            lcmp
            ifgt 7
        13: .line 898
      StackMap locals:
      StackMap stack:
            lload 5 /* total */
            lconst_0
            lcmp
            ifle 14
            lload 5 /* total */
            lreturn
        14: .line 900
      StackMap locals:
      StackMap stack:
            aload 10 /* buffer */
            ifnonnull 15
            getstatic org.xnio.channels.Channels.DRAIN_BUFFER:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            astore 10 /* buffer */
        15: .line 901
      StackMap locals:
      StackMap stack:
            aload 10 /* buffer */
            invokevirtual java.nio.ByteBuffer.limit:()I
            i2l
            lload 3 /* count */
            lcmp
            ifle 16
            aload 10 /* buffer */
            lload 3 /* count */
            l2i
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        16: .line 902
      StackMap locals:
      StackMap stack:
            aload 0 /* channel */
            aload 10 /* buffer */
            invokevirtual java.nio.channels.FileChannel.read:(Ljava/nio/ByteBuffer;)I
            istore 9 /* ires */
        start local 9 // int ires
        17: .line 903
            aload 10 /* buffer */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
        18: .line 904
            iload 9 /* ires */
            tableswitch { // -1 - 0
                   -1: 19
                    0: 22
              default: 23
          }
        19: .line 905
      StackMap locals: java.nio.channels.FileChannel long long long top top int java.nio.ByteBuffer
      StackMap stack:
            lload 5 /* total */
            lconst_0
            lcmp
            ifne 20
            ldc -1
            goto 21
      StackMap locals:
      StackMap stack:
        20: lload 5 /* total */
      StackMap locals:
      StackMap stack: long
        21: lreturn
        22: .line 906
      StackMap locals:
      StackMap stack:
            lload 5 /* total */
            lreturn
        23: .line 907
      StackMap locals:
      StackMap stack:
            lload 5 /* total */
            iload 9 /* ires */
            i2l
            ladd
            lstore 5 /* total */
        end local 9 // int ires
        24: .line 887
            goto 4
        end local 10 // java.nio.ByteBuffer buffer
        end local 5 // long total
        end local 3 // long count
        end local 1 // long position
        end local 0 // java.nio.channels.FileChannel channel
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   25     0   channel  Ljava/nio/channels/FileChannel;
            0   25     1  position  J
            0   25     3     count  J
            3   25     5     total  J
            8   12     7      lres  J
           17   24     9      ires  I
            4   25    10    buffer  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      channel   
      position  
      count     

  public static void resumeReadsAsync(org.xnio.channels.SuspendableReadChannel);
    descriptor: (Lorg/xnio/channels/SuspendableReadChannel;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.xnio.channels.SuspendableReadChannel channel
         0: .line 920
            aload 0 /* channel */
            invokeinterface org.xnio.channels.SuspendableReadChannel.getIoThread:()Lorg/xnio/XnioIoThread;
            astore 1 /* ioThread */
        start local 1 // org.xnio.XnioIoThread ioThread
         1: .line 921
            aload 1 /* ioThread */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpne 4
         2: .line 922
            aload 0 /* channel */
            invokeinterface org.xnio.channels.SuspendableReadChannel.resumeReads:()V
         3: .line 923
            goto 5
         4: .line 924
      StackMap locals: org.xnio.XnioIoThread
      StackMap stack:
            aload 1 /* ioThread */
            new org.xnio.channels.Channels$3
            dup
            aload 0 /* channel */
            invokespecial org.xnio.channels.Channels$3.<init>:(Lorg/xnio/channels/SuspendableReadChannel;)V
            invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
         5: .line 930
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.xnio.XnioIoThread ioThread
        end local 0 // org.xnio.channels.SuspendableReadChannel channel
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0   channel  Lorg/xnio/channels/SuspendableReadChannel;
            1    6     1  ioThread  Lorg/xnio/XnioIoThread;
    MethodParameters:
         Name  Flags
      channel  final

  public static void resumeWritesAsync(org.xnio.channels.SuspendableWriteChannel);
    descriptor: (Lorg/xnio/channels/SuspendableWriteChannel;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.xnio.channels.SuspendableWriteChannel channel
         0: .line 939
            aload 0 /* channel */
            invokeinterface org.xnio.channels.SuspendableWriteChannel.getIoThread:()Lorg/xnio/XnioIoThread;
            astore 1 /* ioThread */
        start local 1 // org.xnio.XnioIoThread ioThread
         1: .line 940
            aload 1 /* ioThread */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpne 4
         2: .line 941
            aload 0 /* channel */
            invokeinterface org.xnio.channels.SuspendableWriteChannel.resumeWrites:()V
         3: .line 942
            goto 5
         4: .line 943
      StackMap locals: org.xnio.XnioIoThread
      StackMap stack:
            aload 1 /* ioThread */
            new org.xnio.channels.Channels$4
            dup
            aload 0 /* channel */
            invokespecial org.xnio.channels.Channels$4.<init>:(Lorg/xnio/channels/SuspendableWriteChannel;)V
            invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
         5: .line 949
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.xnio.XnioIoThread ioThread
        end local 0 // org.xnio.channels.SuspendableWriteChannel channel
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0   channel  Lorg/xnio/channels/SuspendableWriteChannel;
            1    6     1  ioThread  Lorg/xnio/XnioIoThread;
    MethodParameters:
         Name  Flags
      channel  final

  public static int writeFinalBasic(org.xnio.channels.StreamSinkChannel, java.nio.ByteBuffer);
    descriptor: (Lorg/xnio/channels/StreamSinkChannel;Ljava/nio/ByteBuffer;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.xnio.channels.StreamSinkChannel channel
        start local 1 // java.nio.ByteBuffer src
         0: .line 961
            aload 0 /* channel */
            aload 1 /* src */
            invokeinterface org.xnio.channels.StreamSinkChannel.write:(Ljava/nio/ByteBuffer;)I
            istore 2 /* res */
        start local 2 // int res
         1: .line 962
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 3
         2: .line 963
            aload 0 /* channel */
            invokeinterface org.xnio.channels.StreamSinkChannel.shutdownWrites:()V
         3: .line 965
      StackMap locals: int
      StackMap stack:
            iload 2 /* res */
            ireturn
        end local 2 // int res
        end local 1 // java.nio.ByteBuffer src
        end local 0 // org.xnio.channels.StreamSinkChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  channel  Lorg/xnio/channels/StreamSinkChannel;
            0    4     1      src  Ljava/nio/ByteBuffer;
            1    4     2      res  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      channel  
      src      

  public static long writeFinalBasic(org.xnio.channels.StreamSinkChannel, java.nio.ByteBuffer[], int, int);
    descriptor: (Lorg/xnio/channels/StreamSinkChannel;[Ljava/nio/ByteBuffer;II)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.xnio.channels.StreamSinkChannel channel
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offset
        start local 3 // int length
         0: .line 980
            aload 0 /* channel */
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            invokeinterface org.xnio.channels.StreamSinkChannel.write:([Ljava/nio/ByteBuffer;II)J
            lstore 4 /* res */
        start local 4 // long res
         1: .line 981
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            invokestatic org.xnio.Buffers.hasRemaining:([Ljava/nio/Buffer;II)Z
            ifne 3
         2: .line 982
            aload 0 /* channel */
            invokeinterface org.xnio.channels.StreamSinkChannel.shutdownWrites:()V
         3: .line 984
      StackMap locals: long
      StackMap stack:
            lload 4 /* res */
            lreturn
        end local 4 // long res
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // org.xnio.channels.StreamSinkChannel channel
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  channel  Lorg/xnio/channels/StreamSinkChannel;
            0    4     1     srcs  [Ljava/nio/ByteBuffer;
            0    4     2   offset  I
            0    4     3   length  I
            1    4     4      res  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      channel  
      srcs     
      offset   
      length   
}
SourceFile: "Channels.java"
NestMembers:
  org.xnio.channels.Channels$1  org.xnio.channels.Channels$2  org.xnio.channels.Channels$3  org.xnio.channels.Channels$4
InnerClasses:
  public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener
  org.xnio.channels.Channels$1
  org.xnio.channels.Channels$2
  org.xnio.channels.Channels$3
  org.xnio.channels.Channels$4