public class io.vertx.mqtt.impl.MqttClientImpl implements io.vertx.mqtt.MqttClient
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.mqtt.impl.MqttClientImpl
  super_class: java.lang.Object
{
  private static final java.util.regex.Pattern validTopicNamePattern;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.regex.Pattern validTopicFilterPattern;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.vertx.core.logging.Logger log;
    descriptor: Lio/vertx/core/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int MAX_MESSAGE_ID;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 65535

  private static final int MAX_TOPIC_LEN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 65535

  private static final int MIN_TOPIC_LEN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final java.lang.String PROTOCOL_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "MQTT"

  private static final int PROTOCOL_VERSION;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int DEFAULT_IDLE_TIMEOUT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private final io.vertx.mqtt.MqttClientOptions options;
    descriptor: Lio/vertx/mqtt/MqttClientOptions;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.core.net.NetClient client;
    descriptor: Lio/vertx/core/net/NetClient;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private io.vertx.core.impl.NetSocketInternal connection;
    descriptor: Lio/vertx/core/impl/NetSocketInternal;
    flags: (0x0002) ACC_PRIVATE

  private io.vertx.core.Context ctx;
    descriptor: Lio/vertx/core/Context;
    flags: (0x0002) ACC_PRIVATE

  private io.vertx.core.Handler<java.lang.Integer> publishCompletionHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Ljava/lang/Integer;>;

  private io.vertx.core.Handler<java.lang.Integer> unsubscribeCompletionHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Ljava/lang/Integer;>;

  private io.vertx.core.Handler<io.vertx.mqtt.messages.MqttPublishMessage> publishHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Lio/vertx/mqtt/messages/MqttPublishMessage;>;

  private io.vertx.core.Handler<io.vertx.mqtt.messages.MqttSubAckMessage> subscribeCompletionHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Lio/vertx/mqtt/messages/MqttSubAckMessage;>;

  private io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.mqtt.messages.MqttConnAckMessage>> connectHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/mqtt/messages/MqttConnAckMessage;>;>;

  private io.vertx.core.Handler<java.lang.Void> pingrespHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Ljava/lang/Void;>;

  private io.vertx.core.Handler<java.lang.Throwable> exceptionHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Ljava/lang/Throwable;>;

  private io.vertx.core.Handler<java.lang.Void> closeHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Ljava/lang/Void;>;

  private java.util.HashMap<java.lang.Integer, io.netty.handler.codec.mqtt.MqttMessage> qos1outbound;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/Integer;Lio/netty/handler/codec/mqtt/MqttMessage;>;

  private java.util.HashMap<java.lang.Integer, io.netty.handler.codec.mqtt.MqttMessage> qos2outbound;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/Integer;Lio/netty/handler/codec/mqtt/MqttMessage;>;

  private java.util.HashMap<java.lang.Integer, io.vertx.mqtt.messages.MqttMessage> qos2inbound;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/Integer;Lio/vertx/mqtt/messages/MqttMessage;>;

  private int messageIdCounter;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int countInflightQueue;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

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

  private static volatile int[] $SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttQoS;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttMessageType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 80
            ldc "^[^#+\\u0000]+$"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic io.vertx.mqtt.impl.MqttClientImpl.validTopicNamePattern:Ljava/util/regex/Pattern;
         1: .line 81
            ldc "^(#|((\\+(?![^/]))?([^#+]*(/\\+(?![^/]))?)*(/#)?))$"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic io.vertx.mqtt.impl.MqttClientImpl.validTopicFilterPattern:Ljava/util/regex/Pattern;
         2: .line 82
            ldc Lio/vertx/mqtt/impl/MqttClientImpl;
            invokestatic io.vertx.core.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/logging/Logger;
            putstatic io.vertx.mqtt.impl.MqttClientImpl.log:Lio/vertx/core/logging/Logger;
         3: .line 89
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(io.vertx.core.Vertx, io.vertx.mqtt.MqttClientOptions);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/mqtt/MqttClientOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // io.vertx.core.Vertx vertx
        start local 2 // io.vertx.mqtt.MqttClientOptions options
         0: .line 137
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 114
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield io.vertx.mqtt.impl.MqttClientImpl.qos1outbound:Ljava/util/HashMap;
         2: .line 118
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield io.vertx.mqtt.impl.MqttClientImpl.qos2outbound:Ljava/util/HashMap;
         3: .line 121
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield io.vertx.mqtt.impl.MqttClientImpl.qos2inbound:Ljava/util/HashMap;
         4: .line 140
            new io.vertx.core.net.NetClientOptions
            dup
            aload 2 /* options */
            invokespecial io.vertx.core.net.NetClientOptions.<init>:(Lio/vertx/core/net/NetClientOptions;)V
            astore 3 /* netClientOptions */
        start local 3 // io.vertx.core.net.NetClientOptions netClientOptions
         5: .line 141
            aload 3 /* netClientOptions */
            iconst_0
            invokevirtual io.vertx.core.net.NetClientOptions.setIdleTimeout:(I)Lio/vertx/core/net/NetClientOptions;
            pop
         6: .line 143
            aload 0 /* this */
            aload 1 /* vertx */
            aload 3 /* netClientOptions */
            invokeinterface io.vertx.core.Vertx.createNetClient:(Lio/vertx/core/net/NetClientOptions;)Lio/vertx/core/net/NetClient;
            putfield io.vertx.mqtt.impl.MqttClientImpl.client:Lio/vertx/core/net/NetClient;
         7: .line 144
            aload 0 /* this */
            aload 2 /* options */
            putfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
         8: .line 145
            return
        end local 3 // io.vertx.core.net.NetClientOptions netClientOptions
        end local 2 // io.vertx.mqtt.MqttClientOptions options
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    9     1             vertx  Lio/vertx/core/Vertx;
            0    9     2           options  Lio/vertx/mqtt/MqttClientOptions;
            5    9     3  netClientOptions  Lio/vertx/core/net/NetClientOptions;
    MethodParameters:
         Name  Flags
      vertx    
      options  

  public io.vertx.mqtt.MqttClient connect(int, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.mqtt.messages.MqttConnAckMessage>>);
    descriptor: (ILjava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // int port
        start local 2 // java.lang.String host
        start local 3 // io.vertx.core.Handler connectHandler
         0: .line 153
            aload 0 /* this */
            iload 1 /* port */
            aload 2 /* host */
            aconst_null
            aload 3 /* connectHandler */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.doConnect:(ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
         1: .line 154
            aload 0 /* this */
            areturn
        end local 3 // io.vertx.core.Handler connectHandler
        end local 2 // java.lang.String host
        end local 1 // int port
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    2     1            port  I
            0    2     2            host  Ljava/lang/String;
            0    2     3  connectHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/mqtt/messages/MqttConnAckMessage;>;>;
    Signature: (ILjava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/mqtt/messages/MqttConnAckMessage;>;>;)Lio/vertx/mqtt/MqttClient;
    MethodParameters:
                Name  Flags
      port            
      host            
      connectHandler  

  public io.vertx.mqtt.MqttClient connect(int, java.lang.String, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.mqtt.messages.MqttConnAckMessage>>);
    descriptor: (ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // int port
        start local 2 // java.lang.String host
        start local 3 // java.lang.String serverName
        start local 4 // io.vertx.core.Handler connectHandler
         0: .line 163
            aload 0 /* this */
            iload 1 /* port */
            aload 2 /* host */
            aload 3 /* serverName */
            aload 4 /* connectHandler */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.doConnect:(ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
         1: .line 164
            aload 0 /* this */
            areturn
        end local 4 // io.vertx.core.Handler connectHandler
        end local 3 // java.lang.String serverName
        end local 2 // java.lang.String host
        end local 1 // int port
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    2     1            port  I
            0    2     2            host  Ljava/lang/String;
            0    2     3      serverName  Ljava/lang/String;
            0    2     4  connectHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/mqtt/messages/MqttConnAckMessage;>;>;
    Signature: (ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/mqtt/messages/MqttConnAckMessage;>;>;)Lio/vertx/mqtt/MqttClient;
    MethodParameters:
                Name  Flags
      port            
      host            
      serverName      
      connectHandler  

  private void doConnect(int, java.lang.String, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.mqtt.messages.MqttConnAckMessage>>);
    descriptor: (ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // int port
        start local 2 // java.lang.String host
        start local 3 // java.lang.String serverName
        start local 4 // io.vertx.core.Handler connectHandler
         0: .line 169
            getstatic io.vertx.mqtt.impl.MqttClientImpl.log:Lio/vertx/core/logging/Logger;
            ldc "Trying to connect with %s:%d"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* host */
            aastore
            dup
            iconst_1
            iload 1 /* port */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.debug:(Ljava/lang/Object;)V
         1: .line 170
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.client:Lio/vertx/core/net/NetClient;
            iload 1 /* port */
            aload 2 /* host */
            aload 3 /* serverName */
            aload 0 /* this */
            aload 2 /* host */
            iload 1 /* port */
            aload 4 /* connectHandler */
            invokedynamic handle(Lio/vertx/mqtt/impl/MqttClientImpl;Ljava/lang/String;ILio/vertx/core/Handler;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/mqtt/impl/MqttClientImpl.lambda$0(Ljava/lang/String;ILio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.net.NetClient.connect:(ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/core/net/NetClient;
            pop
         2: .line 231
            return
        end local 4 // io.vertx.core.Handler connectHandler
        end local 3 // java.lang.String serverName
        end local 2 // java.lang.String host
        end local 1 // int port
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    3     1            port  I
            0    3     2            host  Ljava/lang/String;
            0    3     3      serverName  Ljava/lang/String;
            0    3     4  connectHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/mqtt/messages/MqttConnAckMessage;>;>;
    Signature: (ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/mqtt/messages/MqttConnAckMessage;>;>;)V
    MethodParameters:
                Name  Flags
      port            
      host            
      serverName      
      connectHandler  

  public io.vertx.mqtt.MqttClient disconnect();
    descriptor: ()Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 238
            aload 0 /* this */
            aconst_null
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.disconnect:(Lio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
            areturn
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;

  public io.vertx.mqtt.MqttClient disconnect(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // io.vertx.core.Handler disconnectHandler
         0: .line 247
            new io.netty.handler.codec.mqtt.MqttFixedHeader
            dup
         1: .line 248
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.DISCONNECT:Lio/netty/handler/codec/mqtt/MqttMessageType;
         2: .line 249
            iconst_0
         3: .line 250
            getstatic io.netty.handler.codec.mqtt.MqttQoS.AT_MOST_ONCE:Lio/netty/handler/codec/mqtt/MqttQoS;
         4: .line 251
            iconst_0
         5: .line 252
            iconst_0
         6: .line 247
            invokespecial io.netty.handler.codec.mqtt.MqttFixedHeader.<init>:(Lio/netty/handler/codec/mqtt/MqttMessageType;ZLio/netty/handler/codec/mqtt/MqttQoS;ZI)V
            astore 2 /* fixedHeader */
        start local 2 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
         7: .line 255
            aload 2 /* fixedHeader */
            aconst_null
            aconst_null
            invokestatic io.netty.handler.codec.mqtt.MqttMessageFactory.newMessage:(Lio/netty/handler/codec/mqtt/MqttFixedHeader;Ljava/lang/Object;Ljava/lang/Object;)Lio/netty/handler/codec/mqtt/MqttMessage;
            astore 3 /* disconnect */
        start local 3 // io.netty.handler.codec.mqtt.MqttMessage disconnect
         8: .line 257
            aload 0 /* this */
            aload 3 /* disconnect */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.write:(Lio/netty/handler/codec/mqtt/MqttMessage;)V
         9: .line 259
            aload 1 /* disconnectHandler */
            ifnull 11
        10: .line 260
            aload 1 /* disconnectHandler */
            invokestatic io.vertx.core.Future.succeededFuture:()Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        11: .line 262
      StackMap locals: io.netty.handler.codec.mqtt.MqttFixedHeader io.netty.handler.codec.mqtt.MqttMessage
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.connection:()Lio/vertx/core/impl/NetSocketInternal;
            invokeinterface io.vertx.core.impl.NetSocketInternal.close:()V
        12: .line 263
            aload 0 /* this */
            areturn
        end local 3 // io.netty.handler.codec.mqtt.MqttMessage disconnect
        end local 2 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
        end local 1 // io.vertx.core.Handler disconnectHandler
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   13     0               this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0   13     1  disconnectHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            7   13     2        fixedHeader  Lio/netty/handler/codec/mqtt/MqttFixedHeader;
            8   13     3         disconnect  Lio/netty/handler/codec/mqtt/MqttMessage;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/mqtt/MqttClient;
    MethodParameters:
                   Name  Flags
      disconnectHandler  

  public io.vertx.mqtt.MqttClient publish(java.lang.String, io.vertx.core.buffer.Buffer, io.netty.handler.codec.mqtt.MqttQoS, boolean, boolean);
    descriptor: (Ljava/lang/String;Lio/vertx/core/buffer/Buffer;Lio/netty/handler/codec/mqtt/MqttQoS;ZZ)Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // java.lang.String topic
        start local 2 // io.vertx.core.buffer.Buffer payload
        start local 3 // io.netty.handler.codec.mqtt.MqttQoS qosLevel
        start local 4 // boolean isDup
        start local 5 // boolean isRetain
         0: .line 271
            aload 0 /* this */
            aload 1 /* topic */
            aload 2 /* payload */
            aload 3 /* qosLevel */
            iload 4 /* isDup */
            iload 5 /* isRetain */
            aconst_null
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.publish:(Ljava/lang/String;Lio/vertx/core/buffer/Buffer;Lio/netty/handler/codec/mqtt/MqttQoS;ZZLio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
            areturn
        end local 5 // boolean isRetain
        end local 4 // boolean isDup
        end local 3 // io.netty.handler.codec.mqtt.MqttQoS qosLevel
        end local 2 // io.vertx.core.buffer.Buffer payload
        end local 1 // java.lang.String topic
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    1     1     topic  Ljava/lang/String;
            0    1     2   payload  Lio/vertx/core/buffer/Buffer;
            0    1     3  qosLevel  Lio/netty/handler/codec/mqtt/MqttQoS;
            0    1     4     isDup  Z
            0    1     5  isRetain  Z
    MethodParameters:
          Name  Flags
      topic     
      payload   
      qosLevel  
      isDup     
      isRetain  

  public io.vertx.mqtt.MqttClient publish(java.lang.String, io.vertx.core.buffer.Buffer, io.netty.handler.codec.mqtt.MqttQoS, boolean, boolean, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Integer>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/buffer/Buffer;Lio/netty/handler/codec/mqtt/MqttQoS;ZZLio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=12, args_size=7
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // java.lang.String topic
        start local 2 // io.vertx.core.buffer.Buffer payload
        start local 3 // io.netty.handler.codec.mqtt.MqttQoS qosLevel
        start local 4 // boolean isDup
        start local 5 // boolean isRetain
        start local 6 // io.vertx.core.Handler publishSentHandler
         0: .line 282
            aload 0 /* this */
            dup
            astore 9
            monitorenter
         1: .line 283
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.countInflightQueue:I
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getMaxInflightQueue:()I
            if_icmplt 9
         2: .line 284
            ldc "Attempt to exceed the limit of %d inflight messages"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getMaxInflightQueue:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 10 /* msg */
        start local 10 // java.lang.String msg
         3: .line 285
            getstatic io.vertx.mqtt.impl.MqttClientImpl.log:Lio/vertx/core/logging/Logger;
            aload 10 /* msg */
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;)V
         4: .line 286
            new io.vertx.mqtt.MqttException
            dup
            iconst_2
            aload 10 /* msg */
            invokespecial io.vertx.mqtt.MqttException.<init>:(ILjava/lang/String;)V
            astore 11 /* exception */
        start local 11 // io.vertx.mqtt.MqttException exception
         5: .line 287
            aload 6 /* publishSentHandler */
            ifnull 7
         6: .line 288
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.ctx:Lio/vertx/core/Context;
            aload 6 /* publishSentHandler */
            aload 11 /* exception */
            invokedynamic handle(Lio/vertx/core/Handler;Lio/vertx/mqtt/MqttException;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/mqtt/impl/MqttClientImpl.lambda$4(Lio/vertx/core/Handler;Lio/vertx/mqtt/MqttException;Ljava/lang/Void;)V (6)
                  (Ljava/lang/Void;)V
            invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
         7: .line 290
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl java.lang.String io.vertx.core.buffer.Buffer io.netty.handler.codec.mqtt.MqttQoS int int io.vertx.core.Handler top top io.vertx.mqtt.impl.MqttClientImpl java.lang.String io.vertx.mqtt.MqttException
      StackMap stack:
            aload 0 /* this */
            aload 9
            monitorexit
         8: areturn
        end local 11 // io.vertx.mqtt.MqttException exception
        end local 10 // java.lang.String msg
         9: .line 293
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* topic */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.isValidTopicName:(Ljava/lang/String;)Z
            ifne 17
        10: .line 294
            ldc "Invalid Topic Name - %s. It mustn't contains wildcards: # and +. Also it can't contains U+0000(NULL) chars"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* topic */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 10 /* msg */
        start local 10 // java.lang.String msg
        11: .line 295
            getstatic io.vertx.mqtt.impl.MqttClientImpl.log:Lio/vertx/core/logging/Logger;
            aload 10 /* msg */
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;)V
        12: .line 296
            new io.vertx.mqtt.MqttException
            dup
            iconst_0
            aload 10 /* msg */
            invokespecial io.vertx.mqtt.MqttException.<init>:(ILjava/lang/String;)V
            astore 11 /* exception */
        start local 11 // io.vertx.mqtt.MqttException exception
        13: .line 297
            aload 6 /* publishSentHandler */
            ifnull 15
        14: .line 298
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.ctx:Lio/vertx/core/Context;
            aload 6 /* publishSentHandler */
            aload 11 /* exception */
            invokedynamic handle(Lio/vertx/core/Handler;Lio/vertx/mqtt/MqttException;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/mqtt/impl/MqttClientImpl.lambda$5(Lio/vertx/core/Handler;Lio/vertx/mqtt/MqttException;Ljava/lang/Void;)V (6)
                  (Ljava/lang/Void;)V
            invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
        15: .line 300
      StackMap locals: java.lang.String io.vertx.mqtt.MqttException
      StackMap stack:
            aload 0 /* this */
            aload 9
            monitorexit
        16: areturn
        end local 11 // io.vertx.mqtt.MqttException exception
        end local 10 // java.lang.String msg
        17: .line 303
      StackMap locals:
      StackMap stack:
            new io.netty.handler.codec.mqtt.MqttFixedHeader
            dup
        18: .line 304
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PUBLISH:Lio/netty/handler/codec/mqtt/MqttMessageType;
        19: .line 305
            iload 4 /* isDup */
        20: .line 306
            aload 3 /* qosLevel */
        21: .line 307
            iload 5 /* isRetain */
        22: .line 308
            iconst_0
        23: .line 303
            invokespecial io.netty.handler.codec.mqtt.MqttFixedHeader.<init>:(Lio/netty/handler/codec/mqtt/MqttMessageType;ZLio/netty/handler/codec/mqtt/MqttQoS;ZI)V
            astore 10 /* fixedHeader */
        start local 10 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
        24: .line 310
            aload 2 /* payload */
            invokeinterface io.vertx.core.buffer.Buffer.getBytes:()[B
            invokestatic io.netty.buffer.Unpooled.copiedBuffer:([B)Lio/netty/buffer/ByteBuf;
            astore 11 /* buf */
        start local 11 // io.netty.buffer.ByteBuf buf
        25: .line 311
            new io.netty.handler.codec.mqtt.MqttPublishVariableHeader
            dup
            aload 1 /* topic */
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.nextMessageId:()I
            invokespecial io.netty.handler.codec.mqtt.MqttPublishVariableHeader.<init>:(Ljava/lang/String;I)V
            astore 8 /* variableHeader */
        start local 8 // io.netty.handler.codec.mqtt.MqttPublishVariableHeader variableHeader
        26: .line 312
            aload 10 /* fixedHeader */
            aload 8 /* variableHeader */
            aload 11 /* buf */
            invokestatic io.netty.handler.codec.mqtt.MqttMessageFactory.newMessage:(Lio/netty/handler/codec/mqtt/MqttFixedHeader;Ljava/lang/Object;Ljava/lang/Object;)Lio/netty/handler/codec/mqtt/MqttMessage;
            astore 7 /* publish */
        start local 7 // io.netty.handler.codec.mqtt.MqttMessage publish
        27: .line 313
            invokestatic io.vertx.mqtt.impl.MqttClientImpl.$SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttQoS:()[I
            aload 3 /* qosLevel */
            invokevirtual io.netty.handler.codec.mqtt.MqttQoS.ordinal:()I
            iaload
            tableswitch { // 2 - 3
                    2: 28
                    3: 31
              default: 33
          }
        28: .line 315
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl java.lang.String io.vertx.core.buffer.Buffer io.netty.handler.codec.mqtt.MqttQoS int int io.vertx.core.Handler io.netty.handler.codec.mqtt.MqttMessage io.netty.handler.codec.mqtt.MqttPublishVariableHeader io.vertx.mqtt.impl.MqttClientImpl io.netty.handler.codec.mqtt.MqttFixedHeader io.netty.buffer.ByteBuf
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.qos1outbound:Ljava/util/HashMap;
            aload 8 /* variableHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttPublishVariableHeader.packetId:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 7 /* publish */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        29: .line 316
            aload 0 /* this */
            dup
            getfield io.vertx.mqtt.impl.MqttClientImpl.countInflightQueue:I
            iconst_1
            iadd
            putfield io.vertx.mqtt.impl.MqttClientImpl.countInflightQueue:I
        30: .line 317
            goto 33
        31: .line 319
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.qos2outbound:Ljava/util/HashMap;
            aload 8 /* variableHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttPublishVariableHeader.packetId:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 7 /* publish */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        32: .line 320
            aload 0 /* this */
            dup
            getfield io.vertx.mqtt.impl.MqttClientImpl.countInflightQueue:I
            iconst_1
            iadd
            putfield io.vertx.mqtt.impl.MqttClientImpl.countInflightQueue:I
        end local 11 // io.netty.buffer.ByteBuf buf
        end local 10 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
        33: .line 282
      StackMap locals:
      StackMap stack:
            aload 9
            monitorexit
        34: goto 37
        end local 8 // io.netty.handler.codec.mqtt.MqttPublishVariableHeader variableHeader
        end local 7 // io.netty.handler.codec.mqtt.MqttMessage publish
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl java.lang.String io.vertx.core.buffer.Buffer io.netty.handler.codec.mqtt.MqttQoS int int io.vertx.core.Handler top top io.vertx.mqtt.impl.MqttClientImpl
      StackMap stack: java.lang.Throwable
        35: aload 9
            monitorexit
        36: athrow
        start local 7 // io.netty.handler.codec.mqtt.MqttMessage publish
        start local 8 // io.netty.handler.codec.mqtt.MqttPublishVariableHeader variableHeader
        37: .line 325
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl java.lang.String io.vertx.core.buffer.Buffer io.netty.handler.codec.mqtt.MqttQoS int int io.vertx.core.Handler io.netty.handler.codec.mqtt.MqttMessage io.netty.handler.codec.mqtt.MqttPublishVariableHeader
      StackMap stack:
            aload 0 /* this */
            aload 7 /* publish */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.write:(Lio/netty/handler/codec/mqtt/MqttMessage;)V
        38: .line 326
            aload 6 /* publishSentHandler */
            ifnull 40
        39: .line 327
            aload 6 /* publishSentHandler */
            aload 8 /* variableHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttPublishVariableHeader.packetId:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        40: .line 330
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 8 // io.netty.handler.codec.mqtt.MqttPublishVariableHeader variableHeader
        end local 7 // io.netty.handler.codec.mqtt.MqttMessage publish
        end local 6 // io.vertx.core.Handler publishSentHandler
        end local 5 // boolean isRetain
        end local 4 // boolean isDup
        end local 3 // io.netty.handler.codec.mqtt.MqttQoS qosLevel
        end local 2 // io.vertx.core.buffer.Buffer payload
        end local 1 // java.lang.String topic
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   41     0                this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0   41     1               topic  Ljava/lang/String;
            0   41     2             payload  Lio/vertx/core/buffer/Buffer;
            0   41     3            qosLevel  Lio/netty/handler/codec/mqtt/MqttQoS;
            0   41     4               isDup  Z
            0   41     5            isRetain  Z
            0   41     6  publishSentHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Integer;>;>;
           27   35     7             publish  Lio/netty/handler/codec/mqtt/MqttMessage;
           37   41     7             publish  Lio/netty/handler/codec/mqtt/MqttMessage;
           26   35     8      variableHeader  Lio/netty/handler/codec/mqtt/MqttPublishVariableHeader;
           37   41     8      variableHeader  Lio/netty/handler/codec/mqtt/MqttPublishVariableHeader;
            3    9    10                 msg  Ljava/lang/String;
            5    9    11           exception  Lio/vertx/mqtt/MqttException;
           11   17    10                 msg  Ljava/lang/String;
           13   17    11           exception  Lio/vertx/mqtt/MqttException;
           24   33    10         fixedHeader  Lio/netty/handler/codec/mqtt/MqttFixedHeader;
           25   33    11                 buf  Lio/netty/buffer/ByteBuf;
      Exception table:
        from    to  target  type
           1     8      35  any
           9    16      35  any
          17    34      35  any
          35    36      35  any
    Signature: (Ljava/lang/String;Lio/vertx/core/buffer/Buffer;Lio/netty/handler/codec/mqtt/MqttQoS;ZZLio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Integer;>;>;)Lio/vertx/mqtt/MqttClient;
    MethodParameters:
                    Name  Flags
      topic               
      payload             
      qosLevel            
      isDup               
      isRetain            
      publishSentHandler  

  public io.vertx.mqtt.MqttClient publishCompletionHandler(io.vertx.core.Handler<java.lang.Integer>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // io.vertx.core.Handler publishCompletionHandler
         0: .line 339
            aload 0 /* this */
            aload 1 /* publishCompletionHandler */
            putfield io.vertx.mqtt.impl.MqttClientImpl.publishCompletionHandler:Lio/vertx/core/Handler;
         1: .line 340
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler publishCompletionHandler
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    2     1  publishCompletionHandler  Lio/vertx/core/Handler<Ljava/lang/Integer;>;
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Integer;>;)Lio/vertx/mqtt/MqttClient;
    MethodParameters:
                          Name  Flags
      publishCompletionHandler  

  private synchronized io.vertx.core.Handler<java.lang.Integer> publishCompletionHandler();
    descriptor: ()Lio/vertx/core/Handler;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 344
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.publishCompletionHandler:Lio/vertx/core/Handler;
            areturn
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;
    Signature: ()Lio/vertx/core/Handler<Ljava/lang/Integer;>;

  public io.vertx.mqtt.MqttClient publishHandler(io.vertx.core.Handler<io.vertx.mqtt.messages.MqttPublishMessage>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // io.vertx.core.Handler publishHandler
         0: .line 353
            aload 0 /* this */
            aload 1 /* publishHandler */
            putfield io.vertx.mqtt.impl.MqttClientImpl.publishHandler:Lio/vertx/core/Handler;
         1: .line 354
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler publishHandler
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    2     1  publishHandler  Lio/vertx/core/Handler<Lio/vertx/mqtt/messages/MqttPublishMessage;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/mqtt/messages/MqttPublishMessage;>;)Lio/vertx/mqtt/MqttClient;
    MethodParameters:
                Name  Flags
      publishHandler  

  private synchronized io.vertx.core.Handler<io.vertx.mqtt.messages.MqttPublishMessage> publishHandler();
    descriptor: ()Lio/vertx/core/Handler;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 358
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.publishHandler:Lio/vertx/core/Handler;
            areturn
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;
    Signature: ()Lio/vertx/core/Handler<Lio/vertx/mqtt/messages/MqttPublishMessage;>;

  public io.vertx.mqtt.MqttClient subscribeCompletionHandler(io.vertx.core.Handler<io.vertx.mqtt.messages.MqttSubAckMessage>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // io.vertx.core.Handler subscribeCompletionHandler
         0: .line 367
            aload 0 /* this */
            aload 1 /* subscribeCompletionHandler */
            putfield io.vertx.mqtt.impl.MqttClientImpl.subscribeCompletionHandler:Lio/vertx/core/Handler;
         1: .line 368
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler subscribeCompletionHandler
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    2     0                        this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    2     1  subscribeCompletionHandler  Lio/vertx/core/Handler<Lio/vertx/mqtt/messages/MqttSubAckMessage;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/mqtt/messages/MqttSubAckMessage;>;)Lio/vertx/mqtt/MqttClient;
    MethodParameters:
                            Name  Flags
      subscribeCompletionHandler  

  private synchronized io.vertx.core.Handler<io.vertx.mqtt.messages.MqttSubAckMessage> subscribeCompletionHandler();
    descriptor: ()Lio/vertx/core/Handler;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 372
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.subscribeCompletionHandler:Lio/vertx/core/Handler;
            areturn
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;
    Signature: ()Lio/vertx/core/Handler<Lio/vertx/mqtt/messages/MqttSubAckMessage;>;

  public io.vertx.mqtt.MqttClient subscribe(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // java.lang.String topic
        start local 2 // int qos
         0: .line 380
            aload 0 /* this */
            aload 1 /* topic */
            iload 2 /* qos */
            aconst_null
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.subscribe:(Ljava/lang/String;ILio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
            areturn
        end local 2 // int qos
        end local 1 // java.lang.String topic
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    1     1  topic  Ljava/lang/String;
            0    1     2    qos  I
    MethodParameters:
       Name  Flags
      topic  
      qos    

  public io.vertx.mqtt.MqttClient subscribe(java.lang.String, int, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Integer>>);
    descriptor: (Ljava/lang/String;ILio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // java.lang.String topic
        start local 2 // int qos
        start local 3 // io.vertx.core.Handler subscribeSentHandler
         0: .line 388
            aload 0 /* this */
            aload 1 /* topic */
            iload 2 /* qos */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic java.util.Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
            aload 3 /* subscribeSentHandler */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.subscribe:(Ljava/util/Map;Lio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
            areturn
        end local 3 // io.vertx.core.Handler subscribeSentHandler
        end local 2 // int qos
        end local 1 // java.lang.String topic
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    1     0                  this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    1     1                 topic  Ljava/lang/String;
            0    1     2                   qos  I
            0    1     3  subscribeSentHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Integer;>;>;
    Signature: (Ljava/lang/String;ILio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Integer;>;>;)Lio/vertx/mqtt/MqttClient;
    MethodParameters:
                      Name  Flags
      topic                 
      qos                   
      subscribeSentHandler  

  public io.vertx.mqtt.MqttClient subscribe(java.util.Map<java.lang.String, java.lang.Integer>);
    descriptor: (Ljava/util/Map;)Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // java.util.Map topics
         0: .line 396
            aload 0 /* this */
            aload 1 /* topics */
            aconst_null
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.subscribe:(Ljava/util/Map;Lio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
            areturn
        end local 1 // java.util.Map topics
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    1     1  topics  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;)Lio/vertx/mqtt/MqttClient;
    MethodParameters:
        Name  Flags
      topics  

  public io.vertx.mqtt.MqttClient subscribe(java.util.Map<java.lang.String, java.lang.Integer>, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Integer>>);
    descriptor: (Ljava/util/Map;Lio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // java.util.Map topics
        start local 2 // io.vertx.core.Handler subscribeSentHandler
         0: .line 405
            aload 1 /* topics */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
         1: .line 406
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         2: .line 407
            aload 0 /* this */
            invokedynamic test(Lio/vertx/mqtt/impl/MqttClientImpl;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/mqtt/impl/MqttClientImpl.lambda$6(Ljava/util/Map$Entry;)Z (7)
                  (Ljava/util/Map$Entry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         3: .line 408
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/Map$Entry.getKey()Ljava/lang/Object; (9 itf)
                  (Ljava/util/Map$Entry;)Ljava/lang/String;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/Map$Entry.getValue()Ljava/lang/Object; (9 itf)
                  (Ljava/util/Map$Entry;)Ljava/lang/Integer;
            invokestatic java.util.stream.Collectors.toMap:(Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Map
         4: .line 405
            astore 3 /* invalidTopics */
        start local 3 // java.util.Map invalidTopics
         5: .line 410
            aload 3 /* invalidTopics */
            invokeinterface java.util.Map.size:()I
            ifle 12
         6: .line 411
            ldc "Invalid Topic Filters: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* invalidTopics */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 4 /* msg */
        start local 4 // java.lang.String msg
         7: .line 412
            getstatic io.vertx.mqtt.impl.MqttClientImpl.log:Lio/vertx/core/logging/Logger;
            aload 4 /* msg */
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;)V
         8: .line 413
            new io.vertx.mqtt.MqttException
            dup
            iconst_1
            aload 4 /* msg */
            invokespecial io.vertx.mqtt.MqttException.<init>:(ILjava/lang/String;)V
            astore 5 /* exception */
        start local 5 // io.vertx.mqtt.MqttException exception
         9: .line 414
            aload 2 /* subscribeSentHandler */
            ifnull 11
        10: .line 415
            aload 2 /* subscribeSentHandler */
            aload 5 /* exception */
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        11: .line 417
      StackMap locals: java.util.Map java.lang.String io.vertx.mqtt.MqttException
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 5 // io.vertx.mqtt.MqttException exception
        end local 4 // java.lang.String msg
        12: .line 420
      StackMap locals:
      StackMap stack:
            new io.netty.handler.codec.mqtt.MqttFixedHeader
            dup
        13: .line 421
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.SUBSCRIBE:Lio/netty/handler/codec/mqtt/MqttMessageType;
        14: .line 422
            iconst_0
        15: .line 423
            getstatic io.netty.handler.codec.mqtt.MqttQoS.AT_LEAST_ONCE:Lio/netty/handler/codec/mqtt/MqttQoS;
        16: .line 424
            iconst_0
        17: .line 425
            iconst_0
        18: .line 420
            invokespecial io.netty.handler.codec.mqtt.MqttFixedHeader.<init>:(Lio/netty/handler/codec/mqtt/MqttMessageType;ZLio/netty/handler/codec/mqtt/MqttQoS;ZI)V
            astore 4 /* fixedHeader */
        start local 4 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
        19: .line 427
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.nextMessageId:()I
            invokestatic io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader.from:(I)Lio/netty/handler/codec/mqtt/MqttMessageIdVariableHeader;
            astore 5 /* variableHeader */
        start local 5 // io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader variableHeader
        20: .line 428
            aload 1 /* topics */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
        21: .line 429
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        22: .line 430
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/mqtt/impl/MqttClientImpl.lambda$9(Ljava/util/Map$Entry;)Lio/netty/handler/codec/mqtt/MqttTopicSubscription; (6)
                  (Ljava/util/Map$Entry;)Lio/netty/handler/codec/mqtt/MqttTopicSubscription;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        23: .line 431
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
        24: .line 428
            astore 6 /* subscriptions */
        start local 6 // java.util.List subscriptions
        25: .line 433
            new io.netty.handler.codec.mqtt.MqttSubscribePayload
            dup
            aload 6 /* subscriptions */
            invokespecial io.netty.handler.codec.mqtt.MqttSubscribePayload.<init>:(Ljava/util/List;)V
            astore 7 /* payload */
        start local 7 // io.netty.handler.codec.mqtt.MqttSubscribePayload payload
        26: .line 435
            aload 4 /* fixedHeader */
            aload 5 /* variableHeader */
            aload 7 /* payload */
            invokestatic io.netty.handler.codec.mqtt.MqttMessageFactory.newMessage:(Lio/netty/handler/codec/mqtt/MqttFixedHeader;Ljava/lang/Object;Ljava/lang/Object;)Lio/netty/handler/codec/mqtt/MqttMessage;
            astore 8 /* subscribe */
        start local 8 // io.netty.handler.codec.mqtt.MqttMessage subscribe
        27: .line 437
            aload 0 /* this */
            aload 8 /* subscribe */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.write:(Lio/netty/handler/codec/mqtt/MqttMessage;)V
        28: .line 439
            aload 2 /* subscribeSentHandler */
            ifnull 30
        29: .line 440
            aload 2 /* subscribeSentHandler */
            aload 5 /* variableHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader.messageId:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        30: .line 442
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl java.util.Map io.vertx.core.Handler java.util.Map io.netty.handler.codec.mqtt.MqttFixedHeader io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader java.util.List io.netty.handler.codec.mqtt.MqttSubscribePayload io.netty.handler.codec.mqtt.MqttMessage
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 8 // io.netty.handler.codec.mqtt.MqttMessage subscribe
        end local 7 // io.netty.handler.codec.mqtt.MqttSubscribePayload payload
        end local 6 // java.util.List subscriptions
        end local 5 // io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader variableHeader
        end local 4 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
        end local 3 // java.util.Map invalidTopics
        end local 2 // io.vertx.core.Handler subscribeSentHandler
        end local 1 // java.util.Map topics
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   31     0                  this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0   31     1                topics  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
            0   31     2  subscribeSentHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Integer;>;>;
            5   31     3         invalidTopics  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
            7   12     4                   msg  Ljava/lang/String;
            9   12     5             exception  Lio/vertx/mqtt/MqttException;
           19   31     4           fixedHeader  Lio/netty/handler/codec/mqtt/MqttFixedHeader;
           20   31     5        variableHeader  Lio/netty/handler/codec/mqtt/MqttMessageIdVariableHeader;
           25   31     6         subscriptions  Ljava/util/List<Lio/netty/handler/codec/mqtt/MqttTopicSubscription;>;
           26   31     7               payload  Lio/netty/handler/codec/mqtt/MqttSubscribePayload;
           27   31     8             subscribe  Lio/netty/handler/codec/mqtt/MqttMessage;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Integer;>;>;)Lio/vertx/mqtt/MqttClient;
    MethodParameters:
                      Name  Flags
      topics                
      subscribeSentHandler  

  public io.vertx.mqtt.MqttClient unsubscribeCompletionHandler(io.vertx.core.Handler<java.lang.Integer>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // io.vertx.core.Handler unsubscribeCompletionHandler
         0: .line 451
            aload 0 /* this */
            aload 1 /* unsubscribeCompletionHandler */
            putfield io.vertx.mqtt.impl.MqttClientImpl.unsubscribeCompletionHandler:Lio/vertx/core/Handler;
         1: .line 452
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler unsubscribeCompletionHandler
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    2     0                          this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    2     1  unsubscribeCompletionHandler  Lio/vertx/core/Handler<Ljava/lang/Integer;>;
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Integer;>;)Lio/vertx/mqtt/MqttClient;
    MethodParameters:
                              Name  Flags
      unsubscribeCompletionHandler  

  private synchronized io.vertx.core.Handler<java.lang.Integer> unsubscribeCompletionHandler();
    descriptor: ()Lio/vertx/core/Handler;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 457
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.unsubscribeCompletionHandler:Lio/vertx/core/Handler;
            areturn
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;
    Signature: ()Lio/vertx/core/Handler<Ljava/lang/Integer;>;

  public io.vertx.mqtt.MqttClient unsubscribe(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Integer>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // java.lang.String topic
        start local 2 // io.vertx.core.Handler unsubscribeSentHandler
         0: .line 466
            new io.netty.handler.codec.mqtt.MqttFixedHeader
            dup
         1: .line 467
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.UNSUBSCRIBE:Lio/netty/handler/codec/mqtt/MqttMessageType;
         2: .line 468
            iconst_0
         3: .line 469
            getstatic io.netty.handler.codec.mqtt.MqttQoS.AT_LEAST_ONCE:Lio/netty/handler/codec/mqtt/MqttQoS;
         4: .line 470
            iconst_0
         5: .line 471
            iconst_0
         6: .line 466
            invokespecial io.netty.handler.codec.mqtt.MqttFixedHeader.<init>:(Lio/netty/handler/codec/mqtt/MqttMessageType;ZLio/netty/handler/codec/mqtt/MqttQoS;ZI)V
            astore 3 /* fixedHeader */
        start local 3 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
         7: .line 473
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.nextMessageId:()I
            invokestatic io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader.from:(I)Lio/netty/handler/codec/mqtt/MqttMessageIdVariableHeader;
            astore 4 /* variableHeader */
        start local 4 // io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader variableHeader
         8: .line 475
            new io.netty.handler.codec.mqtt.MqttUnsubscribePayload
            dup
            aload 1 /* topic */
            invokestatic java.util.stream.Stream.of:(Ljava/lang/Object;)Ljava/util/stream/Stream;
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
            invokespecial io.netty.handler.codec.mqtt.MqttUnsubscribePayload.<init>:(Ljava/util/List;)V
            astore 5 /* payload */
        start local 5 // io.netty.handler.codec.mqtt.MqttUnsubscribePayload payload
         9: .line 477
            aload 3 /* fixedHeader */
            aload 4 /* variableHeader */
            aload 5 /* payload */
            invokestatic io.netty.handler.codec.mqtt.MqttMessageFactory.newMessage:(Lio/netty/handler/codec/mqtt/MqttFixedHeader;Ljava/lang/Object;Ljava/lang/Object;)Lio/netty/handler/codec/mqtt/MqttMessage;
            astore 6 /* unsubscribe */
        start local 6 // io.netty.handler.codec.mqtt.MqttMessage unsubscribe
        10: .line 479
            aload 0 /* this */
            aload 6 /* unsubscribe */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.write:(Lio/netty/handler/codec/mqtt/MqttMessage;)V
        11: .line 481
            aload 2 /* unsubscribeSentHandler */
            ifnull 13
        12: .line 482
            aload 2 /* unsubscribeSentHandler */
            aload 4 /* variableHeader */
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader.messageId:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        13: .line 484
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl java.lang.String io.vertx.core.Handler io.netty.handler.codec.mqtt.MqttFixedHeader io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader io.netty.handler.codec.mqtt.MqttUnsubscribePayload io.netty.handler.codec.mqtt.MqttMessage
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 6 // io.netty.handler.codec.mqtt.MqttMessage unsubscribe
        end local 5 // io.netty.handler.codec.mqtt.MqttUnsubscribePayload payload
        end local 4 // io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader variableHeader
        end local 3 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
        end local 2 // io.vertx.core.Handler unsubscribeSentHandler
        end local 1 // java.lang.String topic
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   14     0                    this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0   14     1                   topic  Ljava/lang/String;
            0   14     2  unsubscribeSentHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Integer;>;>;
            7   14     3             fixedHeader  Lio/netty/handler/codec/mqtt/MqttFixedHeader;
            8   14     4          variableHeader  Lio/netty/handler/codec/mqtt/MqttMessageIdVariableHeader;
            9   14     5                 payload  Lio/netty/handler/codec/mqtt/MqttUnsubscribePayload;
           10   14     6             unsubscribe  Lio/netty/handler/codec/mqtt/MqttMessage;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Integer;>;>;)Lio/vertx/mqtt/MqttClient;
    MethodParameters:
                        Name  Flags
      topic                   
      unsubscribeSentHandler  

  private synchronized io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.mqtt.messages.MqttConnAckMessage>> connectHandler();
    descriptor: ()Lio/vertx/core/Handler;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 488
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.connectHandler:Lio/vertx/core/Handler;
            areturn
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;
    Signature: ()Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/mqtt/messages/MqttConnAckMessage;>;>;

  public io.vertx.mqtt.MqttClient unsubscribe(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // java.lang.String topic
         0: .line 496
            aload 0 /* this */
            aload 1 /* topic */
            aconst_null
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.unsubscribe:(Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
            areturn
        end local 1 // java.lang.String topic
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    1     1  topic  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      topic  

  public synchronized io.vertx.mqtt.MqttClient pingResponseHandler(io.vertx.core.Handler<java.lang.Void>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // io.vertx.core.Handler pingResponseHandler
         0: .line 504
            aload 0 /* this */
            aload 1 /* pingResponseHandler */
            putfield io.vertx.mqtt.impl.MqttClientImpl.pingrespHandler:Lio/vertx/core/Handler;
         1: .line 505
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler pingResponseHandler
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    2     1  pingResponseHandler  Lio/vertx/core/Handler<Ljava/lang/Void;>;
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Void;>;)Lio/vertx/mqtt/MqttClient;
    MethodParameters:
                     Name  Flags
      pingResponseHandler  

  private synchronized io.vertx.core.Handler<java.lang.Void> pingResponseHandler();
    descriptor: ()Lio/vertx/core/Handler;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 509
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.pingrespHandler:Lio/vertx/core/Handler;
            areturn
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;
    Signature: ()Lio/vertx/core/Handler<Ljava/lang/Void;>;

  public synchronized io.vertx.mqtt.MqttClient exceptionHandler(io.vertx.core.Handler<java.lang.Throwable>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // io.vertx.core.Handler handler
         0: .line 517
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.mqtt.impl.MqttClientImpl.exceptionHandler:Lio/vertx/core/Handler;
         1: .line 518
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    2     1  handler  Lio/vertx/core/Handler<Ljava/lang/Throwable;>;
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Throwable;>;)Lio/vertx/mqtt/MqttClient;
    MethodParameters:
         Name  Flags
      handler  

  private synchronized io.vertx.core.Handler<java.lang.Throwable> exceptionHandler();
    descriptor: ()Lio/vertx/core/Handler;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 522
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.exceptionHandler:Lio/vertx/core/Handler;
            areturn
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;
    Signature: ()Lio/vertx/core/Handler<Ljava/lang/Throwable;>;

  public synchronized io.vertx.mqtt.MqttClient closeHandler(io.vertx.core.Handler<java.lang.Void>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/mqtt/MqttClient;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // io.vertx.core.Handler closeHandler
         0: .line 530
            aload 0 /* this */
            aload 1 /* closeHandler */
            putfield io.vertx.mqtt.impl.MqttClientImpl.closeHandler:Lio/vertx/core/Handler;
         1: .line 531
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler closeHandler
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    2     1  closeHandler  Lio/vertx/core/Handler<Ljava/lang/Void;>;
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Void;>;)Lio/vertx/mqtt/MqttClient;
    MethodParameters:
              Name  Flags
      closeHandler  

  private synchronized io.vertx.core.Handler<java.lang.Void> closeHandler();
    descriptor: ()Lio/vertx/core/Handler;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 535
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.closeHandler:Lio/vertx/core/Handler;
            areturn
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;
    Signature: ()Lio/vertx/core/Handler<Ljava/lang/Void;>;

  public io.vertx.mqtt.MqttClient ping();
    descriptor: ()Lio/vertx/mqtt/MqttClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 545
            new io.netty.handler.codec.mqtt.MqttFixedHeader
            dup
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PINGREQ:Lio/netty/handler/codec/mqtt/MqttMessageType;
            iconst_0
            getstatic io.netty.handler.codec.mqtt.MqttQoS.AT_MOST_ONCE:Lio/netty/handler/codec/mqtt/MqttQoS;
            iconst_0
            iconst_0
            invokespecial io.netty.handler.codec.mqtt.MqttFixedHeader.<init>:(Lio/netty/handler/codec/mqtt/MqttMessageType;ZLio/netty/handler/codec/mqtt/MqttQoS;ZI)V
         1: .line 544
            astore 1 /* fixedHeader */
        start local 1 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
         2: .line 547
            aload 1 /* fixedHeader */
            aconst_null
            aconst_null
            invokestatic io.netty.handler.codec.mqtt.MqttMessageFactory.newMessage:(Lio/netty/handler/codec/mqtt/MqttFixedHeader;Ljava/lang/Object;Ljava/lang/Object;)Lio/netty/handler/codec/mqtt/MqttMessage;
            astore 2 /* pingreq */
        start local 2 // io.netty.handler.codec.mqtt.MqttMessage pingreq
         3: .line 549
            aload 0 /* this */
            aload 2 /* pingreq */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.write:(Lio/netty/handler/codec/mqtt/MqttMessage;)V
         4: .line 551
            aload 0 /* this */
            areturn
        end local 2 // io.netty.handler.codec.mqtt.MqttMessage pingreq
        end local 1 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lio/vertx/mqtt/impl/MqttClientImpl;
            2    5     1  fixedHeader  Lio/netty/handler/codec/mqtt/MqttFixedHeader;
            3    5     2      pingreq  Lio/netty/handler/codec/mqtt/MqttMessage;

  public synchronized java.lang.String clientId();
    descriptor: ()Ljava/lang/String;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 556
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getClientId:()Ljava/lang/String;
            areturn
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;

  public synchronized boolean isConnected();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 561
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.isConnected:Z
            ireturn
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;

  private void publishAcknowledge(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // int publishMessageId
         0: .line 572
            new io.netty.handler.codec.mqtt.MqttFixedHeader
            dup
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PUBACK:Lio/netty/handler/codec/mqtt/MqttMessageType;
            iconst_0
            getstatic io.netty.handler.codec.mqtt.MqttQoS.AT_MOST_ONCE:Lio/netty/handler/codec/mqtt/MqttQoS;
            iconst_0
            iconst_0
            invokespecial io.netty.handler.codec.mqtt.MqttFixedHeader.<init>:(Lio/netty/handler/codec/mqtt/MqttMessageType;ZLio/netty/handler/codec/mqtt/MqttQoS;ZI)V
         1: .line 571
            astore 2 /* fixedHeader */
        start local 2 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
         2: .line 575
            iload 1 /* publishMessageId */
            invokestatic io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader.from:(I)Lio/netty/handler/codec/mqtt/MqttMessageIdVariableHeader;
         3: .line 574
            astore 3 /* variableHeader */
        start local 3 // io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader variableHeader
         4: .line 577
            aload 2 /* fixedHeader */
            aload 3 /* variableHeader */
            aconst_null
            invokestatic io.netty.handler.codec.mqtt.MqttMessageFactory.newMessage:(Lio/netty/handler/codec/mqtt/MqttFixedHeader;Ljava/lang/Object;Ljava/lang/Object;)Lio/netty/handler/codec/mqtt/MqttMessage;
            astore 4 /* puback */
        start local 4 // io.netty.handler.codec.mqtt.MqttMessage puback
         5: .line 579
            aload 0 /* this */
            aload 4 /* puback */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.write:(Lio/netty/handler/codec/mqtt/MqttMessage;)V
         6: .line 580
            return
        end local 4 // io.netty.handler.codec.mqtt.MqttMessage puback
        end local 3 // io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader variableHeader
        end local 2 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
        end local 1 // int publishMessageId
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    7     1  publishMessageId  I
            2    7     2       fixedHeader  Lio/netty/handler/codec/mqtt/MqttFixedHeader;
            4    7     3    variableHeader  Lio/netty/handler/codec/mqtt/MqttMessageIdVariableHeader;
            5    7     4            puback  Lio/netty/handler/codec/mqtt/MqttMessage;
    MethodParameters:
                  Name  Flags
      publishMessageId  

  private void publishReceived(io.vertx.mqtt.messages.MqttPublishMessage);
    descriptor: (Lio/vertx/mqtt/messages/MqttPublishMessage;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // io.vertx.mqtt.messages.MqttPublishMessage publishMessage
         0: .line 590
            new io.netty.handler.codec.mqtt.MqttFixedHeader
            dup
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PUBREC:Lio/netty/handler/codec/mqtt/MqttMessageType;
            iconst_0
            getstatic io.netty.handler.codec.mqtt.MqttQoS.AT_MOST_ONCE:Lio/netty/handler/codec/mqtt/MqttQoS;
            iconst_0
            iconst_0
            invokespecial io.netty.handler.codec.mqtt.MqttFixedHeader.<init>:(Lio/netty/handler/codec/mqtt/MqttMessageType;ZLio/netty/handler/codec/mqtt/MqttQoS;ZI)V
         1: .line 589
            astore 2 /* fixedHeader */
        start local 2 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
         2: .line 593
            aload 1 /* publishMessage */
            invokeinterface io.vertx.mqtt.messages.MqttPublishMessage.messageId:()I
            invokestatic io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader.from:(I)Lio/netty/handler/codec/mqtt/MqttMessageIdVariableHeader;
         3: .line 592
            astore 3 /* variableHeader */
        start local 3 // io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader variableHeader
         4: .line 595
            aload 2 /* fixedHeader */
            aload 3 /* variableHeader */
            aconst_null
            invokestatic io.netty.handler.codec.mqtt.MqttMessageFactory.newMessage:(Lio/netty/handler/codec/mqtt/MqttFixedHeader;Ljava/lang/Object;Ljava/lang/Object;)Lio/netty/handler/codec/mqtt/MqttMessage;
            astore 4 /* pubrec */
        start local 4 // io.netty.handler.codec.mqtt.MqttMessage pubrec
         5: .line 597
            aload 0 /* this */
            dup
            astore 5
            monitorenter
         6: .line 598
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.qos2inbound:Ljava/util/HashMap;
            aload 1 /* publishMessage */
            invokeinterface io.vertx.mqtt.messages.MqttPublishMessage.messageId:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 1 /* publishMessage */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 597
            aload 5
            monitorexit
         8: goto 11
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl io.vertx.mqtt.messages.MqttPublishMessage io.netty.handler.codec.mqtt.MqttFixedHeader io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader io.netty.handler.codec.mqtt.MqttMessage io.vertx.mqtt.impl.MqttClientImpl
      StackMap stack: java.lang.Throwable
         9: aload 5
            monitorexit
        10: athrow
        11: .line 600
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* pubrec */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.write:(Lio/netty/handler/codec/mqtt/MqttMessage;)V
        12: .line 601
            return
        end local 4 // io.netty.handler.codec.mqtt.MqttMessage pubrec
        end local 3 // io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader variableHeader
        end local 2 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
        end local 1 // io.vertx.mqtt.messages.MqttPublishMessage publishMessage
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0   13     1  publishMessage  Lio/vertx/mqtt/messages/MqttPublishMessage;
            2   13     2     fixedHeader  Lio/netty/handler/codec/mqtt/MqttFixedHeader;
            4   13     3  variableHeader  Lio/netty/handler/codec/mqtt/MqttMessageIdVariableHeader;
            5   13     4          pubrec  Lio/netty/handler/codec/mqtt/MqttMessage;
      Exception table:
        from    to  target  type
           6     8       9  any
           9    10       9  any
    MethodParameters:
                Name  Flags
      publishMessage  

  private void publishComplete(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // int publishMessageId
         0: .line 611
            new io.netty.handler.codec.mqtt.MqttFixedHeader
            dup
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PUBCOMP:Lio/netty/handler/codec/mqtt/MqttMessageType;
            iconst_0
            getstatic io.netty.handler.codec.mqtt.MqttQoS.AT_MOST_ONCE:Lio/netty/handler/codec/mqtt/MqttQoS;
            iconst_0
            iconst_0
            invokespecial io.netty.handler.codec.mqtt.MqttFixedHeader.<init>:(Lio/netty/handler/codec/mqtt/MqttMessageType;ZLio/netty/handler/codec/mqtt/MqttQoS;ZI)V
         1: .line 610
            astore 2 /* fixedHeader */
        start local 2 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
         2: .line 614
            iload 1 /* publishMessageId */
            invokestatic io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader.from:(I)Lio/netty/handler/codec/mqtt/MqttMessageIdVariableHeader;
         3: .line 613
            astore 3 /* variableHeader */
        start local 3 // io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader variableHeader
         4: .line 616
            aload 2 /* fixedHeader */
            aload 3 /* variableHeader */
            aconst_null
            invokestatic io.netty.handler.codec.mqtt.MqttMessageFactory.newMessage:(Lio/netty/handler/codec/mqtt/MqttFixedHeader;Ljava/lang/Object;Ljava/lang/Object;)Lio/netty/handler/codec/mqtt/MqttMessage;
            astore 4 /* pubcomp */
        start local 4 // io.netty.handler.codec.mqtt.MqttMessage pubcomp
         5: .line 618
            aload 0 /* this */
            aload 4 /* pubcomp */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.write:(Lio/netty/handler/codec/mqtt/MqttMessage;)V
         6: .line 619
            return
        end local 4 // io.netty.handler.codec.mqtt.MqttMessage pubcomp
        end local 3 // io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader variableHeader
        end local 2 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
        end local 1 // int publishMessageId
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    7     1  publishMessageId  I
            2    7     2       fixedHeader  Lio/netty/handler/codec/mqtt/MqttFixedHeader;
            4    7     3    variableHeader  Lio/netty/handler/codec/mqtt/MqttMessageIdVariableHeader;
            5    7     4           pubcomp  Lio/netty/handler/codec/mqtt/MqttMessage;
    MethodParameters:
                  Name  Flags
      publishMessageId  

  private void publishRelease(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // int publishMessageId
         0: .line 629
            new io.netty.handler.codec.mqtt.MqttFixedHeader
            dup
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PUBREL:Lio/netty/handler/codec/mqtt/MqttMessageType;
            iconst_0
            getstatic io.netty.handler.codec.mqtt.MqttQoS.AT_LEAST_ONCE:Lio/netty/handler/codec/mqtt/MqttQoS;
            iconst_0
            iconst_0
            invokespecial io.netty.handler.codec.mqtt.MqttFixedHeader.<init>:(Lio/netty/handler/codec/mqtt/MqttMessageType;ZLio/netty/handler/codec/mqtt/MqttQoS;ZI)V
         1: .line 628
            astore 2 /* fixedHeader */
        start local 2 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
         2: .line 632
            iload 1 /* publishMessageId */
            invokestatic io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader.from:(I)Lio/netty/handler/codec/mqtt/MqttMessageIdVariableHeader;
         3: .line 631
            astore 3 /* variableHeader */
        start local 3 // io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader variableHeader
         4: .line 634
            aload 2 /* fixedHeader */
            aload 3 /* variableHeader */
            aconst_null
            invokestatic io.netty.handler.codec.mqtt.MqttMessageFactory.newMessage:(Lio/netty/handler/codec/mqtt/MqttFixedHeader;Ljava/lang/Object;Ljava/lang/Object;)Lio/netty/handler/codec/mqtt/MqttMessage;
            astore 4 /* pubrel */
        start local 4 // io.netty.handler.codec.mqtt.MqttMessage pubrel
         5: .line 636
            aload 0 /* this */
            dup
            astore 5
            monitorenter
         6: .line 637
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.qos2outbound:Ljava/util/HashMap;
            iload 1 /* publishMessageId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* pubrel */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 636
            aload 5
            monitorexit
         8: goto 11
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl int io.netty.handler.codec.mqtt.MqttFixedHeader io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader io.netty.handler.codec.mqtt.MqttMessage io.vertx.mqtt.impl.MqttClientImpl
      StackMap stack: java.lang.Throwable
         9: aload 5
            monitorexit
        10: athrow
        11: .line 639
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* pubrel */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.write:(Lio/netty/handler/codec/mqtt/MqttMessage;)V
        12: .line 640
            return
        end local 4 // io.netty.handler.codec.mqtt.MqttMessage pubrel
        end local 3 // io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader variableHeader
        end local 2 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
        end local 1 // int publishMessageId
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0   13     1  publishMessageId  I
            2   13     2       fixedHeader  Lio/netty/handler/codec/mqtt/MqttFixedHeader;
            4   13     3    variableHeader  Lio/netty/handler/codec/mqtt/MqttMessageIdVariableHeader;
            5   13     4            pubrel  Lio/netty/handler/codec/mqtt/MqttMessage;
      Exception table:
        from    to  target  type
           6     8       9  any
           9    10       9  any
    MethodParameters:
                  Name  Flags
      publishMessageId  

  private void initChannel(io.netty.channel.ChannelPipeline);
    descriptor: (Lio/netty/channel/ChannelPipeline;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // io.netty.channel.ChannelPipeline pipeline
         0: .line 645
            aload 1 /* pipeline */
            ldc "handler"
            ldc "mqttEncoder"
            getstatic io.netty.handler.codec.mqtt.MqttEncoder.INSTANCE:Lio/netty/handler/codec/mqtt/MqttEncoder;
            invokeinterface io.netty.channel.ChannelPipeline.addBefore:(Ljava/lang/String;Ljava/lang/String;Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
            pop
         1: .line 647
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getMaxMessageSize:()I
            ifle 4
         2: .line 648
            aload 1 /* pipeline */
            ldc "handler"
            ldc "mqttDecoder"
            new io.netty.handler.codec.mqtt.MqttDecoder
            dup
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getMaxMessageSize:()I
            invokespecial io.netty.handler.codec.mqtt.MqttDecoder.<init>:(I)V
            invokeinterface io.netty.channel.ChannelPipeline.addBefore:(Ljava/lang/String;Ljava/lang/String;Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
            pop
         3: .line 649
            goto 5
         4: .line 651
      StackMap locals:
      StackMap stack:
            aload 1 /* pipeline */
            ldc "handler"
            ldc "mqttDecoder"
            new io.netty.handler.codec.mqtt.MqttDecoder
            dup
            invokespecial io.netty.handler.codec.mqtt.MqttDecoder.<init>:()V
            invokeinterface io.netty.channel.ChannelPipeline.addBefore:(Ljava/lang/String;Ljava/lang/String;Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
            pop
         5: .line 654
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.isAutoKeepAlive:()Z
            ifeq 11
         6: .line 655
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getKeepAliveTimeSeconds:()I
            ifeq 11
         7: .line 657
            aload 1 /* pipeline */
            ldc "handler"
            ldc "idle"
         8: .line 658
            new io.netty.handler.timeout.IdleStateHandler
            dup
            iconst_0
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getKeepAliveTimeSeconds:()I
            iconst_0
            invokespecial io.netty.handler.timeout.IdleStateHandler.<init>:(III)V
         9: .line 657
            invokeinterface io.netty.channel.ChannelPipeline.addBefore:(Ljava/lang/String;Ljava/lang/String;Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
            pop
        10: .line 659
            aload 1 /* pipeline */
            ldc "handler"
            ldc "keepAliveHandler"
            new io.vertx.mqtt.impl.MqttClientImpl$1
            dup
            aload 0 /* this */
            invokespecial io.vertx.mqtt.impl.MqttClientImpl$1.<init>:(Lio/vertx/mqtt/impl/MqttClientImpl;)V
            invokeinterface io.netty.channel.ChannelPipeline.addBefore:(Ljava/lang/String;Ljava/lang/String;Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
            pop
        11: .line 673
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.ChannelPipeline pipeline
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0   12     1  pipeline  Lio/netty/channel/ChannelPipeline;
    MethodParameters:
          Name  Flags
      pipeline  

  private synchronized int nextMessageId();
    descriptor: ()I
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 683
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.messageIdCounter:I
            ldc 65535
            irem
            ifeq 1
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.messageIdCounter:I
            iconst_1
            iadd
            goto 2
      StackMap locals:
      StackMap stack: io.vertx.mqtt.impl.MqttClientImpl
         1: iconst_1
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl
      StackMap stack: io.vertx.mqtt.impl.MqttClientImpl int
         2: putfield io.vertx.mqtt.impl.MqttClientImpl.messageIdCounter:I
         3: .line 684
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.messageIdCounter:I
            ireturn
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;

  private synchronized io.vertx.core.impl.NetSocketInternal connection();
    descriptor: ()Lio/vertx/core/impl/NetSocketInternal;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 688
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.connection:Lio/vertx/core/impl/NetSocketInternal;
            areturn
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;

  void write(io.netty.handler.codec.mqtt.MqttMessage);
    descriptor: (Lio/netty/handler/codec/mqtt/MqttMessage;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // io.netty.handler.codec.mqtt.MqttMessage mqttMessage
         0: .line 692
            getstatic io.vertx.mqtt.impl.MqttClientImpl.log:Lio/vertx/core/logging/Logger;
            ldc "Sending packet %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* mqttMessage */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.debug:(Ljava/lang/Object;)V
         1: .line 693
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.connection:()Lio/vertx/core/impl/NetSocketInternal;
            aload 1 /* mqttMessage */
            invokeinterface io.vertx.core.impl.NetSocketInternal.writeMessage:(Ljava/lang/Object;)Lio/vertx/core/impl/NetSocketInternal;
            pop
         2: .line 694
            return
        end local 1 // io.netty.handler.codec.mqtt.MqttMessage mqttMessage
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    3     1  mqttMessage  Lio/netty/handler/codec/mqtt/MqttMessage;
    MethodParameters:
             Name  Flags
      mqttMessage  

  private void handleClosed();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 700
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 701
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.isConnected:Z
            istore 2 /* isConnected */
        start local 2 // boolean isConnected
         2: .line 702
            aload 0 /* this */
            iconst_0
            putfield io.vertx.mqtt.impl.MqttClientImpl.isConnected:Z
         3: .line 703
            iload 2 /* isConnected */
            ifne 6
         4: .line 704
            aload 1
            monitorexit
         5: return
        end local 2 // boolean isConnected
         6: .line 700
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl
      StackMap stack:
            aload 1
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 1
            monitorexit
         9: athrow
        10: .line 707
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.closeHandler:()Lio/vertx/core/Handler;
            astore 1 /* handler */
        start local 1 // io.vertx.core.Handler handler
        11: .line 708
            aload 1 /* handler */
            ifnull 13
        12: .line 709
            aload 1 /* handler */
            aconst_null
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        13: .line 711
      StackMap locals: io.vertx.core.Handler
      StackMap stack:
            return
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lio/vertx/mqtt/impl/MqttClientImpl;
            2    6     2  isConnected  Z
           11   14     1      handler  Lio/vertx/core/Handler<Ljava/lang/Void;>;
      Exception table:
        from    to  target  type
           1     5       8  any
           6     7       8  any
           8     9       8  any

  private void handleMessage(io.netty.channel.ChannelHandlerContext, java.lang.Object);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=3
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // io.netty.channel.ChannelHandlerContext chctx
        start local 2 // java.lang.Object msg
         0: .line 722
            aload 2 /* msg */
            instanceof io.netty.handler.codec.mqtt.MqttMessage
            ifeq 48
         1: .line 724
            aload 2 /* msg */
            checkcast io.netty.handler.codec.mqtt.MqttMessage
            astore 3 /* mqttMessage */
        start local 3 // io.netty.handler.codec.mqtt.MqttMessage mqttMessage
         2: .line 726
            aload 3 /* mqttMessage */
            invokevirtual io.netty.handler.codec.mqtt.MqttMessage.decoderResult:()Lio/netty/handler/codec/DecoderResult;
            astore 4 /* result */
        start local 4 // io.netty.handler.codec.DecoderResult result
         3: .line 727
            aload 4 /* result */
            invokevirtual io.netty.handler.codec.DecoderResult.isFailure:()Z
            ifeq 6
         4: .line 728
            aload 1 /* chctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.pipeline:()Lio/netty/channel/ChannelPipeline;
            aload 4 /* result */
            invokevirtual io.netty.handler.codec.DecoderResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.netty.channel.ChannelPipeline.fireExceptionCaught:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPipeline;
            pop
         5: .line 729
            return
         6: .line 731
      StackMap locals: io.netty.handler.codec.mqtt.MqttMessage io.netty.handler.codec.DecoderResult
      StackMap stack:
            aload 4 /* result */
            invokevirtual io.netty.handler.codec.DecoderResult.isFinished:()Z
            ifne 9
         7: .line 732
            aload 1 /* chctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.pipeline:()Lio/netty/channel/ChannelPipeline;
            new java.lang.Exception
            dup
            ldc "Unfinished message"
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
            invokeinterface io.netty.channel.ChannelPipeline.fireExceptionCaught:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPipeline;
            pop
         8: .line 733
            return
         9: .line 736
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.mqtt.impl.MqttClientImpl.log:Lio/vertx/core/logging/Logger;
            ldc "Incoming packet %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* msg */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.debug:(Ljava/lang/Object;)V
        10: .line 737
            invokestatic io.vertx.mqtt.impl.MqttClientImpl.$SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttMessageType:()[I
            aload 3 /* mqttMessage */
            invokevirtual io.netty.handler.codec.mqtt.MqttMessage.fixedHeader:()Lio/netty/handler/codec/mqtt/MqttFixedHeader;
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.messageType:()Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            iaload
            tableswitch { // 2 - 13
                    2: 11
                    3: 17
                    4: 28
                    5: 30
                    6: 32
                    7: 34
                    8: 46
                    9: 36
                   10: 46
                   11: 42
                   12: 46
                   13: 44
              default: 46
          }
        11: .line 741
      StackMap locals:
      StackMap stack:
            aload 3 /* mqttMessage */
            checkcast io.netty.handler.codec.mqtt.MqttConnAckMessage
            astore 5 /* connack */
        start local 5 // io.netty.handler.codec.mqtt.MqttConnAckMessage connack
        12: .line 744
            aload 5 /* connack */
            invokevirtual io.netty.handler.codec.mqtt.MqttConnAckMessage.variableHeader:()Lio/netty/handler/codec/mqtt/MqttConnAckVariableHeader;
            invokevirtual io.netty.handler.codec.mqtt.MqttConnAckVariableHeader.connectReturnCode:()Lio/netty/handler/codec/mqtt/MqttConnectReturnCode;
        13: .line 745
            aload 5 /* connack */
            invokevirtual io.netty.handler.codec.mqtt.MqttConnAckMessage.variableHeader:()Lio/netty/handler/codec/mqtt/MqttConnAckVariableHeader;
            invokevirtual io.netty.handler.codec.mqtt.MqttConnAckVariableHeader.isSessionPresent:()Z
        14: .line 743
            invokestatic io.vertx.mqtt.messages.MqttConnAckMessage.create:(Lio/netty/handler/codec/mqtt/MqttConnectReturnCode;Z)Lio/vertx/mqtt/messages/MqttConnAckMessage;
            astore 6 /* mqttConnAckMessage */
        start local 6 // io.vertx.mqtt.messages.MqttConnAckMessage mqttConnAckMessage
        15: .line 746
            aload 0 /* this */
            aload 6 /* mqttConnAckMessage */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.handleConnack:(Lio/vertx/mqtt/messages/MqttConnAckMessage;)V
        16: .line 747
            goto 49
        end local 6 // io.vertx.mqtt.messages.MqttConnAckMessage mqttConnAckMessage
        end local 5 // io.netty.handler.codec.mqtt.MqttConnAckMessage connack
        17: .line 751
      StackMap locals:
      StackMap stack:
            aload 3 /* mqttMessage */
            checkcast io.netty.handler.codec.mqtt.MqttPublishMessage
            astore 7 /* publish */
        start local 7 // io.netty.handler.codec.mqtt.MqttPublishMessage publish
        18: .line 752
            aload 7 /* publish */
            invokevirtual io.netty.handler.codec.mqtt.MqttPublishMessage.payload:()Lio/netty/buffer/ByteBuf;
            aload 1 /* chctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.alloc:()Lio/netty/buffer/ByteBufAllocator;
            invokestatic io.vertx.core.net.impl.VertxHandler.safeBuffer:(Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBufAllocator;)Lio/netty/buffer/ByteBuf;
            astore 8 /* newBuf */
        start local 8 // io.netty.buffer.ByteBuf newBuf
        19: .line 755
            aload 7 /* publish */
            invokevirtual io.netty.handler.codec.mqtt.MqttPublishMessage.variableHeader:()Lio/netty/handler/codec/mqtt/MqttPublishVariableHeader;
            invokevirtual io.netty.handler.codec.mqtt.MqttPublishVariableHeader.packetId:()I
        20: .line 756
            aload 7 /* publish */
            invokevirtual io.netty.handler.codec.mqtt.MqttPublishMessage.fixedHeader:()Lio/netty/handler/codec/mqtt/MqttFixedHeader;
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.qosLevel:()Lio/netty/handler/codec/mqtt/MqttQoS;
        21: .line 757
            aload 7 /* publish */
            invokevirtual io.netty.handler.codec.mqtt.MqttPublishMessage.fixedHeader:()Lio/netty/handler/codec/mqtt/MqttFixedHeader;
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.isDup:()Z
        22: .line 758
            aload 7 /* publish */
            invokevirtual io.netty.handler.codec.mqtt.MqttPublishMessage.fixedHeader:()Lio/netty/handler/codec/mqtt/MqttFixedHeader;
            invokevirtual io.netty.handler.codec.mqtt.MqttFixedHeader.isRetain:()Z
        23: .line 759
            aload 7 /* publish */
            invokevirtual io.netty.handler.codec.mqtt.MqttPublishMessage.variableHeader:()Lio/netty/handler/codec/mqtt/MqttPublishVariableHeader;
            invokevirtual io.netty.handler.codec.mqtt.MqttPublishVariableHeader.topicName:()Ljava/lang/String;
        24: .line 760
            aload 8 /* newBuf */
        25: .line 754
            invokestatic io.vertx.mqtt.messages.MqttPublishMessage.create:(ILio/netty/handler/codec/mqtt/MqttQoS;ZZLjava/lang/String;Lio/netty/buffer/ByteBuf;)Lio/vertx/mqtt/messages/MqttPublishMessage;
            astore 9 /* mqttPublishMessage */
        start local 9 // io.vertx.mqtt.messages.MqttPublishMessage mqttPublishMessage
        26: .line 761
            aload 0 /* this */
            aload 9 /* mqttPublishMessage */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.handlePublish:(Lio/vertx/mqtt/messages/MqttPublishMessage;)V
        27: .line 762
            goto 49
        end local 9 // io.vertx.mqtt.messages.MqttPublishMessage mqttPublishMessage
        end local 8 // io.netty.buffer.ByteBuf newBuf
        end local 7 // io.netty.handler.codec.mqtt.MqttPublishMessage publish
        28: .line 765
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* mqttMessage */
            invokevirtual io.netty.handler.codec.mqtt.MqttMessage.variableHeader:()Ljava/lang/Object;
            checkcast io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader.messageId:()I
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.handlePuback:(I)V
        29: .line 766
            goto 49
        30: .line 769
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* mqttMessage */
            invokevirtual io.netty.handler.codec.mqtt.MqttMessage.variableHeader:()Ljava/lang/Object;
            checkcast io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader.messageId:()I
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.handlePubrec:(I)V
        31: .line 770
            goto 49
        32: .line 773
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* mqttMessage */
            invokevirtual io.netty.handler.codec.mqtt.MqttMessage.variableHeader:()Ljava/lang/Object;
            checkcast io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader.messageId:()I
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.handlePubrel:(I)V
        33: .line 774
            goto 49
        34: .line 777
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* mqttMessage */
            invokevirtual io.netty.handler.codec.mqtt.MqttMessage.variableHeader:()Ljava/lang/Object;
            checkcast io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader.messageId:()I
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.handlePubcomp:(I)V
        35: .line 778
            goto 49
        36: .line 782
      StackMap locals:
      StackMap stack:
            aload 3 /* mqttMessage */
            checkcast io.netty.handler.codec.mqtt.MqttSubAckMessage
            astore 10 /* unsuback */
        start local 10 // io.netty.handler.codec.mqtt.MqttSubAckMessage unsuback
        37: .line 785
            aload 10 /* unsuback */
            invokevirtual io.netty.handler.codec.mqtt.MqttSubAckMessage.variableHeader:()Lio/netty/handler/codec/mqtt/MqttMessageIdVariableHeader;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader.messageId:()I
        38: .line 786
            aload 10 /* unsuback */
            invokevirtual io.netty.handler.codec.mqtt.MqttSubAckMessage.payload:()Lio/netty/handler/codec/mqtt/MqttSubAckPayload;
            invokevirtual io.netty.handler.codec.mqtt.MqttSubAckPayload.grantedQoSLevels:()Ljava/util/List;
        39: .line 784
            invokestatic io.vertx.mqtt.messages.MqttSubAckMessage.create:(ILjava/util/List;)Lio/vertx/mqtt/messages/MqttSubAckMessage;
            astore 11 /* mqttSubAckMessage */
        start local 11 // io.vertx.mqtt.messages.MqttSubAckMessage mqttSubAckMessage
        40: .line 787
            aload 0 /* this */
            aload 11 /* mqttSubAckMessage */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.handleSuback:(Lio/vertx/mqtt/messages/MqttSubAckMessage;)V
        41: .line 788
            goto 49
        end local 11 // io.vertx.mqtt.messages.MqttSubAckMessage mqttSubAckMessage
        end local 10 // io.netty.handler.codec.mqtt.MqttSubAckMessage unsuback
        42: .line 791
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* mqttMessage */
            invokevirtual io.netty.handler.codec.mqtt.MqttMessage.variableHeader:()Ljava/lang/Object;
            checkcast io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageIdVariableHeader.messageId:()I
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.handleUnsuback:(I)V
        43: .line 792
            goto 49
        44: .line 795
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.handlePingresp:()V
        45: .line 796
            goto 49
        46: .line 800
      StackMap locals:
      StackMap stack:
            aload 1 /* chctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.pipeline:()Lio/netty/channel/ChannelPipeline;
            new java.lang.Exception
            dup
            new java.lang.StringBuilder
            dup
            ldc "Wrong message 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 java.lang.Exception.<init>:(Ljava/lang/String;)V
            invokeinterface io.netty.channel.ChannelPipeline.fireExceptionCaught:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPipeline;
            pop
        end local 4 // io.netty.handler.codec.DecoderResult result
        end local 3 // io.netty.handler.codec.mqtt.MqttMessage mqttMessage
        47: .line 804
            goto 49
        48: .line 806
      StackMap locals:
      StackMap stack:
            aload 1 /* chctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.pipeline:()Lio/netty/channel/ChannelPipeline;
            new java.lang.Exception
            dup
            ldc "Wrong message type"
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
            invokeinterface io.netty.channel.ChannelPipeline.fireExceptionCaught:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPipeline;
            pop
        49: .line 808
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object msg
        end local 1 // io.netty.channel.ChannelHandlerContext chctx
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   50     0                this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0   50     1               chctx  Lio/netty/channel/ChannelHandlerContext;
            0   50     2                 msg  Ljava/lang/Object;
            2   47     3         mqttMessage  Lio/netty/handler/codec/mqtt/MqttMessage;
            3   47     4              result  Lio/netty/handler/codec/DecoderResult;
           12   17     5             connack  Lio/netty/handler/codec/mqtt/MqttConnAckMessage;
           15   17     6  mqttConnAckMessage  Lio/vertx/mqtt/messages/MqttConnAckMessage;
           18   28     7             publish  Lio/netty/handler/codec/mqtt/MqttPublishMessage;
           19   28     8              newBuf  Lio/netty/buffer/ByteBuf;
           26   28     9  mqttPublishMessage  Lio/vertx/mqtt/messages/MqttPublishMessage;
           37   42    10            unsuback  Lio/netty/handler/codec/mqtt/MqttSubAckMessage;
           40   42    11   mqttSubAckMessage  Lio/vertx/mqtt/messages/MqttSubAckMessage;
    MethodParameters:
       Name  Flags
      chctx  
      msg    

  private void handlePingresp();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 815
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.pingResponseHandler:()Lio/vertx/core/Handler;
            astore 1 /* handler */
        start local 1 // io.vertx.core.Handler handler
         1: .line 816
            aload 1 /* handler */
            ifnull 3
         2: .line 817
            aload 1 /* handler */
            aconst_null
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         3: .line 819
      StackMap locals: io.vertx.core.Handler
      StackMap stack:
            return
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/vertx/mqtt/impl/MqttClientImpl;
            1    4     1  handler  Lio/vertx/core/Handler<Ljava/lang/Void;>;

  private void handleUnsuback(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // int unsubackMessageId
         0: .line 828
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.unsubscribeCompletionHandler:()Lio/vertx/core/Handler;
            astore 2 /* handler */
        start local 2 // io.vertx.core.Handler handler
         1: .line 829
            aload 2 /* handler */
            ifnull 3
         2: .line 830
            aload 2 /* handler */
            iload 1 /* unsubackMessageId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         3: .line 832
      StackMap locals: io.vertx.core.Handler
      StackMap stack:
            return
        end local 2 // io.vertx.core.Handler handler
        end local 1 // int unsubackMessageId
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    4     1  unsubackMessageId  I
            1    4     2            handler  Lio/vertx/core/Handler<Ljava/lang/Integer;>;
    MethodParameters:
                   Name  Flags
      unsubackMessageId  

  private void handlePuback(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // int pubackMessageId
         0: .line 841
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 843
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.qos1outbound:Ljava/util/HashMap;
            iload 1 /* pubackMessageId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.netty.handler.codec.mqtt.MqttMessage
            astore 3 /* removedPacket */
        start local 3 // io.netty.handler.codec.mqtt.MqttMessage removedPacket
         2: .line 845
            aload 3 /* removedPacket */
            ifnonnull 6
         3: .line 846
            getstatic io.vertx.mqtt.impl.MqttClientImpl.log:Lio/vertx/core/logging/Logger;
            ldc "Received PUBACK packet without having related PUBLISH packet in storage"
            invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;)V
         4: .line 847
            aload 2
            monitorexit
         5: return
         6: .line 850
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl io.netty.handler.codec.mqtt.MqttMessage
      StackMap stack:
            aload 0 /* this */
            dup
            getfield io.vertx.mqtt.impl.MqttClientImpl.countInflightQueue:I
            iconst_1
            isub
            putfield io.vertx.mqtt.impl.MqttClientImpl.countInflightQueue:I
        end local 3 // io.netty.handler.codec.mqtt.MqttMessage removedPacket
         7: .line 841
            aload 2
            monitorexit
         8: goto 11
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl int io.vertx.mqtt.impl.MqttClientImpl
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 852
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.publishCompletionHandler:()Lio/vertx/core/Handler;
            astore 2 /* handler */
        start local 2 // io.vertx.core.Handler handler
        12: .line 853
            aload 2 /* handler */
            ifnull 14
        13: .line 854
            aload 2 /* handler */
            iload 1 /* pubackMessageId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        14: .line 856
      StackMap locals: io.vertx.core.Handler
      StackMap stack:
            return
        end local 2 // io.vertx.core.Handler handler
        end local 1 // int pubackMessageId
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0             this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0   15     1  pubackMessageId  I
            2    7     3    removedPacket  Lio/netty/handler/codec/mqtt/MqttMessage;
           12   15     2          handler  Lio/vertx/core/Handler<Ljava/lang/Integer;>;
      Exception table:
        from    to  target  type
           1     5       9  any
           6     8       9  any
           9    10       9  any
    MethodParameters:
                 Name  Flags
      pubackMessageId  

  private void handlePubcomp(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // int pubcompMessageId
         0: .line 865
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 866
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.qos2outbound:Ljava/util/HashMap;
            iload 1 /* pubcompMessageId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.netty.handler.codec.mqtt.MqttMessage
            astore 3 /* removedPacket */
        start local 3 // io.netty.handler.codec.mqtt.MqttMessage removedPacket
         2: .line 868
            aload 3 /* removedPacket */
            ifnonnull 6
         3: .line 869
            getstatic io.vertx.mqtt.impl.MqttClientImpl.log:Lio/vertx/core/logging/Logger;
            ldc "Received PUBCOMP packet without having related PUBREL packet in storage"
            invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;)V
         4: .line 870
            aload 2
            monitorexit
         5: return
         6: .line 873
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl io.netty.handler.codec.mqtt.MqttMessage
      StackMap stack:
            aload 0 /* this */
            dup
            getfield io.vertx.mqtt.impl.MqttClientImpl.countInflightQueue:I
            iconst_1
            isub
            putfield io.vertx.mqtt.impl.MqttClientImpl.countInflightQueue:I
        end local 3 // io.netty.handler.codec.mqtt.MqttMessage removedPacket
         7: .line 865
            aload 2
            monitorexit
         8: goto 11
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl int io.vertx.mqtt.impl.MqttClientImpl
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 875
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.publishCompletionHandler:()Lio/vertx/core/Handler;
            astore 2 /* handler */
        start local 2 // io.vertx.core.Handler handler
        12: .line 876
            aload 2 /* handler */
            ifnull 14
        13: .line 877
            aload 2 /* handler */
            iload 1 /* pubcompMessageId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        14: .line 879
      StackMap locals: io.vertx.core.Handler
      StackMap stack:
            return
        end local 2 // io.vertx.core.Handler handler
        end local 1 // int pubcompMessageId
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   15     0              this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0   15     1  pubcompMessageId  I
            2    7     3     removedPacket  Lio/netty/handler/codec/mqtt/MqttMessage;
           12   15     2           handler  Lio/vertx/core/Handler<Ljava/lang/Integer;>;
      Exception table:
        from    to  target  type
           1     5       9  any
           6     8       9  any
           9    10       9  any
    MethodParameters:
                  Name  Flags
      pubcompMessageId  

  private void handlePubrec(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // int pubrecMessageId
         0: .line 888
            aload 0 /* this */
            iload 1 /* pubrecMessageId */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.publishRelease:(I)V
         1: .line 889
            return
        end local 1 // int pubrecMessageId
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    2     1  pubrecMessageId  I
    MethodParameters:
                 Name  Flags
      pubrecMessageId  

  private void handleSuback(io.vertx.mqtt.messages.MqttSubAckMessage);
    descriptor: (Lio/vertx/mqtt/messages/MqttSubAckMessage;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // io.vertx.mqtt.messages.MqttSubAckMessage msg
         0: .line 898
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.subscribeCompletionHandler:()Lio/vertx/core/Handler;
            astore 2 /* handler */
        start local 2 // io.vertx.core.Handler handler
         1: .line 899
            aload 2 /* handler */
            ifnull 3
         2: .line 900
            aload 2 /* handler */
            aload 1 /* msg */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         3: .line 902
      StackMap locals: io.vertx.core.Handler
      StackMap stack:
            return
        end local 2 // io.vertx.core.Handler handler
        end local 1 // io.vertx.mqtt.messages.MqttSubAckMessage msg
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    4     1      msg  Lio/vertx/mqtt/messages/MqttSubAckMessage;
            1    4     2  handler  Lio/vertx/core/Handler<Lio/vertx/mqtt/messages/MqttSubAckMessage;>;
    MethodParameters:
      Name  Flags
      msg   

  private void handlePublish(io.vertx.mqtt.messages.MqttPublishMessage);
    descriptor: (Lio/vertx/mqtt/messages/MqttPublishMessage;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // io.vertx.mqtt.messages.MqttPublishMessage msg
         0: .line 912
            invokestatic io.vertx.mqtt.impl.MqttClientImpl.$SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttQoS:()[I
            aload 1 /* msg */
            invokeinterface io.vertx.mqtt.messages.MqttPublishMessage.qosLevel:()Lio/netty/handler/codec/mqtt/MqttQoS;
            invokevirtual io.netty.handler.codec.mqtt.MqttQoS.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 1
                    2: 5
                    3: 10
              default: 11
          }
         1: .line 915
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.publishHandler:()Lio/vertx/core/Handler;
            astore 2 /* handler */
        start local 2 // io.vertx.core.Handler handler
         2: .line 916
            aload 2 /* handler */
            ifnull 11
         3: .line 917
            aload 2 /* handler */
            aload 1 /* msg */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         4: .line 919
            goto 11
        end local 2 // io.vertx.core.Handler handler
         5: .line 922
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* msg */
            invokeinterface io.vertx.mqtt.messages.MqttPublishMessage.messageId:()I
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.publishAcknowledge:(I)V
         6: .line 923
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.publishHandler:()Lio/vertx/core/Handler;
            astore 2 /* handler */
        start local 2 // io.vertx.core.Handler handler
         7: .line 924
            aload 2 /* handler */
            ifnull 11
         8: .line 925
            aload 2 /* handler */
            aload 1 /* msg */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         9: .line 927
            goto 11
        end local 2 // io.vertx.core.Handler handler
        10: .line 930
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* msg */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.publishReceived:(Lio/vertx/mqtt/messages/MqttPublishMessage;)V
        11: .line 934
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.mqtt.messages.MqttPublishMessage msg
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0   12     1      msg  Lio/vertx/mqtt/messages/MqttPublishMessage;
            2    5     2  handler  Lio/vertx/core/Handler<Lio/vertx/mqtt/messages/MqttPublishMessage;>;
            7   10     2  handler  Lio/vertx/core/Handler<Lio/vertx/mqtt/messages/MqttPublishMessage;>;
    MethodParameters:
      Name  Flags
      msg   

  private void handlePubrel(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // int pubrelMessageId
         0: .line 943
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         1: .line 944
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.qos2inbound:Ljava/util/HashMap;
            iload 1 /* pubrelMessageId */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.mqtt.messages.MqttMessage
            astore 2 /* message */
        start local 2 // io.vertx.mqtt.messages.MqttMessage message
         2: .line 946
            aload 2 /* message */
            ifnonnull 6
         3: .line 947
            getstatic io.vertx.mqtt.impl.MqttClientImpl.log:Lio/vertx/core/logging/Logger;
            ldc "Received PUBREL packet without having related PUBREC packet in storage"
            invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;)V
         4: .line 948
            aload 3
            monitorexit
         5: return
         6: .line 950
      StackMap locals: io.vertx.mqtt.messages.MqttMessage io.vertx.mqtt.impl.MqttClientImpl
      StackMap stack:
            aload 0 /* this */
            iload 1 /* pubrelMessageId */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.publishComplete:(I)V
         7: .line 943
            aload 3
            monitorexit
         8: goto 11
        end local 2 // io.vertx.mqtt.messages.MqttMessage message
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl int top io.vertx.mqtt.impl.MqttClientImpl
      StackMap stack: java.lang.Throwable
         9: aload 3
            monitorexit
        10: athrow
        start local 2 // io.vertx.mqtt.messages.MqttMessage message
        11: .line 952
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl int io.vertx.mqtt.messages.MqttMessage
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.publishHandler:()Lio/vertx/core/Handler;
            astore 3 /* handler */
        start local 3 // io.vertx.core.Handler handler
        12: .line 953
            aload 3 /* handler */
            ifnull 14
        13: .line 954
            aload 3 /* handler */
            aload 2 /* message */
            checkcast io.vertx.mqtt.messages.MqttPublishMessage
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        14: .line 956
      StackMap locals: io.vertx.core.Handler
      StackMap stack:
            return
        end local 3 // io.vertx.core.Handler handler
        end local 2 // io.vertx.mqtt.messages.MqttMessage message
        end local 1 // int pubrelMessageId
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0             this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0   15     1  pubrelMessageId  I
            2    9     2          message  Lio/vertx/mqtt/messages/MqttMessage;
           11   15     2          message  Lio/vertx/mqtt/messages/MqttMessage;
           12   15     3          handler  Lio/vertx/core/Handler<Lio/vertx/mqtt/messages/MqttPublishMessage;>;
      Exception table:
        from    to  target  type
           1     5       9  any
           6     8       9  any
           9    10       9  any
    MethodParameters:
                 Name  Flags
      pubrelMessageId  

  private void handleConnack(io.vertx.mqtt.messages.MqttConnAckMessage);
    descriptor: (Lio/vertx/mqtt/messages/MqttConnAckMessage;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // io.vertx.mqtt.messages.MqttConnAckMessage msg
         0: .line 965
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 966
            aload 0 /* this */
            aload 1 /* msg */
            invokeinterface io.vertx.mqtt.messages.MqttConnAckMessage.code:()Lio/netty/handler/codec/mqtt/MqttConnectReturnCode;
            getstatic io.netty.handler.codec.mqtt.MqttConnectReturnCode.CONNECTION_ACCEPTED:Lio/netty/handler/codec/mqtt/MqttConnectReturnCode;
            if_acmpne 2
            iconst_1
            goto 3
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl io.vertx.mqtt.messages.MqttConnAckMessage io.vertx.mqtt.impl.MqttClientImpl
      StackMap stack: io.vertx.mqtt.impl.MqttClientImpl
         2: iconst_0
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl io.vertx.mqtt.messages.MqttConnAckMessage io.vertx.mqtt.impl.MqttClientImpl
      StackMap stack: io.vertx.mqtt.impl.MqttClientImpl int
         3: putfield io.vertx.mqtt.impl.MqttClientImpl.isConnected:Z
         4: .line 965
            aload 2
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 969
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.connectHandler:()Lio/vertx/core/Handler;
            astore 2 /* handler */
        start local 2 // io.vertx.core.Handler handler
         9: .line 970
            aload 2 /* handler */
            ifnull 16
        10: .line 972
            aload 1 /* msg */
            invokeinterface io.vertx.mqtt.messages.MqttConnAckMessage.code:()Lio/netty/handler/codec/mqtt/MqttConnectReturnCode;
            getstatic io.netty.handler.codec.mqtt.MqttConnectReturnCode.CONNECTION_ACCEPTED:Lio/netty/handler/codec/mqtt/MqttConnectReturnCode;
            if_acmpne 13
        11: .line 973
            aload 2 /* handler */
            aload 1 /* msg */
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        12: .line 974
            goto 16
        13: .line 975
      StackMap locals: io.vertx.core.Handler
      StackMap stack:
            new io.vertx.mqtt.MqttConnectionException
            dup
            aload 1 /* msg */
            invokeinterface io.vertx.mqtt.messages.MqttConnAckMessage.code:()Lio/netty/handler/codec/mqtt/MqttConnectReturnCode;
            invokespecial io.vertx.mqtt.MqttConnectionException.<init>:(Lio/netty/handler/codec/mqtt/MqttConnectReturnCode;)V
            astore 3 /* exception */
        start local 3 // io.vertx.mqtt.MqttConnectionException exception
        14: .line 976
            getstatic io.vertx.mqtt.impl.MqttClientImpl.log:Lio/vertx/core/logging/Logger;
            ldc "Connection refused by the server - code: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* msg */
            invokeinterface io.vertx.mqtt.messages.MqttConnAckMessage.code:()Lio/netty/handler/codec/mqtt/MqttConnectReturnCode;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;)V
        15: .line 977
            aload 2 /* handler */
            aload 3 /* exception */
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 3 // io.vertx.mqtt.MqttConnectionException exception
        16: .line 980
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.core.Handler handler
        end local 1 // io.vertx.mqtt.messages.MqttConnAckMessage msg
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0   17     1        msg  Lio/vertx/mqtt/messages/MqttConnAckMessage;
            9   17     2    handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/mqtt/messages/MqttConnAckMessage;>;>;
           14   16     3  exception  Lio/vertx/mqtt/MqttConnectionException;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    MethodParameters:
      Name  Flags
      msg   

  private void handleException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // java.lang.Throwable t
         0: .line 989
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.exceptionHandler:()Lio/vertx/core/Handler;
            astore 2 /* handler */
        start local 2 // io.vertx.core.Handler handler
         1: .line 990
            aload 2 /* handler */
            ifnull 3
         2: .line 991
            aload 2 /* handler */
            aload 1 /* t */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         3: .line 993
      StackMap locals: io.vertx.core.Handler
      StackMap stack:
            return
        end local 2 // io.vertx.core.Handler handler
        end local 1 // java.lang.Throwable t
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    4     1        t  Ljava/lang/Throwable;
            1    4     2  handler  Lio/vertx/core/Handler<Ljava/lang/Throwable;>;
    MethodParameters:
      Name  Flags
      t     

  private java.lang.String generateRandomClientId();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
         0: .line 999
            invokestatic java.util.UUID.randomUUID:()Ljava/util/UUID;
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            areturn
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;

  private boolean isValidTopicName(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // java.lang.String topicName
         0: .line 1009
            aload 0 /* this */
            aload 1 /* topicName */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.isValidStringSizeInUTF8:(Ljava/lang/String;)Z
            ifne 2
         1: .line 1010
            iconst_0
            ireturn
         2: .line 1013
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.mqtt.impl.MqttClientImpl.validTopicNamePattern:Ljava/util/regex/Pattern;
            aload 1 /* topicName */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 2 /* matcher */
        start local 2 // java.util.regex.Matcher matcher
         3: .line 1014
            aload 2 /* matcher */
            invokevirtual java.util.regex.Matcher.find:()Z
            ireturn
        end local 2 // java.util.regex.Matcher matcher
        end local 1 // java.lang.String topicName
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    4     1  topicName  Ljava/lang/String;
            3    4     2    matcher  Ljava/util/regex/Matcher;
    MethodParameters:
           Name  Flags
      topicName  

  private boolean isValidTopicFilter(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // java.lang.String topicFilter
         0: .line 1024
            aload 0 /* this */
            aload 1 /* topicFilter */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.isValidStringSizeInUTF8:(Ljava/lang/String;)Z
            ifne 2
         1: .line 1025
            iconst_0
            ireturn
         2: .line 1028
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.mqtt.impl.MqttClientImpl.validTopicFilterPattern:Ljava/util/regex/Pattern;
            aload 1 /* topicFilter */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 2 /* matcher */
        start local 2 // java.util.regex.Matcher matcher
         3: .line 1029
            aload 2 /* matcher */
            invokevirtual java.util.regex.Matcher.find:()Z
            ireturn
        end local 2 // java.util.regex.Matcher matcher
        end local 1 // java.lang.String topicFilter
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    4     1  topicFilter  Ljava/lang/String;
            3    4     2      matcher  Ljava/util/regex/Matcher;
    MethodParameters:
             Name  Flags
      topicFilter  

  private boolean isValidStringSizeInUTF8(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // java.lang.String string
         0: .line 1039
            aload 1 /* string */
            ldc "UTF-8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            arraylength
            istore 2 /* length */
        start local 2 // int length
         1: .line 1040
            iload 2 /* length */
            iconst_1
            if_icmplt 2
            iload 2 /* length */
            ldc 65535
            if_icmpgt 2
            iconst_1
            ireturn
      StackMap locals: int
      StackMap stack:
         2: iconst_0
         3: ireturn
        end local 2 // int length
         4: .line 1041
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl java.lang.String
      StackMap stack: java.io.UnsupportedEncodingException
            astore 2 /* e */
        start local 2 // java.io.UnsupportedEncodingException e
         5: .line 1042
            getstatic io.vertx.mqtt.impl.MqttClientImpl.log:Lio/vertx/core/logging/Logger;
            ldc "UTF-8 charset is not supported"
            aload 2 /* e */
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 2 // java.io.UnsupportedEncodingException e
         6: .line 1045
            iconst_0
            ireturn
        end local 1 // java.lang.String string
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    7     1  string  Ljava/lang/String;
            1    4     2  length  I
            5    6     2       e  Ljava/io/UnsupportedEncodingException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.io.UnsupportedEncodingException
    MethodParameters:
        Name  Flags
      string  

  static int[] $SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttQoS();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 77
            getstatic io.vertx.mqtt.impl.MqttClientImpl.$SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttQoS:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic io.netty.handler.codec.mqtt.MqttQoS.values:()[Lio/netty/handler/codec/mqtt/MqttQoS;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttQoS.AT_LEAST_ONCE:Lio/netty/handler/codec/mqtt/MqttQoS;
            invokevirtual io.netty.handler.codec.mqtt.MqttQoS.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttQoS.AT_MOST_ONCE:Lio/netty/handler/codec/mqtt/MqttQoS;
            invokevirtual io.netty.handler.codec.mqtt.MqttQoS.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttQoS.EXACTLY_ONCE:Lio/netty/handler/codec/mqtt/MqttQoS;
            invokevirtual io.netty.handler.codec.mqtt.MqttQoS.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttQoS.FAILURE:Lio/netty/handler/codec/mqtt/MqttQoS;
            invokevirtual io.netty.handler.codec.mqtt.MqttQoS.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic io.vertx.mqtt.impl.MqttClientImpl.$SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttQoS:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError

  static int[] $SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttMessageType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 77
            getstatic io.vertx.mqtt.impl.MqttClientImpl.$SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttMessageType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic io.netty.handler.codec.mqtt.MqttMessageType.values:()[Lio/netty/handler/codec/mqtt/MqttMessageType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.CONNACK:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.CONNECT:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.DISCONNECT:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 14
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PINGREQ:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 12
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PINGRESP:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 13
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PUBACK:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            iconst_4
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PUBCOMP:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 7
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PUBLISH:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            iconst_3
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PUBREC:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            iconst_5
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.PUBREL:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 6
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.SUBACK:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 9
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.SUBSCRIBE:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 8
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.UNSUBACK:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 11
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.UNSUBSCRIBE:Lio/netty/handler/codec/mqtt/MqttMessageType;
            invokevirtual io.netty.handler.codec.mqtt.MqttMessageType.ordinal:()I
            bipush 10
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            dup
            putstatic io.vertx.mqtt.impl.MqttClientImpl.$SWITCH_TABLE$io$netty$handler$codec$mqtt$MqttMessageType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError

  private void lambda$0(java.lang.String, int, io.vertx.core.Handler, io.vertx.core.AsyncResult);
    descriptor: (Ljava/lang/String;ILio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=11, locals=12, args_size=5
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 4 // io.vertx.core.AsyncResult done
         0: .line 173
            aload 4 /* done */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 5
         1: .line 174
            getstatic io.vertx.mqtt.impl.MqttClientImpl.log:Lio/vertx/core/logging/Logger;
            ldc "Can't connect to %s:%d"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1
            aastore
            dup
            iconst_1
            iload 2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 4 /* done */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         2: .line 175
            aload 3
            ifnull 47
         3: .line 176
            aload 3
            aload 4 /* done */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         4: .line 178
            goto 47
         5: .line 179
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.mqtt.impl.MqttClientImpl.log:Lio/vertx/core/logging/Logger;
            ldc "Connection with %s:%d established successfully"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1
            aastore
            dup
            iconst_1
            iload 2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.info:(Ljava/lang/Object;)V
         6: .line 181
            aload 4 /* done */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.core.impl.NetSocketInternal
            astore 5 /* soi */
        start local 5 // io.vertx.core.impl.NetSocketInternal soi
         7: .line 182
            aload 5 /* soi */
            invokeinterface io.vertx.core.impl.NetSocketInternal.channelHandlerContext:()Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.pipeline:()Lio/netty/channel/ChannelPipeline;
            astore 6 /* pipeline */
        start local 6 // io.netty.channel.ChannelPipeline pipeline
         8: .line 183
            aload 0 /* this */
            aload 3
            putfield io.vertx.mqtt.impl.MqttClientImpl.connectHandler:Lio/vertx/core/Handler;
         9: .line 185
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.isAutoGeneratedClientId:()Z
            ifeq 11
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getClientId:()Ljava/lang/String;
            ifnull 10
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getClientId:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 11
        10: .line 186
      StackMap locals: io.vertx.core.impl.NetSocketInternal io.netty.channel.ChannelPipeline
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.generateRandomClientId:()Ljava/lang/String;
            invokevirtual io.vertx.mqtt.MqttClientOptions.setClientId:(Ljava/lang/String;)Lio/vertx/mqtt/MqttClientOptions;
            pop
        11: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* pipeline */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.initChannel:(Lio/netty/channel/ChannelPipeline;)V
        12: .line 190
            aload 0 /* this */
            aload 5 /* soi */
            putfield io.vertx.mqtt.impl.MqttClientImpl.connection:Lio/vertx/core/impl/NetSocketInternal;
        13: .line 191
            aload 0 /* this */
            invokestatic io.vertx.core.Vertx.currentContext:()Lio/vertx/core/Context;
            putfield io.vertx.mqtt.impl.MqttClientImpl.ctx:Lio/vertx/core/Context;
        14: .line 193
            aload 5 /* soi */
            aload 0 /* this */
            aload 5 /* soi */
            invokedynamic handle(Lio/vertx/mqtt/impl/MqttClientImpl;Lio/vertx/core/impl/NetSocketInternal;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/mqtt/impl/MqttClientImpl.lambda$1(Lio/vertx/core/impl/NetSocketInternal;Ljava/lang/Object;)V (7)
                  (Ljava/lang/Object;)V
            invokeinterface io.vertx.core.impl.NetSocketInternal.messageHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/impl/NetSocketInternal;
            pop
        15: .line 194
            aload 5 /* soi */
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/mqtt/impl/MqttClientImpl;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/mqtt/impl/MqttClientImpl.lambda$2(Ljava/lang/Void;)V (7)
                  (Ljava/lang/Void;)V
            invokeinterface io.vertx.core.impl.NetSocketInternal.closeHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/net/NetSocket;
            pop
        16: .line 197
            aload 5 /* soi */
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/mqtt/impl/MqttClientImpl;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/mqtt/impl/MqttClientImpl.handleException(Ljava/lang/Throwable;)V (7)
                  (Ljava/lang/Throwable;)V
            invokeinterface io.vertx.core.impl.NetSocketInternal.exceptionHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/net/NetSocket;
            pop
        17: .line 199
            new io.netty.handler.codec.mqtt.MqttFixedHeader
            dup
            getstatic io.netty.handler.codec.mqtt.MqttMessageType.CONNECT:Lio/netty/handler/codec/mqtt/MqttMessageType;
        18: .line 200
            iconst_0
        19: .line 201
            getstatic io.netty.handler.codec.mqtt.MqttQoS.AT_MOST_ONCE:Lio/netty/handler/codec/mqtt/MqttQoS;
        20: .line 202
            iconst_0
        21: .line 203
            iconst_0
        22: .line 199
            invokespecial io.netty.handler.codec.mqtt.MqttFixedHeader.<init>:(Lio/netty/handler/codec/mqtt/MqttMessageType;ZLio/netty/handler/codec/mqtt/MqttQoS;ZI)V
            astore 8 /* fixedHeader */
        start local 8 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
        23: .line 205
            new io.netty.handler.codec.mqtt.MqttConnectVariableHeader
            dup
        24: .line 206
            ldc "MQTT"
        25: .line 207
            iconst_4
        26: .line 208
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.hasUsername:()Z
        27: .line 209
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.hasPassword:()Z
        28: .line 210
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.isWillRetain:()Z
        29: .line 211
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getWillQoS:()I
        30: .line 212
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.isWillFlag:()Z
        31: .line 213
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.isCleanSession:()Z
        32: .line 214
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getKeepAliveTimeSeconds:()I
        33: .line 205
            invokespecial io.netty.handler.codec.mqtt.MqttConnectVariableHeader.<init>:(Ljava/lang/String;IZZZIZZI)V
            astore 9 /* variableHeader */
        start local 9 // io.netty.handler.codec.mqtt.MqttConnectVariableHeader variableHeader
        34: .line 217
            new io.netty.handler.codec.mqtt.MqttConnectPayload
            dup
        35: .line 218
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getClientId:()Ljava/lang/String;
            ifnonnull 36
            ldc ""
            goto 37
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl java.lang.String int io.vertx.core.Handler io.vertx.core.AsyncResult io.vertx.core.impl.NetSocketInternal io.netty.channel.ChannelPipeline top io.netty.handler.codec.mqtt.MqttFixedHeader io.netty.handler.codec.mqtt.MqttConnectVariableHeader
      StackMap stack: new 34 new 34
        36: aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getClientId:()Ljava/lang/String;
        37: .line 219
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl java.lang.String int io.vertx.core.Handler io.vertx.core.AsyncResult io.vertx.core.impl.NetSocketInternal io.netty.channel.ChannelPipeline top io.netty.handler.codec.mqtt.MqttFixedHeader io.netty.handler.codec.mqtt.MqttConnectVariableHeader
      StackMap stack: new 34 new 34 java.lang.String
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getWillTopic:()Ljava/lang/String;
        38: .line 220
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getWillMessage:()Ljava/lang/String;
            ifnull 39
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getWillMessage:()Ljava/lang/String;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            goto 40
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl java.lang.String int io.vertx.core.Handler io.vertx.core.AsyncResult io.vertx.core.impl.NetSocketInternal io.netty.channel.ChannelPipeline top io.netty.handler.codec.mqtt.MqttFixedHeader io.netty.handler.codec.mqtt.MqttConnectVariableHeader
      StackMap stack: new 34 new 34 java.lang.String java.lang.String
        39: aconst_null
        40: .line 221
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl java.lang.String int io.vertx.core.Handler io.vertx.core.AsyncResult io.vertx.core.impl.NetSocketInternal io.netty.channel.ChannelPipeline top io.netty.handler.codec.mqtt.MqttFixedHeader io.netty.handler.codec.mqtt.MqttConnectVariableHeader
      StackMap stack: new 34 new 34 java.lang.String java.lang.String byte[]
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.hasUsername:()Z
            ifeq 41
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getUsername:()Ljava/lang/String;
            goto 42
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl java.lang.String int io.vertx.core.Handler io.vertx.core.AsyncResult io.vertx.core.impl.NetSocketInternal io.netty.channel.ChannelPipeline top io.netty.handler.codec.mqtt.MqttFixedHeader io.netty.handler.codec.mqtt.MqttConnectVariableHeader
      StackMap stack: new 34 new 34 java.lang.String java.lang.String byte[]
        41: aconst_null
        42: .line 222
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl java.lang.String int io.vertx.core.Handler io.vertx.core.AsyncResult io.vertx.core.impl.NetSocketInternal io.netty.channel.ChannelPipeline top io.netty.handler.codec.mqtt.MqttFixedHeader io.netty.handler.codec.mqtt.MqttConnectVariableHeader
      StackMap stack: new 34 new 34 java.lang.String java.lang.String byte[] java.lang.String
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.hasPassword:()Z
            ifeq 43
            aload 0 /* this */
            getfield io.vertx.mqtt.impl.MqttClientImpl.options:Lio/vertx/mqtt/MqttClientOptions;
            invokevirtual io.vertx.mqtt.MqttClientOptions.getPassword:()Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            goto 44
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl java.lang.String int io.vertx.core.Handler io.vertx.core.AsyncResult io.vertx.core.impl.NetSocketInternal io.netty.channel.ChannelPipeline top io.netty.handler.codec.mqtt.MqttFixedHeader io.netty.handler.codec.mqtt.MqttConnectVariableHeader
      StackMap stack: new 34 new 34 java.lang.String java.lang.String byte[] java.lang.String
        43: aconst_null
        44: .line 217
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl java.lang.String int io.vertx.core.Handler io.vertx.core.AsyncResult io.vertx.core.impl.NetSocketInternal io.netty.channel.ChannelPipeline top io.netty.handler.codec.mqtt.MqttFixedHeader io.netty.handler.codec.mqtt.MqttConnectVariableHeader
      StackMap stack: new 34 new 34 java.lang.String java.lang.String byte[] java.lang.String byte[]
            invokespecial io.netty.handler.codec.mqtt.MqttConnectPayload.<init>:(Ljava/lang/String;Ljava/lang/String;[BLjava/lang/String;[B)V
            astore 10 /* payload */
        start local 10 // io.netty.handler.codec.mqtt.MqttConnectPayload payload
        45: .line 225
            aload 8 /* fixedHeader */
            aload 9 /* variableHeader */
            aload 10 /* payload */
            invokestatic io.netty.handler.codec.mqtt.MqttMessageFactory.newMessage:(Lio/netty/handler/codec/mqtt/MqttFixedHeader;Ljava/lang/Object;Ljava/lang/Object;)Lio/netty/handler/codec/mqtt/MqttMessage;
            astore 11 /* connect */
        start local 11 // io.netty.handler.codec.mqtt.MqttMessage connect
        46: .line 227
            aload 0 /* this */
            aload 11 /* connect */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.write:(Lio/netty/handler/codec/mqtt/MqttMessage;)V
        end local 11 // io.netty.handler.codec.mqtt.MqttMessage connect
        end local 10 // io.netty.handler.codec.mqtt.MqttConnectPayload payload
        end local 9 // io.netty.handler.codec.mqtt.MqttConnectVariableHeader variableHeader
        end local 8 // io.netty.handler.codec.mqtt.MqttFixedHeader fixedHeader
        end local 6 // io.netty.channel.ChannelPipeline pipeline
        end local 5 // io.vertx.core.impl.NetSocketInternal soi
        47: .line 230
      StackMap locals: io.vertx.mqtt.impl.MqttClientImpl java.lang.String int io.vertx.core.Handler io.vertx.core.AsyncResult
      StackMap stack:
            return
        end local 4 // io.vertx.core.AsyncResult done
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   48     0            this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0   48     4            done  Lio/vertx/core/AsyncResult<Lio/vertx/core/net/NetSocket;>;
            7   47     5             soi  Lio/vertx/core/impl/NetSocketInternal;
            8   47     6        pipeline  Lio/netty/channel/ChannelPipeline;
           23   47     8     fixedHeader  Lio/netty/handler/codec/mqtt/MqttFixedHeader;
           34   47     9  variableHeader  Lio/netty/handler/codec/mqtt/MqttConnectVariableHeader;
           45   47    10         payload  Lio/netty/handler/codec/mqtt/MqttConnectPayload;
           46   47    11         connect  Lio/netty/handler/codec/mqtt/MqttMessage;

  private static void lambda$4(io.vertx.core.Handler, io.vertx.mqtt.MqttException, java.lang.Void);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/mqtt/MqttException;Ljava/lang/Void;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 2 // java.lang.Void v
         0: .line 288
            aload 0
            aload 1
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
            return
        end local 2 // java.lang.Void v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     2     v  Ljava/lang/Void;

  private static void lambda$5(io.vertx.core.Handler, io.vertx.mqtt.MqttException, java.lang.Void);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/mqtt/MqttException;Ljava/lang/Void;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 2 // java.lang.Void v
         0: .line 298
            aload 0
            aload 1
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
            return
        end local 2 // java.lang.Void v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     2     v  Ljava/lang/Void;

  private boolean lambda$6(java.util.Map$Entry);
    descriptor: (Ljava/util/Map$Entry;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // java.util.Map$Entry e
         0: .line 407
            aload 0 /* this */
            aload 1 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.isValidTopicFilter:(Ljava/lang/String;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.util.Map$Entry e
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    3     1     e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Integer;>;

  private static io.netty.handler.codec.mqtt.MqttTopicSubscription lambda$9(java.util.Map$Entry);
    descriptor: (Ljava/util/Map$Entry;)Lio/netty/handler/codec/mqtt/MqttTopicSubscription;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.util.Map$Entry e
         0: .line 430
            new io.netty.handler.codec.mqtt.MqttTopicSubscription
            dup
            aload 0 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 0 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokestatic io.netty.handler.codec.mqtt.MqttQoS.valueOf:(I)Lio/netty/handler/codec/mqtt/MqttQoS;
            invokespecial io.netty.handler.codec.mqtt.MqttTopicSubscription.<init>:(Ljava/lang/String;Lio/netty/handler/codec/mqtt/MqttQoS;)V
            areturn
        end local 0 // java.util.Map$Entry e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Integer;>;

  private void lambda$1(io.vertx.core.impl.NetSocketInternal, java.lang.Object);
    descriptor: (Lio/vertx/core/impl/NetSocketInternal;Ljava/lang/Object;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 2 // java.lang.Object msg
         0: .line 193
            aload 0 /* this */
            aload 1
            invokeinterface io.vertx.core.impl.NetSocketInternal.channelHandlerContext:()Lio/netty/channel/ChannelHandlerContext;
            aload 2 /* msg */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.handleMessage:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
            return
        end local 2 // java.lang.Object msg
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    1     2   msg  Ljava/lang/Object;

  private void lambda$2(java.lang.Void);
    descriptor: (Ljava/lang/Void;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.mqtt.impl.MqttClientImpl this
        start local 1 // java.lang.Void v
         0: .line 194
            aload 0 /* this */
            invokevirtual io.vertx.mqtt.impl.MqttClientImpl.handleClosed:()V
            return
        end local 1 // java.lang.Void v
        end local 0 // io.vertx.mqtt.impl.MqttClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/mqtt/impl/MqttClientImpl;
            0    1     1     v  Ljava/lang/Void;
}
SourceFile: "MqttClientImpl.java"
NestMembers:
  io.vertx.mqtt.impl.MqttClientImpl$1
InnerClasses:
  io.vertx.mqtt.impl.MqttClientImpl$1
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map