public class io.vertx.ext.web.handler.impl.StaticHandlerImpl implements io.vertx.ext.web.handler.StaticHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.ext.web.handler.impl.StaticHandlerImpl
  super_class: java.lang.Object
{
  private static final io.vertx.core.logging.Logger log;
    descriptor: Lio/vertx/core/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.text.DateFormat dateTimeFormatter;
    descriptor: Ljava/text/DateFormat;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.util.Map<java.lang.String, io.vertx.ext.web.handler.impl.StaticHandlerImpl$CacheEntry> propsCache;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lio/vertx/ext/web/handler/impl/StaticHandlerImpl$CacheEntry;>;

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

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

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

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

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

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

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

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

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

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

  private java.util.List<io.vertx.ext.web.Http2PushMapping> http2PushMappings;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lio/vertx/ext/web/Http2PushMapping;>;

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

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

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

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

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

  private static int NUM_SERVES_TUNING_FS_ACCESS;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

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

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

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

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

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

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

  private java.util.Set<java.lang.String> compressedMediaTypes;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private java.util.Set<java.lang.String> compressedFileSuffixes;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private final java.lang.ClassLoader classLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 59
            ldc Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            invokestatic io.vertx.core.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/logging/Logger;
            putstatic io.vertx.ext.web.handler.impl.StaticHandlerImpl.log:Lio/vertx/core/logging/Logger;
         1: .line 81
            sipush 1000
            putstatic io.vertx.ext.web.handler.impl.StaticHandlerImpl.NUM_SERVES_TUNING_FS_ACCESS:I
         2: .line 324
            ldc "^bytes=(\\d+)-(\\d*)$"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic io.vertx.ext.web.handler.impl.StaticHandlerImpl.RANGE:Ljava/util/regex/Pattern;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, java.lang.ClassLoader);
    descriptor: (Ljava/lang/String;Ljava/lang/ClassLoader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // java.lang.String root
        start local 2 // java.lang.ClassLoader classLoader
         0: .line 94
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 61
            aload 0 /* this */
            invokestatic io.vertx.ext.web.impl.Utils.createRFC1123DateTimeFormatter:()Ljava/text/DateFormat;
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.dateTimeFormatter:Ljava/text/DateFormat;
         2: .line 63
            aload 0 /* this */
            ldc "webroot"
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.webRoot:Ljava/lang/String;
         3: .line 64
            aload 0 /* this */
            ldc 86400
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.maxAgeSeconds:J
         4: .line 65
            aload 0 /* this */
            iconst_0
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.directoryListing:Z
         5: .line 66
            aload 0 /* this */
            ldc "META-INF/vertx/web/vertx-web-directory.html"
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.directoryTemplateResource:Ljava/lang/String;
         6: .line 68
            aload 0 /* this */
            iconst_1
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.includeHidden:Z
         7: .line 69
            aload 0 /* this */
            iconst_1
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.filesReadOnly:Z
         8: .line 70
            aload 0 /* this */
            getstatic io.vertx.ext.web.handler.impl.StaticHandlerImpl.DEFAULT_CACHING_ENABLED:Z
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.cachingEnabled:Z
         9: .line 71
            aload 0 /* this */
            ldc 30000
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.cacheEntryTimeout:J
        10: .line 72
            aload 0 /* this */
            ldc "/index.html"
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.indexPage:Ljava/lang/String;
        11: .line 74
            aload 0 /* this */
            sipush 10000
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.maxCacheSize:I
        12: .line 75
            aload 0 /* this */
            iconst_1
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.rangeSupport:Z
        13: .line 76
            aload 0 /* this */
            iconst_0
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.allowRootFileSystemAccess:Z
        14: .line 77
            aload 0 /* this */
            iconst_1
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.sendVaryHeader:Z
        15: .line 78
            aload 0 /* this */
            invokestatic java.nio.charset.Charset.defaultCharset:()Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.defaultContentEncoding:Ljava/lang/String;
        16: .line 82
            aload 0 /* this */
            iconst_0
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.alwaysAsyncFS:Z
        17: .line 83
            aload 0 /* this */
            ldc 1000000
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.maxAvgServeTimeNanoSeconds:J
        18: .line 84
            aload 0 /* this */
            iconst_1
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.tuning:Z
        19: .line 88
            aload 0 /* this */
            getstatic io.vertx.ext.web.handler.impl.StaticHandlerImpl.NUM_SERVES_TUNING_FS_ACCESS:I
            i2l
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.nextAvgCheck:J
        20: .line 89
            aload 0 /* this */
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.compressedMediaTypes:Ljava/util/Set;
        21: .line 90
            aload 0 /* this */
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.compressedFileSuffixes:Ljava/util/Set;
        22: .line 95
            aload 0 /* this */
            aload 2 /* classLoader */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.classLoader:Ljava/lang/ClassLoader;
        23: .line 96
            aload 1 /* root */
            ifnull 25
        24: .line 97
            aload 0 /* this */
            aload 1 /* root */
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.setRoot:(Ljava/lang/String;)V
        25: .line 99
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl java.lang.String java.lang.ClassLoader
      StackMap stack:
            return
        end local 2 // java.lang.ClassLoader classLoader
        end local 1 // java.lang.String root
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   26     0         this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0   26     1         root  Ljava/lang/String;
            0   26     2  classLoader  Ljava/lang/ClassLoader;
    MethodParameters:
             Name  Flags
      root         
      classLoader  

  private java.lang.String directoryTemplate(io.vertx.core.Vertx);
    descriptor: (Lio/vertx/core/Vertx;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // io.vertx.core.Vertx vertx
         0: .line 102
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.directoryTemplate:Ljava/lang/String;
            ifnonnull 2
         1: .line 103
            aload 0 /* this */
            aload 1 /* vertx */
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.directoryTemplateResource:Ljava/lang/String;
            invokestatic io.vertx.ext.web.impl.Utils.readFileToString:(Lio/vertx/core/Vertx;Ljava/lang/String;)Ljava/lang/String;
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.directoryTemplate:Ljava/lang/String;
         2: .line 105
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.directoryTemplate:Ljava/lang/String;
            areturn
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    3     1  vertx  Lio/vertx/core/Vertx;
    MethodParameters:
       Name  Flags
      vertx  

  private void writeCacheHeaders(io.vertx.core.http.HttpServerRequest, io.vertx.core.file.FileProps);
    descriptor: (Lio/vertx/core/http/HttpServerRequest;Lio/vertx/core/file/FileProps;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // io.vertx.core.http.HttpServerRequest request
        start local 2 // io.vertx.core.file.FileProps props
         0: .line 116
            aload 1 /* request */
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            invokeinterface io.vertx.core.http.HttpServerResponse.headers:()Lio/vertx/core/MultiMap;
            astore 3 /* headers */
        start local 3 // io.vertx.core.MultiMap headers
         1: .line 118
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.cachingEnabled:Z
            ifeq 6
         2: .line 121
            aload 3 /* headers */
            ldc "cache-control"
            new java.lang.StringBuilder
            dup
            ldc "public, max-age="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.maxAgeSeconds:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic io.vertx.ext.web.impl.Utils.addToMapIfAbsent:(Lio/vertx/core/MultiMap;Ljava/lang/String;Ljava/lang/String;)V
         3: .line 122
            aload 3 /* headers */
            ldc "last-modified"
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.dateTimeFormatter:Ljava/text/DateFormat;
            aload 2 /* props */
            invokeinterface io.vertx.core.file.FileProps.lastModifiedTime:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.text.DateFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            invokestatic io.vertx.ext.web.impl.Utils.addToMapIfAbsent:(Lio/vertx/core/MultiMap;Ljava/lang/String;Ljava/lang/String;)V
         4: .line 125
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.sendVaryHeader:Z
            ifeq 6
            aload 1 /* request */
            invokeinterface io.vertx.core.http.HttpServerRequest.headers:()Lio/vertx/core/MultiMap;
            ldc "accept-encoding"
            invokeinterface io.vertx.core.MultiMap.contains:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 126
            aload 3 /* headers */
            ldc "vary"
            ldc "accept-encoding"
            invokestatic io.vertx.ext.web.impl.Utils.addToMapIfAbsent:(Lio/vertx/core/MultiMap;Ljava/lang/String;Ljava/lang/String;)V
         6: .line 131
      StackMap locals: io.vertx.core.MultiMap
      StackMap stack:
            aload 3 /* headers */
            ldc "date"
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.dateTimeFormatter:Ljava/text/DateFormat;
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual java.text.DateFormat.format:(Ljava/util/Date;)Ljava/lang/String;
            invokeinterface io.vertx.core.MultiMap.set:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/MultiMap;
            pop
         7: .line 132
            return
        end local 3 // io.vertx.core.MultiMap headers
        end local 2 // io.vertx.core.file.FileProps props
        end local 1 // io.vertx.core.http.HttpServerRequest request
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    8     1  request  Lio/vertx/core/http/HttpServerRequest;
            0    8     2    props  Lio/vertx/core/file/FileProps;
            1    8     3  headers  Lio/vertx/core/MultiMap;
    MethodParameters:
         Name  Flags
      request  
      props    

  public void handle(io.vertx.ext.web.RoutingContext);
    descriptor: (Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // io.vertx.ext.web.RoutingContext context
         0: .line 136
            aload 1 /* context */
            invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
            astore 2 /* request */
        start local 2 // io.vertx.core.http.HttpServerRequest request
         1: .line 137
            aload 2 /* request */
            invokeinterface io.vertx.core.http.HttpServerRequest.method:()Lio/vertx/core/http/HttpMethod;
            getstatic io.vertx.core.http.HttpMethod.GET:Lio/vertx/core/http/HttpMethod;
            if_acmpeq 5
            aload 2 /* request */
            invokeinterface io.vertx.core.http.HttpServerRequest.method:()Lio/vertx/core/http/HttpMethod;
            getstatic io.vertx.core.http.HttpMethod.HEAD:Lio/vertx/core/http/HttpMethod;
            if_acmpeq 5
         2: .line 138
            getstatic io.vertx.ext.web.handler.impl.StaticHandlerImpl.log:Lio/vertx/core/logging/Logger;
            invokevirtual io.vertx.core.logging.Logger.isTraceEnabled:()Z
            ifeq 3
            getstatic io.vertx.ext.web.handler.impl.StaticHandlerImpl.log:Lio/vertx/core/logging/Logger;
            ldc "Not GET or HEAD so ignoring request"
            invokevirtual io.vertx.core.logging.Logger.trace:(Ljava/lang/Object;)V
         3: .line 139
      StackMap locals: io.vertx.core.http.HttpServerRequest
      StackMap stack:
            aload 1 /* context */
            invokeinterface io.vertx.ext.web.RoutingContext.next:()V
         4: .line 140
            goto 13
         5: .line 141
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            invokeinterface io.vertx.ext.web.RoutingContext.normalisedPath:()Ljava/lang/String;
            iconst_0
            invokestatic io.vertx.core.net.impl.URIDecoder.decodeURIComponent:(Ljava/lang/String;Z)Ljava/lang/String;
            invokestatic io.vertx.core.http.impl.HttpUtils.removeDots:(Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         6: .line 143
            aload 3 /* path */
            ifnonnull 10
         7: .line 144
            getstatic io.vertx.ext.web.handler.impl.StaticHandlerImpl.log:Lio/vertx/core/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Invalid path: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* context */
            invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
            invokeinterface io.vertx.core.http.HttpServerRequest.path:()Ljava/lang/String;
            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
         8: .line 145
            aload 1 /* context */
            invokeinterface io.vertx.ext.web.RoutingContext.next:()V
         9: .line 146
            return
        10: .line 150
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.directoryListing:Z
            ifne 12
            ldc "/"
            aload 3 /* path */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 151
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.indexPage:Ljava/lang/String;
            astore 3 /* path */
        12: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* path */
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.sendStatic:(Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;)V
        end local 3 // java.lang.String path
        13: .line 158
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.core.http.HttpServerRequest request
        end local 1 // io.vertx.ext.web.RoutingContext context
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0   14     1  context  Lio/vertx/ext/web/RoutingContext;
            1   14     2  request  Lio/vertx/core/http/HttpServerRequest;
            6   13     3     path  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      context  

  private void sendStatic(io.vertx.ext.web.RoutingContext, java.lang.String);
    descriptor: (Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=7, args_size=3
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // io.vertx.ext.web.RoutingContext context
        start local 2 // java.lang.String path
         0: .line 162
            aconst_null
            astore 3 /* file */
        start local 3 // java.lang.String file
         1: .line 164
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.includeHidden:Z
            ifne 8
         2: .line 165
            aload 0 /* this */
            aload 2 /* path */
            aload 1 /* context */
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.getFile:(Ljava/lang/String;Lio/vertx/ext/web/RoutingContext;)Ljava/lang/String;
            astore 3 /* file */
         3: .line 166
            aload 3 /* file */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 4 /* idx */
        start local 4 // int idx
         4: .line 167
            aload 3 /* file */
            iload 4 /* idx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
         5: .line 168
            aload 5 /* name */
            invokevirtual java.lang.String.length:()I
            ifle 8
            aload 5 /* name */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 46
            if_icmpne 8
         6: .line 170
            aload 1 /* context */
            invokeinterface io.vertx.ext.web.RoutingContext.next:()V
         7: .line 171
            return
        end local 5 // java.lang.String name
        end local 4 // int idx
         8: .line 176
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.cachingEnabled:Z
            ifeq 9
            aload 0 /* this */
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.propsCache:()Ljava/util/Map;
            aload 2 /* path */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.ext.web.handler.impl.StaticHandlerImpl$CacheEntry
            goto 10
      StackMap locals:
      StackMap stack:
         9: aconst_null
      StackMap locals:
      StackMap stack: io.vertx.ext.web.handler.impl.StaticHandlerImpl$CacheEntry
        10: astore 4 /* entry */
        start local 4 // io.vertx.ext.web.handler.impl.StaticHandlerImpl$CacheEntry entry
        11: .line 177
            aload 4 /* entry */
            ifnull 15
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.filesReadOnly:Z
            ifne 12
            aload 4 /* entry */
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl$CacheEntry.isOutOfDate:()Z
            ifne 15
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl$CacheEntry
      StackMap stack:
        12: aload 4 /* entry */
            aload 1 /* context */
            invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl$CacheEntry.shouldUseCached:(Lio/vertx/core/http/HttpServerRequest;)Z
            ifeq 15
        13: .line 178
            aload 1 /* context */
            invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
            getstatic io.netty.handler.codec.http.HttpResponseStatus.NOT_MODIFIED:Lio/netty/handler/codec/http/HttpResponseStatus;
            invokevirtual io.netty.handler.codec.http.HttpResponseStatus.code:()I
            invokeinterface io.vertx.core.http.HttpServerResponse.setStatusCode:(I)Lio/vertx/core/http/HttpServerResponse;
            invokeinterface io.vertx.core.http.HttpServerResponse.end:()V
        14: .line 179
            return
        15: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.cachingEnabled:Z
            ifeq 16
            aload 4 /* entry */
            ifnull 16
            iconst_1
            goto 17
      StackMap locals:
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: istore 5 /* dirty */
        start local 5 // boolean dirty
        18: .line 183
            aload 3 /* file */
            ifnonnull 19
            aload 0 /* this */
            aload 2 /* path */
            aload 1 /* context */
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.getFile:(Ljava/lang/String;Lio/vertx/ext/web/RoutingContext;)Ljava/lang/String;
            goto 20
      StackMap locals: int
      StackMap stack:
        19: aload 3 /* file */
      StackMap locals:
      StackMap stack: java.lang.String
        20: astore 6 /* sfile */
        start local 6 // java.lang.String sfile
        21: .line 186
            aload 0 /* this */
            aload 1 /* context */
            aload 6 /* sfile */
            aload 0 /* this */
            aload 1 /* context */
            iload 5 /* dirty */
            aload 2 /* path */
            aload 6 /* sfile */
            invokedynamic handle(Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;Lio/vertx/ext/web/RoutingContext;ZLjava/lang/String;Ljava/lang/String;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/ext/web/handler/impl/StaticHandlerImpl.lambda$0(Lio/vertx/ext/web/RoutingContext;ZLjava/lang/String;Ljava/lang/String;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.isFileExisting:(Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;Lio/vertx/core/Handler;)V
        22: .line 232
            return
        end local 6 // java.lang.String sfile
        end local 5 // boolean dirty
        end local 4 // io.vertx.ext.web.handler.impl.StaticHandlerImpl$CacheEntry entry
        end local 3 // java.lang.String file
        end local 2 // java.lang.String path
        end local 1 // io.vertx.ext.web.RoutingContext context
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0     this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0   23     1  context  Lio/vertx/ext/web/RoutingContext;
            0   23     2     path  Ljava/lang/String;
            1   23     3     file  Ljava/lang/String;
            4    8     4      idx  I
            5    8     5     name  Ljava/lang/String;
           11   23     4    entry  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl$CacheEntry;
           18   23     5    dirty  Z
           21   23     6    sfile  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      context  
      path     

  private void sendDirectory(io.vertx.ext.web.RoutingContext, java.lang.String, java.lang.String);
    descriptor: (Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // io.vertx.ext.web.RoutingContext context
        start local 2 // java.lang.String path
        start local 3 // java.lang.String file
         0: .line 235
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.directoryListing:Z
            ifeq 3
         1: .line 236
            aload 0 /* this */
            aload 3 /* file */
            aload 1 /* context */
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.sendDirectoryListing:(Ljava/lang/String;Lio/vertx/ext/web/RoutingContext;)V
         2: .line 237
            goto 14
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.indexPage:Ljava/lang/String;
            ifnull 13
         4: .line 240
            aload 2 /* path */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 7
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.indexPage:Ljava/lang/String;
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
         5: .line 241
            new java.lang.StringBuilder
            dup
            aload 2 /* path */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.indexPage:Ljava/lang/String;
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* indexPath */
        start local 4 // java.lang.String indexPath
         6: .line 242
            goto 11
        end local 4 // java.lang.String indexPath
      StackMap locals:
      StackMap stack:
         7: aload 2 /* path */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 10
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.indexPage:Ljava/lang/String;
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 10
         8: .line 243
            new java.lang.StringBuilder
            dup
            aload 2 /* path */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.indexPage:Ljava/lang/String;
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* indexPath */
        start local 4 // java.lang.String indexPath
         9: .line 244
            goto 11
        end local 4 // java.lang.String indexPath
        10: .line 245
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 2 /* path */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.indexPage:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* indexPath */
        start local 4 // java.lang.String indexPath
        11: .line 248
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 4 /* indexPath */
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.sendStatic:(Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;)V
        end local 4 // java.lang.String indexPath
        12: .line 250
            goto 14
        13: .line 252
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getstatic io.netty.handler.codec.http.HttpResponseStatus.FORBIDDEN:Lio/netty/handler/codec/http/HttpResponseStatus;
            invokevirtual io.netty.handler.codec.http.HttpResponseStatus.code:()I
            invokeinterface io.vertx.ext.web.RoutingContext.fail:(I)V
        14: .line 254
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String file
        end local 2 // java.lang.String path
        end local 1 // io.vertx.ext.web.RoutingContext context
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0   15     1    context  Lio/vertx/ext/web/RoutingContext;
            0   15     2       path  Ljava/lang/String;
            0   15     3       file  Ljava/lang/String;
            6    7     4  indexPath  Ljava/lang/String;
            9   10     4  indexPath  Ljava/lang/String;
           11   12     4  indexPath  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      context  
      path     
      file     

  private <T> T wrapInTCCLSwitch(java.util.concurrent.Callable<T>);
    descriptor: (Ljava/util/concurrent/Callable;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // java.util.concurrent.Callable callable
         0: .line 258
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.classLoader:Ljava/lang/ClassLoader;
            ifnonnull 3
         1: .line 259
            aload 1 /* callable */
            invokeinterface java.util.concurrent.Callable.call:()Ljava/lang/Object;
         2: areturn
         3: .line 261
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* original */
        start local 2 // java.lang.ClassLoader original
         4: .line 263
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.classLoader:Ljava/lang/ClassLoader;
            invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
         5: .line 264
            aload 1 /* callable */
            invokeinterface java.util.concurrent.Callable.call:()Ljava/lang/Object;
            astore 4
         6: .line 266
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 2 /* original */
            invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
         7: .line 264
            aload 4
            areturn
         8: .line 265
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl java.util.concurrent.Callable java.lang.ClassLoader
      StackMap stack: java.lang.Throwable
            astore 3
         9: .line 266
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 2 /* original */
            invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
        10: .line 267
            aload 3
            athrow
        end local 2 // java.lang.ClassLoader original
        11: .line 269
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl java.util.concurrent.Callable
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        12: .line 270
            new java.lang.RuntimeException
            dup
            aload 2 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception e
        end local 1 // java.util.concurrent.Callable callable
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0   13     1  callable  Ljava/util/concurrent/Callable<TT;>;
            4   11     2  original  Ljava/lang/ClassLoader;
           12   13     2         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     6       8  any
           0     2      11  Class java.lang.Exception
           3     7      11  Class java.lang.Exception
           8    11      11  Class java.lang.Exception
    Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/Callable<TT;>;)TT;
    MethodParameters:
          Name  Flags
      callable  

  private synchronized void isFileExisting(io.vertx.ext.web.RoutingContext, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Boolean>>);
    descriptor: (Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // io.vertx.ext.web.RoutingContext context
        start local 2 // java.lang.String file
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 275
            aload 1 /* context */
            invokeinterface io.vertx.ext.web.RoutingContext.vertx:()Lio/vertx/core/Vertx;
            invokeinterface io.vertx.core.Vertx.fileSystem:()Lio/vertx/core/file/FileSystem;
            astore 4 /* fs */
        start local 4 // io.vertx.core.file.FileSystem fs
         1: .line 276
            aload 0 /* this */
            aload 4 /* fs */
            aload 2 /* file */
            aload 3 /* resultHandler */
            invokedynamic call(Lio/vertx/core/file/FileSystem;Ljava/lang/String;Lio/vertx/core/Handler;)Ljava/util/concurrent/Callable;
              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;
                  io/vertx/ext/web/handler/impl/StaticHandlerImpl.lambda$2(Lio/vertx/core/file/FileSystem;Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/core/file/FileSystem; (6)
                  ()Lio/vertx/core/file/FileSystem;
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.wrapInTCCLSwitch:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            pop
         2: .line 277
            return
        end local 4 // io.vertx.core.file.FileSystem fs
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // java.lang.String file
        end local 1 // io.vertx.ext.web.RoutingContext context
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    3     1        context  Lio/vertx/ext/web/RoutingContext;
            0    3     2           file  Ljava/lang/String;
            0    3     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Boolean;>;>;
            1    3     4             fs  Lio/vertx/core/file/FileSystem;
    Signature: (Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Boolean;>;>;)V
    MethodParameters:
               Name  Flags
      context        
      file           
      resultHandler  

  private synchronized void getFileProps(io.vertx.ext.web.RoutingContext, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.file.FileProps>>);
    descriptor: (Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=14, args_size=4
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // io.vertx.ext.web.RoutingContext context
        start local 2 // java.lang.String file
        start local 3 // io.vertx.core.Handler resultHandler
         0: .line 280
            aload 1 /* context */
            invokeinterface io.vertx.ext.web.RoutingContext.vertx:()Lio/vertx/core/Vertx;
            invokeinterface io.vertx.core.Vertx.fileSystem:()Lio/vertx/core/file/FileSystem;
            astore 4 /* fs */
        start local 4 // io.vertx.core.file.FileSystem fs
         1: .line 281
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.alwaysAsyncFS:Z
            ifne 2
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.useAsyncFS:Z
            ifeq 4
         2: .line 282
      StackMap locals: io.vertx.core.file.FileSystem
      StackMap stack:
            aload 0 /* this */
            aload 4 /* fs */
            aload 2 /* file */
            aload 3 /* resultHandler */
            invokedynamic call(Lio/vertx/core/file/FileSystem;Ljava/lang/String;Lio/vertx/core/Handler;)Ljava/util/concurrent/Callable;
              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;
                  io/vertx/ext/web/handler/impl/StaticHandlerImpl.lambda$3(Lio/vertx/core/file/FileSystem;Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/core/file/FileSystem; (6)
                  ()Lio/vertx/core/file/FileSystem;
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.wrapInTCCLSwitch:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            pop
         3: .line 283
            goto 27
         4: .line 285
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 5 /* start */
        start local 5 // long start
         5: .line 286
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.tuning:Z
            ifeq 7
         6: .line 287
            invokestatic java.lang.System.nanoTime:()J
            lstore 5 /* start */
         7: .line 290
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            aload 4 /* fs */
            aload 2 /* file */
            invokedynamic call(Lio/vertx/core/file/FileSystem;Ljava/lang/String;)Ljava/util/concurrent/Callable;
              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;
                  io/vertx/ext/web/handler/impl/StaticHandlerImpl.lambda$4(Lio/vertx/core/file/FileSystem;Ljava/lang/String;)Lio/vertx/core/file/FileProps; (6)
                  ()Lio/vertx/core/file/FileProps;
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.wrapInTCCLSwitch:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            checkcast io.vertx.core.file.FileProps
            astore 7 /* props */
        start local 7 // io.vertx.core.file.FileProps props
         8: .line 292
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.tuning:Z
            ifeq 23
         9: .line 293
            invokestatic java.lang.System.nanoTime:()J
            lstore 8 /* end */
        start local 8 // long end
        10: .line 294
            lload 8 /* end */
            lload 5 /* start */
            lsub
            lstore 10 /* dur */
        start local 10 // long dur
        11: .line 295
            aload 0 /* this */
            dup
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.totalTime:J
            lload 10 /* dur */
            ladd
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.totalTime:J
        12: .line 296
            aload 0 /* this */
            dup
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.numServesBlocking:J
            lconst_1
            ladd
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.numServesBlocking:J
        13: .line 297
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.numServesBlocking:J
            ldc 9223372036854775807
            lcmp
            ifne 16
        14: .line 299
            aload 0 /* this */
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.resetTuning:()V
        15: .line 300
            goto 23
      StackMap locals: io.vertx.core.file.FileProps long long
      StackMap stack:
        16: aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.numServesBlocking:J
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.nextAvgCheck:J
            lcmp
            ifne 23
        17: .line 301
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.totalTime:J
            l2d
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.numServesBlocking:J
            l2d
            ddiv
            dstore 12 /* avg */
        start local 12 // double avg
        18: .line 302
            dload 12 /* avg */
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.maxAvgServeTimeNanoSeconds:J
            l2d
            dcmpl
            ifle 22
        19: .line 303
            aload 0 /* this */
            iconst_1
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.useAsyncFS:Z
        20: .line 304
            getstatic io.vertx.ext.web.handler.impl.StaticHandlerImpl.log:Lio/vertx/core/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Switching to async file system access in static file server as fs access is slow! (Average access time of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            dload 12 /* avg */
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            ldc " ns)"
            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.info:(Ljava/lang/Object;)V
        21: .line 305
            aload 0 /* this */
            iconst_0
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.tuning:Z
        22: .line 307
      StackMap locals: double
      StackMap stack:
            aload 0 /* this */
            dup
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.nextAvgCheck:J
            getstatic io.vertx.ext.web.handler.impl.StaticHandlerImpl.NUM_SERVES_TUNING_FS_ACCESS:I
            i2l
            ladd
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.nextAvgCheck:J
        end local 12 // double avg
        end local 10 // long dur
        end local 8 // long end
        23: .line 310
      StackMap locals:
      StackMap stack:
            aload 3 /* resultHandler */
            aload 7 /* props */
            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 7 // io.vertx.core.file.FileProps props
        24: .line 311
            goto 27
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext java.lang.String io.vertx.core.Handler io.vertx.core.file.FileSystem long
      StackMap stack: java.lang.RuntimeException
        25: astore 7 /* e */
        start local 7 // java.lang.RuntimeException e
        26: .line 312
            aload 3 /* resultHandler */
            aload 7 /* e */
            invokevirtual java.lang.RuntimeException.getCause:()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
        end local 7 // java.lang.RuntimeException e
        end local 5 // long start
        27: .line 315
      StackMap locals:
      StackMap stack:
            return
        end local 4 // io.vertx.core.file.FileSystem fs
        end local 3 // io.vertx.core.Handler resultHandler
        end local 2 // java.lang.String file
        end local 1 // io.vertx.ext.web.RoutingContext context
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   28     0           this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0   28     1        context  Lio/vertx/ext/web/RoutingContext;
            0   28     2           file  Ljava/lang/String;
            0   28     3  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/file/FileProps;>;>;
            1   28     4             fs  Lio/vertx/core/file/FileSystem;
            5   27     5          start  J
            8   24     7          props  Lio/vertx/core/file/FileProps;
           10   23     8            end  J
           11   23    10            dur  J
           18   23    12            avg  D
           26   27     7              e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           7    24      25  Class java.lang.RuntimeException
    Signature: (Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/file/FileProps;>;>;)V
    MethodParameters:
               Name  Flags
      context        
      file           
      resultHandler  

  private void resetTuning();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
         0: .line 319
            aload 0 /* this */
            getstatic io.vertx.ext.web.handler.impl.StaticHandlerImpl.NUM_SERVES_TUNING_FS_ACCESS:I
            i2l
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.nextAvgCheck:J
         1: .line 320
            aload 0 /* this */
            lconst_0
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.totalTime:J
         2: .line 321
            aload 0 /* this */
            lconst_0
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.numServesBlocking:J
         3: .line 322
            return
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;

  private void sendFile(io.vertx.ext.web.RoutingContext, java.lang.String, io.vertx.core.file.FileProps);
    descriptor: (Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;Lio/vertx/core/file/FileProps;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=13, args_size=4
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // io.vertx.ext.web.RoutingContext context
        start local 2 // java.lang.String file
        start local 3 // io.vertx.core.file.FileProps fileProps
         0: .line 327
            aload 1 /* context */
            invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
            astore 4 /* request */
        start local 4 // io.vertx.core.http.HttpServerRequest request
         1: .line 329
            aconst_null
            astore 5 /* offset */
        start local 5 // java.lang.Long offset
         2: .line 330
            lconst_0
            lstore 6 /* end */
        start local 6 // long end
         3: .line 331
            aconst_null
            astore 8 /* headers */
        start local 8 // io.vertx.core.MultiMap headers
         4: .line 333
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.rangeSupport:Z
            ifeq 28
         5: .line 335
            aload 4 /* request */
            ldc "Range"
            invokeinterface io.vertx.core.http.HttpServerRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* range */
        start local 9 // java.lang.String range
         6: .line 337
            aload 3 /* fileProps */
            invokeinterface io.vertx.core.file.FileProps.size:()J
            lconst_1
            lsub
            lstore 6 /* end */
         7: .line 339
            aload 9 /* range */
            ifnull 23
         8: .line 340
            getstatic io.vertx.ext.web.handler.impl.StaticHandlerImpl.RANGE:Ljava/util/regex/Pattern;
            aload 9 /* range */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 10 /* m */
        start local 10 // java.util.regex.Matcher m
         9: .line 341
            aload 10 /* m */
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 23
        10: .line 343
            aload 10 /* m */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 11 /* part */
        start local 11 // java.lang.String part
        11: .line 345
            aload 11 /* part */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 5 /* offset */
        12: .line 347
            aload 5 /* offset */
            invokevirtual java.lang.Long.longValue:()J
            lconst_0
            lcmp
            iflt 13
            aload 5 /* offset */
            invokevirtual java.lang.Long.longValue:()J
            aload 3 /* fileProps */
            invokeinterface io.vertx.core.file.FileProps.size:()J
            lcmp
            iflt 14
        13: .line 348
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext java.lang.String io.vertx.core.file.FileProps io.vertx.core.http.HttpServerRequest java.lang.Long long io.vertx.core.MultiMap java.lang.String java.util.regex.Matcher java.lang.String
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
        14: .line 351
      StackMap locals:
      StackMap stack:
            aload 10 /* m */
            iconst_2
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 11 /* part */
        15: .line 352
            aload 11 /* part */
            ifnull 23
            aload 11 /* part */
            invokevirtual java.lang.String.length:()I
            ifle 23
        16: .line 354
            lload 6 /* end */
            aload 11 /* part */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            invokestatic java.lang.Math.min:(JJ)J
            lstore 6 /* end */
        17: .line 356
            lload 6 /* end */
            aload 5 /* offset */
            invokevirtual java.lang.Long.longValue:()J
            lcmp
            ifge 23
        18: .line 357
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
        end local 11 // java.lang.String part
        19: .line 360
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext java.lang.String io.vertx.core.file.FileProps io.vertx.core.http.HttpServerRequest java.lang.Long long io.vertx.core.MultiMap java.lang.String java.util.regex.Matcher
      StackMap stack: java.lang.RuntimeException
            pop
        20: .line 361
            aload 1 /* context */
            invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
            ldc "Content-Range"
            new java.lang.StringBuilder
            dup
            ldc "bytes */"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* fileProps */
            invokeinterface io.vertx.core.file.FileProps.size:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
            pop
        21: .line 362
            aload 1 /* context */
            getstatic io.netty.handler.codec.http.HttpResponseStatus.REQUESTED_RANGE_NOT_SATISFIABLE:Lio/netty/handler/codec/http/HttpResponseStatus;
            invokevirtual io.netty.handler.codec.http.HttpResponseStatus.code:()I
            invokeinterface io.vertx.ext.web.RoutingContext.fail:(I)V
        22: .line 363
            return
        end local 10 // java.util.regex.Matcher m
        23: .line 369
      StackMap locals:
      StackMap stack:
            aload 4 /* request */
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            invokeinterface io.vertx.core.http.HttpServerResponse.headers:()Lio/vertx/core/MultiMap;
            astore 8 /* headers */
        24: .line 370
            aload 8 /* headers */
            ldc "Accept-Ranges"
            ldc "bytes"
            invokeinterface io.vertx.core.MultiMap.set:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/MultiMap;
            pop
        25: .line 372
            aload 8 /* headers */
            ldc "Content-Length"
            lload 6 /* end */
            lconst_1
            ladd
            aload 5 /* offset */
            ifnonnull 26
            lconst_0
            goto 27
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext java.lang.String io.vertx.core.file.FileProps io.vertx.core.http.HttpServerRequest java.lang.Long long io.vertx.core.MultiMap java.lang.String
      StackMap stack: io.vertx.core.MultiMap java.lang.String long
        26: aload 5 /* offset */
            invokevirtual java.lang.Long.longValue:()J
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext java.lang.String io.vertx.core.file.FileProps io.vertx.core.http.HttpServerRequest java.lang.Long long io.vertx.core.MultiMap java.lang.String
      StackMap stack: io.vertx.core.MultiMap java.lang.String long long
        27: lsub
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            invokeinterface io.vertx.core.MultiMap.set:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/MultiMap;
            pop
        end local 9 // java.lang.String range
        28: .line 375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* request */
            aload 3 /* fileProps */
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.writeCacheHeaders:(Lio/vertx/core/http/HttpServerRequest;Lio/vertx/core/file/FileProps;)V
        29: .line 377
            aload 4 /* request */
            invokeinterface io.vertx.core.http.HttpServerRequest.method:()Lio/vertx/core/http/HttpMethod;
            getstatic io.vertx.core.http.HttpMethod.HEAD:Lio/vertx/core/http/HttpMethod;
            if_acmpne 32
        30: .line 378
            aload 4 /* request */
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            invokeinterface io.vertx.core.http.HttpServerResponse.end:()V
        31: .line 379
            goto 40
        32: .line 380
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.rangeSupport:Z
            ifeq 39
            aload 5 /* offset */
            ifnull 39
        33: .line 382
            aload 8 /* headers */
            ldc "Content-Range"
            new java.lang.StringBuilder
            dup
            ldc "bytes "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* offset */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 6 /* end */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* fileProps */
            invokeinterface io.vertx.core.file.FileProps.size:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.MultiMap.set:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/MultiMap;
            pop
        34: .line 384
            aload 4 /* request */
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            getstatic io.netty.handler.codec.http.HttpResponseStatus.PARTIAL_CONTENT:Lio/netty/handler/codec/http/HttpResponseStatus;
            invokevirtual io.netty.handler.codec.http.HttpResponseStatus.code:()I
            invokeinterface io.vertx.core.http.HttpServerResponse.setStatusCode:(I)Lio/vertx/core/http/HttpServerResponse;
            pop
        35: .line 388
            aload 5 /* offset */
            invokevirtual java.lang.Long.longValue:()J
            lstore 9 /* finalOffset */
        start local 9 // long finalOffset
        36: .line 389
            lload 6 /* end */
            lconst_1
            ladd
            aload 5 /* offset */
            invokevirtual java.lang.Long.longValue:()J
            lsub
            lstore 11 /* finalLength */
        start local 11 // long finalLength
        37: .line 390
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* file */
            aload 4 /* request */
            lload 9 /* finalOffset */
            lload 11 /* finalLength */
            aload 1 /* context */
            invokedynamic call(Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;Ljava/lang/String;Lio/vertx/core/http/HttpServerRequest;JJLio/vertx/ext/web/RoutingContext;)Ljava/util/concurrent/Callable;
              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;
                  io/vertx/ext/web/handler/impl/StaticHandlerImpl.lambda$5(Ljava/lang/String;Lio/vertx/core/http/HttpServerRequest;JJLio/vertx/ext/web/RoutingContext;)Lio/vertx/core/http/HttpServerResponse; (7)
                  ()Lio/vertx/core/http/HttpServerResponse;
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.wrapInTCCLSwitch:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            pop
        end local 11 // long finalLength
        end local 9 // long finalOffset
        38: .line 407
            goto 40
        39: .line 410
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* file */
            aload 4 /* request */
            aload 1 /* context */
            invokedynamic call(Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;Ljava/lang/String;Lio/vertx/core/http/HttpServerRequest;Lio/vertx/ext/web/RoutingContext;)Ljava/util/concurrent/Callable;
              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;
                  io/vertx/ext/web/handler/impl/StaticHandlerImpl.lambda$7(Ljava/lang/String;Lio/vertx/core/http/HttpServerRequest;Lio/vertx/ext/web/RoutingContext;)Lio/vertx/core/http/HttpServerResponse; (7)
                  ()Lio/vertx/core/http/HttpServerResponse;
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.wrapInTCCLSwitch:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
            pop
        40: .line 483
      StackMap locals:
      StackMap stack:
            return
        end local 8 // io.vertx.core.MultiMap headers
        end local 6 // long end
        end local 5 // java.lang.Long offset
        end local 4 // io.vertx.core.http.HttpServerRequest request
        end local 3 // io.vertx.core.file.FileProps fileProps
        end local 2 // java.lang.String file
        end local 1 // io.vertx.ext.web.RoutingContext context
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   41     0         this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0   41     1      context  Lio/vertx/ext/web/RoutingContext;
            0   41     2         file  Ljava/lang/String;
            0   41     3    fileProps  Lio/vertx/core/file/FileProps;
            1   41     4      request  Lio/vertx/core/http/HttpServerRequest;
            2   41     5       offset  Ljava/lang/Long;
            3   41     6          end  J
            4   41     8      headers  Lio/vertx/core/MultiMap;
            6   28     9        range  Ljava/lang/String;
            9   23    10            m  Ljava/util/regex/Matcher;
           11   19    11         part  Ljava/lang/String;
           36   38     9  finalOffset  J
           37   38    11  finalLength  J
      Exception table:
        from    to  target  type
          10    19      19  Class java.lang.NumberFormatException
          10    19      19  Class java.lang.IndexOutOfBoundsException
    MethodParameters:
           Name  Flags
      context    
      file       
      fileProps  

  public io.vertx.ext.web.handler.StaticHandler setAllowRootFileSystemAccess(boolean);
    descriptor: (Z)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // boolean allowRootFileSystemAccess
         0: .line 487
            aload 0 /* this */
            iload 1 /* allowRootFileSystemAccess */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.allowRootFileSystemAccess:Z
         1: .line 488
            aload 0 /* this */
            areturn
        end local 1 // boolean allowRootFileSystemAccess
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    2     0                       this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    2     1  allowRootFileSystemAccess  Z
    MethodParameters:
                           Name  Flags
      allowRootFileSystemAccess  

  public io.vertx.ext.web.handler.StaticHandler setWebRoot(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // java.lang.String webRoot
         0: .line 493
            aload 0 /* this */
            aload 1 /* webRoot */
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.setRoot:(Ljava/lang/String;)V
         1: .line 494
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String webRoot
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    2     1  webRoot  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      webRoot  

  public io.vertx.ext.web.handler.StaticHandler setFilesReadOnly(boolean);
    descriptor: (Z)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // boolean readOnly
         0: .line 499
            aload 0 /* this */
            iload 1 /* readOnly */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.filesReadOnly:Z
         1: .line 500
            aload 0 /* this */
            areturn
        end local 1 // boolean readOnly
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    2     1  readOnly  Z
    MethodParameters:
          Name  Flags
      readOnly  

  public io.vertx.ext.web.handler.StaticHandler setMaxAgeSeconds(long);
    descriptor: (J)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // long maxAgeSeconds
         0: .line 505
            lload 1 /* maxAgeSeconds */
            lconst_0
            lcmp
            ifge 2
         1: .line 506
            new java.lang.IllegalArgumentException
            dup
            ldc "timeout must be >= 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 508
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* maxAgeSeconds */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.maxAgeSeconds:J
         3: .line 509
            aload 0 /* this */
            areturn
        end local 1 // long maxAgeSeconds
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    4     1  maxAgeSeconds  J
    MethodParameters:
               Name  Flags
      maxAgeSeconds  

  public io.vertx.ext.web.handler.StaticHandler setMaxCacheSize(int);
    descriptor: (I)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // int maxCacheSize
         0: .line 514
            iload 1 /* maxCacheSize */
            iconst_1
            if_icmpge 2
         1: .line 515
            new java.lang.IllegalArgumentException
            dup
            ldc "maxCacheSize must be >= 1"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 517
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* maxCacheSize */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.maxCacheSize:I
         3: .line 518
            aload 0 /* this */
            areturn
        end local 1 // int maxCacheSize
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    4     1  maxCacheSize  I
    MethodParameters:
              Name  Flags
      maxCacheSize  

  public io.vertx.ext.web.handler.StaticHandler setCachingEnabled(boolean);
    descriptor: (Z)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // boolean enabled
         0: .line 523
            aload 0 /* this */
            iload 1 /* enabled */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.cachingEnabled:Z
         1: .line 524
            aload 0 /* this */
            areturn
        end local 1 // boolean enabled
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    2     1  enabled  Z
    MethodParameters:
         Name  Flags
      enabled  

  public io.vertx.ext.web.handler.StaticHandler setDirectoryListing(boolean);
    descriptor: (Z)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // boolean directoryListing
         0: .line 529
            aload 0 /* this */
            iload 1 /* directoryListing */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.directoryListing:Z
         1: .line 530
            aload 0 /* this */
            areturn
        end local 1 // boolean directoryListing
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    2     1  directoryListing  Z
    MethodParameters:
                  Name  Flags
      directoryListing  

  public io.vertx.ext.web.handler.StaticHandler setDirectoryTemplate(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // java.lang.String directoryTemplate
         0: .line 535
            aload 0 /* this */
            aload 1 /* directoryTemplate */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.directoryTemplateResource:Ljava/lang/String;
         1: .line 536
            aload 0 /* this */
            aconst_null
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.directoryTemplate:Ljava/lang/String;
         2: .line 537
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String directoryTemplate
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    3     1  directoryTemplate  Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      directoryTemplate  

  public io.vertx.ext.web.handler.StaticHandler setEnableRangeSupport(boolean);
    descriptor: (Z)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // boolean enableRangeSupport
         0: .line 542
            aload 0 /* this */
            iload 1 /* enableRangeSupport */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.rangeSupport:Z
         1: .line 543
            aload 0 /* this */
            areturn
        end local 1 // boolean enableRangeSupport
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    2     1  enableRangeSupport  Z
    MethodParameters:
                    Name  Flags
      enableRangeSupport  

  public io.vertx.ext.web.handler.StaticHandler setIncludeHidden(boolean);
    descriptor: (Z)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // boolean includeHidden
         0: .line 548
            aload 0 /* this */
            iload 1 /* includeHidden */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.includeHidden:Z
         1: .line 549
            aload 0 /* this */
            areturn
        end local 1 // boolean includeHidden
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    2     1  includeHidden  Z
    MethodParameters:
               Name  Flags
      includeHidden  

  public io.vertx.ext.web.handler.StaticHandler setCacheEntryTimeout(long);
    descriptor: (J)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // long timeout
         0: .line 554
            lload 1 /* timeout */
            lconst_1
            lcmp
            ifge 2
         1: .line 555
            new java.lang.IllegalArgumentException
            dup
            ldc "timeout must be >= 1"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 557
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* timeout */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.cacheEntryTimeout:J
         3: .line 558
            aload 0 /* this */
            areturn
        end local 1 // long timeout
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    4     1  timeout  J
    MethodParameters:
         Name  Flags
      timeout  

  public io.vertx.ext.web.handler.StaticHandler setIndexPage(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // java.lang.String indexPage
         0: .line 563
            aload 1 /* indexPage */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 564
            aload 1 /* indexPage */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 3
         2: .line 565
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* indexPage */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* indexPage */
         3: .line 567
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* indexPage */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.indexPage:Ljava/lang/String;
         4: .line 568
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String indexPage
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    5     1  indexPage  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      indexPage  

  public io.vertx.ext.web.handler.StaticHandler setAlwaysAsyncFS(boolean);
    descriptor: (Z)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // boolean alwaysAsyncFS
         0: .line 573
            aload 0 /* this */
            iload 1 /* alwaysAsyncFS */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.alwaysAsyncFS:Z
         1: .line 574
            aload 0 /* this */
            areturn
        end local 1 // boolean alwaysAsyncFS
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    2     1  alwaysAsyncFS  Z
    MethodParameters:
               Name  Flags
      alwaysAsyncFS  

  public io.vertx.ext.web.handler.StaticHandler setHttp2PushMapping(java.util.List<io.vertx.ext.web.Http2PushMapping>);
    descriptor: (Ljava/util/List;)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // java.util.List http2PushMap
         0: .line 579
            aload 1 /* http2PushMap */
            ifnull 2
         1: .line 580
            aload 0 /* this */
            new java.util.ArrayList
            dup
            aload 1 /* http2PushMap */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.http2PushMappings:Ljava/util/List;
         2: .line 582
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // java.util.List http2PushMap
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    3     1  http2PushMap  Ljava/util/List<Lio/vertx/ext/web/Http2PushMapping;>;
    Signature: (Ljava/util/List<Lio/vertx/ext/web/Http2PushMapping;>;)Lio/vertx/ext/web/handler/StaticHandler;
    MethodParameters:
              Name  Flags
      http2PushMap  

  public io.vertx.ext.web.handler.StaticHandler skipCompressionForMediaTypes(java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // java.util.Set mediaTypes
         0: .line 587
            aload 1 /* mediaTypes */
            ifnull 2
         1: .line 588
            aload 0 /* this */
            new java.util.HashSet
            dup
            aload 1 /* mediaTypes */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.compressedMediaTypes:Ljava/util/Set;
         2: .line 590
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // java.util.Set mediaTypes
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    3     1  mediaTypes  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;)Lio/vertx/ext/web/handler/StaticHandler;
    MethodParameters:
            Name  Flags
      mediaTypes  

  public io.vertx.ext.web.handler.StaticHandler skipCompressionForSuffixes(java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // java.util.Set fileSuffixes
         0: .line 595
            aload 1 /* fileSuffixes */
            ifnull 2
         1: .line 596
            aload 0 /* this */
            new java.util.HashSet
            dup
            aload 1 /* fileSuffixes */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.compressedFileSuffixes:Ljava/util/Set;
         2: .line 598
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // java.util.Set fileSuffixes
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    3     1  fileSuffixes  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;)Lio/vertx/ext/web/handler/StaticHandler;
    MethodParameters:
              Name  Flags
      fileSuffixes  

  public synchronized io.vertx.ext.web.handler.StaticHandler setEnableFSTuning(boolean);
    descriptor: (Z)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // boolean enableFSTuning
         0: .line 603
            aload 0 /* this */
            iload 1 /* enableFSTuning */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.tuning:Z
         1: .line 604
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.tuning:Z
            ifne 3
         2: .line 605
            aload 0 /* this */
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.resetTuning:()V
         3: .line 607
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // boolean enableFSTuning
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    4     1  enableFSTuning  Z
    MethodParameters:
                Name  Flags
      enableFSTuning  

  public io.vertx.ext.web.handler.StaticHandler setMaxAvgServeTimeNs(long);
    descriptor: (J)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // long maxAvgServeTimeNanoSeconds
         0: .line 612
            aload 0 /* this */
            lload 1 /* maxAvgServeTimeNanoSeconds */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.maxAvgServeTimeNanoSeconds:J
         1: .line 613
            aload 0 /* this */
            areturn
        end local 1 // long maxAvgServeTimeNanoSeconds
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    2     0                        this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    2     1  maxAvgServeTimeNanoSeconds  J
    MethodParameters:
                            Name  Flags
      maxAvgServeTimeNanoSeconds  

  public io.vertx.ext.web.handler.StaticHandler setSendVaryHeader(boolean);
    descriptor: (Z)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // boolean sendVaryHeader
         0: .line 618
            aload 0 /* this */
            iload 1 /* sendVaryHeader */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.sendVaryHeader:Z
         1: .line 619
            aload 0 /* this */
            areturn
        end local 1 // boolean sendVaryHeader
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    2     1  sendVaryHeader  Z
    MethodParameters:
                Name  Flags
      sendVaryHeader  

  public io.vertx.ext.web.handler.StaticHandler setDefaultContentEncoding(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/web/handler/StaticHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // java.lang.String contentEncoding
         0: .line 624
            aload 0 /* this */
            aload 1 /* contentEncoding */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.defaultContentEncoding:Ljava/lang/String;
         1: .line 625
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String contentEncoding
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    2     1  contentEncoding  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      contentEncoding  

  private java.util.Map<java.lang.String, io.vertx.ext.web.handler.impl.StaticHandlerImpl$CacheEntry> propsCache();
    descriptor: ()Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
         0: .line 629
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.propsCache:Ljava/util/Map;
            ifnonnull 2
         1: .line 630
            aload 0 /* this */
            new io.vertx.ext.web.impl.LRUCache
            dup
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.maxCacheSize:I
            invokespecial io.vertx.ext.web.impl.LRUCache.<init>:(I)V
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.propsCache:Ljava/util/Map;
         2: .line 632
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.propsCache:Ljava/util/Map;
            areturn
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lio/vertx/ext/web/handler/impl/StaticHandlerImpl$CacheEntry;>;

  private void removeCache(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // java.lang.String path
         0: .line 636
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.propsCache:Ljava/util/Map;
            ifnull 2
         1: .line 637
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.propsCache:Ljava/util/Map;
            aload 1 /* path */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 639
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String path
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    3     1  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  private java.util.Date parseDate(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Date;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // java.lang.String header
         0: .line 643
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.dateTimeFormatter:Ljava/text/DateFormat;
            aload 1 /* header */
            invokevirtual java.text.DateFormat.parse:(Ljava/lang/String;)Ljava/util/Date;
         1: areturn
         2: .line 644
      StackMap locals:
      StackMap stack: java.text.ParseException
            astore 2 /* e */
        start local 2 // java.text.ParseException e
         3: .line 645
            new io.vertx.core.VertxException
            dup
            aload 2 /* e */
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.text.ParseException e
        end local 1 // java.lang.String header
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    4     1  header  Ljava/lang/String;
            3    4     2       e  Ljava/text/ParseException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.text.ParseException
    MethodParameters:
        Name  Flags
      header  

  private java.lang.String getFile(java.lang.String, io.vertx.ext.web.RoutingContext);
    descriptor: (Ljava/lang/String;Lio/vertx/ext/web/RoutingContext;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // java.lang.String path
        start local 2 // io.vertx.ext.web.RoutingContext context
         0: .line 650
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.webRoot:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* path */
            aload 2 /* context */
            invokestatic io.vertx.ext.web.impl.Utils.pathOffset:(Ljava/lang/String;Lio/vertx/ext/web/RoutingContext;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* file */
        start local 3 // java.lang.String file
         1: .line 651
            getstatic io.vertx.ext.web.handler.impl.StaticHandlerImpl.log:Lio/vertx/core/logging/Logger;
            invokevirtual io.vertx.core.logging.Logger.isTraceEnabled:()Z
            ifeq 2
            getstatic io.vertx.ext.web.handler.impl.StaticHandlerImpl.log:Lio/vertx/core/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "File to serve is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* file */
            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.trace:(Ljava/lang/Object;)V
         2: .line 652
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* file */
            areturn
        end local 3 // java.lang.String file
        end local 2 // io.vertx.ext.web.RoutingContext context
        end local 1 // java.lang.String path
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    3     1     path  Ljava/lang/String;
            0    3     2  context  Lio/vertx/ext/web/RoutingContext;
            1    3     3     file  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      path     
      context  

  private void setRoot(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // java.lang.String webRoot
         0: .line 656
            aload 1 /* webRoot */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 657
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.allowRootFileSystemAccess:Z
            ifne 8
         2: .line 658
            invokestatic java.io.File.listRoots:()[Ljava/io/File;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 7
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl java.lang.String top int int java.io.File[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* root */
        start local 2 // java.io.File root
         4: .line 659
            aload 1 /* webRoot */
            aload 2 /* root */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 660
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "root cannot start with '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* root */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.io.File root
         6: .line 658
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         7: iload 3
            iload 4
            if_icmplt 3
         8: .line 664
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* webRoot */
            putfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.webRoot:Ljava/lang/String;
         9: .line 665
            return
        end local 1 // java.lang.String webRoot
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0   10     1  webRoot  Ljava/lang/String;
            4    6     2     root  Ljava/io/File;
    MethodParameters:
         Name  Flags
      webRoot  

  private void sendDirectoryListing(java.lang.String, io.vertx.ext.web.RoutingContext);
    descriptor: (Ljava/lang/String;Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // java.lang.String dir
        start local 2 // io.vertx.ext.web.RoutingContext context
         0: .line 668
            aload 2 /* context */
            invokeinterface io.vertx.ext.web.RoutingContext.vertx:()Lio/vertx/core/Vertx;
            invokeinterface io.vertx.core.Vertx.fileSystem:()Lio/vertx/core/file/FileSystem;
            astore 3 /* fileSystem */
        start local 3 // io.vertx.core.file.FileSystem fileSystem
         1: .line 669
            aload 2 /* context */
            invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
            astore 4 /* request */
        start local 4 // io.vertx.core.http.HttpServerRequest request
         2: .line 671
            aload 3 /* fileSystem */
            aload 1 /* dir */
            aload 0 /* this */
            aload 2 /* context */
            aload 4 /* request */
            invokedynamic handle(Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/http/HttpServerRequest;)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/ext/web/handler/impl/StaticHandlerImpl.lambda$12(Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/http/HttpServerRequest;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.file.FileSystem.readDir:(Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/core/file/FileSystem;
            pop
         3: .line 760
            return
        end local 4 // io.vertx.core.http.HttpServerRequest request
        end local 3 // io.vertx.core.file.FileSystem fileSystem
        end local 2 // io.vertx.ext.web.RoutingContext context
        end local 1 // java.lang.String dir
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    4     1         dir  Ljava/lang/String;
            0    4     2     context  Lio/vertx/ext/web/RoutingContext;
            1    4     3  fileSystem  Lio/vertx/core/file/FileSystem;
            2    4     4     request  Lio/vertx/core/http/HttpServerRequest;
    MethodParameters:
         Name  Flags
      dir      
      context  

  private java.lang.String getFileExtension(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 1 // java.lang.String file
         0: .line 763
            aload 1 /* file */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 2 /* li */
        start local 2 // int li
         1: .line 764
            iload 2 /* li */
            iconst_m1
            if_icmpeq 3
            iload 2 /* li */
            aload 1 /* file */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            if_icmpeq 3
         2: .line 765
            aload 1 /* file */
            iload 2 /* li */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
         3: .line 767
      StackMap locals: int
      StackMap stack:
            aconst_null
            areturn
        end local 2 // int li
        end local 1 // java.lang.String file
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    4     1  file  Ljava/lang/String;
            1    4     2    li  I
    MethodParameters:
      Name  Flags
      file  

  public void handle(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    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.ext.web.RoutingContext
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.handle:(Lio/vertx/ext/web/RoutingContext;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void lambda$0(io.vertx.ext.web.RoutingContext, boolean, java.lang.String, java.lang.String, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/ext/web/RoutingContext;ZLjava/lang/String;Ljava/lang/String;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=8, locals=6, args_size=6
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 5 // io.vertx.core.AsyncResult exists
         0: .line 187
            aload 5 /* exists */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 3
         1: .line 188
            aload 1
            aload 5 /* exists */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.ext.web.RoutingContext.fail:(Ljava/lang/Throwable;)V
         2: .line 189
            return
         3: .line 193
      StackMap locals:
      StackMap stack:
            aload 5 /* exists */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 8
         4: .line 194
            iload 2
            ifeq 6
         5: .line 195
            aload 0 /* this */
            aload 3
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.removeCache:(Ljava/lang/String;)V
         6: .line 197
      StackMap locals:
      StackMap stack:
            aload 1
            invokeinterface io.vertx.ext.web.RoutingContext.next:()V
         7: .line 198
            return
         8: .line 202
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1
            aload 4
            aload 0 /* this */
            iload 2
            aload 3
            aload 1
            aload 4
            invokedynamic handle(Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;ZLjava/lang/String;Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/ext/web/handler/impl/StaticHandlerImpl.lambda$1(ZLjava/lang/String;Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.getFileProps:(Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;Lio/vertx/core/Handler;)V
         9: .line 231
            return
        end local 5 // io.vertx.core.AsyncResult exists
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0   10     5  exists  Lio/vertx/core/AsyncResult<Ljava/lang/Boolean;>;

  private static io.vertx.core.file.FileSystem lambda$2(io.vertx.core.file.FileSystem, java.lang.String, io.vertx.core.Handler);
    descriptor: (Lio/vertx/core/file/FileSystem;Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/core/file/FileSystem;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 276
            aload 0
            aload 1
            aload 2
            invokeinterface io.vertx.core.file.FileSystem.exists:(Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/core/file/FileSystem;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception

  private static io.vertx.core.file.FileSystem lambda$3(io.vertx.core.file.FileSystem, java.lang.String, io.vertx.core.Handler);
    descriptor: (Lio/vertx/core/file/FileSystem;Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/core/file/FileSystem;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 282
            aload 0
            aload 1
            aload 2
            invokeinterface io.vertx.core.file.FileSystem.props:(Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/core/file/FileSystem;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception

  private static io.vertx.core.file.FileProps lambda$4(io.vertx.core.file.FileSystem, java.lang.String);
    descriptor: (Lio/vertx/core/file/FileSystem;Ljava/lang/String;)Lio/vertx/core/file/FileProps;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 290
            aload 0
            aload 1
            invokeinterface io.vertx.core.file.FileSystem.propsBlocking:(Ljava/lang/String;)Lio/vertx/core/file/FileProps;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception

  private io.vertx.core.http.HttpServerResponse lambda$5(java.lang.String, io.vertx.core.http.HttpServerRequest, long, long, io.vertx.ext.web.RoutingContext);
    descriptor: (Ljava/lang/String;Lio/vertx/core/http/HttpServerRequest;JJLio/vertx/ext/web/RoutingContext;)Lio/vertx/core/http/HttpServerResponse;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=9, args_size=6
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
         0: .line 392
            aload 1
            invokestatic io.vertx.core.http.impl.MimeMapping.getMimeTypeForFilename:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* contentType */
        start local 8 // java.lang.String contentType
         1: .line 393
            aload 8 /* contentType */
            ifnull 6
         2: .line 394
            aload 8 /* contentType */
            ldc "text"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 395
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            ldc "Content-Type"
            new java.lang.StringBuilder
            dup
            aload 8 /* contentType */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ";charset="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.defaultContentEncoding:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
            pop
         4: .line 396
            goto 6
         5: .line 397
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            ldc "Content-Type"
            aload 8 /* contentType */
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
            pop
         6: .line 401
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            aload 1
            lload 3
            lload 5
            aload 7
            invokedynamic handle(Lio/vertx/ext/web/RoutingContext;)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/ext/web/handler/impl/StaticHandlerImpl.lambda$6(Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.http.HttpServerResponse.sendFile:(Ljava/lang/String;JJLio/vertx/core/Handler;)Lio/vertx/core/http/HttpServerResponse;
            areturn
        end local 8 // java.lang.String contentType
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            1    7     8  contentType  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception

  private io.vertx.core.http.HttpServerResponse lambda$7(java.lang.String, io.vertx.core.http.HttpServerRequest, io.vertx.ext.web.RoutingContext);
    descriptor: (Ljava/lang/String;Lio/vertx/core/http/HttpServerRequest;Lio/vertx/ext/web/RoutingContext;)Lio/vertx/core/http/HttpServerResponse;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=9, locals=11, args_size=4
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
         0: .line 412
            aload 0 /* this */
            aload 1
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.getFileExtension:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* extension */
        start local 4 // java.lang.String extension
         1: .line 413
            aload 4 /* extension */
            invokestatic io.vertx.core.http.impl.MimeMapping.getMimeTypeForExtension:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* contentType */
        start local 5 // java.lang.String contentType
         2: .line 414
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.compressedMediaTypes:Ljava/util/Set;
            aload 5 /* contentType */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 3
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.compressedFileSuffixes:Ljava/util/Set;
            aload 4 /* extension */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 415
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            getstatic io.vertx.core.http.HttpHeaders.CONTENT_ENCODING:Ljava/lang/CharSequence;
            getstatic io.vertx.core.http.HttpHeaders.IDENTITY:Ljava/lang/CharSequence;
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Lio/vertx/core/http/HttpServerResponse;
            pop
         4: .line 417
      StackMap locals:
      StackMap stack:
            aload 5 /* contentType */
            ifnull 9
         5: .line 418
            aload 5 /* contentType */
            ldc "text"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 8
         6: .line 419
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            ldc "Content-Type"
            new java.lang.StringBuilder
            dup
            aload 5 /* contentType */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ";charset="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.defaultContentEncoding:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
            pop
         7: .line 420
            goto 9
         8: .line 421
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            ldc "Content-Type"
            aload 5 /* contentType */
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
            pop
         9: .line 426
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.version:()Lio/vertx/core/http/HttpVersion;
            getstatic io.vertx.core.http.HttpVersion.HTTP_2:Lio/vertx/core/http/HttpVersion;
            if_acmpne 18
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.http2PushMappings:Ljava/util/List;
            ifnull 18
        10: .line 427
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.http2PushMappings:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 16
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl java.lang.String io.vertx.core.http.HttpServerRequest io.vertx.ext.web.RoutingContext java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
        11: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.ext.web.Http2PushMapping
            astore 6 /* dependency */
        start local 6 // io.vertx.ext.web.Http2PushMapping dependency
        12: .line 428
            aload 6 /* dependency */
            invokevirtual io.vertx.ext.web.Http2PushMapping.isNoPush:()Z
            ifne 16
        13: .line 429
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.webRoot:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* dependency */
            invokevirtual io.vertx.ext.web.Http2PushMapping.getFilePath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* dep */
        start local 8 // java.lang.String dep
        14: .line 430
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            astore 9 /* response */
        start local 9 // io.vertx.core.http.HttpServerResponse response
        15: .line 433
            aload 0 /* this */
            aload 3
            aload 8 /* dep */
            aload 0 /* this */
            aload 2
            aload 9 /* response */
            aload 6 /* dependency */
            aload 1
            aload 5 /* contentType */
            invokedynamic handle(Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;Lio/vertx/core/http/HttpServerRequest;Lio/vertx/core/http/HttpServerResponse;Lio/vertx/ext/web/Http2PushMapping;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/ext/web/handler/impl/StaticHandlerImpl.lambda$8(Lio/vertx/core/http/HttpServerRequest;Lio/vertx/core/http/HttpServerResponse;Lio/vertx/ext/web/Http2PushMapping;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.getFileProps:(Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;Lio/vertx/core/Handler;)V
        end local 9 // io.vertx.core.http.HttpServerResponse response
        end local 8 // java.lang.String dep
        end local 6 // io.vertx.ext.web.Http2PushMapping dependency
        16: .line 427
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        17: .line 456
            goto 27
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl java.lang.String io.vertx.core.http.HttpServerRequest io.vertx.ext.web.RoutingContext java.lang.String java.lang.String
      StackMap stack:
        18: aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.http2PushMappings:Ljava/util/List;
            ifnull 27
        19: .line 458
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            astore 6 /* response */
        start local 6 // io.vertx.core.http.HttpServerResponse response
        20: .line 459
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* links */
        start local 7 // java.util.List links
        21: .line 460
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.http2PushMappings:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 25
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl java.lang.String io.vertx.core.http.HttpServerRequest io.vertx.ext.web.RoutingContext java.lang.String java.lang.String io.vertx.core.http.HttpServerResponse java.util.List top java.util.Iterator
      StackMap stack:
        22: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.ext.web.Http2PushMapping
            astore 8 /* dependency */
        start local 8 // io.vertx.ext.web.Http2PushMapping dependency
        23: .line 461
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.webRoot:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* dependency */
            invokevirtual io.vertx.ext.web.Http2PushMapping.getFilePath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* dep */
        start local 10 // java.lang.String dep
        24: .line 463
            aload 0 /* this */
            aload 3
            aload 10 /* dep */
            aload 0 /* this */
            aload 2
            aload 7 /* links */
            aload 8 /* dependency */
            invokedynamic handle(Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;Lio/vertx/core/http/HttpServerRequest;Ljava/util/List;Lio/vertx/ext/web/Http2PushMapping;)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/ext/web/handler/impl/StaticHandlerImpl.lambda$10(Lio/vertx/core/http/HttpServerRequest;Ljava/util/List;Lio/vertx/ext/web/Http2PushMapping;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.getFileProps:(Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;Lio/vertx/core/Handler;)V
        end local 10 // java.lang.String dep
        end local 8 // io.vertx.ext.web.Http2PushMapping dependency
        25: .line 460
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        26: .line 472
            aload 6 /* response */
            ldc "Link"
            aload 7 /* links */
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/Iterable;)Lio/vertx/core/http/HttpServerResponse;
            pop
        end local 7 // java.util.List links
        end local 6 // io.vertx.core.http.HttpServerResponse response
        27: .line 475
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl java.lang.String io.vertx.core.http.HttpServerRequest io.vertx.ext.web.RoutingContext java.lang.String java.lang.String
      StackMap stack:
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            aload 1
            aload 3
            invokedynamic handle(Lio/vertx/ext/web/RoutingContext;)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/ext/web/handler/impl/StaticHandlerImpl.lambda$11(Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.http.HttpServerResponse.sendFile:(Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/core/http/HttpServerResponse;
            areturn
        end local 5 // java.lang.String contentType
        end local 4 // java.lang.String extension
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   28     0         this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            1   28     4    extension  Ljava/lang/String;
            2   28     5  contentType  Ljava/lang/String;
           12   16     6   dependency  Lio/vertx/ext/web/Http2PushMapping;
           14   16     8          dep  Ljava/lang/String;
           15   16     9     response  Lio/vertx/core/http/HttpServerResponse;
           20   27     6     response  Lio/vertx/core/http/HttpServerResponse;
           21   27     7        links  Ljava/util/List<Ljava/lang/String;>;
           23   25     8   dependency  Lio/vertx/ext/web/Http2PushMapping;
           24   25    10          dep  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception

  private void lambda$12(io.vertx.ext.web.RoutingContext, io.vertx.core.http.HttpServerRequest, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/http/HttpServerRequest;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=11, args_size=4
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 3 // io.vertx.core.AsyncResult asyncResult
         0: .line 672
            aload 3 /* asyncResult */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 3
         1: .line 673
            aload 1
            aload 3 /* asyncResult */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.ext.web.RoutingContext.fail:(Ljava/lang/Throwable;)V
         2: .line 674
            goto 67
         3: .line 676
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.headers:()Lio/vertx/core/MultiMap;
            ldc "accept"
            invokeinterface io.vertx.core.MultiMap.get:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* accept */
        start local 4 // java.lang.String accept
         4: .line 677
            aload 4 /* accept */
            ifnonnull 6
         5: .line 678
            ldc "text/plain"
            astore 4 /* accept */
         6: .line 681
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* accept */
            ldc "html"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 44
         7: .line 682
            aload 1
            invokeinterface io.vertx.ext.web.RoutingContext.normalisedPath:()Ljava/lang/String;
            astore 5 /* normalizedDir */
        start local 5 // java.lang.String normalizedDir
         8: .line 683
            aload 5 /* normalizedDir */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 10
         9: .line 684
            new java.lang.StringBuilder
            dup
            aload 5 /* normalizedDir */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* normalizedDir */
        10: .line 688
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "<ul id=\"files\">"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 7 /* files */
        start local 7 // java.lang.StringBuilder files
        11: .line 690
            aload 3 /* asyncResult */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast java.util.List
            astore 8 /* list */
        start local 8 // java.util.List list
        12: .line 691
            aload 8 /* list */
            invokestatic java.util.Collections.sort:(Ljava/util/List;)V
        13: .line 693
            aload 8 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 26
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.http.HttpServerRequest io.vertx.core.AsyncResult java.lang.String java.lang.String top java.lang.StringBuilder java.util.List top java.util.Iterator
      StackMap stack:
        14: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* s */
        start local 9 // java.lang.String s
        15: .line 694
            aload 9 /* s */
            aload 9 /* s */
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 6 /* file */
        start local 6 // java.lang.String file
        16: .line 696
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.includeHidden:Z
            ifne 18
            aload 6 /* file */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 46
            if_icmpne 18
        17: .line 697
            goto 26
        18: .line 699
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.http.HttpServerRequest io.vertx.core.AsyncResult java.lang.String java.lang.String java.lang.String java.lang.StringBuilder java.util.List java.lang.String java.util.Iterator
      StackMap stack:
            aload 7 /* files */
            ldc "<li><a href=\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 700
            aload 7 /* files */
            aload 5 /* normalizedDir */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 701
            aload 7 /* files */
            aload 6 /* file */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        21: .line 702
            aload 7 /* files */
            ldc "\" title=\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        22: .line 703
            aload 7 /* files */
            aload 6 /* file */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 704
            aload 7 /* files */
            ldc "\">"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        24: .line 705
            aload 7 /* files */
            aload 6 /* file */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        25: .line 706
            aload 7 /* files */
            ldc "</a></li>"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 9 // java.lang.String s
        end local 6 // java.lang.String file
        26: .line 693
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.http.HttpServerRequest io.vertx.core.AsyncResult java.lang.String java.lang.String top java.lang.StringBuilder java.util.List top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        27: .line 709
            aload 7 /* files */
            ldc "</ul>"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        28: .line 712
            iconst_0
            istore 9 /* slashPos */
        start local 9 // int slashPos
        29: .line 713
            aload 5 /* normalizedDir */
            invokevirtual java.lang.String.length:()I
            iconst_2
            isub
            istore 10 /* i */
        start local 10 // int i
        30: goto 35
        31: .line 714
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.http.HttpServerRequest io.vertx.core.AsyncResult java.lang.String java.lang.String top java.lang.StringBuilder java.util.List int int
      StackMap stack:
            aload 5 /* normalizedDir */
            iload 10 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 34
        32: .line 715
            iload 10 /* i */
            istore 9 /* slashPos */
        33: .line 716
            goto 36
        34: .line 713
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ -1
      StackMap locals:
      StackMap stack:
        35: iload 10 /* i */
            ifgt 31
        end local 10 // int i
        36: .line 720
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "<a href=\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* normalizedDir */
            iconst_0
            iload 9 /* slashPos */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\">..</a>"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* parent */
        start local 10 // java.lang.String parent
        37: .line 722
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            ldc "content-type"
            ldc "text/html"
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
            pop
        38: .line 723
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
        39: .line 724
            aload 0 /* this */
            aload 1
            invokeinterface io.vertx.ext.web.RoutingContext.vertx:()Lio/vertx/core/Vertx;
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.directoryTemplate:(Lio/vertx/core/Vertx;)Ljava/lang/String;
            ldc "{directory}"
            aload 5 /* normalizedDir */
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
        40: .line 725
            ldc "{parent}"
            aload 10 /* parent */
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
        41: .line 726
            ldc "{files}"
            aload 7 /* files */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
        42: .line 723
            invokeinterface io.vertx.core.http.HttpServerResponse.end:(Ljava/lang/String;)V
        end local 10 // java.lang.String parent
        end local 9 // int slashPos
        end local 8 // java.util.List list
        end local 7 // java.lang.StringBuilder files
        end local 5 // java.lang.String normalizedDir
        43: .line 727
            goto 67
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.http.HttpServerRequest io.vertx.core.AsyncResult java.lang.String
      StackMap stack:
        44: aload 4 /* accept */
            ldc "json"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 56
        45: .line 729
            new io.vertx.core.json.JsonArray
            dup
            invokespecial io.vertx.core.json.JsonArray.<init>:()V
            astore 6 /* json */
        start local 6 // io.vertx.core.json.JsonArray json
        46: .line 731
            aload 3 /* asyncResult */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 52
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.http.HttpServerRequest io.vertx.core.AsyncResult java.lang.String top io.vertx.core.json.JsonArray top java.util.Iterator
      StackMap stack:
        47: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* s */
        start local 7 // java.lang.String s
        48: .line 732
            aload 7 /* s */
            aload 7 /* s */
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 5 /* file */
        start local 5 // java.lang.String file
        49: .line 734
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.includeHidden:Z
            ifne 51
            aload 5 /* file */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 46
            if_icmpne 51
        50: .line 735
            goto 52
        51: .line 737
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.http.HttpServerRequest io.vertx.core.AsyncResult java.lang.String java.lang.String io.vertx.core.json.JsonArray java.lang.String java.util.Iterator
      StackMap stack:
            aload 6 /* json */
            aload 5 /* file */
            invokevirtual io.vertx.core.json.JsonArray.add:(Ljava/lang/String;)Lio/vertx/core/json/JsonArray;
            pop
        end local 7 // java.lang.String s
        end local 5 // java.lang.String file
        52: .line 731
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.http.HttpServerRequest io.vertx.core.AsyncResult java.lang.String top io.vertx.core.json.JsonArray top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 47
        53: .line 739
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            ldc "content-type"
            ldc "application/json"
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
            pop
        54: .line 740
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            aload 6 /* json */
            invokevirtual io.vertx.core.json.JsonArray.encode:()Ljava/lang/String;
            invokeinterface io.vertx.core.http.HttpServerResponse.end:(Ljava/lang/String;)V
        end local 6 // io.vertx.core.json.JsonArray json
        55: .line 741
            goto 67
        56: .line 743
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.http.HttpServerRequest io.vertx.core.AsyncResult java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 6 /* buffer */
        start local 6 // java.lang.StringBuilder buffer
        57: .line 745
            aload 3 /* asyncResult */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 64
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.http.HttpServerRequest io.vertx.core.AsyncResult java.lang.String top java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
        58: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* s */
        start local 7 // java.lang.String s
        59: .line 746
            aload 7 /* s */
            aload 7 /* s */
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 5 /* file */
        start local 5 // java.lang.String file
        60: .line 748
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.includeHidden:Z
            ifne 62
            aload 5 /* file */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 46
            if_icmpne 62
        61: .line 749
            goto 64
        62: .line 751
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.http.HttpServerRequest io.vertx.core.AsyncResult java.lang.String java.lang.String java.lang.StringBuilder java.lang.String java.util.Iterator
      StackMap stack:
            aload 6 /* buffer */
            aload 5 /* file */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        63: .line 752
            aload 6 /* buffer */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 7 // java.lang.String s
        end local 5 // java.lang.String file
        64: .line 745
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.http.HttpServerRequest io.vertx.core.AsyncResult java.lang.String top java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 58
        65: .line 755
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            ldc "content-type"
            ldc "text/plain"
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
            pop
        66: .line 756
            aload 2
            invokeinterface io.vertx.core.http.HttpServerRequest.response:()Lio/vertx/core/http/HttpServerResponse;
            aload 6 /* buffer */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.http.HttpServerResponse.end:(Ljava/lang/String;)V
        end local 6 // java.lang.StringBuilder buffer
        end local 4 // java.lang.String accept
        67: .line 759
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.ext.web.RoutingContext io.vertx.core.http.HttpServerRequest io.vertx.core.AsyncResult
      StackMap stack:
            return
        end local 3 // io.vertx.core.AsyncResult asyncResult
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   68     0           this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0   68     3    asyncResult  Lio/vertx/core/AsyncResult<Ljava/util/List<Ljava/lang/String;>;>;
            4   67     4         accept  Ljava/lang/String;
            8   43     5  normalizedDir  Ljava/lang/String;
           16   26     6           file  Ljava/lang/String;
           11   43     7          files  Ljava/lang/StringBuilder;
           12   43     8           list  Ljava/util/List<Ljava/lang/String;>;
           15   26     9              s  Ljava/lang/String;
           29   43     9       slashPos  I
           30   36    10              i  I
           37   43    10         parent  Ljava/lang/String;
           49   52     5           file  Ljava/lang/String;
           46   55     6           json  Lio/vertx/core/json/JsonArray;
           48   52     7              s  Ljava/lang/String;
           60   64     5           file  Ljava/lang/String;
           57   67     6         buffer  Ljava/lang/StringBuilder;
           59   64     7              s  Ljava/lang/String;

  private void lambda$1(boolean, java.lang.String, io.vertx.ext.web.RoutingContext, java.lang.String, io.vertx.core.AsyncResult);
    descriptor: (ZLjava/lang/String;Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=8, args_size=6
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 5 // io.vertx.core.AsyncResult res
         0: .line 203
            aload 5 /* res */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 20
         1: .line 204
            aload 5 /* res */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.core.file.FileProps
            astore 6 /* fprops */
        start local 6 // io.vertx.core.file.FileProps fprops
         2: .line 205
            aload 6 /* fprops */
            ifnonnull 7
         3: .line 207
            iload 1
            ifeq 5
         4: .line 208
            aload 0 /* this */
            aload 2
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.removeCache:(Ljava/lang/String;)V
         5: .line 210
      StackMap locals: io.vertx.core.file.FileProps
      StackMap stack:
            aload 3
            invokeinterface io.vertx.ext.web.RoutingContext.next:()V
         6: .line 211
            goto 21
      StackMap locals:
      StackMap stack:
         7: aload 6 /* fprops */
            invokeinterface io.vertx.core.file.FileProps.isDirectory:()Z
            ifeq 12
         8: .line 212
            iload 1
            ifeq 10
         9: .line 213
            aload 0 /* this */
            aload 2
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.removeCache:(Ljava/lang/String;)V
        10: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3
            aload 2
            aload 4
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.sendDirectory:(Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;Ljava/lang/String;)V
        11: .line 216
            goto 21
        12: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.cachingEnabled:Z
            ifeq 18
        13: .line 218
            new io.vertx.ext.web.handler.impl.StaticHandlerImpl$CacheEntry
            dup
            aload 0 /* this */
            aload 6 /* fprops */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokespecial io.vertx.ext.web.handler.impl.StaticHandlerImpl$CacheEntry.<init>:(Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;Lio/vertx/core/file/FileProps;J)V
            astore 7 /* now */
        start local 7 // io.vertx.ext.web.handler.impl.StaticHandlerImpl$CacheEntry now
        14: .line 219
            aload 0 /* this */
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.propsCache:()Ljava/util/Map;
            aload 2
            aload 7 /* now */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 220
            aload 7 /* now */
            aload 3
            invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl$CacheEntry.shouldUseCached:(Lio/vertx/core/http/HttpServerRequest;)Z
            ifeq 18
        16: .line 221
            aload 3
            invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
            getstatic io.netty.handler.codec.http.HttpResponseStatus.NOT_MODIFIED:Lio/netty/handler/codec/http/HttpResponseStatus;
            invokevirtual io.netty.handler.codec.http.HttpResponseStatus.code:()I
            invokeinterface io.vertx.core.http.HttpServerResponse.setStatusCode:(I)Lio/vertx/core/http/HttpServerResponse;
            invokeinterface io.vertx.core.http.HttpServerResponse.end:()V
        17: .line 222
            return
        end local 7 // io.vertx.ext.web.handler.impl.StaticHandlerImpl$CacheEntry now
        18: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3
            aload 4
            aload 6 /* fprops */
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.sendFile:(Lio/vertx/ext/web/RoutingContext;Ljava/lang/String;Lio/vertx/core/file/FileProps;)V
        end local 6 // io.vertx.core.file.FileProps fprops
        19: .line 227
            goto 21
        20: .line 228
      StackMap locals:
      StackMap stack:
            aload 3
            aload 5 /* res */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.ext.web.RoutingContext.fail:(Ljava/lang/Throwable;)V
        21: .line 230
      StackMap locals:
      StackMap stack:
            return
        end local 5 // io.vertx.core.AsyncResult res
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   22     0    this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0   22     5     res  Lio/vertx/core/AsyncResult<Lio/vertx/core/file/FileProps;>;
            2   19     6  fprops  Lio/vertx/core/file/FileProps;
           14   18     7     now  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl$CacheEntry;

  private static void lambda$6(io.vertx.ext.web.RoutingContext, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // io.vertx.core.AsyncResult res2
         0: .line 402
            aload 1 /* res2 */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 2
         1: .line 403
            aload 0
            aload 1 /* res2 */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.ext.web.RoutingContext.fail:(Ljava/lang/Throwable;)V
         2: .line 405
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.AsyncResult res2
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1  res2  Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;

  private void lambda$8(io.vertx.core.http.HttpServerRequest, io.vertx.core.http.HttpServerResponse, io.vertx.ext.web.Http2PushMapping, java.lang.String, java.lang.String, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/http/HttpServerRequest;Lio/vertx/core/http/HttpServerResponse;Lio/vertx/ext/web/Http2PushMapping;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 6 // io.vertx.core.AsyncResult filePropsAsyncResult
         0: .line 434
            aload 6 /* filePropsAsyncResult */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 3
         1: .line 436
            aload 0 /* this */
            aload 1
            aload 6 /* filePropsAsyncResult */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.core.file.FileProps
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.writeCacheHeaders:(Lio/vertx/core/http/HttpServerRequest;Lio/vertx/core/file/FileProps;)V
         2: .line 437
            aload 2
            getstatic io.vertx.core.http.HttpMethod.GET:Lio/vertx/core/http/HttpMethod;
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3
            invokevirtual io.vertx.ext.web.Http2PushMapping.getFilePath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* this */
            aload 4
            aload 5
            aload 3
            invokedynamic handle(Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;Ljava/lang/String;Ljava/lang/String;Lio/vertx/ext/web/Http2PushMapping;)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/ext/web/handler/impl/StaticHandlerImpl.lambda$9(Ljava/lang/String;Ljava/lang/String;Lio/vertx/ext/web/Http2PushMapping;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.http.HttpServerResponse.push:(Lio/vertx/core/http/HttpMethod;Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/core/http/HttpServerResponse;
            pop
         3: .line 452
      StackMap locals:
      StackMap stack:
            return
        end local 6 // io.vertx.core.AsyncResult filePropsAsyncResult
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    4     0                  this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    4     6  filePropsAsyncResult  Lio/vertx/core/AsyncResult<Lio/vertx/core/file/FileProps;>;

  private void lambda$10(io.vertx.core.http.HttpServerRequest, java.util.List, io.vertx.ext.web.Http2PushMapping, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/http/HttpServerRequest;Ljava/util/List;Lio/vertx/ext/web/Http2PushMapping;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 4 // io.vertx.core.AsyncResult filePropsAsyncResult
         0: .line 464
            aload 4 /* filePropsAsyncResult */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 7
         1: .line 466
            aload 0 /* this */
            aload 1
            aload 4 /* filePropsAsyncResult */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.core.file.FileProps
            invokevirtual io.vertx.ext.web.handler.impl.StaticHandlerImpl.writeCacheHeaders:(Lio/vertx/core/http/HttpServerRequest;Lio/vertx/core/file/FileProps;)V
         2: .line 467
            aload 2
            new java.lang.StringBuilder
            dup
            ldc "<"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3
            invokevirtual io.vertx.ext.web.Http2PushMapping.getFilePath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ">; rel=preload; as="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 468
            aload 3
            invokevirtual io.vertx.ext.web.Http2PushMapping.getExtensionTarget:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3
            invokevirtual io.vertx.ext.web.Http2PushMapping.isNoPush:()Z
            ifeq 4
            ldc "; nopush"
            goto 5
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.core.http.HttpServerRequest java.util.List io.vertx.ext.web.Http2PushMapping io.vertx.core.AsyncResult
      StackMap stack: java.util.List java.lang.StringBuilder
         4: ldc ""
      StackMap locals: io.vertx.ext.web.handler.impl.StaticHandlerImpl io.vertx.core.http.HttpServerRequest java.util.List io.vertx.ext.web.Http2PushMapping io.vertx.core.AsyncResult
      StackMap stack: java.util.List java.lang.StringBuilder java.lang.String
         5: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 467
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 470
      StackMap locals:
      StackMap stack:
            return
        end local 4 // io.vertx.core.AsyncResult filePropsAsyncResult
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    8     0                  this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0    8     4  filePropsAsyncResult  Lio/vertx/core/AsyncResult<Lio/vertx/core/file/FileProps;>;

  private static void lambda$11(io.vertx.ext.web.RoutingContext, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // io.vertx.core.AsyncResult res2
         0: .line 476
            aload 1 /* res2 */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 2
         1: .line 477
            aload 0
            aload 1 /* res2 */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.ext.web.RoutingContext.fail:(Ljava/lang/Throwable;)V
         2: .line 479
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.AsyncResult res2
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1  res2  Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;

  private void lambda$9(java.lang.String, java.lang.String, io.vertx.ext.web.Http2PushMapping, io.vertx.core.AsyncResult);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lio/vertx/ext/web/Http2PushMapping;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
        start local 4 // io.vertx.core.AsyncResult pushAsyncResult
         0: .line 438
            aload 4 /* pushAsyncResult */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 9
         1: .line 439
            aload 4 /* pushAsyncResult */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.core.http.HttpServerResponse
            astore 5 /* res */
        start local 5 // io.vertx.core.http.HttpServerResponse res
         2: .line 440
            aload 1
            invokestatic io.vertx.core.http.impl.MimeMapping.getMimeTypeForExtension:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* depContentType */
        start local 6 // java.lang.String depContentType
         3: .line 441
            aload 6 /* depContentType */
            ifnull 8
         4: .line 442
            aload 6 /* depContentType */
            ldc "text"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
         5: .line 443
            aload 5 /* res */
            ldc "Content-Type"
            new java.lang.StringBuilder
            dup
            aload 2
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ";charset="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.defaultContentEncoding:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
            pop
         6: .line 444
            goto 8
         7: .line 445
      StackMap locals: io.vertx.core.http.HttpServerResponse java.lang.String
      StackMap stack:
            aload 5 /* res */
            ldc "Content-Type"
            aload 2
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
            pop
         8: .line 448
      StackMap locals:
      StackMap stack:
            aload 5 /* res */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield io.vertx.ext.web.handler.impl.StaticHandlerImpl.webRoot:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3
            invokevirtual io.vertx.ext.web.Http2PushMapping.getFilePath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.http.HttpServerResponse.sendFile:(Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
            pop
        end local 6 // java.lang.String depContentType
        end local 5 // io.vertx.core.http.HttpServerResponse res
         9: .line 450
      StackMap locals:
      StackMap stack:
            return
        end local 4 // io.vertx.core.AsyncResult pushAsyncResult
        end local 0 // io.vertx.ext.web.handler.impl.StaticHandlerImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lio/vertx/ext/web/handler/impl/StaticHandlerImpl;
            0   10     4  pushAsyncResult  Lio/vertx/core/AsyncResult<Lio/vertx/core/http/HttpServerResponse;>;
            2    9     5              res  Lio/vertx/core/http/HttpServerResponse;
            3    9     6   depContentType  Ljava/lang/String;
}
SourceFile: "StaticHandlerImpl.java"
NestMembers:
  io.vertx.ext.web.handler.impl.StaticHandlerImpl$CacheEntry
InnerClasses:
  private final CacheEntry = io.vertx.ext.web.handler.impl.StaticHandlerImpl$CacheEntry of io.vertx.ext.web.handler.impl.StaticHandlerImpl
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles