abstract class io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder extends io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionDecoder
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder
  super_class: io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionDecoder
{
  static final byte[] FRAME_TAIL;
    descriptor: [B
    flags: (0x0018) ACC_STATIC, ACC_FINAL

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

  private io.netty.channel.embedded.EmbeddedChannel decoder;
    descriptor: Lio/netty/channel/embedded/EmbeddedChannel;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 40
            iconst_4
            newarray 8
            dup
            iconst_2
            iconst_m1
            bastore
            dup
            iconst_3
            iconst_m1
            bastore
            putstatic io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.FRAME_TAIL:[B
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder this
        start local 1 // boolean noContext
         0: .line 50
            aload 0 /* this */
            invokespecial io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionDecoder.<init>:()V
         1: .line 51
            aload 0 /* this */
            iload 1 /* noContext */
            putfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.noContext:Z
         2: .line 52
            return
        end local 1 // boolean noContext
        end local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lio/netty/handler/codec/http/websocketx/extensions/compression/DeflateDecoder;
            0    3     1  noContext  Z
    MethodParameters:
           Name  Flags
      noContext  

  protected abstract boolean appendFrameTail(io.netty.handler.codec.http.websocketx.WebSocketFrame);
    descriptor: (Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      msg   

  protected abstract int newRsv(io.netty.handler.codec.http.websocketx.WebSocketFrame);
    descriptor: (Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      msg   

  protected void decode(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http.websocketx.WebSocketFrame, java.util.List<java.lang.Object>);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/WebSocketFrame;Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.handler.codec.http.websocketx.WebSocketFrame msg
        start local 3 // java.util.List out
         0: .line 60
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.decoder:Lio/netty/channel/embedded/EmbeddedChannel;
            ifnonnull 4
         1: .line 61
            aload 2 /* msg */
            instanceof io.netty.handler.codec.http.websocketx.TextWebSocketFrame
            ifne 3
            aload 2 /* msg */
            instanceof io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame
            ifne 3
         2: .line 62
            new io.netty.handler.codec.CodecException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unexpected initial frame type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* msg */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial io.netty.handler.codec.CodecException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 64
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new io.netty.channel.embedded.EmbeddedChannel
            dup
            iconst_1
            anewarray io.netty.channel.ChannelHandler
            dup
            iconst_0
            getstatic io.netty.handler.codec.compression.ZlibWrapper.NONE:Lio/netty/handler/codec/compression/ZlibWrapper;
            invokestatic io.netty.handler.codec.compression.ZlibCodecFactory.newZlibDecoder:(Lio/netty/handler/codec/compression/ZlibWrapper;)Lio/netty/handler/codec/compression/ZlibDecoder;
            aastore
            invokespecial io.netty.channel.embedded.EmbeddedChannel.<init>:([Lio/netty/channel/ChannelHandler;)V
            putfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.decoder:Lio/netty/channel/embedded/EmbeddedChannel;
         4: .line 67
      StackMap locals:
      StackMap stack:
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.content:()Lio/netty/buffer/ByteBuf;
            invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
            istore 4 /* readable */
        start local 4 // boolean readable
         5: .line 68
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.decoder:Lio/netty/channel/embedded/EmbeddedChannel;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.content:()Lio/netty/buffer/ByteBuf;
            invokevirtual io.netty.buffer.ByteBuf.retain:()Lio/netty/buffer/ByteBuf;
            aastore
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.writeInbound:([Ljava/lang/Object;)Z
            pop
         6: .line 69
            aload 0 /* this */
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.appendFrameTail:(Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)Z
            ifeq 8
         7: .line 70
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.decoder:Lio/netty/channel/embedded/EmbeddedChannel;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.FRAME_TAIL:[B
            invokestatic io.netty.buffer.Unpooled.wrappedBuffer:([B)Lio/netty/buffer/ByteBuf;
            aastore
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.writeInbound:([Ljava/lang/Object;)Z
            pop
         8: .line 73
      StackMap locals: int
      StackMap stack:
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.alloc:()Lio/netty/buffer/ByteBufAllocator;
            invokeinterface io.netty.buffer.ByteBufAllocator.compositeBuffer:()Lio/netty/buffer/CompositeByteBuf;
            astore 5 /* compositeUncompressedContent */
        start local 5 // io.netty.buffer.CompositeByteBuf compositeUncompressedContent
         9: .line 75
      StackMap locals: io.netty.buffer.CompositeByteBuf
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.decoder:Lio/netty/channel/embedded/EmbeddedChannel;
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.readInbound:()Ljava/lang/Object;
            checkcast io.netty.buffer.ByteBuf
            astore 6 /* partUncompressedContent */
        start local 6 // io.netty.buffer.ByteBuf partUncompressedContent
        10: .line 76
            aload 6 /* partUncompressedContent */
            ifnonnull 12
        11: .line 77
            goto 17
        12: .line 79
      StackMap locals: io.netty.buffer.ByteBuf
      StackMap stack:
            aload 6 /* partUncompressedContent */
            invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
            ifne 15
        13: .line 80
            aload 6 /* partUncompressedContent */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        14: .line 81
            goto 9
        15: .line 83
      StackMap locals:
      StackMap stack:
            aload 5 /* compositeUncompressedContent */
            iconst_1
            aload 6 /* partUncompressedContent */
            invokevirtual io.netty.buffer.CompositeByteBuf.addComponent:(ZLio/netty/buffer/ByteBuf;)Lio/netty/buffer/CompositeByteBuf;
            pop
        end local 6 // io.netty.buffer.ByteBuf partUncompressedContent
        16: .line 74
            goto 9
        17: .line 87
      StackMap locals:
      StackMap stack:
            iload 4 /* readable */
            ifeq 20
            aload 5 /* compositeUncompressedContent */
            invokevirtual io.netty.buffer.CompositeByteBuf.numComponents:()I
            ifgt 20
        18: .line 88
            aload 5 /* compositeUncompressedContent */
            invokevirtual io.netty.buffer.CompositeByteBuf.release:()Z
            pop
        19: .line 89
            new io.netty.handler.codec.CodecException
            dup
            ldc "cannot read uncompressed buffer"
            invokespecial io.netty.handler.codec.CodecException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 92
      StackMap locals:
      StackMap stack:
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.isFinalFragment:()Z
            ifeq 22
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.noContext:Z
            ifeq 22
        21: .line 93
            aload 0 /* this */
            invokevirtual io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.cleanup:()V
        22: .line 97
      StackMap locals:
      StackMap stack:
            aload 2 /* msg */
            instanceof io.netty.handler.codec.http.websocketx.TextWebSocketFrame
            ifeq 25
        23: .line 98
            new io.netty.handler.codec.http.websocketx.TextWebSocketFrame
            dup
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.isFinalFragment:()Z
            aload 0 /* this */
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.newRsv:(Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)I
            aload 5 /* compositeUncompressedContent */
            invokespecial io.netty.handler.codec.http.websocketx.TextWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
            astore 6 /* outMsg */
        start local 6 // io.netty.handler.codec.http.websocketx.WebSocketFrame outMsg
        24: .line 99
            goto 34
        end local 6 // io.netty.handler.codec.http.websocketx.WebSocketFrame outMsg
      StackMap locals:
      StackMap stack:
        25: aload 2 /* msg */
            instanceof io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame
            ifeq 28
        26: .line 100
            new io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame
            dup
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.isFinalFragment:()Z
            aload 0 /* this */
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.newRsv:(Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)I
            aload 5 /* compositeUncompressedContent */
            invokespecial io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
            astore 6 /* outMsg */
        start local 6 // io.netty.handler.codec.http.websocketx.WebSocketFrame outMsg
        27: .line 101
            goto 34
        end local 6 // io.netty.handler.codec.http.websocketx.WebSocketFrame outMsg
      StackMap locals:
      StackMap stack:
        28: aload 2 /* msg */
            instanceof io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame
            ifeq 33
        29: .line 102
            new io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame
            dup
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.isFinalFragment:()Z
            aload 0 /* this */
            aload 2 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.newRsv:(Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)I
        30: .line 103
            aload 5 /* compositeUncompressedContent */
        31: .line 102
            invokespecial io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
            astore 6 /* outMsg */
        start local 6 // io.netty.handler.codec.http.websocketx.WebSocketFrame outMsg
        32: .line 104
            goto 34
        end local 6 // io.netty.handler.codec.http.websocketx.WebSocketFrame outMsg
        33: .line 105
      StackMap locals:
      StackMap stack:
            new io.netty.handler.codec.CodecException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unexpected frame type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* msg */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial io.netty.handler.codec.CodecException.<init>:(Ljava/lang/String;)V
            athrow
        start local 6 // io.netty.handler.codec.http.websocketx.WebSocketFrame outMsg
        34: .line 107
      StackMap locals: io.netty.handler.codec.http.websocketx.WebSocketFrame
      StackMap stack:
            aload 3 /* out */
            aload 6 /* outMsg */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        35: .line 108
            return
        end local 6 // io.netty.handler.codec.http.websocketx.WebSocketFrame outMsg
        end local 5 // io.netty.buffer.CompositeByteBuf compositeUncompressedContent
        end local 4 // boolean readable
        end local 3 // java.util.List out
        end local 2 // io.netty.handler.codec.http.websocketx.WebSocketFrame msg
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0   36     0                          this  Lio/netty/handler/codec/http/websocketx/extensions/compression/DeflateDecoder;
            0   36     1                           ctx  Lio/netty/channel/ChannelHandlerContext;
            0   36     2                           msg  Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
            0   36     3                           out  Ljava/util/List<Ljava/lang/Object;>;
            5   36     4                      readable  Z
            9   36     5  compositeUncompressedContent  Lio/netty/buffer/CompositeByteBuf;
           10   16     6       partUncompressedContent  Lio/netty/buffer/ByteBuf;
           24   25     6                        outMsg  Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
           27   28     6                        outMsg  Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
           32   33     6                        outMsg  Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
           34   36     6                        outMsg  Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
    Exceptions:
      throws java.lang.Exception
    Signature: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/WebSocketFrame;Ljava/util/List<Ljava/lang/Object;>;)V
    MethodParameters:
      Name  Flags
      ctx   
      msg   
      out   

  public void handlerRemoved(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 112
            aload 0 /* this */
            invokevirtual io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.cleanup:()V
         1: .line 113
            aload 0 /* this */
            aload 1 /* ctx */
            invokespecial io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionDecoder.handlerRemoved:(Lio/netty/channel/ChannelHandlerContext;)V
         2: .line 114
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/handler/codec/http/websocketx/extensions/compression/DeflateDecoder;
            0    3     1   ctx  Lio/netty/channel/ChannelHandlerContext;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      ctx   

  public void channelInactive(io.netty.channel.ChannelHandlerContext);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
         0: .line 118
            aload 0 /* this */
            invokevirtual io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.cleanup:()V
         1: .line 119
            aload 0 /* this */
            aload 1 /* ctx */
            invokespecial io.netty.handler.codec.http.websocketx.extensions.WebSocketExtensionDecoder.channelInactive:(Lio/netty/channel/ChannelHandlerContext;)V
         2: .line 120
            return
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/handler/codec/http/websocketx/extensions/compression/DeflateDecoder;
            0    3     1   ctx  Lio/netty/channel/ChannelHandlerContext;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      ctx   

  private void cleanup();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder this
         0: .line 123
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.decoder:Lio/netty/channel/embedded/EmbeddedChannel;
            ifnull 8
         1: .line 125
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.decoder:Lio/netty/channel/embedded/EmbeddedChannel;
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.finish:()Z
            ifeq 7
         2: .line 127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.decoder:Lio/netty/channel/embedded/EmbeddedChannel;
            invokevirtual io.netty.channel.embedded.EmbeddedChannel.readOutbound:()Ljava/lang/Object;
            checkcast io.netty.buffer.ByteBuf
            astore 1 /* buf */
        start local 1 // io.netty.buffer.ByteBuf buf
         3: .line 128
            aload 1 /* buf */
            ifnonnull 5
         4: .line 129
            goto 7
         5: .line 132
      StackMap locals: io.netty.buffer.ByteBuf
      StackMap stack:
            aload 1 /* buf */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        end local 1 // io.netty.buffer.ByteBuf buf
         6: .line 126
            goto 2
         7: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.decoder:Lio/netty/channel/embedded/EmbeddedChannel;
         8: .line 137
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lio/netty/handler/codec/http/websocketx/extensions/compression/DeflateDecoder;
            3    6     1   buf  Lio/netty/buffer/ByteBuf;

  protected void decode(io.netty.channel.ChannelHandlerContext, java.lang.Object, java.util.List);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Ljava/util/List;)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast io.netty.handler.codec.http.websocketx.WebSocketFrame
            aload 3
            invokevirtual io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder.decode:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http/websocketx/WebSocketFrame;Ljava/util/List;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception
}
SourceFile: "DeflateDecoder.java"