public class io.vertx.redis.client.impl.RedisClusterClient implements io.vertx.redis.client.Redis
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.redis.client.impl.RedisClusterClient
  super_class: java.lang.Object
{
  private static final int RETRIES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

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

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

  private static final java.util.Map<io.vertx.redis.client.Command, java.util.function.Function<java.util.List<io.vertx.redis.client.Response>, io.vertx.redis.client.Response>> REDUCERS;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Lio/vertx/redis/client/Command;Ljava/util/function/Function<Ljava/util/List<Lio/vertx/redis/client/Response;>;Lio/vertx/redis/client/Response;>;>;

  private static final java.util.Map<io.vertx.redis.client.Command, java.lang.String> UNSUPPORTEDCOMMANDS;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Lio/vertx/redis/client/Command;Ljava/lang/String;>;

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

  private final io.vertx.redis.client.RedisSlaves slaves;
    descriptor: Lio/vertx/redis/client/RedisSlaves;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.redis.client.RedisOptions options;
    descriptor: Lio/vertx/redis/client/RedisOptions;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<io.vertx.core.net.SocketAddress, io.vertx.redis.client.Redis> connections;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lio/vertx/core/net/SocketAddress;Lio/vertx/redis/client/Redis;>;

  private final io.vertx.redis.client.Redis[][] slots;
    descriptor: [[Lio/vertx/redis/client/Redis;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private io.vertx.core.Handler<io.vertx.redis.client.Response> onMessage;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Lio/vertx/redis/client/Response;>;

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 44
            ldc Lio/vertx/redis/client/impl/RedisClusterClient;
            invokestatic io.vertx.core.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/logging/Logger;
            putstatic io.vertx.redis.client.impl.RedisClusterClient.LOG:Lio/vertx/core/logging/Logger;
         1: .line 48
            new java.util.Random
            dup
            invokespecial java.util.Random.<init>:()V
            putstatic io.vertx.redis.client.impl.RedisClusterClient.RANDOM:Ljava/util/Random;
         2: .line 51
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic io.vertx.redis.client.impl.RedisClusterClient.REDUCERS:Ljava/util/Map;
         3: .line 53
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic io.vertx.redis.client.impl.RedisClusterClient.UNSUPPORTEDCOMMANDS:Ljava/util/Map;
         4: .line 75
            getstatic io.vertx.redis.client.Command.MSET:Lio/vertx/redis/client/Command;
            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/redis/client/impl/RedisClusterClient.lambda$0(Ljava/util/List;)Lio/vertx/redis/client/Response; (6)
                  (Ljava/util/List;)Lio/vertx/redis/client/Response;
            invokestatic io.vertx.redis.client.impl.RedisClusterClient.addReducer:(Lio/vertx/redis/client/Command;Ljava/util/function/Function;)V
         5: .line 80
            getstatic io.vertx.redis.client.Command.DEL:Lio/vertx/redis/client/Command;
            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/redis/client/impl/RedisClusterClient.lambda$1(Ljava/util/List;)Lio/vertx/redis/client/Response; (6)
                  (Ljava/util/List;)Lio/vertx/redis/client/Response;
            invokestatic io.vertx.redis.client.impl.RedisClusterClient.addReducer:(Lio/vertx/redis/client/Command;Ljava/util/function/Function;)V
         6: .line 84
            getstatic io.vertx.redis.client.Command.MGET:Lio/vertx/redis/client/Command;
            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/redis/client/impl/RedisClusterClient.lambda$3(Ljava/util/List;)Lio/vertx/redis/client/Response; (6)
                  (Ljava/util/List;)Lio/vertx/redis/client/Response;
            invokestatic io.vertx.redis.client.impl.RedisClusterClient.addReducer:(Lio/vertx/redis/client/Command;Ljava/util/function/Function;)V
         7: .line 100
            getstatic io.vertx.redis.client.Command.KEYS:Lio/vertx/redis/client/Command;
            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/redis/client/impl/RedisClusterClient.lambda$4(Ljava/util/List;)Lio/vertx/redis/client/Response; (6)
                  (Ljava/util/List;)Lio/vertx/redis/client/Response;
            invokestatic io.vertx.redis.client.impl.RedisClusterClient.addReducer:(Lio/vertx/redis/client/Command;Ljava/util/function/Function;)V
         8: .line 117
            getstatic io.vertx.redis.client.Command.FLUSHDB:Lio/vertx/redis/client/Command;
            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/redis/client/impl/RedisClusterClient.lambda$5(Ljava/util/List;)Lio/vertx/redis/client/Response; (6)
                  (Ljava/util/List;)Lio/vertx/redis/client/Response;
            invokestatic io.vertx.redis.client.impl.RedisClusterClient.addReducer:(Lio/vertx/redis/client/Command;Ljava/util/function/Function;)V
         9: .line 120
            getstatic io.vertx.redis.client.Command.DBSIZE:Lio/vertx/redis/client/Command;
            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/redis/client/impl/RedisClusterClient.lambda$6(Ljava/util/List;)Lio/vertx/redis/client/Response; (6)
                  (Ljava/util/List;)Lio/vertx/redis/client/Response;
            invokestatic io.vertx.redis.client.impl.RedisClusterClient.addReducer:(Lio/vertx/redis/client/Command;Ljava/util/function/Function;)V
        10: .line 124
            bipush 36
            anewarray io.vertx.redis.client.Command
            dup
            iconst_0
            getstatic io.vertx.redis.client.Command.ASKING:Lio/vertx/redis/client/Command;
            aastore
            dup
            iconst_1
            getstatic io.vertx.redis.client.Command.AUTH:Lio/vertx/redis/client/Command;
            aastore
            dup
            iconst_2
            getstatic io.vertx.redis.client.Command.BGREWRITEAOF:Lio/vertx/redis/client/Command;
            aastore
            dup
            iconst_3
            getstatic io.vertx.redis.client.Command.BGSAVE:Lio/vertx/redis/client/Command;
            aastore
            dup
            iconst_4
            getstatic io.vertx.redis.client.Command.CLIENT:Lio/vertx/redis/client/Command;
            aastore
            dup
            iconst_5
            getstatic io.vertx.redis.client.Command.CLUSTER:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 6
            getstatic io.vertx.redis.client.Command.COMMAND:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 7
            getstatic io.vertx.redis.client.Command.CONFIG:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 8
        11: .line 125
            getstatic io.vertx.redis.client.Command.DEBUG:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 9
            getstatic io.vertx.redis.client.Command.DISCARD:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 10
            getstatic io.vertx.redis.client.Command.HOST:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 11
            getstatic io.vertx.redis.client.Command.INFO:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 12
            getstatic io.vertx.redis.client.Command.LASTSAVE:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 13
            getstatic io.vertx.redis.client.Command.LATENCY:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 14
            getstatic io.vertx.redis.client.Command.LOLWUT:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 15
            getstatic io.vertx.redis.client.Command.MEMORY:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 16
            getstatic io.vertx.redis.client.Command.MODULE:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 17
            getstatic io.vertx.redis.client.Command.MONITOR:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 18
            getstatic io.vertx.redis.client.Command.PFDEBUG:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 19
            getstatic io.vertx.redis.client.Command.PFSELFTEST:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 20
        12: .line 126
            getstatic io.vertx.redis.client.Command.PING:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 21
            getstatic io.vertx.redis.client.Command.READONLY:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 22
            getstatic io.vertx.redis.client.Command.READWRITE:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 23
            getstatic io.vertx.redis.client.Command.REPLCONF:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 24
            getstatic io.vertx.redis.client.Command.REPLICAOF:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 25
            getstatic io.vertx.redis.client.Command.ROLE:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 26
            getstatic io.vertx.redis.client.Command.SAVE:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 27
            getstatic io.vertx.redis.client.Command.SCAN:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 28
            getstatic io.vertx.redis.client.Command.SCRIPT:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 29
            getstatic io.vertx.redis.client.Command.SELECT:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 30
            getstatic io.vertx.redis.client.Command.SHUTDOWN:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 31
            getstatic io.vertx.redis.client.Command.SLAVEOF:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 32
            getstatic io.vertx.redis.client.Command.SLOWLOG:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 33
            getstatic io.vertx.redis.client.Command.SWAPDB:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 34
        13: .line 127
            getstatic io.vertx.redis.client.Command.SYNC:Lio/vertx/redis/client/Command;
            aastore
            dup
            bipush 35
            getstatic io.vertx.redis.client.Command.SENTINEL:Lio/vertx/redis/client/Command;
            aastore
        14: .line 124
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
        15: .line 127
            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/redis/client/impl/RedisClusterClient.lambda$8(Lio/vertx/redis/client/Command;)V (6)
                  (Lio/vertx/redis/client/Command;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
        16: .line 129
            getstatic io.vertx.redis.client.Command.FLUSHALL:Lio/vertx/redis/client/Command;
            ldc "RedisClusterClient does not handle command FLUSHALL, use FLUSHDB"
            invokestatic io.vertx.redis.client.impl.RedisClusterClient.addUnSupportedCommand:(Lio/vertx/redis/client/Command;Ljava/lang/String;)V
        17: .line 130
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void addReducer(io.vertx.redis.client.Command, java.util.function.Function<java.util.List<io.vertx.redis.client.Response>, io.vertx.redis.client.Response>);
    descriptor: (Lio/vertx/redis/client/Command;Ljava/util/function/Function;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.redis.client.Command command
        start local 1 // java.util.function.Function fn
         0: .line 56
            getstatic io.vertx.redis.client.impl.RedisClusterClient.REDUCERS:Ljava/util/Map;
            aload 0 /* command */
            aload 1 /* fn */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 57
            return
        end local 1 // java.util.function.Function fn
        end local 0 // io.vertx.redis.client.Command command
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  command  Lio/vertx/redis/client/Command;
            0    2     1       fn  Ljava/util/function/Function<Ljava/util/List<Lio/vertx/redis/client/Response;>;Lio/vertx/redis/client/Response;>;
    Signature: (Lio/vertx/redis/client/Command;Ljava/util/function/Function<Ljava/util/List<Lio/vertx/redis/client/Response;>;Lio/vertx/redis/client/Response;>;)V
    MethodParameters:
         Name  Flags
      command  
      fn       

  public static void addUnSupportedCommand(io.vertx.redis.client.Command, java.lang.String);
    descriptor: (Lio/vertx/redis/client/Command;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // io.vertx.redis.client.Command command
        start local 1 // java.lang.String error
         0: .line 60
            aload 1 /* error */
            ifnull 1
            aload 1 /* error */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 5
         1: .line 61
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.redis.client.impl.RedisClusterClient.UNSUPPORTEDCOMMANDS:Ljava/util/Map;
            aload 0 /* command */
            new java.lang.StringBuilder
            dup
            ldc "RedisClusterClient does not handle command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 62
            new java.lang.String
            dup
            aload 0 /* command */
            invokeinterface io.vertx.redis.client.Command.getBytes:()[B
            getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            ldc "\r\n"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            iconst_1
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", use non cluster client on the right node."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 61
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 63
            goto 6
         5: .line 64
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.redis.client.impl.RedisClusterClient.UNSUPPORTEDCOMMANDS:Ljava/util/Map;
            aload 0 /* command */
            aload 1 /* error */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 66
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String error
        end local 0 // io.vertx.redis.client.Command command
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  command  Lio/vertx/redis/client/Command;
            0    7     1    error  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      command  
      error    

  public static io.vertx.redis.client.Redis create(io.vertx.core.Vertx, io.vertx.redis.client.RedisOptions);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/redis/client/RedisOptions;)Lio/vertx/redis/client/Redis;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.core.Vertx vertx
        start local 1 // io.vertx.redis.client.RedisOptions options
         0: .line 69
            new io.vertx.redis.client.impl.RedisClusterClient
            dup
            aload 0 /* vertx */
            aload 1 /* options */
            invokespecial io.vertx.redis.client.impl.RedisClusterClient.<init>:(Lio/vertx/core/Vertx;Lio/vertx/redis/client/RedisOptions;)V
            areturn
        end local 1 // io.vertx.redis.client.RedisOptions options
        end local 0 // io.vertx.core.Vertx vertx
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0    vertx  Lio/vertx/core/Vertx;
            0    1     1  options  Lio/vertx/redis/client/RedisOptions;
    MethodParameters:
         Name  Flags
      vertx    
      options  

  private void <init>(io.vertx.core.Vertx, io.vertx.redis.client.RedisOptions);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/redis/client/RedisOptions;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // io.vertx.core.Vertx vertx
        start local 2 // io.vertx.redis.client.RedisOptions options
         0: .line 146
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 137
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield io.vertx.redis.client.impl.RedisClusterClient.connections:Ljava/util/Map;
         2: .line 138
            aload 0 /* this */
            sipush 16384
            anewarray io.vertx.redis.client.Redis[]
            putfield io.vertx.redis.client.impl.RedisClusterClient.slots:[[Lio/vertx/redis/client/Redis;
         3: .line 140
            aload 0 /* this */
            invokedynamic handle()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/redis/client/impl/RedisClusterClient.lambda$9(Ljava/lang/Throwable;)V (6)
                  (Ljava/lang/Throwable;)V
            putfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
         4: .line 147
            aload 0 /* this */
            aload 1 /* vertx */
            putfield io.vertx.redis.client.impl.RedisClusterClient.vertx:Lio/vertx/core/Vertx;
         5: .line 148
            aload 0 /* this */
            aload 2 /* options */
            invokevirtual io.vertx.redis.client.RedisOptions.getUseSlave:()Lio/vertx/redis/client/RedisSlaves;
            putfield io.vertx.redis.client.impl.RedisClusterClient.slaves:Lio/vertx/redis/client/RedisSlaves;
         6: .line 149
            aload 0 /* this */
            aload 2 /* options */
            putfield io.vertx.redis.client.impl.RedisClusterClient.options:Lio/vertx/redis/client/RedisOptions;
         7: .line 150
            return
        end local 2 // io.vertx.redis.client.RedisOptions options
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    8     1    vertx  Lio/vertx/core/Vertx;
            0    8     2  options  Lio/vertx/redis/client/RedisOptions;
    MethodParameters:
         Name  Flags
      vertx    
      options  

  public io.vertx.redis.client.Redis connect(io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.redis.client.Redis>>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // io.vertx.core.Handler onCreate
         0: .line 155
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.options:Lio/vertx/redis/client/RedisOptions;
            invokevirtual io.vertx.redis.client.RedisOptions.getEndpoints:()Ljava/util/List;
            astore 2 /* endpoints */
        start local 2 // java.util.List endpoints
         1: .line 157
            new java.util.concurrent.atomic.AtomicInteger
            dup
            aload 2 /* endpoints */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            astore 3 /* counter */
        start local 3 // java.util.concurrent.atomic.AtomicInteger counter
         2: .line 160
            aload 2 /* endpoints */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: io.vertx.redis.client.impl.RedisClusterClient io.vertx.core.Handler java.util.List java.util.concurrent.atomic.AtomicInteger top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.core.net.SocketAddress
            astore 4 /* endpoint */
        start local 4 // io.vertx.core.net.SocketAddress endpoint
         4: .line 161
            aload 0 /* this */
            aload 4 /* endpoint */
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.options:Lio/vertx/redis/client/RedisOptions;
            aload 0 /* this */
            aload 3 /* counter */
            aload 4 /* endpoint */
            aload 1 /* onCreate */
            invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient;Ljava/util/concurrent/atomic/AtomicInteger;Lio/vertx/core/net/SocketAddress;Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/redis/client/impl/RedisClusterClient.lambda$10(Ljava/util/concurrent/atomic/AtomicInteger;Lio/vertx/core/net/SocketAddress;Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.getClient:(Lio/vertx/core/net/SocketAddress;Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler;)V
        end local 4 // io.vertx.core.net.SocketAddress endpoint
         5: .line 160
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 182
            aload 0 /* this */
            areturn
        end local 3 // java.util.concurrent.atomic.AtomicInteger counter
        end local 2 // java.util.List endpoints
        end local 1 // io.vertx.core.Handler onCreate
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    7     1   onCreate  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/redis/client/Redis;>;>;
            1    7     2  endpoints  Ljava/util/List<Lio/vertx/core/net/SocketAddress;>;
            2    7     3    counter  Ljava/util/concurrent/atomic/AtomicInteger;
            4    5     4   endpoint  Lio/vertx/core/net/SocketAddress;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/redis/client/Redis;>;>;)Lio/vertx/redis/client/Redis;
    MethodParameters:
          Name  Flags
      onCreate  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
         0: .line 187
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.connections:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/redis/client/impl/RedisClusterClient.lambda$12(Ljava/util/Map$Entry;)Z (6)
                  (Ljava/util/Map$Entry;)Z
            invokeinterface java.util.Set.removeIf:(Ljava/util/function/Predicate;)Z
            pop
         1: .line 193
            return
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/redis/client/impl/RedisClusterClient;

  public io.vertx.redis.client.Redis exceptionHandler(io.vertx.core.Handler<java.lang.Throwable>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // io.vertx.core.Handler handler
         0: .line 197
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
         1: .line 198
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    2     1  handler  Lio/vertx/core/Handler<Ljava/lang/Throwable;>;
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Throwable;>;)Lio/vertx/redis/client/Redis;
    MethodParameters:
         Name  Flags
      handler  

  public io.vertx.redis.client.Redis endHandler(io.vertx.core.Handler<java.lang.Void>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // io.vertx.core.Handler handler
         0: .line 203
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.redis.client.impl.RedisClusterClient.onEnd:Lio/vertx/core/Handler;
         1: .line 204
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    2     1  handler  Lio/vertx/core/Handler<Ljava/lang/Void;>;
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Void;>;)Lio/vertx/redis/client/Redis;
    MethodParameters:
         Name  Flags
      handler  

  public io.vertx.redis.client.Redis handler(io.vertx.core.Handler<io.vertx.redis.client.Response>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // io.vertx.core.Handler handler
         0: .line 209
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.redis.client.impl.RedisClusterClient.onMessage:Lio/vertx/core/Handler;
         1: .line 210
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    2     1  handler  Lio/vertx/core/Handler<Lio/vertx/redis/client/Response;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/redis/client/Response;>;)Lio/vertx/redis/client/Redis;
    MethodParameters:
         Name  Flags
      handler  

  public io.vertx.redis.client.Redis pause();
    descriptor: ()Lio/vertx/redis/client/Redis;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
         0: .line 215
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.connections:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            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/redis/client/impl/RedisClusterClient.lambda$13(Lio/vertx/redis/client/Redis;)V (6)
                  (Lio/vertx/redis/client/Redis;)V
            invokeinterface java.util.Collection.forEach:(Ljava/util/function/Consumer;)V
         1: .line 220
            aload 0 /* this */
            areturn
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/redis/client/impl/RedisClusterClient;

  public io.vertx.redis.client.Redis resume();
    descriptor: ()Lio/vertx/redis/client/Redis;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
         0: .line 225
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.connections:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            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/redis/client/impl/RedisClusterClient.lambda$14(Lio/vertx/redis/client/Redis;)V (6)
                  (Lio/vertx/redis/client/Redis;)V
            invokeinterface java.util.Collection.forEach:(Ljava/util/function/Consumer;)V
         1: .line 230
            aconst_null
            areturn
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/redis/client/impl/RedisClusterClient;

  public io.vertx.redis.client.Redis send(io.vertx.redis.client.Request, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.redis.client.Response>>);
    descriptor: (Lio/vertx/redis/client/Request;Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=17, args_size=3
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // io.vertx.redis.client.Request request
        start local 2 // io.vertx.core.Handler handler
         0: .line 236
            aload 1 /* request */
            checkcast io.vertx.redis.client.impl.RequestImpl
            astore 3 /* req */
        start local 3 // io.vertx.redis.client.impl.RequestImpl req
         1: .line 237
            aload 3 /* req */
            invokevirtual io.vertx.redis.client.impl.RequestImpl.command:()Lio/vertx/redis/client/Command;
            astore 4 /* cmd */
        start local 4 // io.vertx.redis.client.Command cmd
         2: .line 239
            getstatic io.vertx.redis.client.impl.RedisClusterClient.UNSUPPORTEDCOMMANDS:Ljava/util/Map;
            aload 4 /* cmd */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 8
         3: .line 241
            aload 2 /* handler */
            getstatic io.vertx.redis.client.impl.RedisClusterClient.UNSUPPORTEDCOMMANDS:Ljava/util/Map;
            aload 4 /* cmd */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         4: .line 242
            goto 7
      StackMap locals: io.vertx.redis.client.impl.RedisClusterClient io.vertx.redis.client.Request io.vertx.core.Handler io.vertx.redis.client.impl.RequestImpl io.vertx.redis.client.Command
      StackMap stack: java.lang.RuntimeException
         5: astore 5 /* e */
        start local 5 // java.lang.RuntimeException e
         6: .line 243
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 5 /* e */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 5 // java.lang.RuntimeException e
         7: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
         8: .line 248
      StackMap locals:
      StackMap stack:
            aload 4 /* cmd */
            invokeinterface io.vertx.redis.client.Command.isMovable:()Z
            ifeq 14
         9: .line 251
            aload 2 /* handler */
            ldc "RedisClusterClient does not handle movable keys commands, use non cluster client on the right node."
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        10: .line 252
            goto 13
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
        11: astore 5 /* e */
        start local 5 // java.lang.RuntimeException e
        12: .line 253
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 5 /* e */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 5 // java.lang.RuntimeException e
        13: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        14: .line 258
      StackMap locals:
      StackMap stack:
            aload 4 /* cmd */
            invokeinterface io.vertx.redis.client.Command.isKeyless:()Z
            ifeq 26
            getstatic io.vertx.redis.client.impl.RedisClusterClient.REDUCERS:Ljava/util/Map;
            aload 4 /* cmd */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 26
        15: .line 259
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.slotNumber:I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 5 /* responses */
        start local 5 // java.util.List responses
        16: .line 261
            iconst_1
            istore 6 /* i */
        start local 6 // int i
        17: goto 23
        18: .line 263
      StackMap locals: java.util.List int
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.slots:[[Lio/vertx/redis/client/Redis;
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.slots:[[Lio/vertx/redis/client/Redis;
            arraylength
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.slotNumber:I
            idiv
            iconst_1
            isub
            iload 6 /* i */
            imul
            aaload
            astore 7 /* clients */
        start local 7 // io.vertx.redis.client.Redis[] clients
        19: .line 265
            invokestatic io.vertx.core.Future.future:()Lio/vertx/core/Future;
            astore 8 /* f */
        start local 8 // io.vertx.core.Future f
        20: .line 266
            aload 0 /* this */
            aload 0 /* this */
            aload 3 /* req */
            invokevirtual io.vertx.redis.client.impl.RequestImpl.command:()Lio/vertx/redis/client/Command;
            invokeinterface io.vertx.redis.client.Command.isReadOnly:()Z
            aload 7 /* clients */
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.selectMasterOrSlave:(Z[Lio/vertx/redis/client/Redis;)Lio/vertx/redis/client/Redis;
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.options:Lio/vertx/redis/client/RedisOptions;
            bipush 16
            aload 3 /* req */
            aload 8 /* f */
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.send:(Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;Lio/vertx/core/Handler;)V
        21: .line 267
            aload 5 /* responses */
            aload 8 /* f */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // io.vertx.core.Future f
        end local 7 // io.vertx.redis.client.Redis[] clients
        22: .line 261
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 6 /* i */
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.slotNumber:I
            if_icmple 18
        end local 6 // int i
        24: .line 269
            aload 5 /* responses */
            invokestatic io.vertx.core.CompositeFuture.all:(Ljava/util/List;)Lio/vertx/core/CompositeFuture;
            aload 0 /* this */
            aload 2 /* handler */
            aload 4 /* cmd */
            invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient;Lio/vertx/core/Handler;Lio/vertx/redis/client/Command;)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/redis/client/impl/RedisClusterClient.lambda$15(Lio/vertx/core/Handler;Lio/vertx/redis/client/Command;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.CompositeFuture.setHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/CompositeFuture;
            pop
        25: .line 286
            aload 0 /* this */
            areturn
        end local 5 // java.util.List responses
        26: .line 289
      StackMap locals:
      StackMap stack:
            aload 4 /* cmd */
            invokeinterface io.vertx.redis.client.Command.isKeyless:()Z
            ifeq 29
        27: .line 291
            aload 0 /* this */
            aload 0 /* this */
            iconst_m1
            aload 4 /* cmd */
            invokeinterface io.vertx.redis.client.Command.isReadOnly:()Z
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.selectClient:(IZ)Lio/vertx/redis/client/Redis;
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.options:Lio/vertx/redis/client/RedisOptions;
            bipush 16
            aload 3 /* req */
            aload 2 /* handler */
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.send:(Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;Lio/vertx/core/Handler;)V
        28: .line 292
            aload 0 /* this */
            areturn
        29: .line 295
      StackMap locals:
      StackMap stack:
            aload 3 /* req */
            invokevirtual io.vertx.redis.client.impl.RequestImpl.getArgs:()Ljava/util/List;
            astore 5 /* args */
        start local 5 // java.util.List args
        30: .line 297
            aload 4 /* cmd */
            invokeinterface io.vertx.redis.client.Command.isMultiKey:()Z
            ifeq 66
        31: .line 298
            iconst_m1
            istore 6 /* currentSlot */
        start local 6 // int currentSlot
        32: .line 301
            aload 4 /* cmd */
            invokeinterface io.vertx.redis.client.Command.getFirstKey:()I
            iconst_1
            isub
            istore 7 /* start */
        start local 7 // int start
        33: .line 302
            aload 4 /* cmd */
            invokeinterface io.vertx.redis.client.Command.getLastKey:()I
            istore 8 /* end */
        start local 8 // int end
        34: .line 303
            iload 8 /* end */
            ifle 36
        35: .line 304
            iinc 8 /* end */ -1
        36: .line 306
      StackMap locals: io.vertx.redis.client.impl.RedisClusterClient io.vertx.redis.client.Request io.vertx.core.Handler io.vertx.redis.client.impl.RequestImpl io.vertx.redis.client.Command java.util.List int int int
      StackMap stack:
            iload 8 /* end */
            ifge 38
        37: .line 307
            aload 5 /* args */
            invokeinterface java.util.List.size:()I
            iload 8 /* end */
            iconst_1
            iadd
            iadd
            istore 8 /* end */
        38: .line 309
      StackMap locals:
      StackMap stack:
            aload 4 /* cmd */
            invokeinterface io.vertx.redis.client.Command.getInterval:()I
            istore 9 /* step */
        start local 9 // int step
        39: .line 311
            iload 7 /* start */
            istore 10 /* i */
        start local 10 // int i
        40: goto 63
        41: .line 312
      StackMap locals: int int
      StackMap stack:
            aload 5 /* args */
            iload 10 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast byte[]
            invokestatic io.vertx.redis.client.impl.ZModem.generate:([B)I
            istore 11 /* slot */
        start local 11 // int slot
        42: .line 313
            iload 6 /* currentSlot */
            iconst_m1
            if_icmpne 45
        43: .line 314
            iload 11 /* slot */
            istore 6 /* currentSlot */
        44: .line 315
            goto 62
        45: .line 317
      StackMap locals: int
      StackMap stack:
            iload 6 /* currentSlot */
            iload 11 /* slot */
            if_icmpeq 62
        46: .line 319
            getstatic io.vertx.redis.client.impl.RedisClusterClient.REDUCERS:Ljava/util/Map;
            aload 4 /* cmd */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 52
        47: .line 322
            aload 2 /* handler */
            new java.lang.StringBuilder
            dup
            ldc "No Reducer available for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* cmd */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        48: .line 323
            goto 51
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
        49: astore 12 /* e */
        start local 12 // java.lang.RuntimeException e
        50: .line 324
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 12 /* e */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 12 // java.lang.RuntimeException e
        51: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        52: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* cmd */
            aload 5 /* args */
            iload 7 /* start */
            iload 8 /* end */
            iload 9 /* step */
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.splitRequest:(Lio/vertx/redis/client/Command;Ljava/util/List;III)Ljava/util/Map;
            astore 12 /* requests */
        start local 12 // java.util.Map requests
        53: .line 330
            new java.util.ArrayList
            dup
            aload 12 /* requests */
            invokeinterface java.util.Map.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 13 /* responses */
        start local 13 // java.util.List responses
        54: .line 332
            aload 12 /* requests */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 15
            goto 59
      StackMap locals: io.vertx.redis.client.impl.RedisClusterClient io.vertx.redis.client.Request io.vertx.core.Handler io.vertx.redis.client.impl.RequestImpl io.vertx.redis.client.Command java.util.List int int int int int int java.util.Map java.util.List top java.util.Iterator
      StackMap stack:
        55: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 14 /* kv */
        start local 14 // java.util.Map$Entry kv
        56: .line 333
            invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
            astore 16 /* p */
        start local 16 // io.vertx.core.Promise p
        57: .line 334
            aload 0 /* this */
            aload 0 /* this */
            aload 14 /* kv */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 4 /* cmd */
            invokeinterface io.vertx.redis.client.Command.isReadOnly:()Z
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.selectClient:(IZ)Lio/vertx/redis/client/Redis;
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.options:Lio/vertx/redis/client/RedisOptions;
            bipush 16
            aload 14 /* kv */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast io.vertx.redis.client.Request
            aload 16 /* p */
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.send:(Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;Lio/vertx/core/Handler;)V
        58: .line 335
            aload 13 /* responses */
            aload 16 /* p */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 16 // io.vertx.core.Promise p
        end local 14 // java.util.Map$Entry kv
        59: .line 332
      StackMap locals:
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 55
        60: .line 338
            aload 13 /* responses */
            invokestatic io.vertx.core.CompositeFuture.all:(Ljava/util/List;)Lio/vertx/core/CompositeFuture;
            aload 0 /* this */
            aload 2 /* handler */
            aload 4 /* cmd */
            invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient;Lio/vertx/core/Handler;Lio/vertx/redis/client/Command;)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/redis/client/impl/RedisClusterClient.lambda$16(Lio/vertx/core/Handler;Lio/vertx/redis/client/Command;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.CompositeFuture.setHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/CompositeFuture;
            pop
        61: .line 355
            aload 0 /* this */
            areturn
        end local 13 // java.util.List responses
        end local 12 // java.util.Map requests
        end local 11 // int slot
        62: .line 311
      StackMap locals: io.vertx.redis.client.impl.RedisClusterClient io.vertx.redis.client.Request io.vertx.core.Handler io.vertx.redis.client.impl.RequestImpl io.vertx.redis.client.Command java.util.List int int int int int
      StackMap stack:
            iload 10 /* i */
            iload 9 /* step */
            iadd
            istore 10 /* i */
      StackMap locals:
      StackMap stack:
        63: iload 10 /* i */
            iload 8 /* end */
            if_icmplt 41
        end local 10 // int i
        64: .line 360
            aload 0 /* this */
            aload 0 /* this */
            iload 6 /* currentSlot */
            aload 4 /* cmd */
            invokeinterface io.vertx.redis.client.Command.isReadOnly:()Z
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.selectClient:(IZ)Lio/vertx/redis/client/Redis;
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.options:Lio/vertx/redis/client/RedisOptions;
            bipush 16
            aload 3 /* req */
            aload 2 /* handler */
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.send:(Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;Lio/vertx/core/Handler;)V
        65: .line 361
            aload 0 /* this */
            areturn
        end local 9 // int step
        end local 8 // int end
        end local 7 // int start
        end local 6 // int currentSlot
        66: .line 365
      StackMap locals: io.vertx.redis.client.impl.RedisClusterClient io.vertx.redis.client.Request io.vertx.core.Handler io.vertx.redis.client.impl.RequestImpl io.vertx.redis.client.Command java.util.List
      StackMap stack:
            aload 4 /* cmd */
            invokeinterface io.vertx.redis.client.Command.getFirstKey:()I
            iconst_1
            isub
            istore 6 /* start */
        start local 6 // int start
        67: .line 366
            aload 0 /* this */
            aload 0 /* this */
            aload 5 /* args */
            iload 6 /* start */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast byte[]
            invokestatic io.vertx.redis.client.impl.ZModem.generate:([B)I
            aload 4 /* cmd */
            invokeinterface io.vertx.redis.client.Command.isReadOnly:()Z
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.selectClient:(IZ)Lio/vertx/redis/client/Redis;
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.options:Lio/vertx/redis/client/RedisOptions;
            bipush 16
            aload 3 /* req */
            aload 2 /* handler */
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.send:(Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;Lio/vertx/core/Handler;)V
        68: .line 367
            aload 0 /* this */
            areturn
        end local 6 // int start
        end local 5 // java.util.List args
        end local 4 // io.vertx.redis.client.Command cmd
        end local 3 // io.vertx.redis.client.impl.RequestImpl req
        end local 2 // io.vertx.core.Handler handler
        end local 1 // io.vertx.redis.client.Request request
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   69     0         this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0   69     1      request  Lio/vertx/redis/client/Request;
            0   69     2      handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/redis/client/Response;>;>;
            1   69     3          req  Lio/vertx/redis/client/impl/RequestImpl;
            2   69     4          cmd  Lio/vertx/redis/client/Command;
            6    7     5            e  Ljava/lang/RuntimeException;
           12   13     5            e  Ljava/lang/RuntimeException;
           16   26     5    responses  Ljava/util/List<Lio/vertx/core/Future;>;
           17   24     6            i  I
           19   22     7      clients  [Lio/vertx/redis/client/Redis;
           20   22     8            f  Lio/vertx/core/Future<Lio/vertx/redis/client/Response;>;
           30   69     5         args  Ljava/util/List<[B>;
           32   66     6  currentSlot  I
           33   66     7        start  I
           34   66     8          end  I
           39   66     9         step  I
           40   64    10            i  I
           42   62    11         slot  I
           50   51    12            e  Ljava/lang/RuntimeException;
           53   62    12     requests  Ljava/util/Map<Ljava/lang/Integer;Lio/vertx/redis/client/Request;>;
           54   62    13    responses  Ljava/util/List<Lio/vertx/core/Future;>;
           56   59    14           kv  Ljava/util/Map$Entry<Ljava/lang/Integer;Lio/vertx/redis/client/Request;>;
           57   59    16            p  Lio/vertx/core/Promise<Lio/vertx/redis/client/Response;>;
           67   69     6        start  I
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.RuntimeException
           9    10      11  Class java.lang.RuntimeException
          47    48      49  Class java.lang.RuntimeException
    Signature: (Lio/vertx/redis/client/Request;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/redis/client/Response;>;>;)Lio/vertx/redis/client/Redis;
    MethodParameters:
         Name  Flags
      request  
      handler  

  private java.util.Map<java.lang.Integer, io.vertx.redis.client.Request> splitRequest(io.vertx.redis.client.Command, java.util.List<byte[]>, int, int, int);
    descriptor: (Lio/vertx/redis/client/Command;Ljava/util/List;III)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=11, args_size=6
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // io.vertx.redis.client.Command cmd
        start local 2 // java.util.List args
        start local 3 // int start
        start local 4 // int end
        start local 5 // int step
         0: .line 372
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            astore 6 /* map */
        start local 6 // java.util.Map map
         1: .line 374
            iload 3 /* start */
            istore 7 /* i */
        start local 7 // int i
         2: goto 20
         3: .line 375
      StackMap locals: java.util.Map int
      StackMap stack:
            aload 2 /* args */
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast byte[]
            invokestatic io.vertx.redis.client.impl.ZModem.generate:([B)I
            istore 8 /* slot */
        start local 8 // int slot
         4: .line 377
            aload 6 /* map */
            iload 8 /* slot */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.redis.client.Request
            astore 9 /* request */
        start local 9 // io.vertx.redis.client.Request request
         5: .line 378
            aload 9 /* request */
            ifnonnull 13
         6: .line 380
            aload 1 /* cmd */
            invokestatic io.vertx.redis.client.Request.cmd:(Lio/vertx/redis/client/Command;)Lio/vertx/redis/client/Request;
            astore 9 /* request */
         7: .line 382
            iconst_0
            istore 10 /* j */
        start local 10 // int j
         8: goto 11
         9: .line 383
      StackMap locals: int io.vertx.redis.client.Request int
      StackMap stack:
            aload 9 /* request */
            aload 2 /* args */
            iload 10 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast byte[]
            invokeinterface io.vertx.redis.client.Request.arg:([B)Lio/vertx/redis/client/Request;
            pop
        10: .line 382
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        11: iload 10 /* j */
            iload 3 /* start */
            if_icmplt 9
        end local 10 // int j
        12: .line 386
            aload 6 /* map */
            iload 8 /* slot */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 9 /* request */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 389
      StackMap locals:
      StackMap stack:
            aload 9 /* request */
            aload 2 /* args */
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast byte[]
            invokeinterface io.vertx.redis.client.Request.arg:([B)Lio/vertx/redis/client/Request;
            pop
        14: .line 391
            iload 7 /* i */
            iconst_1
            iadd
            istore 10 /* j */
        start local 10 // int j
        15: goto 18
        16: .line 392
      StackMap locals: int
      StackMap stack:
            aload 9 /* request */
            aload 2 /* args */
            iload 10 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast byte[]
            invokeinterface io.vertx.redis.client.Request.arg:([B)Lio/vertx/redis/client/Request;
            pop
        17: .line 391
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        18: iload 10 /* j */
            iload 7 /* i */
            iload 5 /* step */
            iadd
            if_icmplt 16
        end local 10 // int j
        end local 9 // io.vertx.redis.client.Request request
        end local 8 // int slot
        19: .line 374
            iload 7 /* i */
            iload 5 /* step */
            iadd
            istore 7 /* i */
      StackMap locals:
      StackMap stack:
        20: iload 7 /* i */
            iload 4 /* end */
            if_icmplt 3
        end local 7 // int i
        21: .line 397
            aload 6 /* map */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            astore 7 /* col */
        start local 7 // java.util.Collection col
        22: .line 398
            aload 7 /* col */
            iload 4 /* end */
            aload 2 /* args */
            invokedynamic accept(ILjava/util/List;)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/redis/client/impl/RedisClusterClient.lambda$17(ILjava/util/List;Lio/vertx/redis/client/Request;)V (6)
                  (Lio/vertx/redis/client/Request;)V
            invokeinterface java.util.Collection.forEach:(Ljava/util/function/Consumer;)V
        23: .line 404
            aload 6 /* map */
            areturn
        end local 7 // java.util.Collection col
        end local 6 // java.util.Map map
        end local 5 // int step
        end local 4 // int end
        end local 3 // int start
        end local 2 // java.util.List args
        end local 1 // io.vertx.redis.client.Command cmd
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   24     0     this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0   24     1      cmd  Lio/vertx/redis/client/Command;
            0   24     2     args  Ljava/util/List<[B>;
            0   24     3    start  I
            0   24     4      end  I
            0   24     5     step  I
            1   24     6      map  Ljava/util/Map<Ljava/lang/Integer;Lio/vertx/redis/client/Request;>;
            2   21     7        i  I
            4   19     8     slot  I
            5   19     9  request  Lio/vertx/redis/client/Request;
            8   12    10        j  I
           15   19    10        j  I
           22   24     7      col  Ljava/util/Collection<Lio/vertx/redis/client/Request;>;
    Signature: (Lio/vertx/redis/client/Command;Ljava/util/List<[B>;III)Ljava/util/Map<Ljava/lang/Integer;Lio/vertx/redis/client/Request;>;
    MethodParameters:
       Name  Flags
      cmd    
      args   
      start  
      end    
      step   

  public io.vertx.redis.client.Redis batch(java.util.List<io.vertx.redis.client.Request>, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.util.List<io.vertx.redis.client.Response>>>);
    descriptor: (Ljava/util/List;Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=14, args_size=3
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // java.util.List requests
        start local 2 // io.vertx.core.Handler handler
         0: .line 409
            iconst_m1
            istore 3 /* currentSlot */
        start local 3 // int currentSlot
         1: .line 410
            iconst_0
            istore 4 /* readOnly */
        start local 4 // boolean readOnly
         2: .line 413
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 48
         4: .line 415
      StackMap locals: int int int
      StackMap stack:
            aload 1 /* requests */
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.redis.client.impl.RequestImpl
            astore 6 /* req */
        start local 6 // io.vertx.redis.client.impl.RequestImpl req
         5: .line 416
            aload 6 /* req */
            invokevirtual io.vertx.redis.client.impl.RequestImpl.command:()Lio/vertx/redis/client/Command;
            astore 7 /* cmd */
        start local 7 // io.vertx.redis.client.Command cmd
         6: .line 418
            getstatic io.vertx.redis.client.impl.RedisClusterClient.UNSUPPORTEDCOMMANDS:Ljava/util/Map;
            aload 7 /* cmd */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 12
         7: .line 420
            aload 2 /* handler */
            getstatic io.vertx.redis.client.impl.RedisClusterClient.UNSUPPORTEDCOMMANDS:Ljava/util/Map;
            aload 7 /* cmd */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         8: .line 421
            goto 11
      StackMap locals: io.vertx.redis.client.impl.RedisClusterClient java.util.List io.vertx.core.Handler int int int io.vertx.redis.client.impl.RequestImpl io.vertx.redis.client.Command
      StackMap stack: java.lang.RuntimeException
         9: astore 8 /* e */
        start local 8 // java.lang.RuntimeException e
        10: .line 422
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 8 /* e */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 8 // java.lang.RuntimeException e
        11: .line 424
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        12: .line 427
      StackMap locals:
      StackMap stack:
            iload 4 /* readOnly */
            aload 7 /* cmd */
            invokeinterface io.vertx.redis.client.Command.isReadOnly:()Z
            ior
            istore 4 /* readOnly */
        13: .line 430
            aload 7 /* cmd */
            invokeinterface io.vertx.redis.client.Command.isKeyless:()Z
            ifeq 15
        14: .line 431
            goto 47
        15: .line 434
      StackMap locals:
      StackMap stack:
            aload 7 /* cmd */
            invokeinterface io.vertx.redis.client.Command.isMovable:()Z
            ifeq 18
        16: .line 436
            aload 2 /* handler */
            ldc "RedisClusterClient does not handle movable keys commands, use non cluster client on the right node."
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        17: .line 437
            aload 0 /* this */
            areturn
        18: .line 440
      StackMap locals:
      StackMap stack:
            aload 6 /* req */
            invokevirtual io.vertx.redis.client.impl.RequestImpl.getArgs:()Ljava/util/List;
            astore 8 /* args */
        start local 8 // java.util.List args
        19: .line 442
            aload 7 /* cmd */
            invokeinterface io.vertx.redis.client.Command.isMultiKey:()Z
            ifeq 39
        20: .line 444
            aload 7 /* cmd */
            invokeinterface io.vertx.redis.client.Command.getFirstKey:()I
            iconst_1
            isub
            istore 9 /* start */
        start local 9 // int start
        21: .line 445
            aload 7 /* cmd */
            invokeinterface io.vertx.redis.client.Command.getLastKey:()I
            istore 10 /* end */
        start local 10 // int end
        22: .line 446
            iload 10 /* end */
            ifle 24
        23: .line 447
            iinc 10 /* end */ -1
        24: .line 449
      StackMap locals: java.util.List int int
      StackMap stack:
            iload 10 /* end */
            ifge 26
        25: .line 450
            aload 8 /* args */
            invokeinterface java.util.List.size:()I
            iload 10 /* end */
            iconst_1
            iadd
            iadd
            istore 10 /* end */
        26: .line 452
      StackMap locals:
      StackMap stack:
            aload 7 /* cmd */
            invokeinterface io.vertx.redis.client.Command.getInterval:()I
            istore 11 /* step */
        start local 11 // int step
        27: .line 454
            iload 9 /* start */
            istore 12 /* j */
        start local 12 // int j
        28: goto 37
        29: .line 455
      StackMap locals: int int
      StackMap stack:
            aload 8 /* args */
            iload 12 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast byte[]
            invokestatic io.vertx.redis.client.impl.ZModem.generate:([B)I
            istore 13 /* slot */
        start local 13 // int slot
        30: .line 456
            iload 3 /* currentSlot */
            iconst_m1
            if_icmpne 33
        31: .line 457
            iload 13 /* slot */
            istore 3 /* currentSlot */
        32: .line 458
            goto 36
        33: .line 460
      StackMap locals: int
      StackMap stack:
            iload 3 /* currentSlot */
            iload 13 /* slot */
            if_icmpeq 36
        34: .line 462
            aload 2 /* handler */
            ldc "RedisClusterClient does not handle batching commands with keys across different slots. TODO: Split the command into slots and then batch."
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        35: .line 463
            aload 0 /* this */
            areturn
        end local 13 // int slot
        36: .line 454
      StackMap locals:
      StackMap stack:
            iload 12 /* j */
            iload 11 /* step */
            iadd
            istore 12 /* j */
      StackMap locals:
      StackMap stack:
        37: iload 12 /* j */
            iload 10 /* end */
            if_icmplt 29
        end local 12 // int j
        38: .line 467
            goto 47
        end local 11 // int step
        end local 10 // int end
        end local 9 // int start
        39: .line 471
      StackMap locals: io.vertx.redis.client.impl.RedisClusterClient java.util.List io.vertx.core.Handler int int int io.vertx.redis.client.impl.RequestImpl io.vertx.redis.client.Command java.util.List
      StackMap stack:
            aload 7 /* cmd */
            invokeinterface io.vertx.redis.client.Command.getFirstKey:()I
            iconst_1
            isub
            istore 9 /* start */
        start local 9 // int start
        40: .line 472
            aload 8 /* args */
            iload 9 /* start */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast byte[]
            invokestatic io.vertx.redis.client.impl.ZModem.generate:([B)I
            istore 10 /* slot */
        start local 10 // int slot
        41: .line 474
            iload 3 /* currentSlot */
            iconst_m1
            if_icmpne 44
        42: .line 475
            iload 10 /* slot */
            istore 3 /* currentSlot */
        43: .line 476
            goto 47
        44: .line 478
      StackMap locals: int int
      StackMap stack:
            iload 3 /* currentSlot */
            iload 10 /* slot */
            if_icmpeq 47
        45: .line 480
            aload 2 /* handler */
            ldc "RedisClusterClient does not handle batching commands with keys across different slots. TODO: Split the command into slots and then batch."
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        46: .line 481
            aload 0 /* this */
            areturn
        end local 10 // int slot
        end local 9 // int start
        end local 8 // java.util.List args
        end local 7 // io.vertx.redis.client.Command cmd
        end local 6 // io.vertx.redis.client.impl.RequestImpl req
        47: .line 413
      StackMap locals: io.vertx.redis.client.impl.RedisClusterClient java.util.List io.vertx.core.Handler int int int
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        48: iload 5 /* i */
            aload 1 /* requests */
            invokeinterface java.util.List.size:()I
            if_icmplt 4
        end local 5 // int i
        49: .line 485
            aload 0 /* this */
            aload 0 /* this */
            iload 3 /* currentSlot */
            iload 4 /* readOnly */
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.selectClient:(IZ)Lio/vertx/redis/client/Redis;
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.options:Lio/vertx/redis/client/RedisOptions;
            bipush 16
            aload 1 /* requests */
            aload 2 /* handler */
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.batch:(Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILjava/util/List;Lio/vertx/core/Handler;)V
        50: .line 486
            aload 0 /* this */
            areturn
        end local 4 // boolean readOnly
        end local 3 // int currentSlot
        end local 2 // io.vertx.core.Handler handler
        end local 1 // java.util.List requests
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   51     0         this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0   51     1     requests  Ljava/util/List<Lio/vertx/redis/client/Request;>;
            0   51     2      handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/util/List<Lio/vertx/redis/client/Response;>;>;>;
            1   51     3  currentSlot  I
            2   51     4     readOnly  Z
            3   49     5            i  I
            5   47     6          req  Lio/vertx/redis/client/impl/RequestImpl;
            6   47     7          cmd  Lio/vertx/redis/client/Command;
           10   11     8            e  Ljava/lang/RuntimeException;
           19   47     8         args  Ljava/util/List<[B>;
           21   39     9        start  I
           22   39    10          end  I
           27   39    11         step  I
           28   38    12            j  I
           30   36    13         slot  I
           40   47     9        start  I
           41   47    10         slot  I
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.RuntimeException
    Signature: (Ljava/util/List<Lio/vertx/redis/client/Request;>;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/util/List<Lio/vertx/redis/client/Response;>;>;>;)Lio/vertx/redis/client/Redis;
    MethodParameters:
          Name  Flags
      requests  
      handler   

  public io.vertx.core.net.SocketAddress socketAddress();
    descriptor: ()Lio/vertx/core/net/SocketAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
         0: .line 491
            new java.lang.UnsupportedOperationException
            dup
            ldc "Cluster Connection is not bound to a socket"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/redis/client/impl/RedisClusterClient;

  public io.vertx.redis.client.Redis fetch(long);
    descriptor: (J)Lio/vertx/redis/client/Redis;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // long amount
         0: .line 496
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.connections:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            lload 1 /* amount */
            invokedynamic accept(J)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/redis/client/impl/RedisClusterClient.lambda$18(JLio/vertx/redis/client/Redis;)V (6)
                  (Lio/vertx/redis/client/Redis;)V
            invokeinterface java.util.Collection.forEach:(Ljava/util/function/Consumer;)V
         1: .line 502
            aload 0 /* this */
            areturn
        end local 1 // long amount
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    2     1  amount  J
    MethodParameters:
        Name  Flags
      amount  

  private void getClient(io.vertx.core.net.SocketAddress, io.vertx.redis.client.RedisOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.redis.client.Redis>>);
    descriptor: (Lio/vertx/core/net/SocketAddress;Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // io.vertx.core.net.SocketAddress address
        start local 2 // io.vertx.redis.client.RedisOptions options
        start local 3 // io.vertx.core.Handler onClient
         0: .line 510
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.connections:Ljava/util/Map;
            aload 1 /* address */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.redis.client.Redis
            astore 4 /* cli */
        start local 4 // io.vertx.redis.client.Redis cli
         1: .line 513
            aload 4 /* cli */
            ifnull 4
         2: .line 514
            aload 3 /* onClient */
            aload 4 /* cli */
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         3: .line 515
            return
         4: .line 518
      StackMap locals: io.vertx.redis.client.Redis
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.vertx:Lio/vertx/core/Vertx;
            aload 2 /* options */
            aload 1 /* address */
            invokestatic io.vertx.redis.client.impl.RedisClient.create:(Lio/vertx/core/Vertx;Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/net/SocketAddress;)Lio/vertx/redis/client/Redis;
            aload 0 /* this */
            aload 3 /* onClient */
            aload 1 /* address */
            aload 2 /* options */
            invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient;Lio/vertx/core/Handler;Lio/vertx/core/net/SocketAddress;Lio/vertx/redis/client/RedisOptions;)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/redis/client/impl/RedisClusterClient.lambda$19(Lio/vertx/core/Handler;Lio/vertx/core/net/SocketAddress;Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.redis.client.Redis.connect:(Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
            pop
         5: .line 568
            return
        end local 4 // io.vertx.redis.client.Redis cli
        end local 3 // io.vertx.core.Handler onClient
        end local 2 // io.vertx.redis.client.RedisOptions options
        end local 1 // io.vertx.core.net.SocketAddress address
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    6     1   address  Lio/vertx/core/net/SocketAddress;
            0    6     2   options  Lio/vertx/redis/client/RedisOptions;
            0    6     3  onClient  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/redis/client/Redis;>;>;
            1    6     4       cli  Lio/vertx/redis/client/Redis;
    Signature: (Lio/vertx/core/net/SocketAddress;Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/redis/client/Redis;>;>;)V
    MethodParameters:
          Name  Flags
      address   
      options   
      onClient  

  private void getSlots(io.vertx.redis.client.RedisOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // io.vertx.redis.client.RedisOptions options
        start local 2 // io.vertx.core.Handler handler
         0: .line 572
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* exclude */
        start local 3 // java.util.Set exclude
         1: .line 573
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            astore 4 /* cause */
        start local 4 // java.util.concurrent.atomic.AtomicReference cause
         2: .line 575
            new io.vertx.redis.client.impl.RedisClusterClient$1
            dup
            aload 0 /* this */
            aload 3 /* exclude */
            aload 2 /* handler */
            aload 4 /* cause */
            aload 1 /* options */
            invokespecial io.vertx.redis.client.impl.RedisClusterClient$1.<init>:(Lio/vertx/redis/client/impl/RedisClusterClient;Ljava/util/Set;Lio/vertx/core/Handler;Ljava/util/concurrent/atomic/AtomicReference;Lio/vertx/redis/client/RedisOptions;)V
            astore 5 /* tryClient */
        start local 5 // java.lang.Runnable tryClient
         3: .line 656
            aload 5 /* tryClient */
            invokeinterface java.lang.Runnable.run:()V
         4: .line 657
            return
        end local 5 // java.lang.Runnable tryClient
        end local 4 // java.util.concurrent.atomic.AtomicReference cause
        end local 3 // java.util.Set exclude
        end local 2 // io.vertx.core.Handler handler
        end local 1 // io.vertx.redis.client.RedisOptions options
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    5     1    options  Lio/vertx/redis/client/RedisOptions;
            0    5     2    handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    5     3    exclude  Ljava/util/Set<Lio/vertx/core/net/SocketAddress;>;
            2    5     4      cause  Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Throwable;>;
            3    5     5  tryClient  Ljava/lang/Runnable;
    Signature: (Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
         Name  Flags
      options  
      handler  

  private io.vertx.redis.client.Redis getRandomConnection(java.util.Set<io.vertx.core.net.SocketAddress>);
    descriptor: (Ljava/util/Set;)Lio/vertx/redis/client/Redis;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // java.util.Set exclude
         0: .line 663
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.connections:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 664
            aload 1 /* exclude */
            invokedynamic test(Ljava/util/Set;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  io/vertx/redis/client/impl/RedisClusterClient.lambda$24(Ljava/util/Set;Ljava/util/Map$Entry;)Z (6)
                  (Ljava/util/Map$Entry;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 665
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/util/Map$Entry.getValue()Ljava/lang/Object; (9 itf)
                  (Ljava/util/Map$Entry;)Lio/vertx/redis/client/Redis;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         3: .line 666
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
         4: .line 663
            astore 2 /* available */
        start local 2 // java.util.List available
         5: .line 668
            aload 2 /* available */
            invokeinterface java.util.List.size:()I
            ifne 7
         6: .line 670
            aconst_null
            areturn
         7: .line 673
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* available */
            getstatic io.vertx.redis.client.impl.RedisClusterClient.RANDOM:Ljava/util/Random;
            aload 2 /* available */
            invokeinterface java.util.List.size:()I
            invokevirtual java.util.Random.nextInt:(I)I
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.redis.client.Redis
            areturn
        end local 2 // java.util.List available
        end local 1 // java.util.Set exclude
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    8     1    exclude  Ljava/util/Set<Lio/vertx/core/net/SocketAddress;>;
            5    8     2  available  Ljava/util/List<Lio/vertx/redis/client/Redis;>;
    Signature: (Ljava/util/Set<Lio/vertx/core/net/SocketAddress;>;)Lio/vertx/redis/client/Redis;
    MethodParameters:
         Name  Flags
      exclude  

  private void loadSlot(int, int, java.util.List<io.vertx.core.net.SocketAddress>, io.vertx.redis.client.RedisOptions, io.vertx.core.Handler<java.lang.Void>);
    descriptor: (IILjava/util/List;Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=12, args_size=6
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // int start
        start local 2 // int end
        start local 3 // java.util.List addresses
        start local 4 // io.vertx.redis.client.RedisOptions options
        start local 5 // io.vertx.core.Handler onLoad
         0: .line 678
            aload 3 /* addresses */
            invokeinterface java.util.List.size:()I
            anewarray io.vertx.redis.client.Redis
            astore 6 /* connections */
        start local 6 // io.vertx.redis.client.Redis[] connections
         1: .line 679
            new java.util.concurrent.atomic.AtomicInteger
            dup
            aload 3 /* addresses */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            astore 7 /* counter */
        start local 7 // java.util.concurrent.atomic.AtomicInteger counter
         2: .line 680
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         3: goto 11
         4: .line 681
      StackMap locals: io.vertx.redis.client.Redis[] java.util.concurrent.atomic.AtomicInteger int
      StackMap stack:
            iload 8 /* i */
            istore 9 /* idx */
        start local 9 // int idx
         5: .line 682
            aload 3 /* addresses */
            iload 9 /* idx */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.core.net.SocketAddress
            astore 10 /* address */
        start local 10 // io.vertx.core.net.SocketAddress address
         6: .line 684
            invokestatic io.vertx.core.Future.future:()Lio/vertx/core/Future;
            astore 11 /* getClientFuture */
        start local 11 // io.vertx.core.Future getClientFuture
         7: .line 685
            aload 0 /* this */
            aload 10 /* address */
            aload 4 /* options */
            aload 11 /* getClientFuture */
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.getClient:(Lio/vertx/core/net/SocketAddress;Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler;)V
         8: .line 687
            aload 11 /* getClientFuture */
            aload 4 /* options */
            invokedynamic apply(Lio/vertx/redis/client/RedisOptions;)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/redis/client/impl/RedisClusterClient.lambda$26(Lio/vertx/redis/client/RedisOptions;Lio/vertx/redis/client/Redis;)Lio/vertx/core/Future; (6)
                  (Lio/vertx/redis/client/Redis;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Future.compose:(Ljava/util/function/Function;)Lio/vertx/core/Future;
         9: .line 695
            aload 0 /* this */
            aload 10 /* address */
            aload 6 /* connections */
            iload 9 /* idx */
            aload 7 /* counter */
            iload 1 /* start */
            iload 2 /* end */
            aload 5 /* onLoad */
            invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient;Lio/vertx/core/net/SocketAddress;[Lio/vertx/redis/client/Redis;ILjava/util/concurrent/atomic/AtomicInteger;IILio/vertx/core/Handler;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/redis/client/impl/RedisClusterClient.lambda$27(Lio/vertx/core/net/SocketAddress;[Lio/vertx/redis/client/Redis;ILjava/util/concurrent/atomic/AtomicInteger;IILio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.Future.setHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
        end local 11 // io.vertx.core.Future getClientFuture
        end local 10 // io.vertx.core.net.SocketAddress address
        end local 9 // int idx
        10: .line 680
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 8 /* i */
            aload 3 /* addresses */
            invokeinterface java.util.List.size:()I
            if_icmplt 4
        end local 8 // int i
        12: .line 713
            return
        end local 7 // java.util.concurrent.atomic.AtomicInteger counter
        end local 6 // io.vertx.redis.client.Redis[] connections
        end local 5 // io.vertx.core.Handler onLoad
        end local 4 // io.vertx.redis.client.RedisOptions options
        end local 3 // java.util.List addresses
        end local 2 // int end
        end local 1 // int start
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0   13     1            start  I
            0   13     2              end  I
            0   13     3        addresses  Ljava/util/List<Lio/vertx/core/net/SocketAddress;>;
            0   13     4          options  Lio/vertx/redis/client/RedisOptions;
            0   13     5           onLoad  Lio/vertx/core/Handler<Ljava/lang/Void;>;
            1   13     6      connections  [Lio/vertx/redis/client/Redis;
            2   13     7          counter  Ljava/util/concurrent/atomic/AtomicInteger;
            3   12     8                i  I
            5   10     9              idx  I
            6   10    10          address  Lio/vertx/core/net/SocketAddress;
            7   10    11  getClientFuture  Lio/vertx/core/Future<Lio/vertx/redis/client/Redis;>;
    Signature: (IILjava/util/List<Lio/vertx/core/net/SocketAddress;>;Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler<Ljava/lang/Void;>;)V
    MethodParameters:
           Name  Flags
      start      
      end        
      addresses  
      options    
      onLoad     

  private void send(io.vertx.redis.client.Redis, io.vertx.redis.client.RedisOptions, int, io.vertx.redis.client.Request, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.redis.client.Response>>);
    descriptor: (Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;Lio/vertx/core/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=7, args_size=6
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // io.vertx.redis.client.Redis client
        start local 2 // io.vertx.redis.client.RedisOptions options
        start local 3 // int retries
        start local 4 // io.vertx.redis.client.Request command
        start local 5 // io.vertx.core.Handler handler
         0: .line 717
            aload 1 /* client */
            ifnonnull 6
         1: .line 719
            aload 5 /* handler */
            ldc "No connection available."
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 720
            goto 5
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         3: astore 6 /* e */
        start local 6 // java.lang.RuntimeException e
         4: .line 721
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 6 /* e */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 6 // java.lang.RuntimeException e
         5: .line 723
      StackMap locals:
      StackMap stack:
            return
         6: .line 726
      StackMap locals:
      StackMap stack:
            aload 1 /* client */
            aload 4 /* command */
            aload 0 /* this */
            iload 3 /* retries */
            aload 5 /* handler */
            aload 2 /* options */
            aload 4 /* command */
            aload 1 /* client */
            invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient;ILio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;Lio/vertx/redis/client/Request;Lio/vertx/redis/client/Redis;)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/redis/client/impl/RedisClusterClient.lambda$28(ILio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;Lio/vertx/redis/client/Request;Lio/vertx/redis/client/Redis;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.redis.client.Redis.send:(Lio/vertx/redis/client/Request;Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
            pop
         7: .line 800
            return
        end local 5 // io.vertx.core.Handler handler
        end local 4 // io.vertx.redis.client.Request command
        end local 3 // int retries
        end local 2 // io.vertx.redis.client.RedisOptions options
        end local 1 // io.vertx.redis.client.Redis client
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    8     1   client  Lio/vertx/redis/client/Redis;
            0    8     2  options  Lio/vertx/redis/client/RedisOptions;
            0    8     3  retries  I
            0    8     4  command  Lio/vertx/redis/client/Request;
            0    8     5  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/redis/client/Response;>;>;
            4    5     6        e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException
    Signature: (Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/redis/client/Response;>;>;)V
    MethodParameters:
         Name  Flags
      client   final
      options  final
      retries  final
      command  
      handler  

  private void batch(io.vertx.redis.client.Redis, io.vertx.redis.client.RedisOptions, int, java.util.List<io.vertx.redis.client.Request>, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.util.List<io.vertx.redis.client.Response>>>);
    descriptor: (Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILjava/util/List;Lio/vertx/core/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=7, args_size=6
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // io.vertx.redis.client.Redis client
        start local 2 // io.vertx.redis.client.RedisOptions options
        start local 3 // int retries
        start local 4 // java.util.List commands
        start local 5 // io.vertx.core.Handler handler
         0: .line 804
            aload 1 /* client */
            ifnonnull 6
         1: .line 806
            aload 5 /* handler */
            ldc "No connection available."
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 807
            goto 5
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         3: astore 6 /* e */
        start local 6 // java.lang.RuntimeException e
         4: .line 808
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 6 /* e */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 6 // java.lang.RuntimeException e
         5: .line 810
      StackMap locals:
      StackMap stack:
            return
         6: .line 813
      StackMap locals:
      StackMap stack:
            aload 1 /* client */
            aload 4 /* commands */
            aload 0 /* this */
            iload 3 /* retries */
            aload 5 /* handler */
            aload 2 /* options */
            aload 4 /* commands */
            aload 1 /* client */
            invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient;ILio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;Ljava/util/List;Lio/vertx/redis/client/Redis;)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/redis/client/impl/RedisClusterClient.lambda$33(ILio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;Ljava/util/List;Lio/vertx/redis/client/Redis;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.redis.client.Redis.batch:(Ljava/util/List;Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
            pop
         7: .line 887
            return
        end local 5 // io.vertx.core.Handler handler
        end local 4 // java.util.List commands
        end local 3 // int retries
        end local 2 // io.vertx.redis.client.RedisOptions options
        end local 1 // io.vertx.redis.client.Redis client
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    8     1    client  Lio/vertx/redis/client/Redis;
            0    8     2   options  Lio/vertx/redis/client/RedisOptions;
            0    8     3   retries  I
            0    8     4  commands  Ljava/util/List<Lio/vertx/redis/client/Request;>;
            0    8     5   handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/util/List<Lio/vertx/redis/client/Response;>;>;>;
            4    5     6         e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException
    Signature: (Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILjava/util/List<Lio/vertx/redis/client/Request;>;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/util/List<Lio/vertx/redis/client/Response;>;>;>;)V
    MethodParameters:
          Name  Flags
      client    final
      options   final
      retries   final
      commands  
      handler   

  private io.vertx.redis.client.Redis selectClient(int, boolean);
    descriptor: (IZ)Lio/vertx/redis/client/Redis;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // int keySlot
        start local 2 // boolean readOnly
         0: .line 895
            iload 1 /* keySlot */
            iconst_m1
            if_icmpne 2
         1: .line 896
            aload 0 /* this */
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.getRandomConnection:(Ljava/util/Set;)Lio/vertx/redis/client/Redis;
            areturn
         2: .line 899
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.slots:[[Lio/vertx/redis/client/Redis;
            iload 1 /* keySlot */
            aaload
            astore 3 /* clients */
        start local 3 // io.vertx.redis.client.Redis[] clients
         3: .line 902
            aload 3 /* clients */
            ifnull 4
            aload 3 /* clients */
            arraylength
            ifne 5
         4: .line 903
      StackMap locals: io.vertx.redis.client.Redis[]
      StackMap stack:
            aload 0 /* this */
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.getRandomConnection:(Ljava/util/Set;)Lio/vertx/redis/client/Redis;
            areturn
         5: .line 905
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* readOnly */
            aload 3 /* clients */
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.selectMasterOrSlave:(Z[Lio/vertx/redis/client/Redis;)Lio/vertx/redis/client/Redis;
            areturn
        end local 3 // io.vertx.redis.client.Redis[] clients
        end local 2 // boolean readOnly
        end local 1 // int keySlot
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    6     1   keySlot  I
            0    6     2  readOnly  Z
            3    6     3   clients  [Lio/vertx/redis/client/Redis;
    MethodParameters:
          Name  Flags
      keySlot   
      readOnly  

  private io.vertx.redis.client.Redis selectMasterOrSlave(boolean, io.vertx.redis.client.Redis[]);
    descriptor: (Z[Lio/vertx/redis/client/Redis;)Lio/vertx/redis/client/Redis;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // boolean readOnly
        start local 2 // io.vertx.redis.client.Redis[] clients
         0: .line 909
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         1: .line 912
            iload 1 /* readOnly */
            ifeq 6
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.slaves:Lio/vertx/redis/client/RedisSlaves;
            getstatic io.vertx.redis.client.RedisSlaves.NEVER:Lio/vertx/redis/client/RedisSlaves;
            if_acmpeq 6
            aload 2 /* clients */
            arraylength
            iconst_1
            if_icmple 6
         2: .line 914
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.slaves:Lio/vertx/redis/client/RedisSlaves;
            getstatic io.vertx.redis.client.RedisSlaves.ALWAYS:Lio/vertx/redis/client/RedisSlaves;
            if_acmpne 4
         3: .line 915
            getstatic io.vertx.redis.client.impl.RedisClusterClient.RANDOM:Ljava/util/Random;
            aload 2 /* clients */
            arraylength
            iconst_1
            isub
            invokevirtual java.util.Random.nextInt:(I)I
            iconst_1
            iadd
            istore 3 /* index */
         4: .line 918
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.slaves:Lio/vertx/redis/client/RedisSlaves;
            getstatic io.vertx.redis.client.RedisSlaves.SHARE:Lio/vertx/redis/client/RedisSlaves;
            if_acmpne 6
         5: .line 919
            getstatic io.vertx.redis.client.impl.RedisClusterClient.RANDOM:Ljava/util/Random;
            aload 2 /* clients */
            arraylength
            invokevirtual java.util.Random.nextInt:(I)I
            istore 3 /* index */
         6: .line 922
      StackMap locals:
      StackMap stack:
            aload 2 /* clients */
            iload 3 /* index */
            aaload
            areturn
        end local 3 // int index
        end local 2 // io.vertx.redis.client.Redis[] clients
        end local 1 // boolean readOnly
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    7     1  readOnly  Z
            0    7     2   clients  [Lio/vertx/redis/client/Redis;
            1    7     3     index  I
    MethodParameters:
          Name  Flags
      readOnly  
      clients   

  public io.vertx.core.streams.ReadStream pause();
    descriptor: ()Lio/vertx/core/streams/ReadStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.pause:()Lio/vertx/redis/client/Redis;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.ReadStream handler(io.vertx.core.Handler);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/streams/ReadStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast io.vertx.core.Handler
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.handler:(Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.ReadStream endHandler(io.vertx.core.Handler);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/streams/ReadStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.endHandler:(Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.ReadStream resume();
    descriptor: ()Lio/vertx/core/streams/ReadStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.resume:()Lio/vertx/redis/client/Redis;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.ReadStream fetch(long);
    descriptor: (J)Lio/vertx/core/streams/ReadStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
         0: .line 1
            aload 0
            lload 1
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.fetch:(J)Lio/vertx/redis/client/Redis;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.StreamBase exceptionHandler(io.vertx.core.Handler);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/streams/StreamBase;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.exceptionHandler:(Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.ReadStream exceptionHandler(io.vertx.core.Handler);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/streams/ReadStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.exceptionHandler:(Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static io.vertx.redis.client.Response lambda$0(java.util.List);
    descriptor: (Ljava/util/List;)Lio/vertx/redis/client/Response;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.List list
         0: .line 77
            getstatic io.vertx.redis.client.impl.types.SimpleStringType.OK:Lio/vertx/redis/client/impl/types/SimpleStringType;
            areturn
        end local 0 // java.util.List list
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  list  Ljava/util/List<Lio/vertx/redis/client/Response;>;

  private static io.vertx.redis.client.Response lambda$1(java.util.List);
    descriptor: (Ljava/util/List;)Lio/vertx/redis/client/Response;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.List list
         0: .line 81
            aload 0 /* list */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic applyAsLong()Ljava/util/function/ToLongFunction;
              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;)J
                  io/vertx/redis/client/Response.toLong()Ljava/lang/Long; (9 itf)
                  (Lio/vertx/redis/client/Response;)J
            invokeinterface java.util.stream.Stream.mapToLong:(Ljava/util/function/ToLongFunction;)Ljava/util/stream/LongStream;
            invokeinterface java.util.stream.LongStream.sum:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic io.vertx.redis.client.impl.types.IntegerType.create:(Ljava/lang/Long;)Lio/vertx/redis/client/impl/types/IntegerType;
            areturn
        end local 0 // java.util.List list
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  list  Ljava/util/List<Lio/vertx/redis/client/Response;>;

  private static io.vertx.redis.client.Response lambda$3(java.util.List);
    descriptor: (Ljava/util/List;)Lio/vertx/redis/client/Response;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // java.util.List list
         0: .line 85
            iconst_0
            istore 1 /* total */
        start local 1 // int total
         1: .line 86
            aload 0 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.util.List int top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.redis.client.Response
            astore 2 /* resp */
        start local 2 // io.vertx.redis.client.Response resp
         3: .line 87
            iload 1 /* total */
            aload 2 /* resp */
            invokeinterface io.vertx.redis.client.Response.size:()I
            iadd
            istore 1 /* total */
        end local 2 // io.vertx.redis.client.Response resp
         4: .line 86
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 90
            iload 1 /* total */
            invokestatic io.vertx.redis.client.impl.types.MultiType.create:(I)Lio/vertx/redis/client/impl/types/MultiType;
            astore 2 /* multi */
        start local 2 // io.vertx.redis.client.impl.types.MultiType multi
         6: .line 91
            aload 0 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: java.util.List int io.vertx.redis.client.impl.types.MultiType top java.util.Iterator
      StackMap stack:
         7: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.redis.client.Response
            astore 3 /* resp */
        start local 3 // io.vertx.redis.client.Response resp
         8: .line 92
            aload 3 /* resp */
            invokeinterface io.vertx.redis.client.Response.iterator:()Ljava/util/Iterator;
            astore 6
            goto 11
      StackMap locals: java.util.List int io.vertx.redis.client.impl.types.MultiType io.vertx.redis.client.Response java.util.Iterator top java.util.Iterator
      StackMap stack:
         9: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.redis.client.Response
            astore 5 /* child */
        start local 5 // io.vertx.redis.client.Response child
        10: .line 93
            aload 2 /* multi */
            aload 5 /* child */
            invokevirtual io.vertx.redis.client.impl.types.MultiType.add:(Lio/vertx/redis/client/Response;)V
        end local 5 // io.vertx.redis.client.Response child
        11: .line 92
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 3 // io.vertx.redis.client.Response resp
        12: .line 91
      StackMap locals: java.util.List int io.vertx.redis.client.impl.types.MultiType top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        13: .line 97
            aload 2 /* multi */
            areturn
        end local 2 // io.vertx.redis.client.impl.types.MultiType multi
        end local 1 // int total
        end local 0 // java.util.List list
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0   list  Ljava/util/List<Lio/vertx/redis/client/Response;>;
            1   14     1  total  I
            3    4     2   resp  Lio/vertx/redis/client/Response;
            6   14     2  multi  Lio/vertx/redis/client/impl/types/MultiType;
            8   12     3   resp  Lio/vertx/redis/client/Response;
           10   11     5  child  Lio/vertx/redis/client/Response;

  private static io.vertx.redis.client.Response lambda$4(java.util.List);
    descriptor: (Ljava/util/List;)Lio/vertx/redis/client/Response;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // java.util.List list
         0: .line 101
            iconst_0
            istore 1 /* total */
        start local 1 // int total
         1: .line 102
            aload 0 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.util.List int top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.redis.client.Response
            astore 2 /* resp */
        start local 2 // io.vertx.redis.client.Response resp
         3: .line 103
            iload 1 /* total */
            aload 2 /* resp */
            invokeinterface io.vertx.redis.client.Response.size:()I
            iadd
            istore 1 /* total */
        end local 2 // io.vertx.redis.client.Response resp
         4: .line 102
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 106
            iload 1 /* total */
            invokestatic io.vertx.redis.client.impl.types.MultiType.create:(I)Lio/vertx/redis/client/impl/types/MultiType;
            astore 2 /* multi */
        start local 2 // io.vertx.redis.client.impl.types.MultiType multi
         6: .line 107
            aload 0 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: java.util.List int io.vertx.redis.client.impl.types.MultiType top java.util.Iterator
      StackMap stack:
         7: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.redis.client.Response
            astore 3 /* resp */
        start local 3 // io.vertx.redis.client.Response resp
         8: .line 108
            aload 3 /* resp */
            invokeinterface io.vertx.redis.client.Response.iterator:()Ljava/util/Iterator;
            astore 6
            goto 11
      StackMap locals: java.util.List int io.vertx.redis.client.impl.types.MultiType io.vertx.redis.client.Response java.util.Iterator top java.util.Iterator
      StackMap stack:
         9: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.redis.client.Response
            astore 5 /* child */
        start local 5 // io.vertx.redis.client.Response child
        10: .line 109
            aload 2 /* multi */
            aload 5 /* child */
            invokevirtual io.vertx.redis.client.impl.types.MultiType.add:(Lio/vertx/redis/client/Response;)V
        end local 5 // io.vertx.redis.client.Response child
        11: .line 108
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 3 // io.vertx.redis.client.Response resp
        12: .line 107
      StackMap locals: java.util.List int io.vertx.redis.client.impl.types.MultiType top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        13: .line 113
            aload 2 /* multi */
            areturn
        end local 2 // io.vertx.redis.client.impl.types.MultiType multi
        end local 1 // int total
        end local 0 // java.util.List list
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0   list  Ljava/util/List<Lio/vertx/redis/client/Response;>;
            1   14     1  total  I
            3    4     2   resp  Lio/vertx/redis/client/Response;
            6   14     2  multi  Lio/vertx/redis/client/impl/types/MultiType;
            8   12     3   resp  Lio/vertx/redis/client/Response;
           10   11     5  child  Lio/vertx/redis/client/Response;

  private static io.vertx.redis.client.Response lambda$5(java.util.List);
    descriptor: (Ljava/util/List;)Lio/vertx/redis/client/Response;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.List list
         0: .line 117
            getstatic io.vertx.redis.client.impl.types.SimpleStringType.OK:Lio/vertx/redis/client/impl/types/SimpleStringType;
            areturn
        end local 0 // java.util.List list
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  list  Ljava/util/List<Lio/vertx/redis/client/Response;>;

  private static io.vertx.redis.client.Response lambda$6(java.util.List);
    descriptor: (Ljava/util/List;)Lio/vertx/redis/client/Response;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.List list
         0: .line 121
            aload 0 /* list */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic applyAsLong()Ljava/util/function/ToLongFunction;
              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;)J
                  io/vertx/redis/client/Response.toLong()Ljava/lang/Long; (9 itf)
                  (Lio/vertx/redis/client/Response;)J
            invokeinterface java.util.stream.Stream.mapToLong:(Ljava/util/function/ToLongFunction;)Ljava/util/stream/LongStream;
            invokeinterface java.util.stream.LongStream.sum:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic io.vertx.redis.client.impl.types.IntegerType.create:(Ljava/lang/Long;)Lio/vertx/redis/client/impl/types/IntegerType;
            areturn
        end local 0 // java.util.List list
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  list  Ljava/util/List<Lio/vertx/redis/client/Response;>;

  private static void lambda$8(io.vertx.redis.client.Command);
    descriptor: (Lio/vertx/redis/client/Command;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.redis.client.Command command
         0: .line 127
            aload 0 /* command */
            aconst_null
            invokestatic io.vertx.redis.client.impl.RedisClusterClient.addUnSupportedCommand:(Lio/vertx/redis/client/Command;Ljava/lang/String;)V
            return
        end local 0 // io.vertx.redis.client.Command command
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  command  Lio/vertx/redis/client/Command;

  private static void lambda$9(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 140
            getstatic io.vertx.redis.client.impl.RedisClusterClient.LOG:Lio/vertx/core/logging/Logger;
            ldc "Unhandled Error"
            aload 0 /* t */
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
            return
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  Ljava/lang/Throwable;

  private void lambda$10(java.util.concurrent.atomic.AtomicInteger, io.vertx.core.net.SocketAddress, io.vertx.core.Handler, io.vertx.core.AsyncResult);
    descriptor: (Ljava/util/concurrent/atomic/AtomicInteger;Lio/vertx/core/net/SocketAddress;Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 4 // io.vertx.core.AsyncResult ar
         0: .line 162
            aload 1
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            istore 5 /* total */
        start local 5 // int total
         1: .line 164
            aload 4 /* ar */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 3
         2: .line 166
            getstatic io.vertx.redis.client.impl.RedisClusterClient.LOG:Lio/vertx/core/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Failed to connect to: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;)V
         3: .line 169
      StackMap locals: int
      StackMap stack:
            iload 5 /* total */
            ifne 5
         4: .line 171
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.options:Lio/vertx/redis/client/RedisOptions;
            aload 0 /* this */
            aload 3
            invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient;Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/redis/client/impl/RedisClusterClient.lambda$11(Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.getSlots:(Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler;)V
        end local 5 // int total
         5: .line 179
      StackMap locals:
      StackMap stack:
            return
        end local 4 // io.vertx.core.AsyncResult ar
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    6     4     ar  Lio/vertx/core/AsyncResult<Lio/vertx/redis/client/Redis;>;
            1    5     5  total  I

  private static boolean lambda$12(java.util.Map$Entry);
    descriptor: (Ljava/util/Map$Entry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Map$Entry kv
         0: .line 188
            aload 0 /* kv */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            ifnull 2
         1: .line 189
            aload 0 /* kv */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast io.vertx.redis.client.Redis
            invokeinterface io.vertx.redis.client.Redis.close:()V
         2: .line 191
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // java.util.Map$Entry kv
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    kv  Ljava/util/Map$Entry<Lio/vertx/core/net/SocketAddress;Lio/vertx/redis/client/Redis;>;

  private static void lambda$13(io.vertx.redis.client.Redis);
    descriptor: (Lio/vertx/redis/client/Redis;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.redis.client.Redis conn
         0: .line 216
            aload 0 /* conn */
            ifnull 2
         1: .line 217
            aload 0 /* conn */
            invokeinterface io.vertx.redis.client.Redis.pause:()Lio/vertx/redis/client/Redis;
            pop
         2: .line 219
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.vertx.redis.client.Redis conn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  conn  Lio/vertx/redis/client/Redis;

  private static void lambda$14(io.vertx.redis.client.Redis);
    descriptor: (Lio/vertx/redis/client/Redis;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.redis.client.Redis conn
         0: .line 226
            aload 0 /* conn */
            ifnull 2
         1: .line 227
            aload 0 /* conn */
            invokeinterface io.vertx.redis.client.Redis.resume:()Lio/vertx/redis/client/Redis;
            pop
         2: .line 229
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.vertx.redis.client.Redis conn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  conn  Lio/vertx/redis/client/Redis;

  private void lambda$15(io.vertx.core.Handler, io.vertx.redis.client.Command, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/redis/client/Command;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 3 // io.vertx.core.AsyncResult composite
         0: .line 270
            aload 3 /* composite */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 6
         1: .line 273
            aload 1
            aload 3 /* composite */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 274
            goto 10
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         3: astore 4 /* e */
        start local 4 // java.lang.RuntimeException e
         4: .line 275
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 4 /* e */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 4 // java.lang.RuntimeException e
         5: .line 277
            goto 10
         6: .line 279
      StackMap locals:
      StackMap stack:
            aload 1
            getstatic io.vertx.redis.client.impl.RedisClusterClient.REDUCERS:Ljava/util/Map;
            aload 2
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.function.Function
            aload 3 /* composite */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.core.CompositeFuture
            invokeinterface io.vertx.core.CompositeFuture.list:()Ljava/util/List;
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.redis.client.Response
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         7: .line 280
            goto 10
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         8: astore 4 /* e */
        start local 4 // java.lang.RuntimeException e
         9: .line 281
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 4 /* e */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 4 // java.lang.RuntimeException e
        10: .line 284
      StackMap locals:
      StackMap stack:
            return
        end local 3 // io.vertx.core.AsyncResult composite
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0   11     3  composite  Lio/vertx/core/AsyncResult<Lio/vertx/core/CompositeFuture;>;
            4    5     4          e  Ljava/lang/RuntimeException;
            9   10     4          e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException
           6     7       8  Class java.lang.RuntimeException

  private void lambda$16(io.vertx.core.Handler, io.vertx.redis.client.Command, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/redis/client/Command;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 3 // io.vertx.core.AsyncResult composite
         0: .line 339
            aload 3 /* composite */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 6
         1: .line 342
            aload 1
            aload 3 /* composite */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 343
            goto 10
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         3: astore 4 /* e */
        start local 4 // java.lang.RuntimeException e
         4: .line 344
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 4 /* e */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 4 // java.lang.RuntimeException e
         5: .line 346
            goto 10
         6: .line 348
      StackMap locals:
      StackMap stack:
            aload 1
            getstatic io.vertx.redis.client.impl.RedisClusterClient.REDUCERS:Ljava/util/Map;
            aload 2
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.function.Function
            aload 3 /* composite */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.core.CompositeFuture
            invokeinterface io.vertx.core.CompositeFuture.list:()Ljava/util/List;
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.redis.client.Response
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         7: .line 349
            goto 10
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         8: astore 4 /* e */
        start local 4 // java.lang.RuntimeException e
         9: .line 350
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 4 /* e */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 4 // java.lang.RuntimeException e
        10: .line 353
      StackMap locals:
      StackMap stack:
            return
        end local 3 // io.vertx.core.AsyncResult composite
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0   11     3  composite  Lio/vertx/core/AsyncResult<Lio/vertx/core/CompositeFuture;>;
            4    5     4          e  Ljava/lang/RuntimeException;
            9   10     4          e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException
           6     7       8  Class java.lang.RuntimeException

  private static void lambda$17(int, java.util.List, io.vertx.redis.client.Request);
    descriptor: (ILjava/util/List;Lio/vertx/redis/client/Request;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=3
        start local 2 // io.vertx.redis.client.Request req
         0: .line 399
            iload 0
            istore 3 /* j */
        start local 3 // int j
         1: goto 4
         2: .line 400
      StackMap locals: int
      StackMap stack:
            aload 2 /* req */
            aload 1
            iload 3 /* j */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast byte[]
            invokeinterface io.vertx.redis.client.Request.arg:([B)Lio/vertx/redis/client/Request;
            pop
         3: .line 399
            iinc 3 /* j */ 1
      StackMap locals:
      StackMap stack:
         4: iload 3 /* j */
            aload 1
            invokeinterface java.util.List.size:()I
            if_icmplt 2
        end local 3 // int j
         5: .line 402
            return
        end local 2 // io.vertx.redis.client.Request req
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     2   req  Lio/vertx/redis/client/Request;
            1    5     3     j  I

  private static void lambda$18(long, io.vertx.redis.client.Redis);
    descriptor: (JLio/vertx/redis/client/Redis;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
        start local 2 // io.vertx.redis.client.Redis conn
         0: .line 497
            aload 2 /* conn */
            ifnull 2
         1: .line 498
            aload 2 /* conn */
            lload 0
            invokeinterface io.vertx.redis.client.Redis.fetch:(J)Lio/vertx/redis/client/Redis;
            pop
         2: .line 500
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.redis.client.Redis conn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     2  conn  Lio/vertx/redis/client/Redis;

  private void lambda$19(io.vertx.core.Handler, io.vertx.core.net.SocketAddress, io.vertx.redis.client.RedisOptions, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/core/net/SocketAddress;Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 4 // io.vertx.core.AsyncResult create
         0: .line 519
            aload 4 /* create */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 3
         1: .line 520
            aload 1
            aload 4 /* create */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 521
            return
         3: .line 524
      StackMap locals:
      StackMap stack:
            aload 4 /* create */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.redis.client.Redis
            astore 5 /* conn */
        start local 5 // io.vertx.redis.client.Redis conn
         4: .line 526
            aload 5 /* conn */
            aload 0 /* this */
            aload 2
            aload 3
            invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient;Lio/vertx/core/net/SocketAddress;Lio/vertx/redis/client/RedisOptions;)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/redis/client/impl/RedisClusterClient.lambda$20(Lio/vertx/core/net/SocketAddress;Lio/vertx/redis/client/RedisOptions;Ljava/lang/Throwable;)V (7)
                  (Ljava/lang/Throwable;)V
            invokeinterface io.vertx.redis.client.Redis.exceptionHandler:(Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
            pop
         5: .line 545
            aload 5 /* conn */
            aload 0 /* this */
            aload 2
            invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient;Lio/vertx/core/net/SocketAddress;)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/redis/client/impl/RedisClusterClient.lambda$22(Lio/vertx/core/net/SocketAddress;Ljava/lang/Void;)V (7)
                  (Ljava/lang/Void;)V
            invokeinterface io.vertx.redis.client.Redis.endHandler:(Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
            pop
         6: .line 559
            aload 5 /* conn */
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient;)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/redis/client/impl/RedisClusterClient.lambda$23(Lio/vertx/redis/client/Response;)V (7)
                  (Lio/vertx/redis/client/Response;)V
            invokeinterface io.vertx.redis.client.Redis.handler:(Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
            pop
         7: .line 565
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.connections:Ljava/util/Map;
            aload 2
            aload 5 /* conn */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 566
            aload 1
            aload 5 /* conn */
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 5 // io.vertx.redis.client.Redis conn
         9: .line 567
            return
        end local 4 // io.vertx.core.AsyncResult create
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0   10     4  create  Lio/vertx/core/AsyncResult<Lio/vertx/redis/client/Redis;>;
            4    9     5    conn  Lio/vertx/redis/client/Redis;

  private static boolean lambda$24(java.util.Set, java.util.Map$Entry);
    descriptor: (Ljava/util/Set;Ljava/util/Map$Entry;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.util.Map$Entry kv
         0: .line 664
            aload 0
            aload 1 /* kv */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 1
            aload 1 /* kv */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.util.Map$Entry kv
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1    kv  Ljava/util/Map$Entry<Lio/vertx/core/net/SocketAddress;Lio/vertx/redis/client/Redis;>;

  private static io.vertx.core.Future lambda$26(io.vertx.redis.client.RedisOptions, io.vertx.redis.client.Redis);
    descriptor: (Lio/vertx/redis/client/RedisOptions;Lio/vertx/redis/client/Redis;)Lio/vertx/core/Future;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
        start local 1 // io.vertx.redis.client.Redis getClient
         0: .line 688
            getstatic io.vertx.redis.client.RedisSlaves.NEVER:Lio/vertx/redis/client/RedisSlaves;
            aload 0
            invokevirtual io.vertx.redis.client.RedisOptions.getUseSlave:()Lio/vertx/redis/client/RedisSlaves;
            if_acmpeq 4
         1: .line 689
            invokestatic io.vertx.core.Future.future:()Lio/vertx/core/Future;
            astore 2 /* readOnlyFuture */
        start local 2 // io.vertx.core.Future readOnlyFuture
         2: .line 690
            aload 1 /* getClient */
            getstatic io.vertx.redis.client.Command.READONLY:Lio/vertx/redis/client/Command;
            invokestatic io.vertx.redis.client.Request.cmd:(Lio/vertx/redis/client/Command;)Lio/vertx/redis/client/Request;
            aload 2 /* readOnlyFuture */
            invokeinterface io.vertx.redis.client.Redis.send:(Lio/vertx/redis/client/Request;Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
            pop
         3: .line 691
            aload 2 /* readOnlyFuture */
            aload 1 /* getClient */
            invokeinterface io.vertx.core.Future.map:(Ljava/lang/Object;)Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.Future readOnlyFuture
         4: .line 693
      StackMap locals:
      StackMap stack:
            aload 1 /* getClient */
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            areturn
        end local 1 // io.vertx.redis.client.Redis getClient
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     1       getClient  Lio/vertx/redis/client/Redis;
            2    4     2  readOnlyFuture  Lio/vertx/core/Future<Lio/vertx/redis/client/Response;>;

  private void lambda$27(io.vertx.core.net.SocketAddress, io.vertx.redis.client.Redis[], int, java.util.concurrent.atomic.AtomicInteger, int, int, io.vertx.core.Handler, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/net/SocketAddress;[Lio/vertx/redis/client/Redis;ILjava/util/concurrent/atomic/AtomicInteger;IILio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=10, args_size=9
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 8 // io.vertx.core.AsyncResult getClient
         0: .line 697
            aload 8 /* getClient */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 3
         1: .line 698
            getstatic io.vertx.redis.client.impl.RedisClusterClient.LOG:Lio/vertx/core/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Could not get a connection to node ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;)V
         2: .line 699
            goto 4
         3: .line 700
      StackMap locals:
      StackMap stack:
            aload 2
            iload 3
            aload 8 /* getClient */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.redis.client.Redis
            aastore
         4: .line 703
      StackMap locals:
      StackMap stack:
            aload 4
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            ifne 11
         5: .line 705
            iload 5
            istore 9 /* j */
        start local 9 // int j
         6: goto 9
         7: .line 706
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.slots:[[Lio/vertx/redis/client/Redis;
            iload 9 /* j */
            aload 2
            aastore
         8: .line 705
            iinc 9 /* j */ 1
      StackMap locals:
      StackMap stack:
         9: iload 9 /* j */
            iload 6
            if_icmple 7
        end local 9 // int j
        10: .line 709
            aload 7
            aconst_null
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        11: .line 711
      StackMap locals:
      StackMap stack:
            return
        end local 8 // io.vertx.core.AsyncResult getClient
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0   12     8  getClient  Lio/vertx/core/AsyncResult<Lio/vertx/redis/client/Redis;>;
            6   10     9          j  I

  private void lambda$28(int, io.vertx.core.Handler, io.vertx.redis.client.RedisOptions, io.vertx.redis.client.Request, io.vertx.redis.client.Redis, io.vertx.core.AsyncResult);
    descriptor: (ILio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;Lio/vertx/redis/client/Request;Lio/vertx/redis/client/Redis;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=9, locals=12, args_size=7
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 6 // io.vertx.core.AsyncResult send
         0: .line 727
            aload 6 /* send */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 17
            aload 6 /* send */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            instanceof io.vertx.redis.client.impl.types.ErrorType
            ifeq 17
            iload 1
            iflt 17
         1: .line 728
            aload 6 /* send */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            checkcast io.vertx.redis.client.impl.types.ErrorType
            astore 7 /* cause */
        start local 7 // io.vertx.redis.client.impl.types.ErrorType cause
         2: .line 730
            aload 7 /* cause */
            ldc "ASK"
            invokevirtual io.vertx.redis.client.impl.types.ErrorType.is:(Ljava/lang/String;)Z
            istore 8 /* ask */
        start local 8 // boolean ask
         3: .line 731
            iload 8 /* ask */
            ifne 4
            aload 7 /* cause */
            ldc "MOVED"
            invokevirtual io.vertx.redis.client.impl.types.ErrorType.is:(Ljava/lang/String;)Z
            ifeq 4
            iconst_1
            goto 5
      StackMap locals: io.vertx.redis.client.impl.types.ErrorType int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 9 /* moved */
        start local 9 // boolean moved
         6: .line 733
            iload 9 /* moved */
            ifne 7
            iload 8 /* ask */
            ifeq 13
         7: .line 734
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 7 /* cause */
            aload 2
            aload 3
            iload 1
            aload 4
            invokedynamic run(Lio/vertx/redis/client/impl/RedisClusterClient;Lio/vertx/redis/client/impl/types/ErrorType;Lio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;)Ljava/lang/Runnable;
              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:
                  ()V
                  io/vertx/redis/client/impl/RedisClusterClient.lambda$29(Lio/vertx/redis/client/impl/types/ErrorType;Lio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;)V (7)
                  ()V
            astore 10 /* andThen */
        start local 10 // java.lang.Runnable andThen
         8: .line 778
            iload 9 /* moved */
            ifeq 11
         9: .line 779
            aload 0 /* this */
            aload 3
            aload 10 /* andThen */
            invokedynamic handle(Ljava/lang/Runnable;)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/redis/client/impl/RedisClusterClient.lambda$31(Ljava/lang/Runnable;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.getSlots:(Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler;)V
        10: .line 780
            goto 12
        11: .line 781
      StackMap locals: java.lang.Runnable
      StackMap stack:
            aload 10 /* andThen */
            invokeinterface java.lang.Runnable.run:()V
        12: .line 783
      StackMap locals:
      StackMap stack:
            return
        end local 10 // java.lang.Runnable andThen
        13: .line 786
      StackMap locals:
      StackMap stack:
            aload 7 /* cause */
            ldc "TRYAGAIN"
            invokevirtual io.vertx.redis.client.impl.types.ErrorType.is:(Ljava/lang/String;)Z
            ifne 14
            aload 7 /* cause */
            ldc "CLUSTERDOWN"
            invokevirtual io.vertx.redis.client.impl.types.ErrorType.is:(Ljava/lang/String;)Z
            ifeq 17
        14: .line 788
      StackMap locals:
      StackMap stack:
            ldc 2.0
            bipush 16
            iload 1
            bipush 9
            invokestatic java.lang.Math.max:(II)I
            isub
            i2d
            invokestatic java.lang.Math.pow:(DD)D
            ldc 10.0
            dmul
            d2l
            lstore 10 /* backoff */
        start local 10 // long backoff
        15: .line 789
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.vertx:Lio/vertx/core/Vertx;
            lload 10 /* backoff */
            aload 0 /* this */
            aload 5
            aload 3
            iload 1
            aload 4
            aload 2
            invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient;Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/redis/client/impl/RedisClusterClient.lambda$32(Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;Lio/vertx/core/Handler;Ljava/lang/Long;)V (7)
                  (Ljava/lang/Long;)V
            invokeinterface io.vertx.core.Vertx.setTimer:(JLio/vertx/core/Handler;)J
            pop2
        16: .line 790
            return
        end local 10 // long backoff
        end local 9 // boolean moved
        end local 8 // boolean ask
        end local 7 // io.vertx.redis.client.impl.types.ErrorType cause
        17: .line 795
      StackMap locals:
      StackMap stack:
            aload 2
            aload 6 /* send */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        18: .line 796
            goto 21
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
        19: astore 7 /* e */
        start local 7 // java.lang.RuntimeException e
        20: .line 797
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 7 /* e */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 7 // java.lang.RuntimeException e
        21: .line 799
      StackMap locals:
      StackMap stack:
            return
        end local 6 // io.vertx.core.AsyncResult send
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0     this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0   22     6     send  Lio/vertx/core/AsyncResult<Lio/vertx/redis/client/Response;>;
            2   17     7    cause  Lio/vertx/redis/client/impl/types/ErrorType;
            3   17     8      ask  Z
            6   17     9    moved  Z
            8   13    10  andThen  Ljava/lang/Runnable;
           15   17    10  backoff  J
           20   21     7        e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
          17    18      19  Class java.lang.RuntimeException

  private void lambda$33(int, io.vertx.core.Handler, io.vertx.redis.client.RedisOptions, java.util.List, io.vertx.redis.client.Redis, io.vertx.core.AsyncResult);
    descriptor: (ILio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;Ljava/util/List;Lio/vertx/redis/client/Redis;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=9, locals=12, args_size=7
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 6 // io.vertx.core.AsyncResult send
         0: .line 814
            aload 6 /* send */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 17
            aload 6 /* send */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            instanceof io.vertx.redis.client.impl.types.ErrorType
            ifeq 17
            iload 1
            iflt 17
         1: .line 815
            aload 6 /* send */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            checkcast io.vertx.redis.client.impl.types.ErrorType
            astore 7 /* cause */
        start local 7 // io.vertx.redis.client.impl.types.ErrorType cause
         2: .line 817
            aload 7 /* cause */
            ldc "ASK"
            invokevirtual io.vertx.redis.client.impl.types.ErrorType.is:(Ljava/lang/String;)Z
            istore 8 /* ask */
        start local 8 // boolean ask
         3: .line 818
            iload 8 /* ask */
            ifne 4
            aload 7 /* cause */
            ldc "MOVED"
            invokevirtual io.vertx.redis.client.impl.types.ErrorType.is:(Ljava/lang/String;)Z
            ifeq 4
            iconst_1
            goto 5
      StackMap locals: io.vertx.redis.client.impl.types.ErrorType int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 9 /* moved */
        start local 9 // boolean moved
         6: .line 820
            iload 9 /* moved */
            ifne 7
            iload 8 /* ask */
            ifeq 13
         7: .line 821
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 7 /* cause */
            aload 2
            aload 3
            iload 1
            aload 4
            invokedynamic run(Lio/vertx/redis/client/impl/RedisClusterClient;Lio/vertx/redis/client/impl/types/ErrorType;Lio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;ILjava/util/List;)Ljava/lang/Runnable;
              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:
                  ()V
                  io/vertx/redis/client/impl/RedisClusterClient.lambda$34(Lio/vertx/redis/client/impl/types/ErrorType;Lio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;ILjava/util/List;)V (7)
                  ()V
            astore 10 /* andThen */
        start local 10 // java.lang.Runnable andThen
         8: .line 865
            iload 9 /* moved */
            ifeq 11
         9: .line 866
            aload 0 /* this */
            aload 3
            aload 10 /* andThen */
            invokedynamic handle(Ljava/lang/Runnable;)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/redis/client/impl/RedisClusterClient.lambda$36(Ljava/lang/Runnable;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.getSlots:(Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler;)V
        10: .line 867
            goto 12
        11: .line 868
      StackMap locals: java.lang.Runnable
      StackMap stack:
            aload 10 /* andThen */
            invokeinterface java.lang.Runnable.run:()V
        12: .line 870
      StackMap locals:
      StackMap stack:
            return
        end local 10 // java.lang.Runnable andThen
        13: .line 873
      StackMap locals:
      StackMap stack:
            aload 7 /* cause */
            ldc "TRYAGAIN"
            invokevirtual io.vertx.redis.client.impl.types.ErrorType.is:(Ljava/lang/String;)Z
            ifne 14
            aload 7 /* cause */
            ldc "CLUSTERDOWN"
            invokevirtual io.vertx.redis.client.impl.types.ErrorType.is:(Ljava/lang/String;)Z
            ifeq 17
        14: .line 875
      StackMap locals:
      StackMap stack:
            ldc 2.0
            bipush 16
            iload 1
            bipush 9
            invokestatic java.lang.Math.max:(II)I
            isub
            i2d
            invokestatic java.lang.Math.pow:(DD)D
            ldc 10.0
            dmul
            d2l
            lstore 10 /* backoff */
        start local 10 // long backoff
        15: .line 876
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.vertx:Lio/vertx/core/Vertx;
            lload 10 /* backoff */
            aload 0 /* this */
            aload 5
            aload 3
            iload 1
            aload 4
            aload 2
            invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient;Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILjava/util/List;Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/redis/client/impl/RedisClusterClient.lambda$37(Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILjava/util/List;Lio/vertx/core/Handler;Ljava/lang/Long;)V (7)
                  (Ljava/lang/Long;)V
            invokeinterface io.vertx.core.Vertx.setTimer:(JLio/vertx/core/Handler;)J
            pop2
        16: .line 877
            return
        end local 10 // long backoff
        end local 9 // boolean moved
        end local 8 // boolean ask
        end local 7 // io.vertx.redis.client.impl.types.ErrorType cause
        17: .line 882
      StackMap locals:
      StackMap stack:
            aload 2
            aload 6 /* send */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        18: .line 883
            goto 21
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
        19: astore 7 /* e */
        start local 7 // java.lang.RuntimeException e
        20: .line 884
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 7 /* e */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 7 // java.lang.RuntimeException e
        21: .line 886
      StackMap locals:
      StackMap stack:
            return
        end local 6 // io.vertx.core.AsyncResult send
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0     this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0   22     6     send  Lio/vertx/core/AsyncResult<Ljava/util/List<Lio/vertx/redis/client/Response;>;>;
            2   17     7    cause  Lio/vertx/redis/client/impl/types/ErrorType;
            3   17     8      ask  Z
            6   17     9    moved  Z
            8   13    10  andThen  Ljava/lang/Runnable;
           15   17    10  backoff  J
           20   21     7        e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
          17    18      19  Class java.lang.RuntimeException

  private void lambda$11(io.vertx.core.Handler, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 2 // io.vertx.core.AsyncResult getSlots
         0: .line 172
            aload 2 /* getSlots */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 3
         1: .line 173
            aload 1
            aload 2 /* getSlots */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 174
            goto 4
         3: .line 175
      StackMap locals:
      StackMap stack:
            aload 1
            aload 0 /* this */
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         4: .line 177
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.core.AsyncResult getSlots
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    5     2  getSlots  Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;

  private void lambda$20(io.vertx.core.net.SocketAddress, io.vertx.redis.client.RedisOptions, java.lang.Throwable);
    descriptor: (Lio/vertx/core/net/SocketAddress;Lio/vertx/redis/client/RedisOptions;Ljava/lang/Throwable;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 3 // java.lang.Throwable t
         0: .line 528
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.connections:Ljava/util/Map;
            aload 1
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 530
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            ifnull 3
         2: .line 531
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 3 /* t */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         3: .line 535
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient;)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/redis/client/impl/RedisClusterClient.lambda$21(Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.getSlots:(Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler;)V
         4: .line 543
            return
        end local 3 // java.lang.Throwable t
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    5     3     t  Ljava/lang/Throwable;

  private void lambda$22(io.vertx.core.net.SocketAddress, java.lang.Void);
    descriptor: (Lio/vertx/core/net/SocketAddress;Ljava/lang/Void;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 2 // java.lang.Void v
         0: .line 547
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.connections:Ljava/util/Map;
            aload 1
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 550
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.connections:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            ifne 4
         2: .line 553
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onEnd:Lio/vertx/core/Handler;
            ifnull 4
         3: .line 554
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onEnd:Lio/vertx/core/Handler;
            aconst_null
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         4: .line 557
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Void v
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    5     2     v  Ljava/lang/Void;

  private void lambda$23(io.vertx.redis.client.Response);
    descriptor: (Lio/vertx/redis/client/Response;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // io.vertx.redis.client.Response r
         0: .line 560
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onMessage:Lio/vertx/core/Handler;
            ifnull 2
         1: .line 561
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onMessage:Lio/vertx/core/Handler;
            aload 1 /* r */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 563
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.redis.client.Response r
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    3     1     r  Lio/vertx/redis/client/Response;

  private void lambda$29(io.vertx.redis.client.impl.types.ErrorType, io.vertx.core.Handler, io.vertx.redis.client.RedisOptions, int, io.vertx.redis.client.Request);
    descriptor: (Lio/vertx/redis/client/impl/types/ErrorType;Lio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=8, locals=9, args_size=6
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
         0: .line 736
            aload 1
            bipush 32
            iconst_2
            invokevirtual io.vertx.redis.client.impl.types.ErrorType.slice:(CI)Ljava/lang/String;
            astore 6 /* addr */
        start local 6 // java.lang.String addr
         1: .line 738
            aload 6 /* addr */
            ifnonnull 7
         2: .line 741
            aload 2
            aload 1
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         3: .line 742
            goto 6
      StackMap locals: io.vertx.redis.client.impl.RedisClusterClient io.vertx.redis.client.impl.types.ErrorType io.vertx.core.Handler io.vertx.redis.client.RedisOptions int io.vertx.redis.client.Request java.lang.String
      StackMap stack: java.lang.RuntimeException
         4: astore 7 /* e */
        start local 7 // java.lang.RuntimeException e
         5: .line 743
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 7 /* e */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 7 // java.lang.RuntimeException e
         6: .line 745
      StackMap locals:
      StackMap stack:
            return
         7: .line 748
      StackMap locals:
      StackMap stack:
            aload 6 /* addr */
            bipush 58
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 7 /* sep */
        start local 7 // int sep
         8: .line 751
            iload 7 /* sep */
            iconst_m1
            if_icmpeq 13
         9: .line 754
            aload 6 /* addr */
            iload 7 /* sep */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
        10: .line 755
            aload 6 /* addr */
            iconst_0
            iload 7 /* sep */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
        11: .line 753
            invokestatic io.vertx.core.net.SocketAddress.inetSocketAddress:(ILjava/lang/String;)Lio/vertx/core/net/SocketAddress;
            astore 8 /* socketAddress */
        start local 8 // io.vertx.core.net.SocketAddress socketAddress
        12: .line 756
            goto 14
        end local 8 // io.vertx.core.net.SocketAddress socketAddress
        13: .line 758
      StackMap locals: int
      StackMap stack:
            aload 6 /* addr */
            invokestatic io.vertx.core.net.SocketAddress.domainSocketAddress:(Ljava/lang/String;)Lio/vertx/core/net/SocketAddress;
            astore 8 /* socketAddress */
        start local 8 // io.vertx.core.net.SocketAddress socketAddress
        14: .line 761
      StackMap locals: io.vertx.core.net.SocketAddress
      StackMap stack:
            aload 0 /* this */
            aload 8 /* socketAddress */
            aload 3
            aload 0 /* this */
            aload 2
            aload 3
            iload 4
            aload 5
            invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient;Lio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;)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/redis/client/impl/RedisClusterClient.lambda$30(Lio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.getClient:(Lio/vertx/core/net/SocketAddress;Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler;)V
        end local 8 // io.vertx.core.net.SocketAddress socketAddress
        end local 7 // int sep
        end local 6 // java.lang.String addr
        15: .line 774
            return
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0           this  Lio/vertx/redis/client/impl/RedisClusterClient;
            1   15     6           addr  Ljava/lang/String;
            5    6     7              e  Ljava/lang/RuntimeException;
            8   15     7            sep  I
           12   13     8  socketAddress  Lio/vertx/core/net/SocketAddress;
           14   15     8  socketAddress  Lio/vertx/core/net/SocketAddress;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.RuntimeException

  private static void lambda$31(java.lang.Runnable, io.vertx.core.AsyncResult);
    descriptor: (Ljava/lang/Runnable;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 1 // io.vertx.core.AsyncResult getSlots
         0: .line 779
            aload 0
            invokeinterface java.lang.Runnable.run:()V
            return
        end local 1 // io.vertx.core.AsyncResult getSlots
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     1  getSlots  Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;

  private void lambda$32(io.vertx.redis.client.Redis, io.vertx.redis.client.RedisOptions, int, io.vertx.redis.client.Request, io.vertx.core.Handler, java.lang.Long);
    descriptor: (Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;Lio/vertx/core/Handler;Ljava/lang/Long;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=7, args_size=7
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 6 // java.lang.Long t
         0: .line 789
            aload 0 /* this */
            aload 1
            aload 2
            iload 3
            iconst_1
            isub
            aload 4
            aload 5
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.send:(Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;Lio/vertx/core/Handler;)V
            return
        end local 6 // java.lang.Long t
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    1     6     t  Ljava/lang/Long;

  private void lambda$34(io.vertx.redis.client.impl.types.ErrorType, io.vertx.core.Handler, io.vertx.redis.client.RedisOptions, int, java.util.List);
    descriptor: (Lio/vertx/redis/client/impl/types/ErrorType;Lio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;ILjava/util/List;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=8, locals=9, args_size=6
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
         0: .line 823
            aload 1
            bipush 32
            iconst_2
            invokevirtual io.vertx.redis.client.impl.types.ErrorType.slice:(CI)Ljava/lang/String;
            astore 6 /* addr */
        start local 6 // java.lang.String addr
         1: .line 825
            aload 6 /* addr */
            ifnonnull 7
         2: .line 828
            aload 2
            aload 1
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         3: .line 829
            goto 6
      StackMap locals: io.vertx.redis.client.impl.RedisClusterClient io.vertx.redis.client.impl.types.ErrorType io.vertx.core.Handler io.vertx.redis.client.RedisOptions int java.util.List java.lang.String
      StackMap stack: java.lang.RuntimeException
         4: astore 7 /* e */
        start local 7 // java.lang.RuntimeException e
         5: .line 830
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 7 /* e */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 7 // java.lang.RuntimeException e
         6: .line 832
      StackMap locals:
      StackMap stack:
            return
         7: .line 835
      StackMap locals:
      StackMap stack:
            aload 6 /* addr */
            bipush 58
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 7 /* sep */
        start local 7 // int sep
         8: .line 838
            iload 7 /* sep */
            iconst_m1
            if_icmpeq 13
         9: .line 841
            aload 6 /* addr */
            iload 7 /* sep */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
        10: .line 842
            aload 6 /* addr */
            iconst_0
            iload 7 /* sep */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
        11: .line 840
            invokestatic io.vertx.core.net.SocketAddress.inetSocketAddress:(ILjava/lang/String;)Lio/vertx/core/net/SocketAddress;
            astore 8 /* socketAddress */
        start local 8 // io.vertx.core.net.SocketAddress socketAddress
        12: .line 843
            goto 14
        end local 8 // io.vertx.core.net.SocketAddress socketAddress
        13: .line 845
      StackMap locals: int
      StackMap stack:
            aload 6 /* addr */
            invokestatic io.vertx.core.net.SocketAddress.domainSocketAddress:(Ljava/lang/String;)Lio/vertx/core/net/SocketAddress;
            astore 8 /* socketAddress */
        start local 8 // io.vertx.core.net.SocketAddress socketAddress
        14: .line 848
      StackMap locals: io.vertx.core.net.SocketAddress
      StackMap stack:
            aload 0 /* this */
            aload 8 /* socketAddress */
            aload 3
            aload 0 /* this */
            aload 2
            aload 3
            iload 4
            aload 5
            invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient;Lio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;ILjava/util/List;)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/redis/client/impl/RedisClusterClient.lambda$35(Lio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;ILjava/util/List;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.getClient:(Lio/vertx/core/net/SocketAddress;Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler;)V
        end local 8 // io.vertx.core.net.SocketAddress socketAddress
        end local 7 // int sep
        end local 6 // java.lang.String addr
        15: .line 861
            return
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0           this  Lio/vertx/redis/client/impl/RedisClusterClient;
            1   15     6           addr  Ljava/lang/String;
            5    6     7              e  Ljava/lang/RuntimeException;
            8   15     7            sep  I
           12   13     8  socketAddress  Lio/vertx/core/net/SocketAddress;
           14   15     8  socketAddress  Lio/vertx/core/net/SocketAddress;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.RuntimeException

  private static void lambda$36(java.lang.Runnable, io.vertx.core.AsyncResult);
    descriptor: (Ljava/lang/Runnable;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 1 // io.vertx.core.AsyncResult getSlots
         0: .line 866
            aload 0
            invokeinterface java.lang.Runnable.run:()V
            return
        end local 1 // io.vertx.core.AsyncResult getSlots
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     1  getSlots  Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;

  private void lambda$37(io.vertx.redis.client.Redis, io.vertx.redis.client.RedisOptions, int, java.util.List, io.vertx.core.Handler, java.lang.Long);
    descriptor: (Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILjava/util/List;Lio/vertx/core/Handler;Ljava/lang/Long;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=7, args_size=7
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 6 // java.lang.Long t
         0: .line 876
            aload 0 /* this */
            aload 1
            aload 2
            iload 3
            iconst_1
            isub
            aload 4
            aload 5
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.batch:(Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILjava/util/List;Lio/vertx/core/Handler;)V
            return
        end local 6 // java.lang.Long t
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    1     6     t  Ljava/lang/Long;

  private void lambda$21(io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 1 // io.vertx.core.AsyncResult ar
         0: .line 536
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 3
         1: .line 538
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            ifnull 3
         2: .line 539
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         3: .line 542
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.AsyncResult ar
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    4     1    ar  Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;

  private void lambda$30(io.vertx.core.Handler, io.vertx.redis.client.RedisOptions, int, io.vertx.redis.client.Request, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=7, args_size=6
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 5 // io.vertx.core.AsyncResult getClient
         0: .line 762
            aload 5 /* getClient */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 6
         1: .line 764
            aload 1
            aload 5 /* getClient */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 765
            goto 5
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         3: astore 6 /* e */
        start local 6 // java.lang.RuntimeException e
         4: .line 766
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 6 /* e */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 6 // java.lang.RuntimeException e
         5: .line 768
      StackMap locals:
      StackMap stack:
            return
         6: .line 772
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* getClient */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.redis.client.Redis
            aload 2
            iload 3
            iconst_1
            isub
            aload 4
            aload 1
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.send:(Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILio/vertx/redis/client/Request;Lio/vertx/core/Handler;)V
         7: .line 773
            return
        end local 5 // io.vertx.core.AsyncResult getClient
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    8     5  getClient  Lio/vertx/core/AsyncResult<Lio/vertx/redis/client/Redis;>;
            4    5     6          e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException

  private void lambda$35(io.vertx.core.Handler, io.vertx.redis.client.RedisOptions, int, java.util.List, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/redis/client/RedisOptions;ILjava/util/List;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=7, args_size=6
        start local 0 // io.vertx.redis.client.impl.RedisClusterClient this
        start local 5 // io.vertx.core.AsyncResult getClient
         0: .line 849
            aload 5 /* getClient */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 6
         1: .line 851
            aload 1
            aload 5 /* getClient */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 852
            goto 5
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         3: astore 6 /* e */
        start local 6 // java.lang.RuntimeException e
         4: .line 853
            aload 0 /* this */
            getfield io.vertx.redis.client.impl.RedisClusterClient.onException:Lio/vertx/core/Handler;
            aload 6 /* e */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 6 // java.lang.RuntimeException e
         5: .line 855
      StackMap locals:
      StackMap stack:
            return
         6: .line 859
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* getClient */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.redis.client.Redis
            aload 2
            iload 3
            iconst_1
            isub
            aload 4
            aload 1
            invokevirtual io.vertx.redis.client.impl.RedisClusterClient.batch:(Lio/vertx/redis/client/Redis;Lio/vertx/redis/client/RedisOptions;ILjava/util/List;Lio/vertx/core/Handler;)V
         7: .line 860
            return
        end local 5 // io.vertx.core.AsyncResult getClient
        end local 0 // io.vertx.redis.client.impl.RedisClusterClient this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lio/vertx/redis/client/impl/RedisClusterClient;
            0    8     5  getClient  Lio/vertx/core/AsyncResult<Lio/vertx/redis/client/Redis;>;
            4    5     6          e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.RuntimeException
}
SourceFile: "RedisClusterClient.java"
NestMembers:
  io.vertx.redis.client.impl.RedisClusterClient$1
InnerClasses:
  io.vertx.redis.client.impl.RedisClusterClient$1
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map