public class io.vertx.core.http.impl.HttpClientImpl implements io.vertx.core.http.HttpClient, io.vertx.core.spi.metrics.MetricsProvider, io.vertx.core.Closeable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.core.http.impl.HttpClientImpl
  super_class: java.lang.Object
{
  private static final java.util.regex.Pattern ABS_URI_START_PATTERN;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.function.Function<io.vertx.core.http.HttpClientResponse, io.vertx.core.Future<io.vertx.core.http.RequestOptions>> DEFAULT_HANDLER;
    descriptor: Ljava/util/function/Function;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/Function<Lio/vertx/core/http/HttpClientResponse;Lio/vertx/core/Future<Lio/vertx/core/http/RequestOptions;>;>;

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

  private static final java.util.function.Consumer<io.vertx.core.net.impl.clientconnection.Endpoint<io.vertx.core.http.impl.HttpClientConnection>> EXPIRED_CHECKER;
    descriptor: Ljava/util/function/Consumer;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/Consumer<Lio/vertx/core/net/impl/clientconnection/Endpoint<Lio/vertx/core/http/impl/HttpClientConnection;>;>;

  private final io.vertx.core.impl.VertxInternal vertx;
    descriptor: Lio/vertx/core/impl/VertxInternal;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.channel.group.ChannelGroup channelGroup;
    descriptor: Lio/netty/channel/group/ChannelGroup;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.core.http.HttpClientOptions options;
    descriptor: Lio/vertx/core/http/HttpClientOptions;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.core.net.impl.clientconnection.ConnectionManager<io.vertx.core.http.impl.EndpointKey, io.vertx.core.http.impl.HttpClientConnection> webSocketCM;
    descriptor: Lio/vertx/core/net/impl/clientconnection/ConnectionManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lio/vertx/core/net/impl/clientconnection/ConnectionManager<Lio/vertx/core/http/impl/EndpointKey;Lio/vertx/core/http/impl/HttpClientConnection;>;

  private final io.vertx.core.net.impl.clientconnection.ConnectionManager<io.vertx.core.http.impl.EndpointKey, io.vertx.core.http.impl.HttpClientConnection> httpCM;
    descriptor: Lio/vertx/core/net/impl/clientconnection/ConnectionManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lio/vertx/core/net/impl/clientconnection/ConnectionManager<Lio/vertx/core/http/impl/EndpointKey;Lio/vertx/core/http/impl/HttpClientConnection;>;

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

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

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

  private final io.vertx.core.spi.metrics.HttpClientMetrics metrics;
    descriptor: Lio/vertx/core/spi/metrics/HttpClientMetrics;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final io.vertx.core.impl.CloseFuture closeFuture;
    descriptor: Lio/vertx/core/impl/CloseFuture;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private long timerID;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private volatile io.vertx.core.Handler<io.vertx.core.http.HttpConnection> connectionHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Lio/vertx/core/Handler<Lio/vertx/core/http/HttpConnection;>;

  private volatile java.util.function.Function<io.vertx.core.http.HttpClientResponse, io.vertx.core.Future<io.vertx.core.http.RequestOptions>> redirectHandler;
    descriptor: Ljava/util/function/Function;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Ljava/util/function/Function<Lio/vertx/core/http/HttpClientResponse;Lio/vertx/core/Future<Lio/vertx/core/http/RequestOptions;>;>;

  private static volatile int[] $SWITCH_TABLE$io$vertx$core$http$HttpVersion;
    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 63
            ldc "^\\p{Alpha}[\\p{Alpha}\\p{Digit}+.\\-]*:"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic io.vertx.core.http.impl.HttpClientImpl.ABS_URI_START_PATTERN:Ljava/util/regex/Pattern;
         1: .line 65
            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/core/http/impl/HttpClientImpl.lambda$0(Lio/vertx/core/http/HttpClientResponse;)Lio/vertx/core/Future; (6)
                  (Lio/vertx/core/http/HttpClientResponse;)Lio/vertx/core/Future;
            putstatic io.vertx.core.http.impl.HttpClientImpl.DEFAULT_HANDLER:Ljava/util/function/Function;
         2: .line 116
            ldc Lio/vertx/core/http/impl/HttpClientImpl;
            invokestatic io.vertx.core.impl.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/impl/logging/Logger;
            putstatic io.vertx.core.http.impl.HttpClientImpl.log:Lio/vertx/core/impl/logging/Logger;
         3: .line 117
            invokedynamic accept()Ljava/util/function/Consumer;
              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/core/http/impl/HttpClientImpl.lambda$1(Lio/vertx/core/net/impl/clientconnection/Endpoint;)V (6)
                  (Lio/vertx/core/net/impl/clientconnection/Endpoint;)V
            putstatic io.vertx.core.http.impl.HttpClientImpl.EXPIRED_CHECKER:Ljava/util/function/Consumer;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(io.vertx.core.impl.VertxInternal, io.vertx.core.http.HttpClientOptions, io.vertx.core.impl.CloseFuture);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Lio/vertx/core/http/HttpClientOptions;Lio/vertx/core/impl/CloseFuture;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.impl.VertxInternal vertx
        start local 2 // io.vertx.core.http.HttpClientOptions options
        start local 3 // io.vertx.core.impl.CloseFuture closeFuture
         0: .line 136
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 134
            aload 0 /* this */
            getstatic io.vertx.core.http.impl.HttpClientImpl.DEFAULT_HANDLER:Ljava/util/function/Function;
            putfield io.vertx.core.http.impl.HttpClientImpl.redirectHandler:Ljava/util/function/Function;
         2: .line 137
            aload 0 /* this */
            aload 1 /* vertx */
            putfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
         3: .line 138
            aload 0 /* this */
            aload 1 /* vertx */
            invokeinterface io.vertx.core.impl.VertxInternal.metricsSPI:()Lio/vertx/core/spi/metrics/VertxMetrics;
            ifnull 4
            aload 1 /* vertx */
            invokeinterface io.vertx.core.impl.VertxInternal.metricsSPI:()Lio/vertx/core/spi/metrics/VertxMetrics;
            aload 2 /* options */
            invokeinterface io.vertx.core.spi.metrics.VertxMetrics.createHttpClientMetrics:(Lio/vertx/core/http/HttpClientOptions;)Lio/vertx/core/spi/metrics/HttpClientMetrics;
            goto 5
      StackMap locals: io.vertx.core.http.impl.HttpClientImpl io.vertx.core.impl.VertxInternal io.vertx.core.http.HttpClientOptions io.vertx.core.impl.CloseFuture
      StackMap stack: io.vertx.core.http.impl.HttpClientImpl
         4: aconst_null
      StackMap locals: io.vertx.core.http.impl.HttpClientImpl io.vertx.core.impl.VertxInternal io.vertx.core.http.HttpClientOptions io.vertx.core.impl.CloseFuture
      StackMap stack: io.vertx.core.http.impl.HttpClientImpl io.vertx.core.spi.metrics.HttpClientMetrics
         5: putfield io.vertx.core.http.impl.HttpClientImpl.metrics:Lio/vertx/core/spi/metrics/HttpClientMetrics;
         6: .line 139
            aload 0 /* this */
            new io.vertx.core.http.HttpClientOptions
            dup
            aload 2 /* options */
            invokespecial io.vertx.core.http.HttpClientOptions.<init>:(Lio/vertx/core/http/HttpClientOptions;)V
            putfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
         7: .line 140
            aload 0 /* this */
            new io.netty.channel.group.DefaultChannelGroup
            dup
            aload 1 /* vertx */
            invokeinterface io.vertx.core.impl.VertxInternal.getAcceptorEventLoopGroup:()Lio/netty/channel/EventLoopGroup;
            invokeinterface io.netty.channel.EventLoopGroup.next:()Lio/netty/channel/EventLoop;
            invokespecial io.netty.channel.group.DefaultChannelGroup.<init>:(Lio/netty/util/concurrent/EventExecutor;)V
            putfield io.vertx.core.http.impl.HttpClientImpl.channelGroup:Lio/netty/channel/group/ChannelGroup;
         8: .line 141
            aload 0 /* this */
            aload 3 /* closeFuture */
            putfield io.vertx.core.http.impl.HttpClientImpl.closeFuture:Lio/vertx/core/impl/CloseFuture;
         9: .line 142
            aload 2 /* options */
            invokevirtual io.vertx.core.http.HttpClientOptions.getAlpnVersions:()Ljava/util/List;
            astore 4 /* alpnVersions */
        start local 4 // java.util.List alpnVersions
        10: .line 143
            aload 4 /* alpnVersions */
            ifnull 11
            aload 4 /* alpnVersions */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 15
        11: .line 144
      StackMap locals: java.util.List
      StackMap stack:
            invokestatic io.vertx.core.http.impl.HttpClientImpl.$SWITCH_TABLE$io$vertx$core$http$HttpVersion:()[I
            aload 2 /* options */
            invokevirtual io.vertx.core.http.HttpClientOptions.getProtocolVersion:()Lio/vertx/core/http/HttpVersion;
            invokevirtual io.vertx.core.http.HttpVersion.ordinal:()I
            iaload
            tableswitch { // 3 - 3
                    3: 12
              default: 14
          }
        12: .line 146
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray io.vertx.core.http.HttpVersion
            dup
            iconst_0
            getstatic io.vertx.core.http.HttpVersion.HTTP_2:Lio/vertx/core/http/HttpVersion;
            aastore
            dup
            iconst_1
            getstatic io.vertx.core.http.HttpVersion.HTTP_1_1:Lio/vertx/core/http/HttpVersion;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            astore 4 /* alpnVersions */
        13: .line 147
            goto 15
        14: .line 149
      StackMap locals:
      StackMap stack:
            aload 2 /* options */
            invokevirtual io.vertx.core.http.HttpClientOptions.getProtocolVersion:()Lio/vertx/core/http/HttpVersion;
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            astore 4 /* alpnVersions */
        15: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* options */
            invokevirtual io.vertx.core.http.HttpClientOptions.isKeepAlive:()Z
            putfield io.vertx.core.http.impl.HttpClientImpl.keepAlive:Z
        16: .line 154
            aload 0 /* this */
            aload 2 /* options */
            invokevirtual io.vertx.core.http.HttpClientOptions.isPipelining:()Z
            putfield io.vertx.core.http.impl.HttpClientImpl.pipelining:Z
        17: .line 155
            aload 0 /* this */
            new io.vertx.core.net.impl.SSLHelper
            dup
            aload 2 /* options */
            aload 2 /* options */
            invokevirtual io.vertx.core.http.HttpClientOptions.getKeyCertOptions:()Lio/vertx/core/net/KeyCertOptions;
            aload 2 /* options */
            invokevirtual io.vertx.core.http.HttpClientOptions.getTrustOptions:()Lio/vertx/core/net/TrustOptions;
            invokespecial io.vertx.core.net.impl.SSLHelper.<init>:(Lio/vertx/core/http/HttpClientOptions;Lio/vertx/core/net/KeyCertOptions;Lio/vertx/core/net/TrustOptions;)V
        18: .line 156
            aload 4 /* alpnVersions */
            invokevirtual io.vertx.core.net.impl.SSLHelper.setApplicationProtocols:(Ljava/util/List;)Lio/vertx/core/net/impl/SSLHelper;
        19: .line 155
            putfield io.vertx.core.http.impl.HttpClientImpl.sslHelper:Lio/vertx/core/net/impl/SSLHelper;
        20: .line 157
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.sslHelper:Lio/vertx/core/net/impl/SSLHelper;
            aload 1 /* vertx */
            invokevirtual io.vertx.core.net.impl.SSLHelper.validate:(Lio/vertx/core/impl/VertxInternal;)V
        21: .line 158
            aload 0 /* this */
            new io.vertx.core.net.impl.SSLHelper
            dup
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.sslHelper:Lio/vertx/core/net/impl/SSLHelper;
            invokespecial io.vertx.core.net.impl.SSLHelper.<init>:(Lio/vertx/core/net/impl/SSLHelper;)V
            iconst_0
            invokevirtual io.vertx.core.net.impl.SSLHelper.setUseAlpn:(Z)Lio/vertx/core/net/impl/SSLHelper;
            putfield io.vertx.core.http.impl.HttpClientImpl.webSocketSSLHelper:Lio/vertx/core/net/impl/SSLHelper;
        22: .line 159
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.keepAlive:Z
            ifne 24
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.pipelining:Z
            ifeq 24
        23: .line 160
            new java.lang.IllegalStateException
            dup
            ldc "Cannot have pipelining with no keep alive"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.webSocketConnectionManager:()Lio/vertx/core/net/impl/clientconnection/ConnectionManager;
            putfield io.vertx.core.http.impl.HttpClientImpl.webSocketCM:Lio/vertx/core/net/impl/clientconnection/ConnectionManager;
        25: .line 163
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.httpConnectionManager:()Lio/vertx/core/net/impl/clientconnection/ConnectionManager;
            putfield io.vertx.core.http.impl.HttpClientImpl.httpCM:Lio/vertx/core/net/impl/clientconnection/ConnectionManager;
        26: .line 164
            aload 0 /* this */
            aload 2 /* options */
            invokevirtual io.vertx.core.http.HttpClientOptions.getProxyOptions:()Lio/vertx/core/net/ProxyOptions;
            ifnull 27
            aload 2 /* options */
            invokevirtual io.vertx.core.http.HttpClientOptions.getProxyOptions:()Lio/vertx/core/net/ProxyOptions;
            invokevirtual io.vertx.core.net.ProxyOptions.getType:()Lio/vertx/core/net/ProxyType;
            goto 28
      StackMap locals:
      StackMap stack: io.vertx.core.http.impl.HttpClientImpl
        27: aconst_null
      StackMap locals: io.vertx.core.http.impl.HttpClientImpl io.vertx.core.impl.VertxInternal io.vertx.core.http.HttpClientOptions io.vertx.core.impl.CloseFuture java.util.List
      StackMap stack: io.vertx.core.http.impl.HttpClientImpl io.vertx.core.net.ProxyType
        28: putfield io.vertx.core.http.impl.HttpClientImpl.proxyType:Lio/vertx/core/net/ProxyType;
        29: .line 165
            aload 2 /* options */
            invokevirtual io.vertx.core.http.HttpClientOptions.getPoolCleanerPeriod:()I
            ifle 32
            aload 2 /* options */
            invokevirtual io.vertx.core.http.HttpClientOptions.getKeepAliveTimeout:()I
            i2l
            lconst_0
            lcmp
            ifgt 30
            aload 2 /* options */
            invokevirtual io.vertx.core.http.HttpClientOptions.getHttp2KeepAliveTimeout:()I
            i2l
            lconst_0
            lcmp
            ifle 32
        30: .line 166
      StackMap locals:
      StackMap stack:
            new io.vertx.core.http.impl.HttpClientImpl$PoolChecker
            dup
            aload 0 /* this */
            invokespecial io.vertx.core.http.impl.HttpClientImpl$PoolChecker.<init>:(Lio/vertx/core/http/impl/HttpClientImpl;)V
            astore 5 /* checker */
        start local 5 // io.vertx.core.http.impl.HttpClientImpl$PoolChecker checker
        31: .line 167
            aload 0 /* this */
            aload 1 /* vertx */
            aload 2 /* options */
            invokevirtual io.vertx.core.http.HttpClientOptions.getPoolCleanerPeriod:()I
            i2l
            aload 5 /* checker */
            invokeinterface io.vertx.core.impl.VertxInternal.setTimer:(JLio/vertx/core/Handler;)J
            putfield io.vertx.core.http.impl.HttpClientImpl.timerID:J
        end local 5 // io.vertx.core.http.impl.HttpClientImpl$PoolChecker checker
        32: .line 169
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.util.List alpnVersions
        end local 3 // io.vertx.core.impl.CloseFuture closeFuture
        end local 2 // io.vertx.core.http.HttpClientOptions options
        end local 1 // io.vertx.core.impl.VertxInternal vertx
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   33     0          this  Lio/vertx/core/http/impl/HttpClientImpl;
            0   33     1         vertx  Lio/vertx/core/impl/VertxInternal;
            0   33     2       options  Lio/vertx/core/http/HttpClientOptions;
            0   33     3   closeFuture  Lio/vertx/core/impl/CloseFuture;
           10   33     4  alpnVersions  Ljava/util/List<Lio/vertx/core/http/HttpVersion;>;
           31   32     5       checker  Lio/vertx/core/http/impl/HttpClientImpl$PoolChecker;
    MethodParameters:
             Name  Flags
      vertx        
      options      
      closeFuture  

  private void checkExpired(io.vertx.core.Handler<java.lang.Long>);
    descriptor: (Lio/vertx/core/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.Handler checker
         0: .line 192
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.httpCM:Lio/vertx/core/net/impl/clientconnection/ConnectionManager;
            getstatic io.vertx.core.http.impl.HttpClientImpl.EXPIRED_CHECKER:Ljava/util/function/Consumer;
            invokevirtual io.vertx.core.net.impl.clientconnection.ConnectionManager.forEach:(Ljava/util/function/Consumer;)V
         1: .line 193
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         2: .line 194
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.closeFuture:Lio/vertx/core/impl/CloseFuture;
            invokevirtual io.vertx.core.impl.CloseFuture.isClosed:()Z
            ifne 4
         3: .line 195
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getPoolCleanerPeriod:()I
            i2l
            aload 1 /* checker */
            invokeinterface io.vertx.core.impl.VertxInternal.setTimer:(JLio/vertx/core/Handler;)J
            putfield io.vertx.core.http.impl.HttpClientImpl.timerID:J
         4: .line 193
      StackMap locals: io.vertx.core.http.impl.HttpClientImpl
      StackMap stack:
            aload 2
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 198
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.Handler checker
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    9     1  checker  Lio/vertx/core/Handler<Ljava/lang/Long;>;
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Long;>;)V
    MethodParameters:
         Name  Flags
      checker  

  private io.vertx.core.net.impl.clientconnection.ConnectionManager<io.vertx.core.http.impl.EndpointKey, io.vertx.core.http.impl.HttpClientConnection> httpConnectionManager();
    descriptor: ()Lio/vertx/core/net/impl/clientconnection/ConnectionManager;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
         0: .line 201
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getMaxPoolSize:()I
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getHttp2MaxPoolSize:()I
            imul
            i2l
            lstore 1 /* maxSize */
        start local 1 // long maxSize
         1: .line 202
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getMaxPoolSize:()I
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getHttp2MaxPoolSize:()I
            invokestatic java.lang.Math.max:(II)I
            istore 3 /* maxPoolSize */
        start local 3 // int maxPoolSize
         2: .line 203
            new io.vertx.core.net.impl.clientconnection.ConnectionManager
            dup
            aload 0 /* this */
            iload 3 /* maxPoolSize */
            lload 1 /* maxSize */
            invokedynamic create(Lio/vertx/core/http/impl/HttpClientImpl;IJ)Lio/vertx/core/net/impl/clientconnection/EndpointProvider;
              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;Lio/vertx/core/impl/ContextInternal;Ljava/lang/Runnable;)Lio/vertx/core/net/impl/clientconnection/Endpoint;
                  io/vertx/core/http/impl/HttpClientImpl.lambda$2(IJLio/vertx/core/http/impl/EndpointKey;Lio/vertx/core/impl/ContextInternal;Ljava/lang/Runnable;)Lio/vertx/core/net/impl/clientconnection/Endpoint; (7)
                  (Lio/vertx/core/http/impl/EndpointKey;Lio/vertx/core/impl/ContextInternal;Ljava/lang/Runnable;)Lio/vertx/core/net/impl/clientconnection/Endpoint;
            invokespecial io.vertx.core.net.impl.clientconnection.ConnectionManager.<init>:(Lio/vertx/core/net/impl/clientconnection/EndpointProvider;)V
            areturn
        end local 3 // int maxPoolSize
        end local 1 // long maxSize
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lio/vertx/core/http/impl/HttpClientImpl;
            1    3     1      maxSize  J
            2    3     3  maxPoolSize  I
    Signature: ()Lio/vertx/core/net/impl/clientconnection/ConnectionManager<Lio/vertx/core/http/impl/EndpointKey;Lio/vertx/core/http/impl/HttpClientConnection;>;

  private io.vertx.core.net.impl.clientconnection.ConnectionManager<io.vertx.core.http.impl.EndpointKey, io.vertx.core.http.impl.HttpClientConnection> webSocketConnectionManager();
    descriptor: ()Lio/vertx/core/net/impl/clientconnection/ConnectionManager;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
         0: .line 220
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getMaxWebSockets:()I
            istore 1 /* maxPoolSize */
        start local 1 // int maxPoolSize
         1: .line 221
            new io.vertx.core.net.impl.clientconnection.ConnectionManager
            dup
            aload 0 /* this */
            iload 1 /* maxPoolSize */
            invokedynamic create(Lio/vertx/core/http/impl/HttpClientImpl;I)Lio/vertx/core/net/impl/clientconnection/EndpointProvider;
              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;Lio/vertx/core/impl/ContextInternal;Ljava/lang/Runnable;)Lio/vertx/core/net/impl/clientconnection/Endpoint;
                  io/vertx/core/http/impl/HttpClientImpl.lambda$3(ILio/vertx/core/http/impl/EndpointKey;Lio/vertx/core/impl/ContextInternal;Ljava/lang/Runnable;)Lio/vertx/core/net/impl/clientconnection/Endpoint; (7)
                  (Lio/vertx/core/http/impl/EndpointKey;Lio/vertx/core/impl/ContextInternal;Ljava/lang/Runnable;)Lio/vertx/core/net/impl/clientconnection/Endpoint;
            invokespecial io.vertx.core.net.impl.clientconnection.ConnectionManager.<init>:(Lio/vertx/core/net/impl/clientconnection/EndpointProvider;)V
            areturn
        end local 1 // int maxPoolSize
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lio/vertx/core/http/impl/HttpClientImpl;
            1    2     1  maxPoolSize  I
    Signature: ()Lio/vertx/core/net/impl/clientconnection/ConnectionManager<Lio/vertx/core/http/impl/EndpointKey;Lio/vertx/core/http/impl/HttpClientConnection;>;

  private int getPort(io.vertx.core.http.RequestOptions);
    descriptor: (Lio/vertx/core/http/RequestOptions;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=4, args_size=2
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.RequestOptions request
         0: .line 238
            aload 1 /* request */
            invokevirtual io.vertx.core.http.RequestOptions.getPort:()Ljava/lang/Integer;
            astore 2 /* port */
        start local 2 // java.lang.Integer port
         1: .line 239
            aload 2 /* port */
            ifnull 3
         2: .line 240
            aload 2 /* port */
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
         3: .line 242
      StackMap locals: java.lang.Integer
      StackMap stack:
            aload 1 /* request */
            invokevirtual io.vertx.core.http.RequestOptions.getServer:()Lio/vertx/core/net/SocketAddress;
            astore 3 /* server */
        start local 3 // io.vertx.core.net.SocketAddress server
         4: .line 243
            aload 3 /* server */
            ifnull 6
            aload 3 /* server */
            invokeinterface io.vertx.core.net.SocketAddress.isInetSocket:()Z
            ifeq 6
         5: .line 244
            aload 3 /* server */
            invokeinterface io.vertx.core.net.SocketAddress.port:()I
            ireturn
         6: .line 246
      StackMap locals: io.vertx.core.net.SocketAddress
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getDefaultPort:()I
            ireturn
        end local 3 // io.vertx.core.net.SocketAddress server
        end local 2 // java.lang.Integer port
        end local 1 // io.vertx.core.http.RequestOptions request
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    7     1  request  Lio/vertx/core/http/RequestOptions;
            1    7     2     port  Ljava/lang/Integer;
            4    7     3   server  Lio/vertx/core/net/SocketAddress;
    MethodParameters:
         Name  Flags
      request  

  private java.lang.String getHost(io.vertx.core.http.RequestOptions);
    descriptor: (Lio/vertx/core/http/RequestOptions;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=4, args_size=2
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.RequestOptions request
         0: .line 250
            aload 1 /* request */
            invokevirtual io.vertx.core.http.RequestOptions.getHost:()Ljava/lang/String;
            astore 2 /* host */
        start local 2 // java.lang.String host
         1: .line 251
            aload 2 /* host */
            ifnull 3
         2: .line 252
            aload 2 /* host */
            areturn
         3: .line 254
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* request */
            invokevirtual io.vertx.core.http.RequestOptions.getServer:()Lio/vertx/core/net/SocketAddress;
            astore 3 /* server */
        start local 3 // io.vertx.core.net.SocketAddress server
         4: .line 255
            aload 3 /* server */
            ifnull 6
            aload 3 /* server */
            invokeinterface io.vertx.core.net.SocketAddress.isInetSocket:()Z
            ifeq 6
         5: .line 256
            aload 3 /* server */
            invokeinterface io.vertx.core.net.SocketAddress.host:()Ljava/lang/String;
            areturn
         6: .line 258
      StackMap locals: io.vertx.core.net.SocketAddress
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getDefaultHost:()Ljava/lang/String;
            areturn
        end local 3 // io.vertx.core.net.SocketAddress server
        end local 2 // java.lang.String host
        end local 1 // io.vertx.core.http.RequestOptions request
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    7     1  request  Lio/vertx/core/http/RequestOptions;
            1    7     2     host  Ljava/lang/String;
            4    7     3   server  Lio/vertx/core/net/SocketAddress;
    MethodParameters:
         Name  Flags
      request  

  io.vertx.core.spi.metrics.HttpClientMetrics metrics();
    descriptor: ()Lio/vertx/core/spi/metrics/HttpClientMetrics;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
         0: .line 262
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.metrics:Lio/vertx/core/spi/metrics/HttpClientMetrics;
            areturn
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/HttpClientImpl;

  public void webSocket(io.vertx.core.http.WebSocketConnectOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.http.WebSocket>>);
    descriptor: (Lio/vertx/core/http/WebSocketConnectOptions;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.WebSocketConnectOptions connectOptions
        start local 2 // io.vertx.core.Handler handler
         0: .line 267
            aload 0 /* this */
            aload 1 /* connectOptions */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            aload 2 /* handler */
            invokeinterface io.vertx.core.impl.VertxInternal.promise:(Lio/vertx/core/Handler;)Lio/vertx/core/impl/future/PromiseInternal;
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.webSocket:(Lio/vertx/core/http/WebSocketConnectOptions;Lio/vertx/core/impl/future/PromiseInternal;)V
         1: .line 268
            return
        end local 2 // io.vertx.core.Handler handler
        end local 1 // io.vertx.core.http.WebSocketConnectOptions connectOptions
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    2     1  connectOptions  Lio/vertx/core/http/WebSocketConnectOptions;
            0    2     2         handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/WebSocket;>;>;
    Signature: (Lio/vertx/core/http/WebSocketConnectOptions;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/WebSocket;>;>;)V
    MethodParameters:
                Name  Flags
      connectOptions  
      handler         

  private void webSocket(io.vertx.core.http.WebSocketConnectOptions, io.vertx.core.impl.future.PromiseInternal<io.vertx.core.http.WebSocket>);
    descriptor: (Lio/vertx/core/http/WebSocketConnectOptions;Lio/vertx/core/impl/future/PromiseInternal;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.WebSocketConnectOptions connectOptions
        start local 2 // io.vertx.core.impl.future.PromiseInternal promise
         0: .line 271
            aload 0 /* this */
            aload 1 /* connectOptions */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.getPort:(Lio/vertx/core/http/RequestOptions;)I
            istore 3 /* port */
        start local 3 // int port
         1: .line 272
            aload 0 /* this */
            aload 1 /* connectOptions */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.getHost:(Lio/vertx/core/http/RequestOptions;)Ljava/lang/String;
            astore 4 /* host */
        start local 4 // java.lang.String host
         2: .line 273
            iload 3 /* port */
            aload 4 /* host */
            invokestatic io.vertx.core.net.SocketAddress.inetSocketAddress:(ILjava/lang/String;)Lio/vertx/core/net/SocketAddress;
            astore 5 /* addr */
        start local 5 // io.vertx.core.net.SocketAddress addr
         3: .line 274
            new io.vertx.core.http.impl.EndpointKey
            dup
            aload 1 /* connectOptions */
            invokevirtual io.vertx.core.http.WebSocketConnectOptions.isSsl:()Ljava/lang/Boolean;
            ifnull 4
            aload 1 /* connectOptions */
            invokevirtual io.vertx.core.http.WebSocketConnectOptions.isSsl:()Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            goto 5
      StackMap locals: io.vertx.core.http.impl.HttpClientImpl io.vertx.core.http.WebSocketConnectOptions io.vertx.core.impl.future.PromiseInternal int java.lang.String io.vertx.core.net.SocketAddress
      StackMap stack: new 3 new 3
         4: aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.isSsl:()Z
      StackMap locals: io.vertx.core.http.impl.HttpClientImpl io.vertx.core.http.WebSocketConnectOptions io.vertx.core.impl.future.PromiseInternal int java.lang.String io.vertx.core.net.SocketAddress
      StackMap stack: new 3 new 3 int
         5: aload 5 /* addr */
            aload 5 /* addr */
            invokespecial io.vertx.core.http.impl.EndpointKey.<init>:(ZLio/vertx/core/net/SocketAddress;Lio/vertx/core/net/SocketAddress;)V
            astore 6 /* key */
        start local 6 // io.vertx.core.http.impl.EndpointKey key
         6: .line 275
            aload 2 /* promise */
            invokeinterface io.vertx.core.impl.future.PromiseInternal.context:()Lio/vertx/core/impl/ContextInternal;
            astore 7 /* ctx */
        start local 7 // io.vertx.core.impl.ContextInternal ctx
         7: .line 277
            aload 7 /* ctx */
            instanceof io.vertx.core.impl.EventLoopContext
            ifeq 10
         8: .line 278
            aload 7 /* ctx */
            checkcast io.vertx.core.impl.EventLoopContext
            astore 8 /* eventLoopContext */
        start local 8 // io.vertx.core.impl.EventLoopContext eventLoopContext
         9: .line 279
            goto 11
        end local 8 // io.vertx.core.impl.EventLoopContext eventLoopContext
        10: .line 280
      StackMap locals: io.vertx.core.http.impl.EndpointKey io.vertx.core.impl.ContextInternal
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            aload 7 /* ctx */
            invokeinterface io.vertx.core.impl.ContextInternal.nettyEventLoop:()Lio/netty/channel/EventLoop;
            aload 7 /* ctx */
            invokeinterface io.vertx.core.impl.ContextInternal.workerPool:()Lio/vertx/core/impl/WorkerPool;
            aload 7 /* ctx */
            invokeinterface io.vertx.core.impl.ContextInternal.classLoader:()Ljava/lang/ClassLoader;
            invokeinterface io.vertx.core.impl.VertxInternal.createEventLoopContext:(Lio/netty/channel/EventLoop;Lio/vertx/core/impl/WorkerPool;Ljava/lang/ClassLoader;)Lio/vertx/core/impl/EventLoopContext;
            astore 8 /* eventLoopContext */
        start local 8 // io.vertx.core.impl.EventLoopContext eventLoopContext
        11: .line 282
      StackMap locals: io.vertx.core.impl.EventLoopContext
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.webSocketCM:Lio/vertx/core/net/impl/clientconnection/ConnectionManager;
        12: .line 283
            aload 8 /* eventLoopContext */
        13: .line 284
            aload 6 /* key */
        14: .line 285
            aload 0 /* this */
            aload 7 /* ctx */
            aload 1 /* connectOptions */
            aload 2 /* promise */
            invokedynamic handle(Lio/vertx/core/http/impl/HttpClientImpl;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/http/WebSocketConnectOptions;Lio/vertx/core/impl/future/PromiseInternal;)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/core/http/impl/HttpClientImpl.lambda$4(Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/http/WebSocketConnectOptions;Lio/vertx/core/impl/future/PromiseInternal;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
        15: .line 282
            invokevirtual io.vertx.core.net.impl.clientconnection.ConnectionManager.getConnection:(Lio/vertx/core/impl/EventLoopContext;Ljava/lang/Object;Lio/vertx/core/Handler;)V
        16: .line 293
            return
        end local 8 // io.vertx.core.impl.EventLoopContext eventLoopContext
        end local 7 // io.vertx.core.impl.ContextInternal ctx
        end local 6 // io.vertx.core.http.impl.EndpointKey key
        end local 5 // io.vertx.core.net.SocketAddress addr
        end local 4 // java.lang.String host
        end local 3 // int port
        end local 2 // io.vertx.core.impl.future.PromiseInternal promise
        end local 1 // io.vertx.core.http.WebSocketConnectOptions connectOptions
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lio/vertx/core/http/impl/HttpClientImpl;
            0   17     1    connectOptions  Lio/vertx/core/http/WebSocketConnectOptions;
            0   17     2           promise  Lio/vertx/core/impl/future/PromiseInternal<Lio/vertx/core/http/WebSocket;>;
            1   17     3              port  I
            2   17     4              host  Ljava/lang/String;
            3   17     5              addr  Lio/vertx/core/net/SocketAddress;
            6   17     6               key  Lio/vertx/core/http/impl/EndpointKey;
            7   17     7               ctx  Lio/vertx/core/impl/ContextInternal;
            9   10     8  eventLoopContext  Lio/vertx/core/impl/EventLoopContext;
           11   17     8  eventLoopContext  Lio/vertx/core/impl/EventLoopContext;
    Signature: (Lio/vertx/core/http/WebSocketConnectOptions;Lio/vertx/core/impl/future/PromiseInternal<Lio/vertx/core/http/WebSocket;>;)V
    MethodParameters:
                Name  Flags
      connectOptions  
      promise         

  public io.vertx.core.Future<io.vertx.core.http.WebSocket> webSocket(int, java.lang.String, java.lang.String);
    descriptor: (ILjava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // int port
        start local 2 // java.lang.String host
        start local 3 // java.lang.String requestURI
         0: .line 297
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 4 /* promise */
        start local 4 // io.vertx.core.Promise promise
         1: .line 298
            aload 0 /* this */
            iload 1 /* port */
            aload 2 /* host */
            aload 3 /* requestURI */
            aload 4 /* promise */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.webSocket:(ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
         2: .line 299
            aload 4 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 4 // io.vertx.core.Promise promise
        end local 3 // java.lang.String requestURI
        end local 2 // java.lang.String host
        end local 1 // int port
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    3     1        port  I
            0    3     2        host  Ljava/lang/String;
            0    3     3  requestURI  Ljava/lang/String;
            1    3     4     promise  Lio/vertx/core/Promise<Lio/vertx/core/http/WebSocket;>;
    Signature: (ILjava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future<Lio/vertx/core/http/WebSocket;>;
    MethodParameters:
            Name  Flags
      port        
      host        
      requestURI  

  public io.vertx.core.Future<io.vertx.core.http.WebSocket> webSocket(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // java.lang.String host
        start local 2 // java.lang.String requestURI
         0: .line 304
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 3 /* promise */
        start local 3 // io.vertx.core.Promise promise
         1: .line 305
            aload 0 /* this */
            aload 1 /* host */
            aload 2 /* requestURI */
            aload 3 /* promise */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.webSocket:(Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
         2: .line 306
            aload 3 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 3 // io.vertx.core.Promise promise
        end local 2 // java.lang.String requestURI
        end local 1 // java.lang.String host
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    3     1        host  Ljava/lang/String;
            0    3     2  requestURI  Ljava/lang/String;
            1    3     3     promise  Lio/vertx/core/Promise<Lio/vertx/core/http/WebSocket;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future<Lio/vertx/core/http/WebSocket;>;
    MethodParameters:
            Name  Flags
      host        
      requestURI  

  public io.vertx.core.Future<io.vertx.core.http.WebSocket> webSocket(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // java.lang.String requestURI
         0: .line 311
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 2 /* promise */
        start local 2 // io.vertx.core.Promise promise
         1: .line 312
            aload 0 /* this */
            aload 1 /* requestURI */
            aload 2 /* promise */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.webSocket:(Ljava/lang/String;Lio/vertx/core/Handler;)V
         2: .line 313
            aload 2 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.Promise promise
        end local 1 // java.lang.String requestURI
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    3     1  requestURI  Ljava/lang/String;
            1    3     2     promise  Lio/vertx/core/Promise<Lio/vertx/core/http/WebSocket;>;
    Signature: (Ljava/lang/String;)Lio/vertx/core/Future<Lio/vertx/core/http/WebSocket;>;
    MethodParameters:
            Name  Flags
      requestURI  

  public io.vertx.core.Future<io.vertx.core.http.WebSocket> webSocket(io.vertx.core.http.WebSocketConnectOptions);
    descriptor: (Lio/vertx/core/http/WebSocketConnectOptions;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.WebSocketConnectOptions options
         0: .line 318
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 2 /* promise */
        start local 2 // io.vertx.core.Promise promise
         1: .line 319
            aload 0 /* this */
            aload 1 /* options */
            aload 2 /* promise */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.webSocket:(Lio/vertx/core/http/WebSocketConnectOptions;Lio/vertx/core/Handler;)V
         2: .line 320
            aload 2 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.Promise promise
        end local 1 // io.vertx.core.http.WebSocketConnectOptions options
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    3     1  options  Lio/vertx/core/http/WebSocketConnectOptions;
            1    3     2  promise  Lio/vertx/core/Promise<Lio/vertx/core/http/WebSocket;>;
    Signature: (Lio/vertx/core/http/WebSocketConnectOptions;)Lio/vertx/core/Future<Lio/vertx/core/http/WebSocket;>;
    MethodParameters:
         Name  Flags
      options  

  public io.vertx.core.Future<io.vertx.core.http.WebSocket> webSocketAbs(java.lang.String, io.vertx.core.MultiMap, io.vertx.core.http.WebsocketVersion, java.util.List<java.lang.String>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/MultiMap;Lio/vertx/core/http/WebsocketVersion;Ljava/util/List;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // java.lang.String url
        start local 2 // io.vertx.core.MultiMap headers
        start local 3 // io.vertx.core.http.WebsocketVersion version
        start local 4 // java.util.List subProtocols
         0: .line 325
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 5 /* promise */
        start local 5 // io.vertx.core.Promise promise
         1: .line 326
            aload 0 /* this */
            aload 1 /* url */
            aload 2 /* headers */
            aload 3 /* version */
            aload 4 /* subProtocols */
            aload 5 /* promise */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.webSocketAbs:(Ljava/lang/String;Lio/vertx/core/MultiMap;Lio/vertx/core/http/WebsocketVersion;Ljava/util/List;Lio/vertx/core/Handler;)V
         2: .line 327
            aload 5 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 5 // io.vertx.core.Promise promise
        end local 4 // java.util.List subProtocols
        end local 3 // io.vertx.core.http.WebsocketVersion version
        end local 2 // io.vertx.core.MultiMap headers
        end local 1 // java.lang.String url
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    3     1           url  Ljava/lang/String;
            0    3     2       headers  Lio/vertx/core/MultiMap;
            0    3     3       version  Lio/vertx/core/http/WebsocketVersion;
            0    3     4  subProtocols  Ljava/util/List<Ljava/lang/String;>;
            1    3     5       promise  Lio/vertx/core/Promise<Lio/vertx/core/http/WebSocket;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/MultiMap;Lio/vertx/core/http/WebsocketVersion;Ljava/util/List<Ljava/lang/String;>;)Lio/vertx/core/Future<Lio/vertx/core/http/WebSocket;>;
    MethodParameters:
              Name  Flags
      url           
      headers       
      version       
      subProtocols  

  public void webSocket(int, java.lang.String, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.http.WebSocket>>);
    descriptor: (ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // int port
        start local 2 // java.lang.String host
        start local 3 // java.lang.String requestURI
        start local 4 // io.vertx.core.Handler handler
         0: .line 332
            aload 0 /* this */
            new io.vertx.core.http.WebSocketConnectOptions
            dup
            invokespecial io.vertx.core.http.WebSocketConnectOptions.<init>:()V
            aload 3 /* requestURI */
            invokevirtual io.vertx.core.http.WebSocketConnectOptions.setURI:(Ljava/lang/String;)Lio/vertx/core/http/WebSocketConnectOptions;
            aload 2 /* host */
            invokevirtual io.vertx.core.http.WebSocketConnectOptions.setHost:(Ljava/lang/String;)Lio/vertx/core/http/WebSocketConnectOptions;
            iload 1 /* port */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual io.vertx.core.http.WebSocketConnectOptions.setPort:(Ljava/lang/Integer;)Lio/vertx/core/http/WebSocketConnectOptions;
            aload 4 /* handler */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.webSocket:(Lio/vertx/core/http/WebSocketConnectOptions;Lio/vertx/core/Handler;)V
         1: .line 333
            return
        end local 4 // io.vertx.core.Handler handler
        end local 3 // java.lang.String requestURI
        end local 2 // java.lang.String host
        end local 1 // int port
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    2     1        port  I
            0    2     2        host  Ljava/lang/String;
            0    2     3  requestURI  Ljava/lang/String;
            0    2     4     handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/WebSocket;>;>;
    Signature: (ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/WebSocket;>;>;)V
    MethodParameters:
            Name  Flags
      port        
      host        
      requestURI  
      handler     

  public void webSocket(java.lang.String, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.http.WebSocket>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // java.lang.String host
        start local 2 // java.lang.String requestURI
        start local 3 // io.vertx.core.Handler handler
         0: .line 337
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getDefaultPort:()I
            aload 1 /* host */
            aload 2 /* requestURI */
            aload 3 /* handler */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.webSocket:(ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
         1: .line 338
            return
        end local 3 // io.vertx.core.Handler handler
        end local 2 // java.lang.String requestURI
        end local 1 // java.lang.String host
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    2     1        host  Ljava/lang/String;
            0    2     2  requestURI  Ljava/lang/String;
            0    2     3     handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/WebSocket;>;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/WebSocket;>;>;)V
    MethodParameters:
            Name  Flags
      host        
      requestURI  
      handler     

  public void webSocket(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.http.WebSocket>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // java.lang.String requestURI
        start local 2 // io.vertx.core.Handler handler
         0: .line 342
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getDefaultPort:()I
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getDefaultHost:()Ljava/lang/String;
            aload 1 /* requestURI */
            aload 2 /* handler */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.webSocket:(ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
         1: .line 343
            return
        end local 2 // io.vertx.core.Handler handler
        end local 1 // java.lang.String requestURI
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    2     1  requestURI  Ljava/lang/String;
            0    2     2     handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/WebSocket;>;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/WebSocket;>;>;)V
    MethodParameters:
            Name  Flags
      requestURI  
      handler     

  public void webSocketAbs(java.lang.String, io.vertx.core.MultiMap, io.vertx.core.http.WebsocketVersion, java.util.List<java.lang.String>, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.http.WebSocket>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/MultiMap;Lio/vertx/core/http/WebsocketVersion;Ljava/util/List;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=6
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // java.lang.String url
        start local 2 // io.vertx.core.MultiMap headers
        start local 3 // io.vertx.core.http.WebsocketVersion version
        start local 4 // java.util.List subProtocols
        start local 5 // io.vertx.core.Handler handler
         0: .line 349
            new java.net.URI
            dup
            aload 1 /* url */
            invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
            astore 6 /* uri */
        start local 6 // java.net.URI uri
         1: .line 350
            goto 4
        end local 6 // java.net.URI uri
      StackMap locals:
      StackMap stack: java.net.URISyntaxException
         2: astore 7 /* e */
        start local 7 // java.net.URISyntaxException e
         3: .line 351
            new java.lang.IllegalArgumentException
            dup
            aload 7 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.net.URISyntaxException e
        start local 6 // java.net.URI uri
         4: .line 353
      StackMap locals: java.net.URI
      StackMap stack:
            aload 6 /* uri */
            invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
            astore 7 /* scheme */
        start local 7 // java.lang.String scheme
         5: .line 354
            ldc "ws"
            aload 7 /* scheme */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            ldc "wss"
            aload 7 /* scheme */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
         6: .line 355
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Scheme: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* scheme */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 357
      StackMap locals: java.lang.String
      StackMap stack:
            aload 7 /* scheme */
            invokevirtual java.lang.String.length:()I
            iconst_3
            if_icmpne 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 8 /* ssl */
        start local 8 // boolean ssl
        10: .line 358
            aload 6 /* uri */
            invokevirtual java.net.URI.getPort:()I
            istore 9 /* port */
        start local 9 // int port
        11: .line 359
            iload 9 /* port */
            iconst_m1
            if_icmpne 14
            iload 8 /* ssl */
            ifeq 12
            sipush 443
            goto 13
      StackMap locals: int int
      StackMap stack:
        12: bipush 80
      StackMap locals:
      StackMap stack: int
        13: istore 9 /* port */
        14: .line 360
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 10 /* relativeUri */
        start local 10 // java.lang.StringBuilder relativeUri
        15: .line 361
            aload 6 /* uri */
            invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
            ifnull 17
        16: .line 362
            aload 10 /* relativeUri */
            aload 6 /* uri */
            invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 364
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 6 /* uri */
            invokevirtual java.net.URI.getRawQuery:()Ljava/lang/String;
            ifnull 19
        18: .line 365
            aload 10 /* relativeUri */
            bipush 63
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 6 /* uri */
            invokevirtual java.net.URI.getRawQuery:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 367
      StackMap locals:
      StackMap stack:
            aload 6 /* uri */
            invokevirtual java.net.URI.getRawFragment:()Ljava/lang/String;
            ifnull 21
        20: .line 368
            aload 10 /* relativeUri */
            bipush 35
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 6 /* uri */
            invokevirtual java.net.URI.getRawFragment:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        21: .line 370
      StackMap locals:
      StackMap stack:
            new io.vertx.core.http.WebSocketConnectOptions
            dup
            invokespecial io.vertx.core.http.WebSocketConnectOptions.<init>:()V
        22: .line 371
            aload 6 /* uri */
            invokevirtual java.net.URI.getHost:()Ljava/lang/String;
            invokevirtual io.vertx.core.http.WebSocketConnectOptions.setHost:(Ljava/lang/String;)Lio/vertx/core/http/WebSocketConnectOptions;
        23: .line 372
            iload 9 /* port */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual io.vertx.core.http.WebSocketConnectOptions.setPort:(Ljava/lang/Integer;)Lio/vertx/core/http/WebSocketConnectOptions;
            iload 8 /* ssl */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual io.vertx.core.http.WebSocketConnectOptions.setSsl:(Ljava/lang/Boolean;)Lio/vertx/core/http/WebSocketConnectOptions;
        24: .line 373
            aload 10 /* relativeUri */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.core.http.WebSocketConnectOptions.setURI:(Ljava/lang/String;)Lio/vertx/core/http/WebSocketConnectOptions;
        25: .line 374
            aload 2 /* headers */
            invokevirtual io.vertx.core.http.WebSocketConnectOptions.setHeaders:(Lio/vertx/core/MultiMap;)Lio/vertx/core/http/WebSocketConnectOptions;
        26: .line 375
            aload 3 /* version */
            invokevirtual io.vertx.core.http.WebSocketConnectOptions.setVersion:(Lio/vertx/core/http/WebsocketVersion;)Lio/vertx/core/http/WebSocketConnectOptions;
        27: .line 376
            aload 4 /* subProtocols */
            invokevirtual io.vertx.core.http.WebSocketConnectOptions.setSubProtocols:(Ljava/util/List;)Lio/vertx/core/http/WebSocketConnectOptions;
        28: .line 370
            astore 11 /* options */
        start local 11 // io.vertx.core.http.WebSocketConnectOptions options
        29: .line 377
            aload 0 /* this */
            aload 11 /* options */
            aload 5 /* handler */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.webSocket:(Lio/vertx/core/http/WebSocketConnectOptions;Lio/vertx/core/Handler;)V
        30: .line 378
            return
        end local 11 // io.vertx.core.http.WebSocketConnectOptions options
        end local 10 // java.lang.StringBuilder relativeUri
        end local 9 // int port
        end local 8 // boolean ssl
        end local 7 // java.lang.String scheme
        end local 6 // java.net.URI uri
        end local 5 // io.vertx.core.Handler handler
        end local 4 // java.util.List subProtocols
        end local 3 // io.vertx.core.http.WebsocketVersion version
        end local 2 // io.vertx.core.MultiMap headers
        end local 1 // java.lang.String url
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   31     0          this  Lio/vertx/core/http/impl/HttpClientImpl;
            0   31     1           url  Ljava/lang/String;
            0   31     2       headers  Lio/vertx/core/MultiMap;
            0   31     3       version  Lio/vertx/core/http/WebsocketVersion;
            0   31     4  subProtocols  Ljava/util/List<Ljava/lang/String;>;
            0   31     5       handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/WebSocket;>;>;
            1    2     6           uri  Ljava/net/URI;
            4   31     6           uri  Ljava/net/URI;
            3    4     7             e  Ljava/net/URISyntaxException;
            5   31     7        scheme  Ljava/lang/String;
           10   31     8           ssl  Z
           11   31     9          port  I
           15   31    10   relativeUri  Ljava/lang/StringBuilder;
           29   31    11       options  Lio/vertx/core/http/WebSocketConnectOptions;
      Exception table:
        from    to  target  type
           0     1       2  Class java.net.URISyntaxException
    Signature: (Ljava/lang/String;Lio/vertx/core/MultiMap;Lio/vertx/core/http/WebsocketVersion;Ljava/util/List<Ljava/lang/String;>;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/WebSocket;>;>;)V
    MethodParameters:
              Name  Flags
      url           
      headers       
      version       
      subProtocols  
      handler       

  public void request(io.vertx.core.http.RequestOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.http.HttpClientRequest>>);
    descriptor: (Lio/vertx/core/http/RequestOptions;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.RequestOptions options
        start local 2 // io.vertx.core.Handler handler
         0: .line 382
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            astore 3 /* ctx */
        start local 3 // io.vertx.core.impl.ContextInternal ctx
         1: .line 383
            aload 3 /* ctx */
            aload 2 /* handler */
            invokeinterface io.vertx.core.impl.ContextInternal.promise:(Lio/vertx/core/Handler;)Lio/vertx/core/impl/future/PromiseInternal;
            astore 4 /* promise */
        start local 4 // io.vertx.core.impl.future.PromiseInternal promise
         2: .line 384
            aload 0 /* this */
            aload 1 /* options */
            aload 4 /* promise */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.request:(Lio/vertx/core/http/RequestOptions;Lio/vertx/core/impl/future/PromiseInternal;)V
         3: .line 385
            return
        end local 4 // io.vertx.core.impl.future.PromiseInternal promise
        end local 3 // io.vertx.core.impl.ContextInternal ctx
        end local 2 // io.vertx.core.Handler handler
        end local 1 // io.vertx.core.http.RequestOptions options
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    4     1  options  Lio/vertx/core/http/RequestOptions;
            0    4     2  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/HttpClientRequest;>;>;
            1    4     3      ctx  Lio/vertx/core/impl/ContextInternal;
            2    4     4  promise  Lio/vertx/core/impl/future/PromiseInternal<Lio/vertx/core/http/HttpClientRequest;>;
    Signature: (Lio/vertx/core/http/RequestOptions;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/HttpClientRequest;>;>;)V
    MethodParameters:
         Name  Flags
      options  
      handler  

  public io.vertx.core.Future<io.vertx.core.http.HttpClientRequest> request(io.vertx.core.http.RequestOptions);
    descriptor: (Lio/vertx/core/http/RequestOptions;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.RequestOptions options
         0: .line 389
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            astore 2 /* ctx */
        start local 2 // io.vertx.core.impl.ContextInternal ctx
         1: .line 390
            aload 2 /* ctx */
            invokeinterface io.vertx.core.impl.ContextInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 3 /* promise */
        start local 3 // io.vertx.core.impl.future.PromiseInternal promise
         2: .line 391
            aload 0 /* this */
            aload 1 /* options */
            aload 3 /* promise */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.request:(Lio/vertx/core/http/RequestOptions;Lio/vertx/core/impl/future/PromiseInternal;)V
         3: .line 392
            aload 3 /* promise */
            invokeinterface io.vertx.core.impl.future.PromiseInternal.future:()Lio/vertx/core/Future;
            areturn
        end local 3 // io.vertx.core.impl.future.PromiseInternal promise
        end local 2 // io.vertx.core.impl.ContextInternal ctx
        end local 1 // io.vertx.core.http.RequestOptions options
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    4     1  options  Lio/vertx/core/http/RequestOptions;
            1    4     2      ctx  Lio/vertx/core/impl/ContextInternal;
            2    4     3  promise  Lio/vertx/core/impl/future/PromiseInternal<Lio/vertx/core/http/HttpClientRequest;>;
    Signature: (Lio/vertx/core/http/RequestOptions;)Lio/vertx/core/Future<Lio/vertx/core/http/HttpClientRequest;>;
    MethodParameters:
         Name  Flags
      options  

  private void request(io.vertx.core.http.RequestOptions, io.vertx.core.impl.future.PromiseInternal<io.vertx.core.http.HttpClientRequest>);
    descriptor: (Lio/vertx/core/http/RequestOptions;Lio/vertx/core/impl/future/PromiseInternal;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=3, args_size=3
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.RequestOptions options
        start local 2 // io.vertx.core.impl.future.PromiseInternal promise
         0: .line 396
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual io.vertx.core.http.RequestOptions.getMethod:()Lio/vertx/core/http/HttpMethod;
            aload 1 /* options */
            invokevirtual io.vertx.core.http.RequestOptions.getServer:()Lio/vertx/core/net/SocketAddress;
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.getHost:(Lio/vertx/core/http/RequestOptions;)Ljava/lang/String;
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.getPort:(Lio/vertx/core/http/RequestOptions;)I
            aload 1 /* options */
            invokevirtual io.vertx.core.http.RequestOptions.isSsl:()Ljava/lang/Boolean;
            aload 1 /* options */
            invokevirtual io.vertx.core.http.RequestOptions.getURI:()Ljava/lang/String;
            aload 1 /* options */
            invokevirtual io.vertx.core.http.RequestOptions.getHeaders:()Lio/vertx/core/MultiMap;
            aload 1 /* options */
            invokevirtual io.vertx.core.http.RequestOptions.getTimeout:()J
            aload 1 /* options */
            invokevirtual io.vertx.core.http.RequestOptions.getFollowRedirects:()Ljava/lang/Boolean;
            aload 2 /* promise */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.request:(Lio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;ILjava/lang/Boolean;Ljava/lang/String;Lio/vertx/core/MultiMap;JLjava/lang/Boolean;Lio/vertx/core/impl/future/PromiseInternal;)V
         1: .line 397
            return
        end local 2 // io.vertx.core.impl.future.PromiseInternal promise
        end local 1 // io.vertx.core.http.RequestOptions options
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    2     1  options  Lio/vertx/core/http/RequestOptions;
            0    2     2  promise  Lio/vertx/core/impl/future/PromiseInternal<Lio/vertx/core/http/HttpClientRequest;>;
    Signature: (Lio/vertx/core/http/RequestOptions;Lio/vertx/core/impl/future/PromiseInternal<Lio/vertx/core/http/HttpClientRequest;>;)V
    MethodParameters:
         Name  Flags
      options  
      promise  

  public void request(io.vertx.core.http.HttpMethod, int, java.lang.String, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.http.HttpClientRequest>>);
    descriptor: (Lio/vertx/core/http/HttpMethod;ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=6
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.HttpMethod method
        start local 2 // int port
        start local 3 // java.lang.String host
        start local 4 // java.lang.String requestURI
        start local 5 // io.vertx.core.Handler handler
         0: .line 401
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            astore 6 /* ctx */
        start local 6 // io.vertx.core.impl.ContextInternal ctx
         1: .line 402
            aload 6 /* ctx */
            aload 5 /* handler */
            invokeinterface io.vertx.core.impl.ContextInternal.promise:(Lio/vertx/core/Handler;)Lio/vertx/core/impl/future/PromiseInternal;
            astore 7 /* promise */
        start local 7 // io.vertx.core.impl.future.PromiseInternal promise
         2: .line 403
            aload 0 /* this */
            aload 1 /* method */
            iload 2 /* port */
            aload 3 /* host */
            aload 4 /* requestURI */
            aload 7 /* promise */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.request:(Lio/vertx/core/http/HttpMethod;ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/impl/future/PromiseInternal;)V
         3: .line 404
            return
        end local 7 // io.vertx.core.impl.future.PromiseInternal promise
        end local 6 // io.vertx.core.impl.ContextInternal ctx
        end local 5 // io.vertx.core.Handler handler
        end local 4 // java.lang.String requestURI
        end local 3 // java.lang.String host
        end local 2 // int port
        end local 1 // io.vertx.core.http.HttpMethod method
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    4     1      method  Lio/vertx/core/http/HttpMethod;
            0    4     2        port  I
            0    4     3        host  Ljava/lang/String;
            0    4     4  requestURI  Ljava/lang/String;
            0    4     5     handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/HttpClientRequest;>;>;
            1    4     6         ctx  Lio/vertx/core/impl/ContextInternal;
            2    4     7     promise  Lio/vertx/core/impl/future/PromiseInternal<Lio/vertx/core/http/HttpClientRequest;>;
    Signature: (Lio/vertx/core/http/HttpMethod;ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/HttpClientRequest;>;>;)V
    MethodParameters:
            Name  Flags
      method      
      port        
      host        
      requestURI  
      handler     

  public io.vertx.core.Future<io.vertx.core.http.HttpClientRequest> request(io.vertx.core.http.HttpMethod, int, java.lang.String, java.lang.String);
    descriptor: (Lio/vertx/core/http/HttpMethod;ILjava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.HttpMethod method
        start local 2 // int port
        start local 3 // java.lang.String host
        start local 4 // java.lang.String requestURI
         0: .line 408
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            astore 5 /* ctx */
        start local 5 // io.vertx.core.impl.ContextInternal ctx
         1: .line 409
            aload 5 /* ctx */
            invokeinterface io.vertx.core.impl.ContextInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 6 /* promise */
        start local 6 // io.vertx.core.impl.future.PromiseInternal promise
         2: .line 410
            aload 0 /* this */
            aload 1 /* method */
            iload 2 /* port */
            aload 3 /* host */
            aload 4 /* requestURI */
            aload 6 /* promise */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.request:(Lio/vertx/core/http/HttpMethod;ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/impl/future/PromiseInternal;)V
         3: .line 411
            aload 6 /* promise */
            invokeinterface io.vertx.core.impl.future.PromiseInternal.future:()Lio/vertx/core/Future;
            areturn
        end local 6 // io.vertx.core.impl.future.PromiseInternal promise
        end local 5 // io.vertx.core.impl.ContextInternal ctx
        end local 4 // java.lang.String requestURI
        end local 3 // java.lang.String host
        end local 2 // int port
        end local 1 // io.vertx.core.http.HttpMethod method
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    4     1      method  Lio/vertx/core/http/HttpMethod;
            0    4     2        port  I
            0    4     3        host  Ljava/lang/String;
            0    4     4  requestURI  Ljava/lang/String;
            1    4     5         ctx  Lio/vertx/core/impl/ContextInternal;
            2    4     6     promise  Lio/vertx/core/impl/future/PromiseInternal<Lio/vertx/core/http/HttpClientRequest;>;
    Signature: (Lio/vertx/core/http/HttpMethod;ILjava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future<Lio/vertx/core/http/HttpClientRequest;>;
    MethodParameters:
            Name  Flags
      method      
      port        
      host        
      requestURI  

  private void request(io.vertx.core.http.HttpMethod, int, java.lang.String, java.lang.String, io.vertx.core.impl.future.PromiseInternal<io.vertx.core.http.HttpClientRequest>);
    descriptor: (Lio/vertx/core/http/HttpMethod;ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/impl/future/PromiseInternal;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=6, args_size=6
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.HttpMethod method
        start local 2 // int port
        start local 3 // java.lang.String host
        start local 4 // java.lang.String requestURI
        start local 5 // io.vertx.core.impl.future.PromiseInternal promise
         0: .line 415
            aload 0 /* this */
            aload 1 /* method */
            aconst_null
            aload 3 /* host */
            iload 2 /* port */
            aconst_null
            aload 4 /* requestURI */
            aconst_null
            lconst_0
            aconst_null
            aload 5 /* promise */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.request:(Lio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;ILjava/lang/Boolean;Ljava/lang/String;Lio/vertx/core/MultiMap;JLjava/lang/Boolean;Lio/vertx/core/impl/future/PromiseInternal;)V
         1: .line 416
            return
        end local 5 // io.vertx.core.impl.future.PromiseInternal promise
        end local 4 // java.lang.String requestURI
        end local 3 // java.lang.String host
        end local 2 // int port
        end local 1 // io.vertx.core.http.HttpMethod method
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    2     1      method  Lio/vertx/core/http/HttpMethod;
            0    2     2        port  I
            0    2     3        host  Ljava/lang/String;
            0    2     4  requestURI  Ljava/lang/String;
            0    2     5     promise  Lio/vertx/core/impl/future/PromiseInternal<Lio/vertx/core/http/HttpClientRequest;>;
    Signature: (Lio/vertx/core/http/HttpMethod;ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/impl/future/PromiseInternal<Lio/vertx/core/http/HttpClientRequest;>;)V
    MethodParameters:
            Name  Flags
      method      
      port        
      host        
      requestURI  
      promise     

  public void request(io.vertx.core.http.HttpMethod, java.lang.String, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.http.HttpClientRequest>>);
    descriptor: (Lio/vertx/core/http/HttpMethod;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.HttpMethod method
        start local 2 // java.lang.String host
        start local 3 // java.lang.String requestURI
        start local 4 // io.vertx.core.Handler handler
         0: .line 420
            aload 0 /* this */
            aload 1 /* method */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getDefaultPort:()I
            aload 2 /* host */
            aload 3 /* requestURI */
            aload 4 /* handler */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.request:(Lio/vertx/core/http/HttpMethod;ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
         1: .line 421
            return
        end local 4 // io.vertx.core.Handler handler
        end local 3 // java.lang.String requestURI
        end local 2 // java.lang.String host
        end local 1 // io.vertx.core.http.HttpMethod method
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    2     1      method  Lio/vertx/core/http/HttpMethod;
            0    2     2        host  Ljava/lang/String;
            0    2     3  requestURI  Ljava/lang/String;
            0    2     4     handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/HttpClientRequest;>;>;
    Signature: (Lio/vertx/core/http/HttpMethod;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/HttpClientRequest;>;>;)V
    MethodParameters:
            Name  Flags
      method      
      host        
      requestURI  
      handler     

  public io.vertx.core.Future<io.vertx.core.http.HttpClientRequest> request(io.vertx.core.http.HttpMethod, java.lang.String, java.lang.String);
    descriptor: (Lio/vertx/core/http/HttpMethod;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.HttpMethod method
        start local 2 // java.lang.String host
        start local 3 // java.lang.String requestURI
         0: .line 425
            aload 0 /* this */
            aload 1 /* method */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getDefaultPort:()I
            aload 2 /* host */
            aload 3 /* requestURI */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.request:(Lio/vertx/core/http/HttpMethod;ILjava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
            areturn
        end local 3 // java.lang.String requestURI
        end local 2 // java.lang.String host
        end local 1 // io.vertx.core.http.HttpMethod method
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    1     1      method  Lio/vertx/core/http/HttpMethod;
            0    1     2        host  Ljava/lang/String;
            0    1     3  requestURI  Ljava/lang/String;
    Signature: (Lio/vertx/core/http/HttpMethod;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future<Lio/vertx/core/http/HttpClientRequest;>;
    MethodParameters:
            Name  Flags
      method      
      host        
      requestURI  

  public void request(io.vertx.core.http.HttpMethod, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.http.HttpClientRequest>>);
    descriptor: (Lio/vertx/core/http/HttpMethod;Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.HttpMethod method
        start local 2 // java.lang.String requestURI
        start local 3 // io.vertx.core.Handler handler
         0: .line 430
            aload 0 /* this */
            aload 1 /* method */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getDefaultPort:()I
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getDefaultHost:()Ljava/lang/String;
            aload 2 /* requestURI */
            aload 3 /* handler */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.request:(Lio/vertx/core/http/HttpMethod;ILjava/lang/String;Ljava/lang/String;Lio/vertx/core/Handler;)V
         1: .line 431
            return
        end local 3 // io.vertx.core.Handler handler
        end local 2 // java.lang.String requestURI
        end local 1 // io.vertx.core.http.HttpMethod method
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    2     1      method  Lio/vertx/core/http/HttpMethod;
            0    2     2  requestURI  Ljava/lang/String;
            0    2     3     handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/HttpClientRequest;>;>;
    Signature: (Lio/vertx/core/http/HttpMethod;Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/http/HttpClientRequest;>;>;)V
    MethodParameters:
            Name  Flags
      method      
      requestURI  
      handler     

  public io.vertx.core.Future<io.vertx.core.http.HttpClientRequest> request(io.vertx.core.http.HttpMethod, java.lang.String);
    descriptor: (Lio/vertx/core/http/HttpMethod;Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.HttpMethod method
        start local 2 // java.lang.String requestURI
         0: .line 435
            aload 0 /* this */
            aload 1 /* method */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getDefaultPort:()I
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getDefaultHost:()Ljava/lang/String;
            aload 2 /* requestURI */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.request:(Lio/vertx/core/http/HttpMethod;ILjava/lang/String;Ljava/lang/String;)Lio/vertx/core/Future;
            areturn
        end local 2 // java.lang.String requestURI
        end local 1 // io.vertx.core.http.HttpMethod method
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    1     1      method  Lio/vertx/core/http/HttpMethod;
            0    1     2  requestURI  Ljava/lang/String;
    Signature: (Lio/vertx/core/http/HttpMethod;Ljava/lang/String;)Lio/vertx/core/Future<Lio/vertx/core/http/HttpClientRequest;>;
    MethodParameters:
            Name  Flags
      method      
      requestURI  

  public void close(io.vertx.core.Promise<java.lang.Void>);
    descriptor: (Lio/vertx/core/Promise;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.Promise completion
         0: .line 440
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 441
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.timerID:J
            lconst_0
            lcmp
            iflt 4
         2: .line 442
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.timerID:J
            invokeinterface io.vertx.core.impl.VertxInternal.cancelTimer:(J)Z
            pop
         3: .line 443
            aload 0 /* this */
            ldc -1
            putfield io.vertx.core.http.impl.HttpClientImpl.timerID:J
         4: .line 440
      StackMap locals: io.vertx.core.http.impl.HttpClientImpl
      StackMap stack:
            aload 2
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 446
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.webSocketCM:Lio/vertx/core/net/impl/clientconnection/ConnectionManager;
            invokevirtual io.vertx.core.net.impl.clientconnection.ConnectionManager.close:()V
         9: .line 447
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.httpCM:Lio/vertx/core/net/impl/clientconnection/ConnectionManager;
            invokevirtual io.vertx.core.net.impl.clientconnection.ConnectionManager.close:()V
        10: .line 448
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.channelGroup:Lio/netty/channel/group/ChannelGroup;
            invokeinterface io.netty.channel.group.ChannelGroup.close:()Lio/netty/channel/group/ChannelGroupFuture;
            astore 2 /* fut */
        start local 2 // io.netty.channel.group.ChannelGroupFuture fut
        11: .line 449
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.metrics:Lio/vertx/core/spi/metrics/HttpClientMetrics;
            ifnull 17
        12: .line 450
            invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
            checkcast io.vertx.core.impl.future.PromiseInternal
            astore 3 /* p */
        start local 3 // io.vertx.core.impl.future.PromiseInternal p
        13: .line 451
            aload 2 /* fut */
            aload 3 /* p */
            invokeinterface io.netty.channel.group.ChannelGroupFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/group/ChannelGroupFuture;
            pop
        14: .line 452
            aload 3 /* p */
            invokeinterface io.vertx.core.impl.future.PromiseInternal.future:()Lio/vertx/core/Future;
            aload 0 /* this */
            invokedynamic apply(Lio/vertx/core/http/impl/HttpClientImpl;)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/core/http/impl/HttpClientImpl.lambda$5(Ljava/lang/Void;)Lio/vertx/core/Future; (7)
                  (Ljava/lang/Void;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Future.compose:(Ljava/util/function/Function;)Lio/vertx/core/Future;
        15: .line 455
            aload 1 /* completion */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
        end local 3 // io.vertx.core.impl.future.PromiseInternal p
        16: .line 456
            goto 18
        17: .line 457
      StackMap locals: io.netty.channel.group.ChannelGroupFuture
      StackMap stack:
            aload 2 /* fut */
            aload 1 /* completion */
            checkcast io.vertx.core.impl.future.PromiseInternal
            invokeinterface io.netty.channel.group.ChannelGroupFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/group/ChannelGroupFuture;
            pop
        18: .line 459
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.netty.channel.group.ChannelGroupFuture fut
        end local 1 // io.vertx.core.Promise completion
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lio/vertx/core/http/impl/HttpClientImpl;
            0   19     1  completion  Lio/vertx/core/Promise<Ljava/lang/Void;>;
           11   19     2         fut  Lio/netty/channel/group/ChannelGroupFuture;
           13   16     3           p  Lio/vertx/core/impl/future/PromiseInternal<Ljava/lang/Void;>;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    Signature: (Lio/vertx/core/Promise<Ljava/lang/Void;>;)V
    MethodParameters:
            Name  Flags
      completion  

  public void close(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.Handler handler
         0: .line 463
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            astore 2 /* closingCtx */
        start local 2 // io.vertx.core.impl.ContextInternal closingCtx
         1: .line 464
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.closeFuture:Lio/vertx/core/impl/CloseFuture;
            aload 1 /* handler */
            ifnull 2
            aload 2 /* closingCtx */
            aload 1 /* handler */
            invokeinterface io.vertx.core.impl.ContextInternal.promise:(Lio/vertx/core/Handler;)Lio/vertx/core/impl/future/PromiseInternal;
            goto 3
      StackMap locals: io.vertx.core.http.impl.HttpClientImpl io.vertx.core.Handler io.vertx.core.impl.ContextInternal
      StackMap stack: io.vertx.core.impl.CloseFuture
         2: aconst_null
      StackMap locals: io.vertx.core.http.impl.HttpClientImpl io.vertx.core.Handler io.vertx.core.impl.ContextInternal
      StackMap stack: io.vertx.core.impl.CloseFuture io.vertx.core.impl.future.PromiseInternal
         3: invokevirtual io.vertx.core.impl.CloseFuture.close:(Lio/vertx/core/Promise;)V
         4: .line 465
            return
        end local 2 // io.vertx.core.impl.ContextInternal closingCtx
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    5     1     handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    5     2  closingCtx  Lio/vertx/core/impl/ContextInternal;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
         Name  Flags
      handler  

  public io.vertx.core.Future<java.lang.Void> close();
    descriptor: ()Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
         0: .line 469
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            astore 1 /* closingCtx */
        start local 1 // io.vertx.core.impl.ContextInternal closingCtx
         1: .line 470
            aload 1 /* closingCtx */
            invokeinterface io.vertx.core.impl.ContextInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 2 /* promise */
        start local 2 // io.vertx.core.impl.future.PromiseInternal promise
         2: .line 471
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.closeFuture:Lio/vertx/core/impl/CloseFuture;
            aload 2 /* promise */
            invokevirtual io.vertx.core.impl.CloseFuture.close:(Lio/vertx/core/Promise;)V
         3: .line 472
            aload 2 /* promise */
            invokeinterface io.vertx.core.impl.future.PromiseInternal.future:()Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.impl.future.PromiseInternal promise
        end local 1 // io.vertx.core.impl.ContextInternal closingCtx
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lio/vertx/core/http/impl/HttpClientImpl;
            1    4     1  closingCtx  Lio/vertx/core/impl/ContextInternal;
            2    4     2     promise  Lio/vertx/core/impl/future/PromiseInternal<Ljava/lang/Void;>;
    Signature: ()Lio/vertx/core/Future<Ljava/lang/Void;>;

  public boolean isMetricsEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
         0: .line 477
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.getMetrics:()Lio/vertx/core/spi/metrics/Metrics;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/core/http/impl/HttpClientImpl;

  public io.vertx.core.spi.metrics.Metrics getMetrics();
    descriptor: ()Lio/vertx/core/spi/metrics/Metrics;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
         0: .line 482
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.metrics:Lio/vertx/core/spi/metrics/HttpClientMetrics;
            areturn
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/HttpClientImpl;

  public io.vertx.core.http.HttpClient connectionHandler(io.vertx.core.Handler<io.vertx.core.http.HttpConnection>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/http/HttpClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.Handler handler
         0: .line 487
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.core.http.impl.HttpClientImpl.connectionHandler:Lio/vertx/core/Handler;
         1: .line 488
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    2     1  handler  Lio/vertx/core/Handler<Lio/vertx/core/http/HttpConnection;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/http/HttpConnection;>;)Lio/vertx/core/http/HttpClient;
    MethodParameters:
         Name  Flags
      handler  

  io.vertx.core.Handler<io.vertx.core.http.HttpConnection> connectionHandler();
    descriptor: ()Lio/vertx/core/Handler;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
         0: .line 492
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.connectionHandler:Lio/vertx/core/Handler;
            areturn
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/HttpClientImpl;
    Signature: ()Lio/vertx/core/Handler<Lio/vertx/core/http/HttpConnection;>;

  public io.vertx.core.http.HttpClient redirectHandler(java.util.function.Function<io.vertx.core.http.HttpClientResponse, io.vertx.core.Future<io.vertx.core.http.RequestOptions>>);
    descriptor: (Ljava/util/function/Function;)Lio/vertx/core/http/HttpClient;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // java.util.function.Function handler
         0: .line 497
            aload 1 /* handler */
            ifnonnull 2
         1: .line 498
            getstatic io.vertx.core.http.impl.HttpClientImpl.DEFAULT_HANDLER:Ljava/util/function/Function;
            astore 1 /* handler */
         2: .line 500
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.core.http.impl.HttpClientImpl.redirectHandler:Ljava/util/function/Function;
         3: .line 501
            aload 0 /* this */
            areturn
        end local 1 // java.util.function.Function handler
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    4     1  handler  Ljava/util/function/Function<Lio/vertx/core/http/HttpClientResponse;Lio/vertx/core/Future<Lio/vertx/core/http/RequestOptions;>;>;
    Signature: (Ljava/util/function/Function<Lio/vertx/core/http/HttpClientResponse;Lio/vertx/core/Future<Lio/vertx/core/http/RequestOptions;>;>;)Lio/vertx/core/http/HttpClient;
    MethodParameters:
         Name  Flags
      handler  

  public java.util.function.Function<io.vertx.core.http.HttpClientResponse, io.vertx.core.Future<io.vertx.core.http.RequestOptions>> redirectHandler();
    descriptor: ()Ljava/util/function/Function;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
         0: .line 506
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.redirectHandler:Ljava/util/function/Function;
            areturn
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/HttpClientImpl;
    Signature: ()Ljava/util/function/Function<Lio/vertx/core/http/HttpClientResponse;Lio/vertx/core/Future<Lio/vertx/core/http/RequestOptions;>;>;

  public io.vertx.core.http.HttpClientOptions getOptions();
    descriptor: ()Lio/vertx/core/http/HttpClientOptions;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
         0: .line 510
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            areturn
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/HttpClientImpl;

  public io.vertx.core.impl.VertxInternal getVertx();
    descriptor: ()Lio/vertx/core/impl/VertxInternal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
         0: .line 517
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            areturn
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/HttpClientImpl;

  io.vertx.core.net.impl.SSLHelper getSslHelper();
    descriptor: ()Lio/vertx/core/net/impl/SSLHelper;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
         0: .line 521
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.sslHelper:Lio/vertx/core/net/impl/SSLHelper;
            areturn
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/HttpClientImpl;

  private void request(io.vertx.core.http.HttpMethod, io.vertx.core.net.SocketAddress, java.lang.String, int, java.lang.Boolean, java.lang.String, io.vertx.core.MultiMap, long, java.lang.Boolean, io.vertx.core.impl.future.PromiseInternal<io.vertx.core.http.HttpClientRequest>);
    descriptor: (Lio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;ILjava/lang/Boolean;Ljava/lang/String;Lio/vertx/core/MultiMap;JLjava/lang/Boolean;Lio/vertx/core/impl/future/PromiseInternal;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=13, locals=17, args_size=11
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.HttpMethod method
        start local 2 // io.vertx.core.net.SocketAddress server
        start local 3 // java.lang.String host
        start local 4 // int port
        start local 5 // java.lang.Boolean ssl
        start local 6 // java.lang.String requestURI
        start local 7 // io.vertx.core.MultiMap headers
        start local 8 // long timeout
        start local 10 // java.lang.Boolean followRedirects
        start local 11 // io.vertx.core.impl.future.PromiseInternal requestPromise
         0: .line 534
            aload 1 /* method */
            ldc "no null method accepted"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 535
            aload 3 /* host */
            ldc "no null host accepted"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 536
            aload 6 /* requestURI */
            ldc "no null requestURI accepted"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 537
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.isUseAlpn:()Z
            istore 12 /* useAlpn */
        start local 12 // boolean useAlpn
         4: .line 538
            aload 5 /* ssl */
            ifnull 5
            aload 5 /* ssl */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            goto 6
      StackMap locals: int
      StackMap stack:
         5: aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.isSsl:()Z
      StackMap locals:
      StackMap stack: int
         6: istore 13 /* useSSL */
        start local 13 // boolean useSSL
         7: .line 539
            iload 12 /* useAlpn */
            ifne 9
            iload 13 /* useSSL */
            ifeq 9
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getProtocolVersion:()Lio/vertx/core/http/HttpVersion;
            getstatic io.vertx.core.http.HttpVersion.HTTP_2:Lio/vertx/core/http/HttpVersion;
            if_acmpne 9
         8: .line 540
            new java.lang.IllegalArgumentException
            dup
            ldc "Must enable ALPN when using H2"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 542
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.checkClosed:()V
        10: .line 543
            iload 13 /* useSSL */
            ifne 11
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.proxyType:Lio/vertx/core/net/ProxyType;
            getstatic io.vertx.core.net.ProxyType.HTTP:Lio/vertx/core/net/ProxyType;
            if_acmpne 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: istore 14 /* useProxy */
        start local 14 // boolean useProxy
        13: .line 545
            iload 14 /* useProxy */
            ifeq 31
        14: .line 547
            getstatic io.vertx.core.http.impl.HttpClientImpl.ABS_URI_START_PATTERN:Ljava/util/regex/Pattern;
            aload 6 /* requestURI */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.find:()Z
            ifne 22
        15: .line 548
            bipush 80
            istore 15 /* defaultPort */
        start local 15 // int defaultPort
        16: .line 549
            iload 4 /* port */
            iconst_m1
            if_icmpeq 17
            iload 4 /* port */
            iload 15 /* defaultPort */
            if_icmpeq 17
            new java.lang.StringBuilder
            dup
            ldc ":"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* port */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 18
      StackMap locals: int int
      StackMap stack:
        17: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
        18: astore 16 /* addPort */
        start local 16 // java.lang.String addPort
        19: .line 550
            new java.lang.StringBuilder
            dup
            aload 5 /* ssl */
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            if_acmpne 20
            ldc "https://"
            goto 21
      StackMap locals: io.vertx.core.http.impl.HttpClientImpl io.vertx.core.http.HttpMethod io.vertx.core.net.SocketAddress java.lang.String int java.lang.Boolean java.lang.String io.vertx.core.MultiMap long java.lang.Boolean io.vertx.core.impl.future.PromiseInternal int int int int java.lang.String
      StackMap stack: new 19 new 19
        20: ldc "http://"
      StackMap locals: io.vertx.core.http.impl.HttpClientImpl io.vertx.core.http.HttpMethod io.vertx.core.net.SocketAddress java.lang.String int java.lang.Boolean java.lang.String io.vertx.core.MultiMap long java.lang.Boolean io.vertx.core.impl.future.PromiseInternal int int int int java.lang.String
      StackMap stack: new 19 new 19 java.lang.String
        21: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* host */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 16 /* addPort */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* requestURI */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* requestURI */
        end local 16 // java.lang.String addPort
        end local 15 // int defaultPort
        22: .line 552
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getProxyOptions:()Lio/vertx/core/net/ProxyOptions;
            astore 15 /* proxyOptions */
        start local 15 // io.vertx.core.net.ProxyOptions proxyOptions
        23: .line 553
            aload 15 /* proxyOptions */
            invokevirtual io.vertx.core.net.ProxyOptions.getUsername:()Ljava/lang/String;
            ifnull 29
            aload 15 /* proxyOptions */
            invokevirtual io.vertx.core.net.ProxyOptions.getPassword:()Ljava/lang/String;
            ifnull 29
        24: .line 554
            aload 7 /* headers */
            ifnonnull 26
        25: .line 555
            invokestatic io.vertx.core.http.HttpHeaders.headers:()Lio/vertx/core/MultiMap;
            astore 7 /* headers */
        26: .line 557
      StackMap locals: io.vertx.core.net.ProxyOptions
      StackMap stack:
            aload 7 /* headers */
            ldc "Proxy-Authorization"
            new java.lang.StringBuilder
            dup
            ldc "Basic "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            invokestatic java.util.Base64.getEncoder:()Ljava/util/Base64$Encoder;
        27: .line 558
            new java.lang.StringBuilder
            dup
            aload 15 /* proxyOptions */
            invokevirtual io.vertx.core.net.ProxyOptions.getUsername:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 15 /* proxyOptions */
            invokevirtual io.vertx.core.net.ProxyOptions.getPassword:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            invokevirtual java.util.Base64$Encoder.encodeToString:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        28: .line 557
            invokeinterface io.vertx.core.MultiMap.add:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/MultiMap;
            pop
        29: .line 560
      StackMap locals:
      StackMap stack:
            aload 15 /* proxyOptions */
            invokevirtual io.vertx.core.net.ProxyOptions.getPort:()I
            aload 15 /* proxyOptions */
            invokevirtual io.vertx.core.net.ProxyOptions.getHost:()Ljava/lang/String;
            invokestatic io.vertx.core.net.SocketAddress.inetSocketAddress:(ILjava/lang/String;)Lio/vertx/core/net/SocketAddress;
            astore 2 /* server */
        end local 15 // io.vertx.core.net.ProxyOptions proxyOptions
        30: .line 561
            goto 33
      StackMap locals:
      StackMap stack:
        31: aload 2 /* server */
            ifnonnull 33
        32: .line 562
            iload 4 /* port */
            aload 3 /* host */
            invokestatic io.vertx.core.net.SocketAddress.inetSocketAddress:(ILjava/lang/String;)Lio/vertx/core/net/SocketAddress;
            astore 2 /* server */
        33: .line 565
      StackMap locals:
      StackMap stack:
            aload 3 /* host */
            astore 15 /* peerHost */
        start local 15 // java.lang.String peerHost
        34: .line 566
            aload 15 /* peerHost */
            ldc "."
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 36
        35: .line 567
            aload 15 /* peerHost */
            iconst_0
            aload 15 /* peerHost */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 15 /* peerHost */
        36: .line 569
      StackMap locals: java.lang.String
      StackMap stack:
            iload 4 /* port */
            aload 15 /* peerHost */
            invokestatic io.vertx.core.net.SocketAddress.inetSocketAddress:(ILjava/lang/String;)Lio/vertx/core/net/SocketAddress;
            astore 16 /* peerAddress */
        start local 16 // io.vertx.core.net.SocketAddress peerAddress
        37: .line 570
            aload 0 /* this */
            aload 1 /* method */
            aload 16 /* peerAddress */
            aload 2 /* server */
            aload 3 /* host */
            iload 4 /* port */
            iload 13 /* useSSL */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 6 /* requestURI */
            aload 7 /* headers */
            lload 8 /* timeout */
            aload 10 /* followRedirects */
            aload 11 /* requestPromise */
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.request:(Lio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;ILjava/lang/Boolean;Ljava/lang/String;Lio/vertx/core/MultiMap;JLjava/lang/Boolean;Lio/vertx/core/impl/future/PromiseInternal;)V
        38: .line 571
            return
        end local 16 // io.vertx.core.net.SocketAddress peerAddress
        end local 15 // java.lang.String peerHost
        end local 14 // boolean useProxy
        end local 13 // boolean useSSL
        end local 12 // boolean useAlpn
        end local 11 // io.vertx.core.impl.future.PromiseInternal requestPromise
        end local 10 // java.lang.Boolean followRedirects
        end local 8 // long timeout
        end local 7 // io.vertx.core.MultiMap headers
        end local 6 // java.lang.String requestURI
        end local 5 // java.lang.Boolean ssl
        end local 4 // int port
        end local 3 // java.lang.String host
        end local 2 // io.vertx.core.net.SocketAddress server
        end local 1 // io.vertx.core.http.HttpMethod method
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   39     0             this  Lio/vertx/core/http/impl/HttpClientImpl;
            0   39     1           method  Lio/vertx/core/http/HttpMethod;
            0   39     2           server  Lio/vertx/core/net/SocketAddress;
            0   39     3             host  Ljava/lang/String;
            0   39     4             port  I
            0   39     5              ssl  Ljava/lang/Boolean;
            0   39     6       requestURI  Ljava/lang/String;
            0   39     7          headers  Lio/vertx/core/MultiMap;
            0   39     8          timeout  J
            0   39    10  followRedirects  Ljava/lang/Boolean;
            0   39    11   requestPromise  Lio/vertx/core/impl/future/PromiseInternal<Lio/vertx/core/http/HttpClientRequest;>;
            4   39    12          useAlpn  Z
            7   39    13           useSSL  Z
           13   39    14         useProxy  Z
           16   22    15      defaultPort  I
           19   22    16          addPort  Ljava/lang/String;
           23   30    15     proxyOptions  Lio/vertx/core/net/ProxyOptions;
           34   39    15         peerHost  Ljava/lang/String;
           37   39    16      peerAddress  Lio/vertx/core/net/SocketAddress;
    Signature: (Lio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;ILjava/lang/Boolean;Ljava/lang/String;Lio/vertx/core/MultiMap;JLjava/lang/Boolean;Lio/vertx/core/impl/future/PromiseInternal<Lio/vertx/core/http/HttpClientRequest;>;)V
    MethodParameters:
                 Name  Flags
      method           
      server           
      host             
      port             
      ssl              
      requestURI       
      headers          
      timeout          
      followRedirects  
      requestPromise   

  private void request(io.vertx.core.http.HttpMethod, io.vertx.core.net.SocketAddress, io.vertx.core.net.SocketAddress, java.lang.String, int, java.lang.Boolean, java.lang.String, io.vertx.core.MultiMap, long, java.lang.Boolean, io.vertx.core.impl.future.PromiseInternal<io.vertx.core.http.HttpClientRequest>);
    descriptor: (Lio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;ILjava/lang/Boolean;Ljava/lang/String;Lio/vertx/core/MultiMap;JLjava/lang/Boolean;Lio/vertx/core/impl/future/PromiseInternal;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=18, locals=18, args_size=12
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // io.vertx.core.http.HttpMethod method
        start local 2 // io.vertx.core.net.SocketAddress peerAddress
        start local 3 // io.vertx.core.net.SocketAddress server
        start local 4 // java.lang.String host
        start local 5 // int port
        start local 6 // java.lang.Boolean useSSL
        start local 7 // java.lang.String requestURI
        start local 8 // io.vertx.core.MultiMap headers
        start local 9 // long timeout
        start local 11 // java.lang.Boolean followRedirects
        start local 12 // io.vertx.core.impl.future.PromiseInternal requestPromise
         0: .line 585
            aload 12 /* requestPromise */
            invokeinterface io.vertx.core.impl.future.PromiseInternal.context:()Lio/vertx/core/impl/ContextInternal;
            astore 13 /* ctx */
        start local 13 // io.vertx.core.impl.ContextInternal ctx
         1: .line 586
            new io.vertx.core.http.impl.EndpointKey
            dup
            aload 6 /* useSSL */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            aload 3 /* server */
            aload 2 /* peerAddress */
            invokespecial io.vertx.core.http.impl.EndpointKey.<init>:(ZLio/vertx/core/net/SocketAddress;Lio/vertx/core/net/SocketAddress;)V
            astore 14 /* key */
        start local 14 // io.vertx.core.http.impl.EndpointKey key
         2: .line 588
            lload 9 /* timeout */
            lconst_0
            lcmp
            ifle 5
         3: .line 589
            aload 13 /* ctx */
            lload 9 /* timeout */
            aload 12 /* requestPromise */
            lload 9 /* timeout */
            aload 1 /* method */
            aload 3 /* server */
            aload 7 /* requestURI */
            invokedynamic handle(Lio/vertx/core/impl/future/PromiseInternal;JLio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;)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/core/http/impl/HttpClientImpl.lambda$6(Lio/vertx/core/impl/future/PromiseInternal;JLio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;Ljava/lang/Long;)V (6)
                  (Ljava/lang/Long;)V
            invokeinterface io.vertx.core.impl.ContextInternal.setTimer:(JLio/vertx/core/Handler;)J
            lstore 15 /* timerID */
        start local 15 // long timerID
         4: .line 592
            goto 6
        end local 15 // long timerID
         5: .line 593
      StackMap locals: io.vertx.core.impl.ContextInternal io.vertx.core.http.impl.EndpointKey
      StackMap stack:
            ldc -1
            lstore 15 /* timerID */
        start local 15 // long timerID
         6: .line 596
      StackMap locals: long
      StackMap stack:
            aload 13 /* ctx */
            instanceof io.vertx.core.impl.EventLoopContext
            ifeq 9
         7: .line 597
            aload 13 /* ctx */
            checkcast io.vertx.core.impl.EventLoopContext
            astore 17 /* eventLoopContext */
        start local 17 // io.vertx.core.impl.EventLoopContext eventLoopContext
         8: .line 598
            goto 10
        end local 17 // io.vertx.core.impl.EventLoopContext eventLoopContext
         9: .line 599
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            aload 13 /* ctx */
            invokeinterface io.vertx.core.impl.ContextInternal.nettyEventLoop:()Lio/netty/channel/EventLoop;
            aload 13 /* ctx */
            invokeinterface io.vertx.core.impl.ContextInternal.workerPool:()Lio/vertx/core/impl/WorkerPool;
            aload 13 /* ctx */
            invokeinterface io.vertx.core.impl.ContextInternal.classLoader:()Ljava/lang/ClassLoader;
            invokeinterface io.vertx.core.impl.VertxInternal.createEventLoopContext:(Lio/netty/channel/EventLoop;Lio/vertx/core/impl/WorkerPool;Ljava/lang/ClassLoader;)Lio/vertx/core/impl/EventLoopContext;
            astore 17 /* eventLoopContext */
        start local 17 // io.vertx.core.impl.EventLoopContext eventLoopContext
        10: .line 601
      StackMap locals: io.vertx.core.impl.EventLoopContext
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.httpCM:Lio/vertx/core/net/impl/clientconnection/ConnectionManager;
            aload 17 /* eventLoopContext */
            aload 14 /* key */
            aload 0 /* this */
            aload 13 /* ctx */
            aload 6 /* useSSL */
            aload 1 /* method */
            aload 3 /* server */
            aload 4 /* host */
            iload 5 /* port */
            aload 7 /* requestURI */
            aload 8 /* headers */
            aload 11 /* followRedirects */
            lload 15 /* timerID */
            lload 9 /* timeout */
            aload 12 /* requestPromise */
            invokedynamic handle(Lio/vertx/core/http/impl/HttpClientImpl;Lio/vertx/core/impl/ContextInternal;Ljava/lang/Boolean;Lio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;ILjava/lang/String;Lio/vertx/core/MultiMap;Ljava/lang/Boolean;JJLio/vertx/core/impl/future/PromiseInternal;)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/core/http/impl/HttpClientImpl.lambda$7(Lio/vertx/core/impl/ContextInternal;Ljava/lang/Boolean;Lio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;ILjava/lang/String;Lio/vertx/core/MultiMap;Ljava/lang/Boolean;JJLio/vertx/core/impl/future/PromiseInternal;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokevirtual io.vertx.core.net.impl.clientconnection.ConnectionManager.getConnection:(Lio/vertx/core/impl/EventLoopContext;Ljava/lang/Object;Lio/vertx/core/Handler;)V
        11: .line 630
            return
        end local 17 // io.vertx.core.impl.EventLoopContext eventLoopContext
        end local 15 // long timerID
        end local 14 // io.vertx.core.http.impl.EndpointKey key
        end local 13 // io.vertx.core.impl.ContextInternal ctx
        end local 12 // io.vertx.core.impl.future.PromiseInternal requestPromise
        end local 11 // java.lang.Boolean followRedirects
        end local 9 // long timeout
        end local 8 // io.vertx.core.MultiMap headers
        end local 7 // java.lang.String requestURI
        end local 6 // java.lang.Boolean useSSL
        end local 5 // int port
        end local 4 // java.lang.String host
        end local 3 // io.vertx.core.net.SocketAddress server
        end local 2 // io.vertx.core.net.SocketAddress peerAddress
        end local 1 // io.vertx.core.http.HttpMethod method
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0              this  Lio/vertx/core/http/impl/HttpClientImpl;
            0   12     1            method  Lio/vertx/core/http/HttpMethod;
            0   12     2       peerAddress  Lio/vertx/core/net/SocketAddress;
            0   12     3            server  Lio/vertx/core/net/SocketAddress;
            0   12     4              host  Ljava/lang/String;
            0   12     5              port  I
            0   12     6            useSSL  Ljava/lang/Boolean;
            0   12     7        requestURI  Ljava/lang/String;
            0   12     8           headers  Lio/vertx/core/MultiMap;
            0   12     9           timeout  J
            0   12    11   followRedirects  Ljava/lang/Boolean;
            0   12    12    requestPromise  Lio/vertx/core/impl/future/PromiseInternal<Lio/vertx/core/http/HttpClientRequest;>;
            1   12    13               ctx  Lio/vertx/core/impl/ContextInternal;
            2   12    14               key  Lio/vertx/core/http/impl/EndpointKey;
            4    5    15           timerID  J
            6   12    15           timerID  J
            8    9    17  eventLoopContext  Lio/vertx/core/impl/EventLoopContext;
           10   12    17  eventLoopContext  Lio/vertx/core/impl/EventLoopContext;
    Signature: (Lio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;ILjava/lang/Boolean;Ljava/lang/String;Lio/vertx/core/MultiMap;JLjava/lang/Boolean;Lio/vertx/core/impl/future/PromiseInternal<Lio/vertx/core/http/HttpClientRequest;>;)V
    MethodParameters:
                 Name  Flags
      method           
      peerAddress      
      server           
      host             
      port             
      useSSL           
      requestURI       
      headers          
      timeout          
      followRedirects  
      requestPromise   

  private void checkClosed();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
         0: .line 633
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.closeFuture:Lio/vertx/core/impl/CloseFuture;
            invokevirtual io.vertx.core.impl.CloseFuture.isClosed:()Z
            ifeq 2
         1: .line 634
            new java.lang.IllegalStateException
            dup
            ldc "Client is closed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 636
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/core/http/impl/HttpClientImpl;

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
         0: .line 643
            aload 0 /* this */
            invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
            invokevirtual io.vertx.core.http.impl.HttpClientImpl.close:(Lio/vertx/core/Handler;)V
         1: .line 644
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         2: .line 645
            return
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/core/http/impl/HttpClientImpl;
    Exceptions:
      throws java.lang.Throwable

  static int[] $SWITCH_TABLE$io$vertx$core$http$HttpVersion();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 60
            getstatic io.vertx.core.http.impl.HttpClientImpl.$SWITCH_TABLE$io$vertx$core$http$HttpVersion:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic io.vertx.core.http.HttpVersion.values:()[Lio/vertx/core/http/HttpVersion;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic io.vertx.core.http.HttpVersion.HTTP_1_0:Lio/vertx/core/http/HttpVersion;
            invokevirtual io.vertx.core.http.HttpVersion.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic io.vertx.core.http.HttpVersion.HTTP_1_1:Lio/vertx/core/http/HttpVersion;
            invokevirtual io.vertx.core.http.HttpVersion.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic io.vertx.core.http.HttpVersion.HTTP_2:Lio/vertx/core/http/HttpVersion;
            invokevirtual io.vertx.core.http.HttpVersion.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic io.vertx.core.http.impl.HttpClientImpl.$SWITCH_TABLE$io$vertx$core$http$HttpVersion:[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

  private static io.vertx.core.Future lambda$0(io.vertx.core.http.HttpClientResponse);
    descriptor: (Lio/vertx/core/http/HttpClientResponse;)Lio/vertx/core/Future;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=12, args_size=1
        start local 0 // io.vertx.core.http.HttpClientResponse resp
         0: .line 67
            aload 0 /* resp */
            invokeinterface io.vertx.core.http.HttpClientResponse.statusCode:()I
            istore 1 /* statusCode */
        start local 1 // int statusCode
         1: .line 68
            aload 0 /* resp */
            getstatic io.vertx.core.http.HttpHeaders.LOCATION:Ljava/lang/CharSequence;
            invokeinterface io.vertx.core.http.HttpClientResponse.getHeader:(Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 2 /* location */
        start local 2 // java.lang.String location
         2: .line 69
            aload 2 /* location */
            ifnull 38
            iload 1 /* statusCode */
            sipush 301
            if_icmpeq 3
            iload 1 /* statusCode */
            sipush 302
            if_icmpeq 3
            iload 1 /* statusCode */
            sipush 303
            if_icmpeq 3
            iload 1 /* statusCode */
            sipush 307
            if_icmpeq 3
            iload 1 /* statusCode */
            sipush 308
            if_icmpne 38
         3: .line 70
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 0 /* resp */
            invokeinterface io.vertx.core.http.HttpClientResponse.request:()Lio/vertx/core/http/HttpClientRequest;
            invokeinterface io.vertx.core.http.HttpClientRequest.getMethod:()Lio/vertx/core/http/HttpMethod;
            astore 3 /* m */
        start local 3 // io.vertx.core.http.HttpMethod m
         4: .line 71
            iload 1 /* statusCode */
            sipush 303
            if_icmpne 7
         5: .line 72
            getstatic io.vertx.core.http.HttpMethod.GET:Lio/vertx/core/http/HttpMethod;
            astore 3 /* m */
         6: .line 73
            goto 9
      StackMap locals: io.vertx.core.http.HttpMethod
      StackMap stack:
         7: aload 3 /* m */
            getstatic io.vertx.core.http.HttpMethod.GET:Lio/vertx/core/http/HttpMethod;
            if_acmpeq 9
            aload 3 /* m */
            getstatic io.vertx.core.http.HttpMethod.HEAD:Lio/vertx/core/http/HttpMethod;
            if_acmpeq 9
         8: .line 74
            aconst_null
            areturn
         9: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* resp */
            invokeinterface io.vertx.core.http.HttpClientResponse.request:()Lio/vertx/core/http/HttpClientRequest;
            invokeinterface io.vertx.core.http.HttpClientRequest.absoluteURI:()Ljava/lang/String;
            aload 2 /* location */
            invokestatic io.vertx.core.http.impl.HttpUtils.resolveURIReference:(Ljava/lang/String;Ljava/lang/String;)Ljava/net/URI;
            astore 4 /* uri */
        start local 4 // java.net.URI uri
        10: .line 78
            aload 4 /* uri */
            invokevirtual java.net.URI.getPort:()I
            istore 6 /* port */
        start local 6 // int port
        11: .line 79
            aload 4 /* uri */
            invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
            astore 7 /* protocol */
        start local 7 // java.lang.String protocol
        12: .line 80
            aload 7 /* protocol */
            aload 7 /* protocol */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            istore 8 /* chend */
        start local 8 // char chend
        13: .line 81
            iload 8 /* chend */
            bipush 112
            if_icmpne 18
        14: .line 82
            iconst_0
            istore 5 /* ssl */
        start local 5 // boolean ssl
        15: .line 83
            iload 6 /* port */
            iconst_m1
            if_icmpne 24
        16: .line 84
            bipush 80
            istore 6 /* port */
        17: .line 86
            goto 24
        end local 5 // boolean ssl
      StackMap locals: io.vertx.core.http.HttpClientResponse int java.lang.String io.vertx.core.http.HttpMethod java.net.URI top int java.lang.String int
      StackMap stack:
        18: iload 8 /* chend */
            bipush 115
            if_icmpne 23
        19: .line 87
            iconst_1
            istore 5 /* ssl */
        start local 5 // boolean ssl
        20: .line 88
            iload 6 /* port */
            iconst_m1
            if_icmpne 24
        21: .line 89
            sipush 443
            istore 6 /* port */
        22: .line 91
            goto 24
        end local 5 // boolean ssl
        23: .line 92
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        start local 5 // boolean ssl
        24: .line 94
      StackMap locals: io.vertx.core.http.HttpClientResponse int java.lang.String io.vertx.core.http.HttpMethod java.net.URI int int java.lang.String int
      StackMap stack:
            aload 4 /* uri */
            invokevirtual java.net.URI.getPath:()Ljava/lang/String;
            astore 9 /* requestURI */
        start local 9 // java.lang.String requestURI
        25: .line 95
            aload 9 /* requestURI */
            ifnull 26
            aload 9 /* requestURI */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 27
        26: .line 96
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "/"
            astore 9 /* requestURI */
        27: .line 98
      StackMap locals:
      StackMap stack:
            aload 4 /* uri */
            invokevirtual java.net.URI.getQuery:()Ljava/lang/String;
            astore 10 /* query */
        start local 10 // java.lang.String query
        28: .line 99
            aload 10 /* query */
            ifnull 30
        29: .line 100
            new java.lang.StringBuilder
            dup
            aload 9 /* requestURI */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* query */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* requestURI */
        30: .line 102
      StackMap locals: java.lang.String
      StackMap stack:
            new io.vertx.core.http.RequestOptions
            dup
            invokespecial io.vertx.core.http.RequestOptions.<init>:()V
            astore 11 /* options */
        start local 11 // io.vertx.core.http.RequestOptions options
        31: .line 103
            aload 11 /* options */
            aload 3 /* m */
            invokevirtual io.vertx.core.http.RequestOptions.setMethod:(Lio/vertx/core/http/HttpMethod;)Lio/vertx/core/http/RequestOptions;
            pop
        32: .line 104
            aload 11 /* options */
            aload 4 /* uri */
            invokevirtual java.net.URI.getHost:()Ljava/lang/String;
            invokevirtual io.vertx.core.http.RequestOptions.setHost:(Ljava/lang/String;)Lio/vertx/core/http/RequestOptions;
            pop
        33: .line 105
            aload 11 /* options */
            iload 6 /* port */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual io.vertx.core.http.RequestOptions.setPort:(Ljava/lang/Integer;)Lio/vertx/core/http/RequestOptions;
            pop
        34: .line 106
            aload 11 /* options */
            iload 5 /* ssl */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual io.vertx.core.http.RequestOptions.setSsl:(Ljava/lang/Boolean;)Lio/vertx/core/http/RequestOptions;
            pop
        35: .line 107
            aload 11 /* options */
            aload 9 /* requestURI */
            invokevirtual io.vertx.core.http.RequestOptions.setURI:(Ljava/lang/String;)Lio/vertx/core/http/RequestOptions;
            pop
        36: .line 108
            aload 11 /* options */
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
        37: areturn
        end local 11 // io.vertx.core.http.RequestOptions options
        end local 10 // java.lang.String query
        end local 9 // java.lang.String requestURI
        end local 8 // char chend
        end local 7 // java.lang.String protocol
        end local 6 // int port
        end local 5 // boolean ssl
        end local 4 // java.net.URI uri
        end local 3 // io.vertx.core.http.HttpMethod m
        38: .line 110
      StackMap locals: io.vertx.core.http.HttpClientResponse int java.lang.String
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.String location
        end local 1 // int statusCode
        39: .line 111
      StackMap locals: io.vertx.core.http.HttpClientResponse
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
        40: .line 112
            aload 1 /* e */
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            areturn
        end local 1 // java.lang.Exception e
        end local 0 // io.vertx.core.http.HttpClientResponse resp
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   41     0        resp  Lio/vertx/core/http/HttpClientResponse;
            1   39     1  statusCode  I
            2   39     2    location  Ljava/lang/String;
            4   38     3           m  Lio/vertx/core/http/HttpMethod;
           10   38     4         uri  Ljava/net/URI;
           15   18     5         ssl  Z
           20   23     5         ssl  Z
           24   38     5         ssl  Z
           11   38     6        port  I
           12   38     7    protocol  Ljava/lang/String;
           13   38     8       chend  C
           25   38     9  requestURI  Ljava/lang/String;
           28   38    10       query  Ljava/lang/String;
           31   38    11     options  Lio/vertx/core/http/RequestOptions;
           40   41     1           e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     8      39  Class java.lang.Exception
           9    23      39  Class java.lang.Exception
          24    37      39  Class java.lang.Exception

  private static void lambda$1(io.vertx.core.net.impl.clientconnection.Endpoint);
    descriptor: (Lio/vertx/core/net/impl/clientconnection/Endpoint;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.net.impl.clientconnection.Endpoint endpoint
         0: .line 117
            aload 0 /* endpoint */
            checkcast io.vertx.core.http.impl.ClientHttpStreamEndpoint
            invokevirtual io.vertx.core.http.impl.ClientHttpStreamEndpoint.checkExpired:()V
            return
        end local 0 // io.vertx.core.net.impl.clientconnection.Endpoint endpoint
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  endpoint  Lio/vertx/core/net/impl/clientconnection/Endpoint<Lio/vertx/core/http/impl/HttpClientConnection;>;

  private io.vertx.core.net.impl.clientconnection.Endpoint lambda$2(int, long, io.vertx.core.http.impl.EndpointKey, io.vertx.core.impl.ContextInternal, java.lang.Runnable);
    descriptor: (IJLio/vertx/core/http/impl/EndpointKey;Lio/vertx/core/impl/ContextInternal;Ljava/lang/Runnable;)Lio/vertx/core/net/impl/clientconnection/Endpoint;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=12, locals=11, args_size=6
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 4 // io.vertx.core.http.impl.EndpointKey key
        start local 5 // io.vertx.core.impl.ContextInternal ctx
        start local 6 // java.lang.Runnable dispose
         0: .line 206
            aload 4 /* key */
            getfield io.vertx.core.http.impl.EndpointKey.serverAddr:Lio/vertx/core/net/SocketAddress;
            invokeinterface io.vertx.core.net.SocketAddress.isInetSocket:()Z
            ifeq 4
         1: .line 207
            aload 4 /* key */
            getfield io.vertx.core.http.impl.EndpointKey.serverAddr:Lio/vertx/core/net/SocketAddress;
            invokeinterface io.vertx.core.net.SocketAddress.host:()Ljava/lang/String;
            astore 7 /* host */
        start local 7 // java.lang.String host
         2: .line 208
            aload 4 /* key */
            getfield io.vertx.core.http.impl.EndpointKey.serverAddr:Lio/vertx/core/net/SocketAddress;
            invokeinterface io.vertx.core.net.SocketAddress.port:()I
            istore 8 /* port */
        start local 8 // int port
         3: .line 209
            goto 6
        end local 8 // int port
        end local 7 // java.lang.String host
         4: .line 210
      StackMap locals:
      StackMap stack:
            aload 4 /* key */
            getfield io.vertx.core.http.impl.EndpointKey.serverAddr:Lio/vertx/core/net/SocketAddress;
            invokeinterface io.vertx.core.net.SocketAddress.path:()Ljava/lang/String;
            astore 7 /* host */
        start local 7 // java.lang.String host
         5: .line 211
            iconst_0
            istore 8 /* port */
        start local 8 // int port
         6: .line 213
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.metrics:Lio/vertx/core/spi/metrics/HttpClientMetrics;
            ifnull 7
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.metrics:Lio/vertx/core/spi/metrics/HttpClientMetrics;
            aload 4 /* key */
            getfield io.vertx.core.http.impl.EndpointKey.serverAddr:Lio/vertx/core/net/SocketAddress;
            iload 1
            invokeinterface io.vertx.core.spi.metrics.HttpClientMetrics.createEndpointMetrics:(Lio/vertx/core/net/SocketAddress;I)Lio/vertx/core/spi/metrics/ClientMetrics;
            goto 8
      StackMap locals:
      StackMap stack:
         7: aconst_null
      StackMap locals:
      StackMap stack: io.vertx.core.spi.metrics.ClientMetrics
         8: astore 9 /* metrics */
        start local 9 // io.vertx.core.spi.metrics.ClientMetrics metrics
         9: .line 214
            new io.vertx.core.http.impl.HttpChannelConnector
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.channelGroup:Lio/netty/channel/group/ChannelGroup;
            aload 5 /* ctx */
            aload 9 /* metrics */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getProtocolVersion:()Lio/vertx/core/http/HttpVersion;
            aload 4 /* key */
            getfield io.vertx.core.http.impl.EndpointKey.ssl:Z
            ifeq 10
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.sslHelper:Lio/vertx/core/net/impl/SSLHelper;
            goto 11
      StackMap locals: io.vertx.core.http.impl.HttpClientImpl int long io.vertx.core.http.impl.EndpointKey io.vertx.core.impl.ContextInternal java.lang.Runnable java.lang.String int io.vertx.core.spi.metrics.ClientMetrics
      StackMap stack: new 9 new 9 io.vertx.core.http.impl.HttpClientImpl io.netty.channel.group.ChannelGroup io.vertx.core.impl.ContextInternal io.vertx.core.spi.metrics.ClientMetrics io.vertx.core.http.HttpVersion
        10: aconst_null
      StackMap locals: io.vertx.core.http.impl.HttpClientImpl int long io.vertx.core.http.impl.EndpointKey io.vertx.core.impl.ContextInternal java.lang.Runnable java.lang.String int io.vertx.core.spi.metrics.ClientMetrics
      StackMap stack: new 9 new 9 io.vertx.core.http.impl.HttpClientImpl io.netty.channel.group.ChannelGroup io.vertx.core.impl.ContextInternal io.vertx.core.spi.metrics.ClientMetrics io.vertx.core.http.HttpVersion io.vertx.core.net.impl.SSLHelper
        11: aload 4 /* key */
            getfield io.vertx.core.http.impl.EndpointKey.peerAddr:Lio/vertx/core/net/SocketAddress;
            aload 4 /* key */
            getfield io.vertx.core.http.impl.EndpointKey.serverAddr:Lio/vertx/core/net/SocketAddress;
            invokespecial io.vertx.core.http.impl.HttpChannelConnector.<init>:(Lio/vertx/core/http/impl/HttpClientImpl;Lio/netty/channel/group/ChannelGroup;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/spi/metrics/ClientMetrics;Lio/vertx/core/http/HttpVersion;Lio/vertx/core/net/impl/SSLHelper;Lio/vertx/core/net/SocketAddress;Lio/vertx/core/net/SocketAddress;)V
            astore 10 /* connector */
        start local 10 // io.vertx.core.http.impl.HttpChannelConnector connector
        12: .line 215
            new io.vertx.core.http.impl.ClientHttpStreamEndpoint
            dup
            aload 9 /* metrics */
            aload 9 /* metrics */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getMaxWaitQueueSize:()I
            lload 2
            aload 7 /* host */
            iload 8 /* port */
            aload 5 /* ctx */
            aload 10 /* connector */
            aload 6 /* dispose */
            invokespecial io.vertx.core.http.impl.ClientHttpStreamEndpoint.<init>:(Lio/vertx/core/spi/metrics/ClientMetrics;Ljava/lang/Object;IJLjava/lang/String;ILio/vertx/core/impl/ContextInternal;Lio/vertx/core/http/impl/HttpChannelConnector;Ljava/lang/Runnable;)V
            areturn
        end local 10 // io.vertx.core.http.impl.HttpChannelConnector connector
        end local 9 // io.vertx.core.spi.metrics.ClientMetrics metrics
        end local 8 // int port
        end local 7 // java.lang.String host
        end local 6 // java.lang.Runnable dispose
        end local 5 // io.vertx.core.impl.ContextInternal ctx
        end local 4 // io.vertx.core.http.impl.EndpointKey key
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lio/vertx/core/http/impl/HttpClientImpl;
            0   13     4        key  Lio/vertx/core/http/impl/EndpointKey;
            0   13     5        ctx  Lio/vertx/core/impl/ContextInternal;
            0   13     6    dispose  Ljava/lang/Runnable;
            2    4     7       host  Ljava/lang/String;
            5   13     7       host  Ljava/lang/String;
            3    4     8       port  I
            6   13     8       port  I
            9   13     9    metrics  Lio/vertx/core/spi/metrics/ClientMetrics;
           12   13    10  connector  Lio/vertx/core/http/impl/HttpChannelConnector;

  private io.vertx.core.net.impl.clientconnection.Endpoint lambda$3(int, io.vertx.core.http.impl.EndpointKey, io.vertx.core.impl.ContextInternal, java.lang.Runnable);
    descriptor: (ILio/vertx/core/http/impl/EndpointKey;Lio/vertx/core/impl/ContextInternal;Ljava/lang/Runnable;)Lio/vertx/core/net/impl/clientconnection/Endpoint;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=10, locals=9, args_size=5
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 2 // io.vertx.core.http.impl.EndpointKey key
        start local 3 // io.vertx.core.impl.ContextInternal ctx
        start local 4 // java.lang.Runnable dispose
         0: .line 224
            aload 2 /* key */
            getfield io.vertx.core.http.impl.EndpointKey.serverAddr:Lio/vertx/core/net/SocketAddress;
            invokeinterface io.vertx.core.net.SocketAddress.isInetSocket:()Z
            ifeq 4
         1: .line 225
            aload 2 /* key */
            getfield io.vertx.core.http.impl.EndpointKey.serverAddr:Lio/vertx/core/net/SocketAddress;
            invokeinterface io.vertx.core.net.SocketAddress.host:()Ljava/lang/String;
            astore 5 /* host */
        start local 5 // java.lang.String host
         2: .line 226
            aload 2 /* key */
            getfield io.vertx.core.http.impl.EndpointKey.serverAddr:Lio/vertx/core/net/SocketAddress;
            invokeinterface io.vertx.core.net.SocketAddress.port:()I
            istore 6 /* port */
        start local 6 // int port
         3: .line 227
            goto 6
        end local 6 // int port
        end local 5 // java.lang.String host
         4: .line 228
      StackMap locals:
      StackMap stack:
            aload 2 /* key */
            getfield io.vertx.core.http.impl.EndpointKey.serverAddr:Lio/vertx/core/net/SocketAddress;
            invokeinterface io.vertx.core.net.SocketAddress.path:()Ljava/lang/String;
            astore 5 /* host */
        start local 5 // java.lang.String host
         5: .line 229
            iconst_0
            istore 6 /* port */
        start local 6 // int port
         6: .line 231
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.metrics:Lio/vertx/core/spi/metrics/HttpClientMetrics;
            ifnull 7
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.metrics:Lio/vertx/core/spi/metrics/HttpClientMetrics;
            aload 2 /* key */
            getfield io.vertx.core.http.impl.EndpointKey.serverAddr:Lio/vertx/core/net/SocketAddress;
            iload 1
            invokeinterface io.vertx.core.spi.metrics.HttpClientMetrics.createEndpointMetrics:(Lio/vertx/core/net/SocketAddress;I)Lio/vertx/core/spi/metrics/ClientMetrics;
            goto 8
      StackMap locals:
      StackMap stack:
         7: aconst_null
      StackMap locals:
      StackMap stack: io.vertx.core.spi.metrics.ClientMetrics
         8: astore 7 /* metrics */
        start local 7 // io.vertx.core.spi.metrics.ClientMetrics metrics
         9: .line 232
            new io.vertx.core.http.impl.HttpChannelConnector
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.channelGroup:Lio/netty/channel/group/ChannelGroup;
            aload 3 /* ctx */
            aload 7 /* metrics */
            getstatic io.vertx.core.http.HttpVersion.HTTP_1_1:Lio/vertx/core/http/HttpVersion;
            aload 2 /* key */
            getfield io.vertx.core.http.impl.EndpointKey.ssl:Z
            ifeq 10
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.webSocketSSLHelper:Lio/vertx/core/net/impl/SSLHelper;
            goto 11
      StackMap locals: io.vertx.core.http.impl.HttpClientImpl int io.vertx.core.http.impl.EndpointKey io.vertx.core.impl.ContextInternal java.lang.Runnable java.lang.String int io.vertx.core.spi.metrics.ClientMetrics
      StackMap stack: new 9 new 9 io.vertx.core.http.impl.HttpClientImpl io.netty.channel.group.ChannelGroup io.vertx.core.impl.ContextInternal io.vertx.core.spi.metrics.ClientMetrics io.vertx.core.http.HttpVersion
        10: aconst_null
      StackMap locals: io.vertx.core.http.impl.HttpClientImpl int io.vertx.core.http.impl.EndpointKey io.vertx.core.impl.ContextInternal java.lang.Runnable java.lang.String int io.vertx.core.spi.metrics.ClientMetrics
      StackMap stack: new 9 new 9 io.vertx.core.http.impl.HttpClientImpl io.netty.channel.group.ChannelGroup io.vertx.core.impl.ContextInternal io.vertx.core.spi.metrics.ClientMetrics io.vertx.core.http.HttpVersion io.vertx.core.net.impl.SSLHelper
        11: aload 2 /* key */
            getfield io.vertx.core.http.impl.EndpointKey.peerAddr:Lio/vertx/core/net/SocketAddress;
            aload 2 /* key */
            getfield io.vertx.core.http.impl.EndpointKey.serverAddr:Lio/vertx/core/net/SocketAddress;
            invokespecial io.vertx.core.http.impl.HttpChannelConnector.<init>:(Lio/vertx/core/http/impl/HttpClientImpl;Lio/netty/channel/group/ChannelGroup;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/spi/metrics/ClientMetrics;Lio/vertx/core/http/HttpVersion;Lio/vertx/core/net/impl/SSLHelper;Lio/vertx/core/net/SocketAddress;Lio/vertx/core/net/SocketAddress;)V
            astore 8 /* connector */
        start local 8 // io.vertx.core.http.impl.HttpChannelConnector connector
        12: .line 233
            new io.vertx.core.http.impl.WebSocketEndpoint
            dup
            aconst_null
            iload 6 /* port */
            aload 5 /* host */
            aload 7 /* metrics */
            iload 1
            aload 8 /* connector */
            aload 4 /* dispose */
            invokespecial io.vertx.core.http.impl.WebSocketEndpoint.<init>:(Lio/vertx/core/spi/metrics/ClientMetrics;ILjava/lang/String;Ljava/lang/Object;ILio/vertx/core/http/impl/HttpChannelConnector;Ljava/lang/Runnable;)V
            areturn
        end local 8 // io.vertx.core.http.impl.HttpChannelConnector connector
        end local 7 // io.vertx.core.spi.metrics.ClientMetrics metrics
        end local 6 // int port
        end local 5 // java.lang.String host
        end local 4 // java.lang.Runnable dispose
        end local 3 // io.vertx.core.impl.ContextInternal ctx
        end local 2 // io.vertx.core.http.impl.EndpointKey key
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lio/vertx/core/http/impl/HttpClientImpl;
            0   13     2        key  Lio/vertx/core/http/impl/EndpointKey;
            0   13     3        ctx  Lio/vertx/core/impl/ContextInternal;
            0   13     4    dispose  Ljava/lang/Runnable;
            2    4     5       host  Ljava/lang/String;
            5   13     5       host  Ljava/lang/String;
            3    4     6       port  I
            6   13     6       port  I
            9   13     7    metrics  Lio/vertx/core/spi/metrics/ClientMetrics;
           12   13     8  connector  Lio/vertx/core/http/impl/HttpChannelConnector;

  private void lambda$4(io.vertx.core.impl.ContextInternal, io.vertx.core.http.WebSocketConnectOptions, io.vertx.core.impl.future.PromiseInternal, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/http/WebSocketConnectOptions;Lio/vertx/core/impl/future/PromiseInternal;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=8, locals=6, args_size=5
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 4 // io.vertx.core.AsyncResult ar
         0: .line 286
            aload 4 /* ar */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 4
         1: .line 287
            aload 4 /* ar */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.core.http.impl.Http1xClientConnection
            astore 5 /* conn */
        start local 5 // io.vertx.core.http.impl.Http1xClientConnection conn
         2: .line 288
            aload 5 /* conn */
            aload 1
            aload 2
            invokevirtual io.vertx.core.http.WebSocketConnectOptions.getURI:()Ljava/lang/String;
            aload 2
            invokevirtual io.vertx.core.http.WebSocketConnectOptions.getHeaders:()Lio/vertx/core/MultiMap;
            aload 2
            invokevirtual io.vertx.core.http.WebSocketConnectOptions.getVersion:()Lio/vertx/core/http/WebsocketVersion;
            aload 2
            invokevirtual io.vertx.core.http.WebSocketConnectOptions.getSubProtocols:()Ljava/util/List;
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.options:Lio/vertx/core/http/HttpClientOptions;
            invokevirtual io.vertx.core.http.HttpClientOptions.getMaxWebSocketFrameSize:()I
            aload 3
            invokevirtual io.vertx.core.http.impl.Http1xClientConnection.toWebSocket:(Lio/vertx/core/impl/ContextInternal;Ljava/lang/String;Lio/vertx/core/MultiMap;Lio/vertx/core/http/WebsocketVersion;Ljava/util/List;ILio/vertx/core/Promise;)V
        end local 5 // io.vertx.core.http.impl.Http1xClientConnection conn
         3: .line 289
            goto 5
         4: .line 290
      StackMap locals:
      StackMap stack:
            aload 3
            aload 4 /* ar */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.core.impl.future.PromiseInternal.fail:(Ljava/lang/Throwable;)V
         5: .line 292
      StackMap locals:
      StackMap stack:
            return
        end local 4 // io.vertx.core.AsyncResult ar
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    6     4    ar  Lio/vertx/core/AsyncResult<Lio/vertx/core/http/impl/HttpClientConnection;>;
            2    3     5  conn  Lio/vertx/core/http/impl/Http1xClientConnection;

  private io.vertx.core.Future lambda$5(java.lang.Void);
    descriptor: (Ljava/lang/Void;)Lio/vertx/core/Future;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 1 // java.lang.Void v
         0: .line 453
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.metrics:Lio/vertx/core/spi/metrics/HttpClientMetrics;
            invokeinterface io.vertx.core.spi.metrics.HttpClientMetrics.close:()V
         1: .line 454
            invokestatic io.vertx.core.Future.succeededFuture:()Lio/vertx/core/Future;
            areturn
        end local 1 // java.lang.Void v
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    2     1     v  Ljava/lang/Void;

  private static void lambda$6(io.vertx.core.impl.future.PromiseInternal, long, io.vertx.core.http.HttpMethod, io.vertx.core.net.SocketAddress, java.lang.String, java.lang.Long);
    descriptor: (Lio/vertx/core/impl/future/PromiseInternal;JLio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;Ljava/lang/Long;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=7, args_size=6
        start local 6 // java.lang.Long id
         0: .line 590
            aload 0
            lload 1
            aload 3
            aload 4
            aload 5
            invokestatic io.vertx.core.http.impl.HttpClientRequestBase.timeoutEx:(JLio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;)Lio/vertx/core/http/impl/NoStackTraceTimeoutException;
            invokeinterface io.vertx.core.impl.future.PromiseInternal.tryFail:(Ljava/lang/Throwable;)Z
            pop
         1: .line 591
            return
        end local 6 // java.lang.Long id
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     6    id  Ljava/lang/Long;

  private void lambda$7(io.vertx.core.impl.ContextInternal, java.lang.Boolean, io.vertx.core.http.HttpMethod, io.vertx.core.net.SocketAddress, java.lang.String, int, java.lang.String, io.vertx.core.MultiMap, java.lang.Boolean, long, long, io.vertx.core.impl.future.PromiseInternal, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/impl/ContextInternal;Ljava/lang/Boolean;Lio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;ILjava/lang/String;Lio/vertx/core/MultiMap;Ljava/lang/Boolean;JJLio/vertx/core/impl/future/PromiseInternal;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=17, locals=17, args_size=14
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 15 // io.vertx.core.AsyncResult ar1
         0: .line 602
            aload 15 /* ar1 */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 4
         1: .line 603
            aload 15 /* ar1 */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.core.http.impl.HttpClientConnection
            astore 16 /* conn */
        start local 16 // io.vertx.core.http.impl.HttpClientConnection conn
         2: .line 604
            aload 16 /* conn */
            aload 1
            aload 0 /* this */
            aload 1
            aload 2
            aload 3
            aload 4
            aload 5
            iload 6
            aload 7
            aload 8
            aload 9
            lload 10
            lload 12
            aload 14
            invokedynamic handle(Lio/vertx/core/http/impl/HttpClientImpl;Lio/vertx/core/impl/ContextInternal;Ljava/lang/Boolean;Lio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;ILjava/lang/String;Lio/vertx/core/MultiMap;Ljava/lang/Boolean;JJLio/vertx/core/impl/future/PromiseInternal;)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/core/http/impl/HttpClientImpl.lambda$8(Lio/vertx/core/impl/ContextInternal;Ljava/lang/Boolean;Lio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;ILjava/lang/String;Lio/vertx/core/MultiMap;Ljava/lang/Boolean;JJLio/vertx/core/impl/future/PromiseInternal;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.http.impl.HttpClientConnection.createStream:(Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler;)V
        end local 16 // io.vertx.core.http.impl.HttpClientConnection conn
         3: .line 626
            goto 5
         4: .line 627
      StackMap locals:
      StackMap stack:
            aload 14
            aload 15 /* ar1 */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.core.impl.future.PromiseInternal.tryFail:(Ljava/lang/Throwable;)Z
            pop
         5: .line 629
      StackMap locals:
      StackMap stack:
            return
        end local 15 // io.vertx.core.AsyncResult ar1
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lio/vertx/core/http/impl/HttpClientImpl;
            0    6    15   ar1  Lio/vertx/core/AsyncResult<Lio/vertx/core/http/impl/HttpClientConnection;>;
            2    3    16  conn  Lio/vertx/core/http/impl/HttpClientConnection;

  private void lambda$8(io.vertx.core.impl.ContextInternal, java.lang.Boolean, io.vertx.core.http.HttpMethod, io.vertx.core.net.SocketAddress, java.lang.String, int, java.lang.String, io.vertx.core.MultiMap, java.lang.Boolean, long, long, io.vertx.core.impl.future.PromiseInternal, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/impl/ContextInternal;Ljava/lang/Boolean;Lio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;ILjava/lang/String;Lio/vertx/core/MultiMap;Ljava/lang/Boolean;JJLio/vertx/core/impl/future/PromiseInternal;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=11, locals=18, args_size=14
        start local 0 // io.vertx.core.http.impl.HttpClientImpl this
        start local 15 // io.vertx.core.AsyncResult ar2
         0: .line 605
            aload 15 /* ar2 */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 14
         1: .line 606
            aload 15 /* ar2 */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.core.http.impl.HttpClientStream
            astore 16 /* stream */
        start local 16 // io.vertx.core.http.impl.HttpClientStream stream
         2: .line 607
            new io.vertx.core.http.impl.HttpClientRequestImpl
            dup
            aload 0 /* this */
            aload 16 /* stream */
            aload 1
            invokeinterface io.vertx.core.impl.ContextInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            aload 2
            invokevirtual java.lang.Boolean.booleanValue:()Z
            aload 3
            aload 4
            aload 5
            iload 6
            aload 7
            invokespecial io.vertx.core.http.impl.HttpClientRequestImpl.<init>:(Lio/vertx/core/http/impl/HttpClientImpl;Lio/vertx/core/http/impl/HttpClientStream;Lio/vertx/core/impl/future/PromiseInternal;ZLio/vertx/core/http/HttpMethod;Lio/vertx/core/net/SocketAddress;Ljava/lang/String;ILjava/lang/String;)V
            astore 17 /* req */
        start local 17 // io.vertx.core.http.impl.HttpClientRequestImpl req
         3: .line 608
            aload 8
            ifnull 5
         4: .line 609
            aload 17 /* req */
            invokevirtual io.vertx.core.http.impl.HttpClientRequestImpl.headers:()Lio/vertx/core/MultiMap;
            aload 8
            invokeinterface io.vertx.core.MultiMap.setAll:(Lio/vertx/core/MultiMap;)Lio/vertx/core/MultiMap;
            pop
         5: .line 611
      StackMap locals: io.vertx.core.http.impl.HttpClientStream io.vertx.core.http.impl.HttpClientRequestImpl
      StackMap stack:
            aload 9
            ifnull 7
         6: .line 612
            aload 17 /* req */
            aload 9
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokevirtual io.vertx.core.http.impl.HttpClientRequestImpl.setFollowRedirects:(Z)Lio/vertx/core/http/HttpClientRequest;
            pop
         7: .line 614
      StackMap locals:
      StackMap stack:
            lload 10
            lconst_0
            lcmp
            iflt 12
         8: .line 615
            aload 0 /* this */
            getfield io.vertx.core.http.impl.HttpClientImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            lload 10
            invokeinterface io.vertx.core.impl.VertxInternal.cancelTimer:(J)Z
            ifne 11
         9: .line 616
            aload 17 /* req */
            lconst_0
            invokevirtual io.vertx.core.http.impl.HttpClientRequestImpl.reset:(J)Z
            pop
        10: .line 617
            return
        11: .line 619
      StackMap locals:
      StackMap stack:
            aload 17 /* req */
            lload 12
            invokevirtual io.vertx.core.http.impl.HttpClientRequestImpl.setTimeout:(J)Lio/vertx/core/http/HttpClientRequest;
            pop
        12: .line 621
      StackMap locals:
      StackMap stack:
            aload 14
            aload 17 /* req */
            invokeinterface io.vertx.core.impl.future.PromiseInternal.complete:(Ljava/lang/Object;)V
        end local 17 // io.vertx.core.http.impl.HttpClientRequestImpl req
        end local 16 // io.vertx.core.http.impl.HttpClientStream stream
        13: .line 622
            goto 15
        14: .line 623
      StackMap locals:
      StackMap stack:
            aload 14
            aload 15 /* ar2 */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.core.impl.future.PromiseInternal.tryFail:(Ljava/lang/Throwable;)Z
            pop
        15: .line 625
      StackMap locals:
      StackMap stack:
            return
        end local 15 // io.vertx.core.AsyncResult ar2
        end local 0 // io.vertx.core.http.impl.HttpClientImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Lio/vertx/core/http/impl/HttpClientImpl;
            0   16    15     ar2  Lio/vertx/core/AsyncResult<Lio/vertx/core/http/impl/HttpClientStream;>;
            2   13    16  stream  Lio/vertx/core/http/impl/HttpClientStream;
            3   13    17     req  Lio/vertx/core/http/impl/HttpClientRequestImpl;
}
SourceFile: "HttpClientImpl.java"
NestMembers:
  io.vertx.core.http.impl.HttpClientImpl$PoolChecker
InnerClasses:
  private PoolChecker = io.vertx.core.http.impl.HttpClientImpl$PoolChecker of io.vertx.core.http.impl.HttpClientImpl
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Encoder = java.util.Base64$Encoder of java.util.Base64