public abstract class io.netty.channel.AbstractChannel extends io.netty.util.DefaultAttributeMap implements io.netty.channel.Channel
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: io.netty.channel.AbstractChannel
  super_class: io.netty.util.DefaultAttributeMap
{
  private static final io.netty.util.internal.logging.InternalLogger logger;
    descriptor: Lio/netty/util/internal/logging/InternalLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

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

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

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

  private final io.netty.channel.Channel parent;
    descriptor: Lio/netty/channel/Channel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.channel.ChannelId id;
    descriptor: Lio/netty/channel/ChannelId;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.channel.Channel$Unsafe unsafe;
    descriptor: Lio/netty/channel/Channel$Unsafe;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.channel.DefaultChannelPipeline pipeline;
    descriptor: Lio/netty/channel/DefaultChannelPipeline;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.channel.VoidChannelPromise unsafeVoidPromise;
    descriptor: Lio/netty/channel/VoidChannelPromise;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.channel.AbstractChannel$CloseFuture closeFuture;
    descriptor: Lio/netty/channel/AbstractChannel$CloseFuture;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile java.net.SocketAddress localAddress;
    descriptor: Ljava/net/SocketAddress;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile java.net.SocketAddress remoteAddress;
    descriptor: Ljava/net/SocketAddress;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile io.netty.channel.EventLoop eventLoop;
    descriptor: Lio/netty/channel/EventLoop;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean registered;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 45
            ldc Lio/netty/channel/AbstractChannel;
            invokestatic io.netty.util.internal.logging.InternalLoggerFactory.getInstance:(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;
            putstatic io.netty.channel.AbstractChannel.logger:Lio/netty/util/internal/logging/InternalLogger;
         1: .line 48
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            ldc Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            ldc "flush0()"
         2: .line 47
            invokestatic io.netty.util.internal.ThrowableUtil.unknownStackTrace:(Ljava/lang/Throwable;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Throwable;
            checkcast java.nio.channels.ClosedChannelException
            putstatic io.netty.channel.AbstractChannel.FLUSH0_CLOSED_CHANNEL_EXCEPTION:Ljava/nio/channels/ClosedChannelException;
         3: .line 50
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            ldc Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            ldc "ensureOpen(...)"
         4: .line 49
            invokestatic io.netty.util.internal.ThrowableUtil.unknownStackTrace:(Ljava/lang/Throwable;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Throwable;
            checkcast java.nio.channels.ClosedChannelException
            putstatic io.netty.channel.AbstractChannel.ENSURE_OPEN_CLOSED_CHANNEL_EXCEPTION:Ljava/nio/channels/ClosedChannelException;
         5: .line 52
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            ldc Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            ldc "close(...)"
         6: .line 51
            invokestatic io.netty.util.internal.ThrowableUtil.unknownStackTrace:(Ljava/lang/Throwable;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Throwable;
            checkcast java.nio.channels.ClosedChannelException
            putstatic io.netty.channel.AbstractChannel.CLOSE_CLOSED_CHANNEL_EXCEPTION:Ljava/nio/channels/ClosedChannelException;
         7: .line 54
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            ldc Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            ldc "write(...)"
         8: .line 53
            invokestatic io.netty.util.internal.ThrowableUtil.unknownStackTrace:(Ljava/lang/Throwable;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Throwable;
            checkcast java.nio.channels.ClosedChannelException
            putstatic io.netty.channel.AbstractChannel.WRITE_CLOSED_CHANNEL_EXCEPTION:Ljava/nio/channels/ClosedChannelException;
         9: .line 56
            new java.nio.channels.NotYetConnectedException
            dup
            invokespecial java.nio.channels.NotYetConnectedException.<init>:()V
            ldc Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            ldc "flush0()"
        10: .line 55
            invokestatic io.netty.util.internal.ThrowableUtil.unknownStackTrace:(Ljava/lang/Throwable;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Throwable;
            checkcast java.nio.channels.NotYetConnectedException
            putstatic io.netty.channel.AbstractChannel.FLUSH0_NOT_YET_CONNECTED_EXCEPTION:Ljava/nio/channels/NotYetConnectedException;
        11: .line 56
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(io.netty.channel.Channel);
    descriptor: (Lio/netty/channel/Channel;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // io.netty.channel.Channel parent
         0: .line 81
            aload 0 /* this */
            invokespecial io.netty.util.DefaultAttributeMap.<init>:()V
         1: .line 62
            aload 0 /* this */
            new io.netty.channel.VoidChannelPromise
            dup
            aload 0 /* this */
            iconst_0
            invokespecial io.netty.channel.VoidChannelPromise.<init>:(Lio/netty/channel/Channel;Z)V
            putfield io.netty.channel.AbstractChannel.unsafeVoidPromise:Lio/netty/channel/VoidChannelPromise;
         2: .line 63
            aload 0 /* this */
            new io.netty.channel.AbstractChannel$CloseFuture
            dup
            aload 0 /* this */
            invokespecial io.netty.channel.AbstractChannel$CloseFuture.<init>:(Lio/netty/channel/AbstractChannel;)V
            putfield io.netty.channel.AbstractChannel.closeFuture:Lio/netty/channel/AbstractChannel$CloseFuture;
         3: .line 82
            aload 0 /* this */
            aload 1 /* parent */
            putfield io.netty.channel.AbstractChannel.parent:Lio/netty/channel/Channel;
         4: .line 83
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel.newId:()Lio/netty/channel/ChannelId;
            putfield io.netty.channel.AbstractChannel.id:Lio/netty/channel/ChannelId;
         5: .line 84
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel.newUnsafe:()Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            putfield io.netty.channel.AbstractChannel.unsafe:Lio/netty/channel/Channel$Unsafe;
         6: .line 85
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel.newChannelPipeline:()Lio/netty/channel/DefaultChannelPipeline;
            putfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
         7: .line 86
            return
        end local 1 // io.netty.channel.Channel parent
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lio/netty/channel/AbstractChannel;
            0    8     1  parent  Lio/netty/channel/Channel;
    MethodParameters:
        Name  Flags
      parent  

  protected void <init>(io.netty.channel.Channel, io.netty.channel.ChannelId);
    descriptor: (Lio/netty/channel/Channel;Lio/netty/channel/ChannelId;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // io.netty.channel.Channel parent
        start local 2 // io.netty.channel.ChannelId id
         0: .line 94
            aload 0 /* this */
            invokespecial io.netty.util.DefaultAttributeMap.<init>:()V
         1: .line 62
            aload 0 /* this */
            new io.netty.channel.VoidChannelPromise
            dup
            aload 0 /* this */
            iconst_0
            invokespecial io.netty.channel.VoidChannelPromise.<init>:(Lio/netty/channel/Channel;Z)V
            putfield io.netty.channel.AbstractChannel.unsafeVoidPromise:Lio/netty/channel/VoidChannelPromise;
         2: .line 63
            aload 0 /* this */
            new io.netty.channel.AbstractChannel$CloseFuture
            dup
            aload 0 /* this */
            invokespecial io.netty.channel.AbstractChannel$CloseFuture.<init>:(Lio/netty/channel/AbstractChannel;)V
            putfield io.netty.channel.AbstractChannel.closeFuture:Lio/netty/channel/AbstractChannel$CloseFuture;
         3: .line 95
            aload 0 /* this */
            aload 1 /* parent */
            putfield io.netty.channel.AbstractChannel.parent:Lio/netty/channel/Channel;
         4: .line 96
            aload 0 /* this */
            aload 2 /* id */
            putfield io.netty.channel.AbstractChannel.id:Lio/netty/channel/ChannelId;
         5: .line 97
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel.newUnsafe:()Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            putfield io.netty.channel.AbstractChannel.unsafe:Lio/netty/channel/Channel$Unsafe;
         6: .line 98
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel.newChannelPipeline:()Lio/netty/channel/DefaultChannelPipeline;
            putfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
         7: .line 99
            return
        end local 2 // io.netty.channel.ChannelId id
        end local 1 // io.netty.channel.Channel parent
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lio/netty/channel/AbstractChannel;
            0    8     1  parent  Lio/netty/channel/Channel;
            0    8     2      id  Lio/netty/channel/ChannelId;
    MethodParameters:
        Name  Flags
      parent  
      id      

  public final io.netty.channel.ChannelId id();
    descriptor: ()Lio/netty/channel/ChannelId;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 103
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.id:Lio/netty/channel/ChannelId;
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  protected io.netty.channel.ChannelId newId();
    descriptor: ()Lio/netty/channel/ChannelId;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 111
            invokestatic io.netty.channel.DefaultChannelId.newInstance:()Lio/netty/channel/DefaultChannelId;
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  protected io.netty.channel.DefaultChannelPipeline newChannelPipeline();
    descriptor: ()Lio/netty/channel/DefaultChannelPipeline;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 118
            new io.netty.channel.DefaultChannelPipeline
            dup
            aload 0 /* this */
            invokespecial io.netty.channel.DefaultChannelPipeline.<init>:(Lio/netty/channel/Channel;)V
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  public boolean isWritable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 123
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.unsafe:Lio/netty/channel/Channel$Unsafe;
            invokeinterface io.netty.channel.Channel$Unsafe.outboundBuffer:()Lio/netty/channel/ChannelOutboundBuffer;
            astore 1 /* buf */
        start local 1 // io.netty.channel.ChannelOutboundBuffer buf
         1: .line 124
            aload 1 /* buf */
            ifnull 2
            aload 1 /* buf */
            invokevirtual io.netty.channel.ChannelOutboundBuffer.isWritable:()Z
            ifeq 2
            iconst_1
            ireturn
      StackMap locals: io.netty.channel.ChannelOutboundBuffer
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // io.netty.channel.ChannelOutboundBuffer buf
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/channel/AbstractChannel;
            1    3     1   buf  Lio/netty/channel/ChannelOutboundBuffer;

  public long bytesBeforeUnwritable();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 129
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.unsafe:Lio/netty/channel/Channel$Unsafe;
            invokeinterface io.netty.channel.Channel$Unsafe.outboundBuffer:()Lio/netty/channel/ChannelOutboundBuffer;
            astore 1 /* buf */
        start local 1 // io.netty.channel.ChannelOutboundBuffer buf
         1: .line 132
            aload 1 /* buf */
            ifnull 2
            aload 1 /* buf */
            invokevirtual io.netty.channel.ChannelOutboundBuffer.bytesBeforeUnwritable:()J
            goto 3
      StackMap locals: io.netty.channel.ChannelOutboundBuffer
      StackMap stack:
         2: lconst_0
      StackMap locals:
      StackMap stack: long
         3: lreturn
        end local 1 // io.netty.channel.ChannelOutboundBuffer buf
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/netty/channel/AbstractChannel;
            1    4     1   buf  Lio/netty/channel/ChannelOutboundBuffer;

  public long bytesBeforeWritable();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 137
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.unsafe:Lio/netty/channel/Channel$Unsafe;
            invokeinterface io.netty.channel.Channel$Unsafe.outboundBuffer:()Lio/netty/channel/ChannelOutboundBuffer;
            astore 1 /* buf */
        start local 1 // io.netty.channel.ChannelOutboundBuffer buf
         1: .line 140
            aload 1 /* buf */
            ifnull 2
            aload 1 /* buf */
            invokevirtual io.netty.channel.ChannelOutboundBuffer.bytesBeforeWritable:()J
            goto 3
      StackMap locals: io.netty.channel.ChannelOutboundBuffer
      StackMap stack:
         2: ldc 9223372036854775807
      StackMap locals:
      StackMap stack: long
         3: lreturn
        end local 1 // io.netty.channel.ChannelOutboundBuffer buf
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/netty/channel/AbstractChannel;
            1    4     1   buf  Lio/netty/channel/ChannelOutboundBuffer;

  public io.netty.channel.Channel parent();
    descriptor: ()Lio/netty/channel/Channel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 145
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.parent:Lio/netty/channel/Channel;
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  public io.netty.channel.ChannelPipeline pipeline();
    descriptor: ()Lio/netty/channel/ChannelPipeline;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 150
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  public io.netty.buffer.ByteBufAllocator alloc();
    descriptor: ()Lio/netty/buffer/ByteBufAllocator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 155
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel.config:()Lio/netty/channel/ChannelConfig;
            invokeinterface io.netty.channel.ChannelConfig.getAllocator:()Lio/netty/buffer/ByteBufAllocator;
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  public io.netty.channel.EventLoop eventLoop();
    descriptor: ()Lio/netty/channel/EventLoop;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 160
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.eventLoop:Lio/netty/channel/EventLoop;
            astore 1 /* eventLoop */
        start local 1 // io.netty.channel.EventLoop eventLoop
         1: .line 161
            aload 1 /* eventLoop */
            ifnonnull 3
         2: .line 162
            new java.lang.IllegalStateException
            dup
            ldc "channel not registered to an event loop"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 164
      StackMap locals: io.netty.channel.EventLoop
      StackMap stack:
            aload 1 /* eventLoop */
            areturn
        end local 1 // io.netty.channel.EventLoop eventLoop
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lio/netty/channel/AbstractChannel;
            1    4     1  eventLoop  Lio/netty/channel/EventLoop;

  public java.net.SocketAddress localAddress();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 169
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.localAddress:Ljava/net/SocketAddress;
            astore 1 /* localAddress */
        start local 1 // java.net.SocketAddress localAddress
         1: .line 170
            aload 1 /* localAddress */
            ifnonnull 6
         2: .line 172
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel.unsafe:()Lio/netty/channel/Channel$Unsafe;
            invokeinterface io.netty.channel.Channel$Unsafe.localAddress:()Ljava/net/SocketAddress;
            dup
            astore 1 /* localAddress */
            putfield io.netty.channel.AbstractChannel.localAddress:Ljava/net/SocketAddress;
         3: .line 173
            goto 6
      StackMap locals: io.netty.channel.AbstractChannel java.net.SocketAddress
      StackMap stack: java.lang.Throwable
         4: pop
         5: .line 175
            aconst_null
            areturn
         6: .line 178
      StackMap locals:
      StackMap stack:
            aload 1 /* localAddress */
            areturn
        end local 1 // java.net.SocketAddress localAddress
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lio/netty/channel/AbstractChannel;
            1    7     1  localAddress  Ljava/net/SocketAddress;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Throwable

  protected void invalidateLocalAddress();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 186
            aload 0 /* this */
            aconst_null
            putfield io.netty.channel.AbstractChannel.localAddress:Ljava/net/SocketAddress;
         1: .line 187
            return
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannel;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public java.net.SocketAddress remoteAddress();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 191
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.remoteAddress:Ljava/net/SocketAddress;
            astore 1 /* remoteAddress */
        start local 1 // java.net.SocketAddress remoteAddress
         1: .line 192
            aload 1 /* remoteAddress */
            ifnonnull 6
         2: .line 194
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel.unsafe:()Lio/netty/channel/Channel$Unsafe;
            invokeinterface io.netty.channel.Channel$Unsafe.remoteAddress:()Ljava/net/SocketAddress;
            dup
            astore 1 /* remoteAddress */
            putfield io.netty.channel.AbstractChannel.remoteAddress:Ljava/net/SocketAddress;
         3: .line 195
            goto 6
      StackMap locals: io.netty.channel.AbstractChannel java.net.SocketAddress
      StackMap stack: java.lang.Throwable
         4: pop
         5: .line 197
            aconst_null
            areturn
         6: .line 200
      StackMap locals:
      StackMap stack:
            aload 1 /* remoteAddress */
            areturn
        end local 1 // java.net.SocketAddress remoteAddress
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lio/netty/channel/AbstractChannel;
            1    7     1  remoteAddress  Ljava/net/SocketAddress;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Throwable

  protected void invalidateRemoteAddress();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 208
            aload 0 /* this */
            aconst_null
            putfield io.netty.channel.AbstractChannel.remoteAddress:Ljava/net/SocketAddress;
         1: .line 209
            return
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannel;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public boolean isRegistered();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 213
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.registered:Z
            ireturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  public io.netty.channel.ChannelFuture bind(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // java.net.SocketAddress localAddress
         0: .line 218
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 1 /* localAddress */
            invokevirtual io.netty.channel.DefaultChannelPipeline.bind:(Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // java.net.SocketAddress localAddress
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lio/netty/channel/AbstractChannel;
            0    1     1  localAddress  Ljava/net/SocketAddress;
    MethodParameters:
              Name  Flags
      localAddress  

  public io.netty.channel.ChannelFuture connect(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // java.net.SocketAddress remoteAddress
         0: .line 223
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 1 /* remoteAddress */
            invokevirtual io.netty.channel.DefaultChannelPipeline.connect:(Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // java.net.SocketAddress remoteAddress
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lio/netty/channel/AbstractChannel;
            0    1     1  remoteAddress  Ljava/net/SocketAddress;
    MethodParameters:
               Name  Flags
      remoteAddress  

  public io.netty.channel.ChannelFuture connect(java.net.SocketAddress, java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // java.net.SocketAddress remoteAddress
        start local 2 // java.net.SocketAddress localAddress
         0: .line 228
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 1 /* remoteAddress */
            aload 2 /* localAddress */
            invokevirtual io.netty.channel.DefaultChannelPipeline.connect:(Ljava/net/SocketAddress;Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 2 // java.net.SocketAddress localAddress
        end local 1 // java.net.SocketAddress remoteAddress
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lio/netty/channel/AbstractChannel;
            0    1     1  remoteAddress  Ljava/net/SocketAddress;
            0    1     2   localAddress  Ljava/net/SocketAddress;
    MethodParameters:
               Name  Flags
      remoteAddress  
      localAddress   

  public io.netty.channel.ChannelFuture disconnect();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 233
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            invokevirtual io.netty.channel.DefaultChannelPipeline.disconnect:()Lio/netty/channel/ChannelFuture;
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  public io.netty.channel.ChannelFuture close();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 238
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            invokevirtual io.netty.channel.DefaultChannelPipeline.close:()Lio/netty/channel/ChannelFuture;
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  public io.netty.channel.ChannelFuture deregister();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 243
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            invokevirtual io.netty.channel.DefaultChannelPipeline.deregister:()Lio/netty/channel/ChannelFuture;
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  public io.netty.channel.Channel flush();
    descriptor: ()Lio/netty/channel/Channel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 248
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            invokevirtual io.netty.channel.DefaultChannelPipeline.flush:()Lio/netty/channel/ChannelPipeline;
            pop
         1: .line 249
            aload 0 /* this */
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannel;

  public io.netty.channel.ChannelFuture bind(java.net.SocketAddress, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // java.net.SocketAddress localAddress
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 254
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 1 /* localAddress */
            aload 2 /* promise */
            invokevirtual io.netty.channel.DefaultChannelPipeline.bind:(Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.net.SocketAddress localAddress
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lio/netty/channel/AbstractChannel;
            0    1     1  localAddress  Ljava/net/SocketAddress;
            0    1     2       promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
              Name  Flags
      localAddress  
      promise       

  public io.netty.channel.ChannelFuture connect(java.net.SocketAddress, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // java.net.SocketAddress remoteAddress
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 259
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 1 /* remoteAddress */
            aload 2 /* promise */
            invokevirtual io.netty.channel.DefaultChannelPipeline.connect:(Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.net.SocketAddress remoteAddress
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lio/netty/channel/AbstractChannel;
            0    1     1  remoteAddress  Ljava/net/SocketAddress;
            0    1     2        promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
               Name  Flags
      remoteAddress  
      promise        

  public io.netty.channel.ChannelFuture connect(java.net.SocketAddress, java.net.SocketAddress, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // java.net.SocketAddress remoteAddress
        start local 2 // java.net.SocketAddress localAddress
        start local 3 // io.netty.channel.ChannelPromise promise
         0: .line 264
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 1 /* remoteAddress */
            aload 2 /* localAddress */
            aload 3 /* promise */
            invokevirtual io.netty.channel.DefaultChannelPipeline.connect:(Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 3 // io.netty.channel.ChannelPromise promise
        end local 2 // java.net.SocketAddress localAddress
        end local 1 // java.net.SocketAddress remoteAddress
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lio/netty/channel/AbstractChannel;
            0    1     1  remoteAddress  Ljava/net/SocketAddress;
            0    1     2   localAddress  Ljava/net/SocketAddress;
            0    1     3        promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
               Name  Flags
      remoteAddress  
      localAddress   
      promise        

  public io.netty.channel.ChannelFuture disconnect(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 269
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 1 /* promise */
            invokevirtual io.netty.channel.DefaultChannelPipeline.disconnect:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/netty/channel/AbstractChannel;
            0    1     1  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      promise  

  public io.netty.channel.ChannelFuture close(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 274
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 1 /* promise */
            invokevirtual io.netty.channel.DefaultChannelPipeline.close:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/netty/channel/AbstractChannel;
            0    1     1  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      promise  

  public io.netty.channel.ChannelFuture deregister(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 279
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 1 /* promise */
            invokevirtual io.netty.channel.DefaultChannelPipeline.deregister:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/netty/channel/AbstractChannel;
            0    1     1  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      promise  

  public io.netty.channel.Channel read();
    descriptor: ()Lio/netty/channel/Channel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 284
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            invokevirtual io.netty.channel.DefaultChannelPipeline.read:()Lio/netty/channel/ChannelPipeline;
            pop
         1: .line 285
            aload 0 /* this */
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannel;

  public io.netty.channel.ChannelFuture write(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // java.lang.Object msg
         0: .line 290
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 1 /* msg */
            invokevirtual io.netty.channel.DefaultChannelPipeline.write:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;
            0    1     1   msg  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      msg   

  public io.netty.channel.ChannelFuture write(java.lang.Object, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // java.lang.Object msg
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 295
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 1 /* msg */
            aload 2 /* promise */
            invokevirtual io.netty.channel.DefaultChannelPipeline.write:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/netty/channel/AbstractChannel;
            0    1     1      msg  Ljava/lang/Object;
            0    1     2  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      msg      
      promise  

  public io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // java.lang.Object msg
         0: .line 300
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 1 /* msg */
            invokevirtual io.netty.channel.DefaultChannelPipeline.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;
            0    1     1   msg  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      msg   

  public io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // java.lang.Object msg
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 305
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 1 /* msg */
            aload 2 /* promise */
            invokevirtual io.netty.channel.DefaultChannelPipeline.writeAndFlush:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/netty/channel/AbstractChannel;
            0    1     1      msg  Ljava/lang/Object;
            0    1     2  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      msg      
      promise  

  public io.netty.channel.ChannelPromise newPromise();
    descriptor: ()Lio/netty/channel/ChannelPromise;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 310
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            invokevirtual io.netty.channel.DefaultChannelPipeline.newPromise:()Lio/netty/channel/ChannelPromise;
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  public io.netty.channel.ChannelProgressivePromise newProgressivePromise();
    descriptor: ()Lio/netty/channel/ChannelProgressivePromise;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 315
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            invokevirtual io.netty.channel.DefaultChannelPipeline.newProgressivePromise:()Lio/netty/channel/ChannelProgressivePromise;
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  public io.netty.channel.ChannelFuture newSucceededFuture();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 320
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            invokevirtual io.netty.channel.DefaultChannelPipeline.newSucceededFuture:()Lio/netty/channel/ChannelFuture;
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  public io.netty.channel.ChannelFuture newFailedFuture(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // java.lang.Throwable cause
         0: .line 325
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 1 /* cause */
            invokevirtual io.netty.channel.DefaultChannelPipeline.newFailedFuture:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // java.lang.Throwable cause
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/netty/channel/AbstractChannel;
            0    1     1  cause  Ljava/lang/Throwable;
    MethodParameters:
       Name  Flags
      cause  

  public io.netty.channel.ChannelFuture closeFuture();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 330
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.closeFuture:Lio/netty/channel/AbstractChannel$CloseFuture;
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  public io.netty.channel.Channel$Unsafe unsafe();
    descriptor: ()Lio/netty/channel/Channel$Unsafe;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 335
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.unsafe:Lio/netty/channel/Channel$Unsafe;
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  protected abstract io.netty.channel.AbstractChannel$AbstractUnsafe newUnsafe();
    descriptor: ()Lio/netty/channel/AbstractChannel$AbstractUnsafe;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  public final int hashCode();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 348
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.id:Lio/netty/channel/ChannelId;
            invokevirtual java.lang.Object.hashCode:()I
            ireturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  public final boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // java.lang.Object o
         0: .line 357
            aload 0 /* this */
            aload 1 /* o */
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object o
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannel;
            0    2     1     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     

  public final int compareTo(io.netty.channel.Channel);
    descriptor: (Lio/netty/channel/Channel;)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // io.netty.channel.Channel o
         0: .line 362
            aload 0 /* this */
            aload 1 /* o */
            if_acmpne 2
         1: .line 363
            iconst_0
            ireturn
         2: .line 366
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel.id:()Lio/netty/channel/ChannelId;
            aload 1 /* o */
            invokeinterface io.netty.channel.Channel.id:()Lio/netty/channel/ChannelId;
            invokeinterface io.netty.channel.ChannelId.compareTo:(Ljava/lang/Object;)I
            ireturn
        end local 1 // io.netty.channel.Channel o
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/channel/AbstractChannel;
            0    3     1     o  Lio/netty/channel/Channel;
    MethodParameters:
      Name  Flags
      o     

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 377
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel.isActive:()Z
            istore 1 /* active */
        start local 1 // boolean active
         1: .line 378
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.strValActive:Z
            iload 1 /* active */
            if_icmpne 3
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.strVal:Ljava/lang/String;
            ifnull 3
         2: .line 379
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.strVal:Ljava/lang/String;
            areturn
         3: .line 382
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel.remoteAddress:()Ljava/net/SocketAddress;
            astore 2 /* remoteAddr */
        start local 2 // java.net.SocketAddress remoteAddr
         4: .line 383
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel.localAddress:()Ljava/net/SocketAddress;
            astore 3 /* localAddr */
        start local 3 // java.net.SocketAddress localAddr
         5: .line 384
            aload 2 /* remoteAddr */
            ifnull 20
         6: .line 385
            new java.lang.StringBuilder
            dup
            bipush 96
            invokespecial java.lang.StringBuilder.<init>:(I)V
         7: .line 386
            ldc "[id: 0x"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 387
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.id:Lio/netty/channel/ChannelId;
            invokeinterface io.netty.channel.ChannelId.asShortText:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 388
            ldc ", L:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 389
            aload 3 /* localAddr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        11: .line 390
            iload 1 /* active */
            ifeq 12
            ldc " - "
            goto 13
      StackMap locals: io.netty.channel.AbstractChannel int java.net.SocketAddress java.net.SocketAddress
      StackMap stack: java.lang.StringBuilder
        12: ldc " ! "
      StackMap locals: io.netty.channel.AbstractChannel int java.net.SocketAddress java.net.SocketAddress
      StackMap stack: java.lang.StringBuilder java.lang.String
        13: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 391
            ldc "R:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 392
            aload 2 /* remoteAddr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        16: .line 393
            bipush 93
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        17: .line 385
            astore 4 /* buf */
        start local 4 // java.lang.StringBuilder buf
        18: .line 394
            aload 0 /* this */
            aload 4 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield io.netty.channel.AbstractChannel.strVal:Ljava/lang/String;
        end local 4 // java.lang.StringBuilder buf
        19: .line 395
            goto 36
      StackMap locals:
      StackMap stack:
        20: aload 3 /* localAddr */
            ifnull 30
        21: .line 396
            new java.lang.StringBuilder
            dup
            bipush 64
            invokespecial java.lang.StringBuilder.<init>:(I)V
        22: .line 397
            ldc "[id: 0x"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        23: .line 398
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.id:Lio/netty/channel/ChannelId;
            invokeinterface io.netty.channel.ChannelId.asShortText:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 399
            ldc ", L:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 400
            aload 3 /* localAddr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        26: .line 401
            bipush 93
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        27: .line 396
            astore 4 /* buf */
        start local 4 // java.lang.StringBuilder buf
        28: .line 402
            aload 0 /* this */
            aload 4 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield io.netty.channel.AbstractChannel.strVal:Ljava/lang/String;
        end local 4 // java.lang.StringBuilder buf
        29: .line 403
            goto 36
        30: .line 404
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            bipush 16
            invokespecial java.lang.StringBuilder.<init>:(I)V
        31: .line 405
            ldc "[id: 0x"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        32: .line 406
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.id:Lio/netty/channel/ChannelId;
            invokeinterface io.netty.channel.ChannelId.asShortText:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        33: .line 407
            bipush 93
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        34: .line 404
            astore 4 /* buf */
        start local 4 // java.lang.StringBuilder buf
        35: .line 408
            aload 0 /* this */
            aload 4 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield io.netty.channel.AbstractChannel.strVal:Ljava/lang/String;
        end local 4 // java.lang.StringBuilder buf
        36: .line 411
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* active */
            putfield io.netty.channel.AbstractChannel.strValActive:Z
        37: .line 412
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.strVal:Ljava/lang/String;
            areturn
        end local 3 // java.net.SocketAddress localAddr
        end local 2 // java.net.SocketAddress remoteAddr
        end local 1 // boolean active
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   38     0        this  Lio/netty/channel/AbstractChannel;
            1   38     1      active  Z
            4   38     2  remoteAddr  Ljava/net/SocketAddress;
            5   38     3   localAddr  Ljava/net/SocketAddress;
           18   19     4         buf  Ljava/lang/StringBuilder;
           28   29     4         buf  Ljava/lang/StringBuilder;
           35   36     4         buf  Ljava/lang/StringBuilder;

  public final io.netty.channel.ChannelPromise voidPromise();
    descriptor: ()Lio/netty/channel/ChannelPromise;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 417
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            invokevirtual io.netty.channel.DefaultChannelPipeline.voidPromise:()Lio/netty/channel/ChannelPromise;
            areturn
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;

  protected abstract boolean isCompatible(io.netty.channel.EventLoop);
    descriptor: (Lio/netty/channel/EventLoop;)Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      loop  

  protected abstract java.net.SocketAddress localAddress0();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract java.net.SocketAddress remoteAddress0();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected void doRegister();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 1068
            return
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;
    Exceptions:
      throws java.lang.Exception

  protected abstract void doBind(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
              Name  Flags
      localAddress  

  protected abstract void doDisconnect();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.lang.Exception

  protected abstract void doClose();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.lang.Exception

  protected void doShutdownOutput();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 1091
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel.doClose:()V
         1: .line 1092
            return
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannel;
    Exceptions:
      throws java.lang.Exception

  protected void doDeregister();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel this
         0: .line 1101
            return
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;
    Exceptions:
      throws java.lang.Exception

  protected abstract void doBeginRead();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.lang.Exception

  protected abstract void doWrite(io.netty.channel.ChannelOutboundBuffer);
    descriptor: (Lio/netty/channel/ChannelOutboundBuffer;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      in    

  protected java.lang.Object filterOutboundMessage(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel this
        start local 1 // java.lang.Object msg
         0: .line 1118
            aload 1 /* msg */
            areturn
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel;
            0    1     1   msg  Ljava/lang/Object;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      msg   

  public int compareTo(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast io.netty.channel.Channel
            invokevirtual io.netty.channel.AbstractChannel.compareTo:(Lio/netty/channel/Channel;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.netty.channel.ChannelOutboundInvoker flush();
    descriptor: ()Lio/netty/channel/ChannelOutboundInvoker;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.netty.channel.AbstractChannel.flush:()Lio/netty/channel/Channel;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.netty.channel.ChannelOutboundInvoker read();
    descriptor: ()Lio/netty/channel/ChannelOutboundInvoker;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.netty.channel.AbstractChannel.read:()Lio/netty/channel/Channel;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "AbstractChannel.java"
NestMembers:
  io.netty.channel.AbstractChannel$AbstractUnsafe  io.netty.channel.AbstractChannel$AbstractUnsafe$1  io.netty.channel.AbstractChannel$AbstractUnsafe$2  io.netty.channel.AbstractChannel$AbstractUnsafe$3  io.netty.channel.AbstractChannel$AbstractUnsafe$4  io.netty.channel.AbstractChannel$AbstractUnsafe$4$1  io.netty.channel.AbstractChannel$AbstractUnsafe$5  io.netty.channel.AbstractChannel$AbstractUnsafe$6  io.netty.channel.AbstractChannel$AbstractUnsafe$6$1  io.netty.channel.AbstractChannel$AbstractUnsafe$7  io.netty.channel.AbstractChannel$AbstractUnsafe$8  io.netty.channel.AbstractChannel$AbstractUnsafe$9  io.netty.channel.AbstractChannel$AnnotatedConnectException  io.netty.channel.AbstractChannel$AnnotatedNoRouteToHostException  io.netty.channel.AbstractChannel$AnnotatedSocketException  io.netty.channel.AbstractChannel$CloseFuture
InnerClasses:
  protected abstract AbstractUnsafe = io.netty.channel.AbstractChannel$AbstractUnsafe of io.netty.channel.AbstractChannel
  private final AnnotatedConnectException = io.netty.channel.AbstractChannel$AnnotatedConnectException of io.netty.channel.AbstractChannel
  private final AnnotatedNoRouteToHostException = io.netty.channel.AbstractChannel$AnnotatedNoRouteToHostException of io.netty.channel.AbstractChannel
  private final AnnotatedSocketException = io.netty.channel.AbstractChannel$AnnotatedSocketException of io.netty.channel.AbstractChannel
  final CloseFuture = io.netty.channel.AbstractChannel$CloseFuture of io.netty.channel.AbstractChannel
  public abstract Unsafe = io.netty.channel.Channel$Unsafe of io.netty.channel.Channel