public class org.apache.catalina.servlets.WebdavServlet extends org.apache.catalina.servlets.DefaultServlet
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.catalina.servlets.WebdavServlet
  super_class: org.apache.catalina.servlets.DefaultServlet
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final org.apache.catalina.util.URLEncoder URL_ENCODER_XML;
    descriptor: Lorg/apache/catalina/util/URLEncoder;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  protected static final java.lang.String DEFAULT_NAMESPACE;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "DAV:"

  protected static final org.apache.tomcat.util.http.ConcurrentDateFormat creationDateFormat;
    descriptor: Lorg/apache/tomcat/util/http/ConcurrentDateFormat;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  private final java.util.Hashtable<java.lang.String, org.apache.catalina.servlets.WebdavServlet$LockInfo> resourceLocks;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Hashtable<Ljava/lang/String;Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;>;

  private final java.util.Hashtable<java.lang.String, java.util.Vector<java.lang.String>> lockNullResources;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/util/Vector<Ljava/lang/String;>;>;

  private final java.util.Vector<org.apache.catalina.servlets.WebdavServlet$LockInfo> collectionLocks;
    descriptor: Ljava/util/Vector;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Vector<Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;>;

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 139
            getstatic org.apache.catalina.util.URLEncoder.DEFAULT:Lorg/apache/catalina/util/URLEncoder;
            invokevirtual org.apache.catalina.util.URLEncoder.clone:()Ljava/lang/Object;
            checkcast org.apache.catalina.util.URLEncoder
            putstatic org.apache.catalina.servlets.WebdavServlet.URL_ENCODER_XML:Lorg/apache/catalina/util/URLEncoder;
         1: .line 143
            getstatic org.apache.catalina.servlets.WebdavServlet.URL_ENCODER_XML:Lorg/apache/catalina/util/URLEncoder;
            bipush 38
            invokevirtual org.apache.catalina.util.URLEncoder.removeSafeCharacter:(C)V
         2: .line 207
            new org.apache.tomcat.util.http.ConcurrentDateFormat
            dup
            ldc "yyyy-MM-dd'T'HH:mm:ss'Z'"
            getstatic java.util.Locale.US:Ljava/util/Locale;
         3: .line 208
            ldc "GMT"
            invokestatic java.util.TimeZone.getTimeZone:(Ljava/lang/String;)Ljava/util/TimeZone;
         4: .line 207
            invokespecial org.apache.tomcat.util.http.ConcurrentDateFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;Ljava/util/TimeZone;)V
         5: .line 206
            putstatic org.apache.catalina.servlets.WebdavServlet.creationDateFormat:Lorg/apache/tomcat/util/http/ConcurrentDateFormat;
         6: .line 208
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
         0: .line 130
            aload 0 /* this */
            invokespecial org.apache.catalina.servlets.DefaultServlet.<init>:()V
         1: .line 219
            aload 0 /* this */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield org.apache.catalina.servlets.WebdavServlet.resourceLocks:Ljava/util/Hashtable;
         2: .line 230
            aload 0 /* this */
         3: .line 231
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield org.apache.catalina.servlets.WebdavServlet.lockNullResources:Ljava/util/Hashtable;
         4: .line 240
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield org.apache.catalina.servlets.WebdavServlet.collectionLocks:Ljava/util/Vector;
         5: .line 246
            aload 0 /* this */
            ldc "catalina"
            putfield org.apache.catalina.servlets.WebdavServlet.secret:Ljava/lang/String;
         6: .line 253
            aload 0 /* this */
            iconst_3
            putfield org.apache.catalina.servlets.WebdavServlet.maxDepth:I
         7: .line 260
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.servlets.WebdavServlet.allowSpecialPaths:Z
         8: .line 130
            return
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/apache/catalina/servlets/WebdavServlet;

  public void init();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
         0: .line 273
            aload 0 /* this */
            invokespecial org.apache.catalina.servlets.DefaultServlet.init:()V
         1: .line 275
            aload 0 /* this */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getServletConfig:()Ljakarta/servlet/ServletConfig;
            ldc "secret"
            invokeinterface jakarta.servlet.ServletConfig.getInitParameter:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 3
         2: .line 276
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getServletConfig:()Ljakarta/servlet/ServletConfig;
            ldc "secret"
            invokeinterface jakarta.servlet.ServletConfig.getInitParameter:(Ljava/lang/String;)Ljava/lang/String;
            putfield org.apache.catalina.servlets.WebdavServlet.secret:Ljava/lang/String;
         3: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getServletConfig:()Ljakarta/servlet/ServletConfig;
            ldc "maxDepth"
            invokeinterface jakarta.servlet.ServletConfig.getInitParameter:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 7
         4: .line 279
            aload 0 /* this */
         5: .line 280
            aload 0 /* this */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getServletConfig:()Ljakarta/servlet/ServletConfig;
            ldc "maxDepth"
            invokeinterface jakarta.servlet.ServletConfig.getInitParameter:(Ljava/lang/String;)Ljava/lang/String;
         6: .line 279
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield org.apache.catalina.servlets.WebdavServlet.maxDepth:I
         7: .line 282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getServletConfig:()Ljakarta/servlet/ServletConfig;
            ldc "allowSpecialPaths"
            invokeinterface jakarta.servlet.ServletConfig.getInitParameter:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 11
         8: .line 283
            aload 0 /* this */
         9: .line 284
            aload 0 /* this */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getServletConfig:()Ljakarta/servlet/ServletConfig;
            ldc "allowSpecialPaths"
            invokeinterface jakarta.servlet.ServletConfig.getInitParameter:(Ljava/lang/String;)Ljava/lang/String;
        10: .line 283
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            putfield org.apache.catalina.servlets.WebdavServlet.allowSpecialPaths:Z
        11: .line 285
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/catalina/servlets/WebdavServlet;
    Exceptions:
      throws jakarta.servlet.ServletException

  protected javax.xml.parsers.DocumentBuilder getDocumentBuilder();
    descriptor: ()Ljavax/xml/parsers/DocumentBuilder;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
         0: .line 299
            aconst_null
            astore 1 /* documentBuilder */
        start local 1 // javax.xml.parsers.DocumentBuilder documentBuilder
         1: .line 300
            aconst_null
            astore 2 /* documentBuilderFactory */
        start local 2 // javax.xml.parsers.DocumentBuilderFactory documentBuilderFactory
         2: .line 302
            invokestatic javax.xml.parsers.DocumentBuilderFactory.newInstance:()Ljavax/xml/parsers/DocumentBuilderFactory;
            astore 2 /* documentBuilderFactory */
         3: .line 303
            aload 2 /* documentBuilderFactory */
            iconst_1
            invokevirtual javax.xml.parsers.DocumentBuilderFactory.setNamespaceAware:(Z)V
         4: .line 304
            aload 2 /* documentBuilderFactory */
            iconst_0
            invokevirtual javax.xml.parsers.DocumentBuilderFactory.setExpandEntityReferences:(Z)V
         5: .line 305
            aload 2 /* documentBuilderFactory */
            invokevirtual javax.xml.parsers.DocumentBuilderFactory.newDocumentBuilder:()Ljavax/xml/parsers/DocumentBuilder;
            astore 1 /* documentBuilder */
         6: .line 306
            aload 1 /* documentBuilder */
         7: .line 307
            new org.apache.catalina.servlets.WebdavServlet$WebdavResolver
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getServletContext:()Ljakarta/servlet/ServletContext;
            invokespecial org.apache.catalina.servlets.WebdavServlet$WebdavResolver.<init>:(Ljakarta/servlet/ServletContext;)V
         8: .line 306
            invokevirtual javax.xml.parsers.DocumentBuilder.setEntityResolver:(Lorg/xml/sax/EntityResolver;)V
         9: .line 308
            goto 14
      StackMap locals: org.apache.catalina.servlets.WebdavServlet javax.xml.parsers.DocumentBuilder javax.xml.parsers.DocumentBuilderFactory
      StackMap stack: javax.xml.parsers.ParserConfigurationException
        10: pop
        11: .line 309
            new jakarta.servlet.ServletException
            dup
        12: .line 310
            getstatic org.apache.catalina.servlets.WebdavServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "webdavservlet.jaxpfailed"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
        13: .line 309
            invokespecial jakarta.servlet.ServletException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 312
      StackMap locals:
      StackMap stack:
            aload 1 /* documentBuilder */
            areturn
        end local 2 // javax.xml.parsers.DocumentBuilderFactory documentBuilderFactory
        end local 1 // javax.xml.parsers.DocumentBuilder documentBuilder
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   15     0                    this  Lorg/apache/catalina/servlets/WebdavServlet;
            1   15     1         documentBuilder  Ljavax/xml/parsers/DocumentBuilder;
            2   15     2  documentBuilderFactory  Ljavax/xml/parsers/DocumentBuilderFactory;
      Exception table:
        from    to  target  type
           2     9      10  Class javax.xml.parsers.ParserConfigurationException
    Exceptions:
      throws jakarta.servlet.ServletException

  protected void service(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // jakarta.servlet.http.HttpServletResponse resp
         0: .line 323
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getRelativePath:(Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         1: .line 328
            aload 1 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getDispatcherType:()Ljakarta/servlet/DispatcherType;
            getstatic jakarta.servlet.DispatcherType.ERROR:Ljakarta/servlet/DispatcherType;
            if_acmpne 4
         2: .line 329
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.doGet:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
         3: .line 330
            return
         4: .line 338
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 3 /* path */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.isSpecialPath:(Ljava/lang/String;)Z
            ifeq 7
         5: .line 339
            aload 2 /* resp */
            sipush 404
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
         6: .line 340
            return
         7: .line 343
      StackMap locals:
      StackMap stack:
            aload 1 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getMethod:()Ljava/lang/String;
            astore 4 /* method */
        start local 4 // java.lang.String method
         8: .line 345
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.debug:I
            ifle 10
         9: .line 346
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "] "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.catalina.servlets.WebdavServlet.log:(Ljava/lang/String;)V
        10: .line 349
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* method */
            ldc "PROPFIND"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 350
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.doPropfind:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
        12: .line 351
            goto 32
      StackMap locals:
      StackMap stack:
        13: aload 4 /* method */
            ldc "PROPPATCH"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 352
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.doProppatch:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
        15: .line 353
            goto 32
      StackMap locals:
      StackMap stack:
        16: aload 4 /* method */
            ldc "MKCOL"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        17: .line 354
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.doMkcol:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
        18: .line 355
            goto 32
      StackMap locals:
      StackMap stack:
        19: aload 4 /* method */
            ldc "COPY"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        20: .line 356
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.doCopy:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
        21: .line 357
            goto 32
      StackMap locals:
      StackMap stack:
        22: aload 4 /* method */
            ldc "MOVE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 25
        23: .line 358
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.doMove:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
        24: .line 359
            goto 32
      StackMap locals:
      StackMap stack:
        25: aload 4 /* method */
            ldc "LOCK"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 28
        26: .line 360
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.doLock:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
        27: .line 361
            goto 32
      StackMap locals:
      StackMap stack:
        28: aload 4 /* method */
            ldc "UNLOCK"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 31
        29: .line 362
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.doUnlock:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
        30: .line 363
            goto 32
        31: .line 365
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokespecial org.apache.catalina.servlets.DefaultServlet.service:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
        32: .line 368
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String method
        end local 3 // java.lang.String path
        end local 2 // jakarta.servlet.http.HttpServletResponse resp
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   33     0    this  Lorg/apache/catalina/servlets/WebdavServlet;
            0   33     1     req  Ljakarta/servlet/http/HttpServletRequest;
            0   33     2    resp  Ljakarta/servlet/http/HttpServletResponse;
            1   33     3    path  Ljava/lang/String;
            8   33     4  method  Ljava/lang/String;
    Exceptions:
      throws jakarta.servlet.ServletException, java.io.IOException
    MethodParameters:
      Name  Flags
      req   
      resp  

  private final boolean isSpecialPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // java.lang.String path
         0: .line 378
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.allowSpecialPaths:Z
            ifne 4
         1: .line 379
            aload 1 /* path */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "/WEB-INF"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 3
         2: .line 380
            aload 1 /* path */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "/META-INF"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 378
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/catalina/servlets/WebdavServlet;
            0    5     1  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  final

  protected boolean checkIfHeaders(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse, org.apache.catalina.WebResource);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;Lorg/apache/catalina/WebResource;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest request
        start local 2 // jakarta.servlet.http.HttpServletResponse response
        start local 3 // org.apache.catalina.WebResource resource
         0: .line 390
            aload 0 /* this */
            aload 1 /* request */
            aload 2 /* response */
            aload 3 /* resource */
            invokespecial org.apache.catalina.servlets.DefaultServlet.checkIfHeaders:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;Lorg/apache/catalina/WebResource;)Z
            ifne 2
         1: .line 391
            iconst_0
            ireturn
         2: .line 394
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // org.apache.catalina.WebResource resource
        end local 2 // jakarta.servlet.http.HttpServletResponse response
        end local 1 // jakarta.servlet.http.HttpServletRequest request
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/apache/catalina/servlets/WebdavServlet;
            0    3     1   request  Ljakarta/servlet/http/HttpServletRequest;
            0    3     2  response  Ljakarta/servlet/http/HttpServletResponse;
            0    3     3  resource  Lorg/apache/catalina/WebResource;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      request   
      response  
      resource  

  protected java.lang.String rewriteUrl(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // java.lang.String path
         0: .line 406
            getstatic org.apache.catalina.servlets.WebdavServlet.URL_ENCODER_XML:Lorg/apache/catalina/util/URLEncoder;
            aload 1 /* path */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual org.apache.catalina.util.URLEncoder.encode:(Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/servlets/WebdavServlet;
            0    1     1  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  protected java.lang.String getRelativePath(jakarta.servlet.http.HttpServletRequest);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest request
         0: .line 420
            aload 0 /* this */
            aload 1 /* request */
            iconst_0
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getRelativePath:(Ljakarta/servlet/http/HttpServletRequest;Z)Ljava/lang/String;
            areturn
        end local 1 // jakarta.servlet.http.HttpServletRequest request
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/catalina/servlets/WebdavServlet;
            0    1     1  request  Ljakarta/servlet/http/HttpServletRequest;
    MethodParameters:
         Name  Flags
      request  

  protected java.lang.String getRelativePath(jakarta.servlet.http.HttpServletRequest, boolean);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Z)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest request
        start local 2 // boolean allowEmptyPath
         0: .line 427
            aload 1 /* request */
            ldc "jakarta.servlet.include.request_uri"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            ifnull 3
         1: .line 429
            aload 1 /* request */
            ldc "jakarta.servlet.include.path_info"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* pathInfo */
        start local 3 // java.lang.String pathInfo
         2: .line 430
            goto 4
        end local 3 // java.lang.String pathInfo
         3: .line 431
      StackMap locals:
      StackMap stack:
            aload 1 /* request */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getPathInfo:()Ljava/lang/String;
            astore 3 /* pathInfo */
        start local 3 // java.lang.String pathInfo
         4: .line 434
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 4 /* result */
        start local 4 // java.lang.StringBuilder result
         5: .line 435
            aload 3 /* pathInfo */
            ifnull 7
         6: .line 436
            aload 4 /* result */
            aload 3 /* pathInfo */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 438
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 4 /* result */
            invokevirtual java.lang.StringBuilder.length:()I
            ifne 9
         8: .line 439
            aload 4 /* result */
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         9: .line 442
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // java.lang.StringBuilder result
        end local 3 // java.lang.String pathInfo
        end local 2 // boolean allowEmptyPath
        end local 1 // jakarta.servlet.http.HttpServletRequest request
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lorg/apache/catalina/servlets/WebdavServlet;
            0   10     1         request  Ljakarta/servlet/http/HttpServletRequest;
            0   10     2  allowEmptyPath  Z
            2    3     3        pathInfo  Ljava/lang/String;
            4   10     3        pathInfo  Ljava/lang/String;
            5   10     4          result  Ljava/lang/StringBuilder;
    MethodParameters:
                Name  Flags
      request         
      allowEmptyPath  

  protected java.lang.String getPathPrefix(jakarta.servlet.http.HttpServletRequest);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest request
         0: .line 452
            aload 1 /* request */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getContextPath:()Ljava/lang/String;
            astore 2 /* contextPath */
        start local 2 // java.lang.String contextPath
         1: .line 453
            aload 1 /* request */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getServletPath:()Ljava/lang/String;
            ifnull 3
         2: .line 454
            new java.lang.StringBuilder
            dup
            aload 2 /* contextPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* request */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getServletPath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* contextPath */
         3: .line 456
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* contextPath */
            areturn
        end local 2 // java.lang.String contextPath
        end local 1 // jakarta.servlet.http.HttpServletRequest request
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/apache/catalina/servlets/WebdavServlet;
            0    4     1      request  Ljakarta/servlet/http/HttpServletRequest;
            1    4     2  contextPath  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      request  final

  protected void doOptions(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // jakarta.servlet.http.HttpServletResponse resp
         0: .line 472
            aload 2 /* resp */
            ldc "DAV"
            ldc "1,2"
            invokeinterface jakarta.servlet.http.HttpServletResponse.addHeader:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 473
            aload 2 /* resp */
            ldc "Allow"
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.determineMethodsAllowed:(Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
            invokeinterface jakarta.servlet.http.HttpServletResponse.addHeader:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 474
            aload 2 /* resp */
            ldc "MS-Author-Via"
            ldc "DAV"
            invokeinterface jakarta.servlet.http.HttpServletResponse.addHeader:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 475
            return
        end local 2 // jakarta.servlet.http.HttpServletResponse resp
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/catalina/servlets/WebdavServlet;
            0    4     1   req  Ljakarta/servlet/http/HttpServletRequest;
            0    4     2  resp  Ljakarta/servlet/http/HttpServletResponse;
    Exceptions:
      throws jakarta.servlet.ServletException, java.io.IOException
    MethodParameters:
      Name  Flags
      req   
      resp  

  protected void doPropfind(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=20, args_size=3
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // jakarta.servlet.http.HttpServletResponse resp
         0: .line 488
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.listings:Z
            ifne 3
         1: .line 489
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.sendNotAllowed:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
         2: .line 490
            return
         3: .line 493
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getRelativePath:(Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         4: .line 494
            aload 3 /* path */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmple 6
            aload 3 /* path */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 495
            aload 3 /* path */
            iconst_0
            aload 3 /* path */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* path */
         6: .line 498
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            astore 4 /* properties */
        start local 4 // java.util.Vector properties
         7: .line 500
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.maxDepth:I
            istore 5 /* depth */
        start local 5 // int depth
         8: .line 502
            iconst_1
            istore 6 /* type */
        start local 6 // int type
         9: .line 504
            aload 1 /* req */
            ldc "Depth"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* depthStr */
        start local 7 // java.lang.String depthStr
        10: .line 506
            aload 7 /* depthStr */
            ifnonnull 13
        11: .line 507
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.maxDepth:I
            istore 5 /* depth */
        12: .line 508
            goto 21
        13: .line 509
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse java.lang.String java.util.Vector int int java.lang.String
      StackMap stack:
            aload 7 /* depthStr */
            ldc "0"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 510
            iconst_0
            istore 5 /* depth */
        15: .line 511
            goto 21
      StackMap locals:
      StackMap stack:
        16: aload 7 /* depthStr */
            ldc "1"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        17: .line 512
            iconst_1
            istore 5 /* depth */
        18: .line 513
            goto 21
      StackMap locals:
      StackMap stack:
        19: aload 7 /* depthStr */
            ldc "infinity"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        20: .line 514
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.maxDepth:I
            istore 5 /* depth */
        21: .line 518
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 8 /* propNode */
        start local 8 // org.w3c.dom.Node propNode
        22: .line 520
            aload 1 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getContentLengthLong:()J
            lconst_0
            lcmp
            ifle 50
        23: .line 521
            aload 0 /* this */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getDocumentBuilder:()Ljavax/xml/parsers/DocumentBuilder;
            astore 9 /* documentBuilder */
        start local 9 // javax.xml.parsers.DocumentBuilder documentBuilder
        24: .line 524
            aload 9 /* documentBuilder */
        25: .line 525
            new org.xml.sax.InputSource
            dup
            aload 1 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getInputStream:()Ljakarta/servlet/ServletInputStream;
            invokespecial org.xml.sax.InputSource.<init>:(Ljava/io/InputStream;)V
        26: .line 524
            invokevirtual javax.xml.parsers.DocumentBuilder.parse:(Lorg/xml/sax/InputSource;)Lorg/w3c/dom/Document;
            astore 10 /* document */
        start local 10 // org.w3c.dom.Document document
        27: .line 528
            aload 10 /* document */
            invokeinterface org.w3c.dom.Document.getDocumentElement:()Lorg/w3c/dom/Element;
            astore 11 /* rootElement */
        start local 11 // org.w3c.dom.Element rootElement
        28: .line 529
            aload 11 /* rootElement */
            invokeinterface org.w3c.dom.Element.getChildNodes:()Lorg/w3c/dom/NodeList;
            astore 12 /* childList */
        start local 12 // org.w3c.dom.NodeList childList
        29: .line 531
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        30: goto 42
        31: .line 532
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse java.lang.String java.util.Vector int int java.lang.String org.w3c.dom.Node javax.xml.parsers.DocumentBuilder org.w3c.dom.Document org.w3c.dom.Element org.w3c.dom.NodeList int
      StackMap stack:
            aload 12 /* childList */
            iload 13 /* i */
            invokeinterface org.w3c.dom.NodeList.item:(I)Lorg/w3c/dom/Node;
            astore 14 /* currentNode */
        start local 14 // org.w3c.dom.Node currentNode
        32: .line 533
            aload 14 /* currentNode */
            invokeinterface org.w3c.dom.Node.getNodeType:()S
            tableswitch { // 1 - 3
                    1: 34
                    2: 41
                    3: 33
              default: 41
          }
        33: .line 535
      StackMap locals: org.w3c.dom.Node
      StackMap stack:
            goto 41
        34: .line 537
      StackMap locals:
      StackMap stack:
            aload 14 /* currentNode */
            invokeinterface org.w3c.dom.Node.getNodeName:()Ljava/lang/String;
            ldc "prop"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 37
        35: .line 538
            iconst_0
            istore 6 /* type */
        36: .line 539
            aload 14 /* currentNode */
            astore 8 /* propNode */
        37: .line 541
      StackMap locals:
      StackMap stack:
            aload 14 /* currentNode */
            invokeinterface org.w3c.dom.Node.getNodeName:()Ljava/lang/String;
            ldc "propname"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 39
        38: .line 542
            iconst_2
            istore 6 /* type */
        39: .line 544
      StackMap locals:
      StackMap stack:
            aload 14 /* currentNode */
            invokeinterface org.w3c.dom.Node.getNodeName:()Ljava/lang/String;
            ldc "allprop"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 41
        40: .line 545
            iconst_1
            istore 6 /* type */
        end local 14 // org.w3c.dom.Node currentNode
        41: .line 531
      StackMap locals:
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        42: iload 13 /* i */
            aload 12 /* childList */
            invokeinterface org.w3c.dom.NodeList.getLength:()I
            if_icmplt 31
        end local 13 // int i
        end local 12 // org.w3c.dom.NodeList childList
        end local 11 // org.w3c.dom.Element rootElement
        end local 10 // org.w3c.dom.Document document
        43: .line 550
            goto 50
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse java.lang.String java.util.Vector int int java.lang.String org.w3c.dom.Node javax.xml.parsers.DocumentBuilder
      StackMap stack: org.xml.sax.SAXException
        44: pop
        45: .line 552
            aload 2 /* resp */
            sipush 400
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        46: .line 553
            return
        47: .line 554
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        48: .line 556
            aload 2 /* resp */
            sipush 400
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        49: .line 557
            return
        end local 9 // javax.xml.parsers.DocumentBuilder documentBuilder
        50: .line 561
      StackMap locals:
      StackMap stack:
            iload 6 /* type */
            ifne 69
        51: .line 562
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 4 /* properties */
        52: .line 565
            aload 8 /* propNode */
            invokeinterface org.w3c.dom.Node.getChildNodes:()Lorg/w3c/dom/NodeList;
            astore 9 /* childList */
        start local 9 // org.w3c.dom.NodeList childList
        53: .line 567
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        54: goto 68
        55: .line 568
      StackMap locals: org.w3c.dom.NodeList int
      StackMap stack:
            aload 9 /* childList */
            iload 10 /* i */
            invokeinterface org.w3c.dom.NodeList.item:(I)Lorg/w3c/dom/Node;
            astore 11 /* currentNode */
        start local 11 // org.w3c.dom.Node currentNode
        56: .line 569
            aload 11 /* currentNode */
            invokeinterface org.w3c.dom.Node.getNodeType:()S
            tableswitch { // 1 - 3
                    1: 58
                    2: 67
                    3: 57
              default: 67
          }
        57: .line 571
      StackMap locals: org.w3c.dom.Node
      StackMap stack:
            goto 67
        58: .line 573
      StackMap locals:
      StackMap stack:
            aload 11 /* currentNode */
            invokeinterface org.w3c.dom.Node.getNodeName:()Ljava/lang/String;
            astore 12 /* nodeName */
        start local 12 // java.lang.String nodeName
        59: .line 574
            aconst_null
            astore 13 /* propertyName */
        start local 13 // java.lang.String propertyName
        60: .line 575
            aload 12 /* nodeName */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 65
        61: .line 576
            aload 12 /* nodeName */
        62: .line 577
            aload 12 /* nodeName */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_1
            iadd
        63: .line 576
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 13 /* propertyName */
        64: .line 578
            goto 66
        65: .line 579
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 12 /* nodeName */
            astore 13 /* propertyName */
        66: .line 582
      StackMap locals:
      StackMap stack:
            aload 4 /* properties */
            aload 13 /* propertyName */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 13 // java.lang.String propertyName
        end local 12 // java.lang.String nodeName
        end local 11 // org.w3c.dom.Node currentNode
        67: .line 567
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        68: iload 10 /* i */
            aload 9 /* childList */
            invokeinterface org.w3c.dom.NodeList.getLength:()I
            if_icmplt 55
        end local 10 // int i
        end local 9 // org.w3c.dom.NodeList childList
        69: .line 589
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 3 /* path */
            invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 9 /* resource */
        start local 9 // org.apache.catalina.WebResource resource
        70: .line 591
            aload 9 /* resource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifne 101
        71: .line 592
            aload 3 /* path */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 10 /* slash */
        start local 10 // int slash
        72: .line 593
            iload 10 /* slash */
            iconst_m1
            if_icmpeq 101
        73: .line 594
            aload 3 /* path */
            iconst_0
            iload 10 /* slash */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 11 /* parentPath */
        start local 11 // java.lang.String parentPath
        74: .line 596
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.lockNullResources:Ljava/util/Hashtable;
            aload 11 /* parentPath */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Vector
        75: .line 595
            astore 12 /* currentLockNullResources */
        start local 12 // java.util.Vector currentLockNullResources
        76: .line 597
            aload 12 /* currentLockNullResources */
            ifnull 101
        77: .line 599
            aload 12 /* currentLockNullResources */
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
        78: .line 598
            astore 13 /* lockNullResourcesList */
        start local 13 // java.util.Enumeration lockNullResourcesList
        79: .line 600
            goto 100
        80: .line 602
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse java.lang.String java.util.Vector int int java.lang.String org.w3c.dom.Node org.apache.catalina.WebResource int java.lang.String java.util.Vector java.util.Enumeration
      StackMap stack:
            aload 13 /* lockNullResourcesList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
        81: .line 601
            astore 14 /* lockNullPath */
        start local 14 // java.lang.String lockNullPath
        82: .line 603
            aload 14 /* lockNullPath */
            aload 3 /* path */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 100
        83: .line 604
            aload 2 /* resp */
            sipush 207
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
        84: .line 605
            aload 2 /* resp */
            ldc "text/xml; charset=UTF-8"
            invokeinterface jakarta.servlet.http.HttpServletResponse.setContentType:(Ljava/lang/String;)V
        85: .line 608
            new org.apache.catalina.util.XMLWriter
            dup
            aload 2 /* resp */
            invokeinterface jakarta.servlet.http.HttpServletResponse.getWriter:()Ljava/io/PrintWriter;
            invokespecial org.apache.catalina.util.XMLWriter.<init>:(Ljava/io/Writer;)V
        86: .line 607
            astore 15 /* generatedXML */
        start local 15 // org.apache.catalina.util.XMLWriter generatedXML
        87: .line 609
            aload 15 /* generatedXML */
            invokevirtual org.apache.catalina.util.XMLWriter.writeXMLHeader:()V
        88: .line 610
            aload 15 /* generatedXML */
            ldc "D"
            ldc "DAV:"
        89: .line 611
            ldc "multistatus"
            iconst_0
        90: .line 610
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
        91: .line 612
            aload 0 /* this */
        92: .line 613
            aload 1 /* req */
            aload 15 /* generatedXML */
            aload 14 /* lockNullPath */
            iload 6 /* type */
        93: .line 614
            aload 4 /* properties */
        94: .line 612
            invokevirtual org.apache.catalina.servlets.WebdavServlet.parseLockNullProperties:(Ljakarta/servlet/http/HttpServletRequest;Lorg/apache/catalina/util/XMLWriter;Ljava/lang/String;ILjava/util/Vector;)V
        95: .line 615
            aload 15 /* generatedXML */
            ldc "D"
            ldc "multistatus"
        96: .line 616
            iconst_1
        97: .line 615
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        98: .line 617
            aload 15 /* generatedXML */
            invokevirtual org.apache.catalina.util.XMLWriter.sendData:()V
        99: .line 618
            return
        end local 15 // org.apache.catalina.util.XMLWriter generatedXML
        end local 14 // java.lang.String lockNullPath
       100: .line 600
      StackMap locals:
      StackMap stack:
            aload 13 /* lockNullResourcesList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 80
        end local 13 // java.util.Enumeration lockNullResourcesList
        end local 12 // java.util.Vector currentLockNullResources
        end local 11 // java.lang.String parentPath
        end local 10 // int slash
       101: .line 625
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse java.lang.String java.util.Vector int int java.lang.String org.w3c.dom.Node org.apache.catalina.WebResource
      StackMap stack:
            aload 9 /* resource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifne 104
       102: .line 626
            aload 2 /* resp */
            sipush 404
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
       103: .line 627
            return
       104: .line 630
      StackMap locals:
      StackMap stack:
            aload 2 /* resp */
            sipush 207
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
       105: .line 632
            aload 2 /* resp */
            ldc "text/xml; charset=UTF-8"
            invokeinterface jakarta.servlet.http.HttpServletResponse.setContentType:(Ljava/lang/String;)V
       106: .line 635
            new org.apache.catalina.util.XMLWriter
            dup
            aload 2 /* resp */
            invokeinterface jakarta.servlet.http.HttpServletResponse.getWriter:()Ljava/io/PrintWriter;
            invokespecial org.apache.catalina.util.XMLWriter.<init>:(Ljava/io/Writer;)V
            astore 10 /* generatedXML */
        start local 10 // org.apache.catalina.util.XMLWriter generatedXML
       107: .line 636
            aload 10 /* generatedXML */
            invokevirtual org.apache.catalina.util.XMLWriter.writeXMLHeader:()V
       108: .line 638
            aload 10 /* generatedXML */
            ldc "D"
            ldc "DAV:"
            ldc "multistatus"
       109: .line 639
            iconst_0
       110: .line 638
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
       111: .line 641
            iload 5 /* depth */
            ifne 116
       112: .line 642
            aload 0 /* this */
            aload 1 /* req */
            aload 10 /* generatedXML */
            aload 3 /* path */
            iload 6 /* type */
       113: .line 643
            aload 4 /* properties */
       114: .line 642
            invokevirtual org.apache.catalina.servlets.WebdavServlet.parseProperties:(Ljakarta/servlet/http/HttpServletRequest;Lorg/apache/catalina/util/XMLWriter;Ljava/lang/String;ILjava/util/Vector;)V
       115: .line 644
            goto 159
       116: .line 646
      StackMap locals: org.apache.catalina.util.XMLWriter
      StackMap stack:
            new java.util.Stack
            dup
            invokespecial java.util.Stack.<init>:()V
            astore 11 /* stack */
        start local 11 // java.util.Stack stack
       117: .line 647
            aload 11 /* stack */
            aload 3 /* path */
            invokevirtual java.util.Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
       118: .line 650
            new java.util.Stack
            dup
            invokespecial java.util.Stack.<init>:()V
            astore 12 /* stackBelow */
        start local 12 // java.util.Stack stackBelow
       119: .line 652
            goto 158
       120: .line 654
      StackMap locals: java.util.Stack java.util.Stack
      StackMap stack:
            aload 11 /* stack */
            invokevirtual java.util.Stack.pop:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 13 /* currentPath */
        start local 13 // java.lang.String currentPath
       121: .line 655
            aload 0 /* this */
            aload 1 /* req */
            aload 10 /* generatedXML */
            aload 13 /* currentPath */
       122: .line 656
            iload 6 /* type */
            aload 4 /* properties */
       123: .line 655
            invokevirtual org.apache.catalina.servlets.WebdavServlet.parseProperties:(Ljakarta/servlet/http/HttpServletRequest;Lorg/apache/catalina/util/XMLWriter;Ljava/lang/String;ILjava/util/Vector;)V
       124: .line 658
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 13 /* currentPath */
            invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 9 /* resource */
       125: .line 660
            aload 9 /* resource */
            invokeinterface org.apache.catalina.WebResource.isDirectory:()Z
            ifeq 153
            iload 5 /* depth */
            ifle 153
       126: .line 662
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 13 /* currentPath */
            invokeinterface org.apache.catalina.WebResourceRoot.list:(Ljava/lang/String;)[Ljava/lang/String;
            astore 14 /* entries */
        start local 14 // java.lang.String[] entries
       127: .line 663
            aload 14 /* entries */
            dup
            astore 18
            arraylength
            istore 17
            iconst_0
            istore 16
            goto 135
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse java.lang.String java.util.Vector int int java.lang.String org.w3c.dom.Node org.apache.catalina.WebResource org.apache.catalina.util.XMLWriter java.util.Stack java.util.Stack java.lang.String java.lang.String[] top int int java.lang.String[]
      StackMap stack:
       128: aload 18
            iload 16
            aaload
            astore 15 /* entry */
        start local 15 // java.lang.String entry
       129: .line 664
            aload 13 /* currentPath */
            astore 19 /* newPath */
        start local 19 // java.lang.String newPath
       130: .line 665
            aload 19 /* newPath */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 132
       131: .line 666
            new java.lang.StringBuilder
            dup
            aload 19 /* newPath */
            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 19 /* newPath */
       132: .line 667
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse java.lang.String java.util.Vector int int java.lang.String org.w3c.dom.Node org.apache.catalina.WebResource org.apache.catalina.util.XMLWriter java.util.Stack java.util.Stack java.lang.String java.lang.String[] java.lang.String int int java.lang.String[] java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 19 /* newPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 15 /* entry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 19 /* newPath */
       133: .line 668
            aload 12 /* stackBelow */
            aload 19 /* newPath */
            invokevirtual java.util.Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 19 // java.lang.String newPath
        end local 15 // java.lang.String entry
       134: .line 663
            iinc 16 1
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse java.lang.String java.util.Vector int int java.lang.String org.w3c.dom.Node org.apache.catalina.WebResource org.apache.catalina.util.XMLWriter java.util.Stack java.util.Stack java.lang.String java.lang.String[] top int int java.lang.String[]
      StackMap stack:
       135: iload 16
            iload 17
            if_icmplt 128
       136: .line 673
            aload 13 /* currentPath */
            astore 15 /* lockPath */
        start local 15 // java.lang.String lockPath
       137: .line 674
            aload 15 /* lockPath */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 140
       138: .line 676
            aload 15 /* lockPath */
            iconst_0
            aload 15 /* lockPath */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
       139: .line 675
            astore 15 /* lockPath */
       140: .line 678
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse java.lang.String java.util.Vector int int java.lang.String org.w3c.dom.Node org.apache.catalina.WebResource org.apache.catalina.util.XMLWriter java.util.Stack java.util.Stack java.lang.String java.lang.String[] java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.lockNullResources:Ljava/util/Hashtable;
            aload 15 /* lockPath */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Vector
       141: .line 677
            astore 16 /* currentLockNullResources */
        start local 16 // java.util.Vector currentLockNullResources
       142: .line 679
            aload 16 /* currentLockNullResources */
            ifnull 153
       143: .line 681
            aload 16 /* currentLockNullResources */
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
       144: .line 680
            astore 17 /* lockNullResourcesList */
        start local 17 // java.util.Enumeration lockNullResourcesList
       145: .line 682
            goto 152
       146: .line 684
      StackMap locals: java.util.Vector java.util.Enumeration
      StackMap stack:
            aload 17 /* lockNullResourcesList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
       147: .line 683
            astore 18 /* lockNullPath */
        start local 18 // java.lang.String lockNullPath
       148: .line 685
            aload 0 /* this */
       149: .line 686
            aload 1 /* req */
            aload 10 /* generatedXML */
            aload 18 /* lockNullPath */
            iload 6 /* type */
       150: .line 687
            aload 4 /* properties */
       151: .line 685
            invokevirtual org.apache.catalina.servlets.WebdavServlet.parseLockNullProperties:(Ljakarta/servlet/http/HttpServletRequest;Lorg/apache/catalina/util/XMLWriter;Ljava/lang/String;ILjava/util/Vector;)V
        end local 18 // java.lang.String lockNullPath
       152: .line 682
      StackMap locals:
      StackMap stack:
            aload 17 /* lockNullResourcesList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 146
        end local 17 // java.util.Enumeration lockNullResourcesList
        end local 16 // java.util.Vector currentLockNullResources
        end local 15 // java.lang.String lockPath
        end local 14 // java.lang.String[] entries
       153: .line 693
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse java.lang.String java.util.Vector int int java.lang.String org.w3c.dom.Node org.apache.catalina.WebResource org.apache.catalina.util.XMLWriter java.util.Stack java.util.Stack java.lang.String
      StackMap stack:
            aload 11 /* stack */
            invokevirtual java.util.Stack.isEmpty:()Z
            ifeq 157
       154: .line 694
            iinc 5 /* depth */ -1
       155: .line 695
            aload 12 /* stackBelow */
            astore 11 /* stack */
       156: .line 696
            new java.util.Stack
            dup
            invokespecial java.util.Stack.<init>:()V
            astore 12 /* stackBelow */
       157: .line 699
      StackMap locals:
      StackMap stack:
            aload 10 /* generatedXML */
            invokevirtual org.apache.catalina.util.XMLWriter.sendData:()V
        end local 13 // java.lang.String currentPath
       158: .line 652
      StackMap locals:
      StackMap stack:
            aload 11 /* stack */
            invokevirtual java.util.Stack.isEmpty:()Z
            ifne 159
            iload 5 /* depth */
            ifge 120
        end local 12 // java.util.Stack stackBelow
        end local 11 // java.util.Stack stack
       159: .line 704
      StackMap locals:
      StackMap stack:
            aload 10 /* generatedXML */
            ldc "D"
            ldc "multistatus"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       160: .line 706
            aload 10 /* generatedXML */
            invokevirtual org.apache.catalina.util.XMLWriter.sendData:()V
       161: .line 708
            return
        end local 10 // org.apache.catalina.util.XMLWriter generatedXML
        end local 9 // org.apache.catalina.WebResource resource
        end local 8 // org.w3c.dom.Node propNode
        end local 7 // java.lang.String depthStr
        end local 6 // int type
        end local 5 // int depth
        end local 4 // java.util.Vector properties
        end local 3 // java.lang.String path
        end local 2 // jakarta.servlet.http.HttpServletResponse resp
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0  162     0                      this  Lorg/apache/catalina/servlets/WebdavServlet;
            0  162     1                       req  Ljakarta/servlet/http/HttpServletRequest;
            0  162     2                      resp  Ljakarta/servlet/http/HttpServletResponse;
            4  162     3                      path  Ljava/lang/String;
            7  162     4                properties  Ljava/util/Vector<Ljava/lang/String;>;
            8  162     5                     depth  I
            9  162     6                      type  I
           10  162     7                  depthStr  Ljava/lang/String;
           22  162     8                  propNode  Lorg/w3c/dom/Node;
           24   50     9           documentBuilder  Ljavax/xml/parsers/DocumentBuilder;
           27   43    10                  document  Lorg/w3c/dom/Document;
           28   43    11               rootElement  Lorg/w3c/dom/Element;
           29   43    12                 childList  Lorg/w3c/dom/NodeList;
           30   43    13                         i  I
           32   41    14               currentNode  Lorg/w3c/dom/Node;
           53   69     9                 childList  Lorg/w3c/dom/NodeList;
           54   69    10                         i  I
           56   67    11               currentNode  Lorg/w3c/dom/Node;
           59   67    12                  nodeName  Ljava/lang/String;
           60   67    13              propertyName  Ljava/lang/String;
           70  162     9                  resource  Lorg/apache/catalina/WebResource;
           72  101    10                     slash  I
           74  101    11                parentPath  Ljava/lang/String;
           76  101    12  currentLockNullResources  Ljava/util/Vector<Ljava/lang/String;>;
           79  101    13     lockNullResourcesList  Ljava/util/Enumeration<Ljava/lang/String;>;
           82  100    14              lockNullPath  Ljava/lang/String;
           87  100    15              generatedXML  Lorg/apache/catalina/util/XMLWriter;
          107  162    10              generatedXML  Lorg/apache/catalina/util/XMLWriter;
          117  159    11                     stack  Ljava/util/Stack<Ljava/lang/String;>;
          119  159    12                stackBelow  Ljava/util/Stack<Ljava/lang/String;>;
          121  158    13               currentPath  Ljava/lang/String;
          127  153    14                   entries  [Ljava/lang/String;
          129  134    15                     entry  Ljava/lang/String;
          130  134    19                   newPath  Ljava/lang/String;
          137  153    15                  lockPath  Ljava/lang/String;
          142  153    16  currentLockNullResources  Ljava/util/Vector<Ljava/lang/String;>;
          145  153    17     lockNullResourcesList  Ljava/util/Enumeration<Ljava/lang/String;>;
          148  152    18              lockNullPath  Ljava/lang/String;
      Exception table:
        from    to  target  type
          24    43      44  Class org.xml.sax.SAXException
          24    43      47  Class java.io.IOException
    Exceptions:
      throws jakarta.servlet.ServletException, java.io.IOException
    MethodParameters:
      Name  Flags
      req   
      resp  

  protected void doProppatch(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // jakarta.servlet.http.HttpServletResponse resp
         0: .line 720
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.readOnly:Z
            ifeq 3
         1: .line 721
            aload 2 /* resp */
            sipush 403
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
         2: .line 722
            return
         3: .line 725
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.isLocked:(Ljakarta/servlet/http/HttpServletRequest;)Z
            ifeq 6
         4: .line 726
            aload 2 /* resp */
            sipush 423
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
         5: .line 727
            return
         6: .line 730
      StackMap locals:
      StackMap stack:
            aload 2 /* resp */
            sipush 501
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
         7: .line 732
            return
        end local 2 // jakarta.servlet.http.HttpServletResponse resp
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/catalina/servlets/WebdavServlet;
            0    8     1   req  Ljakarta/servlet/http/HttpServletRequest;
            0    8     2  resp  Ljakarta/servlet/http/HttpServletResponse;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      req   
      resp  

  protected void doMkcol(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // jakarta.servlet.http.HttpServletResponse resp
         0: .line 745
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getRelativePath:(Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         1: .line 747
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 3 /* path */
            invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 4 /* resource */
        start local 4 // org.apache.catalina.WebResource resource
         2: .line 751
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifeq 5
         3: .line 752
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.sendNotAllowed:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
         4: .line 753
            return
         5: .line 756
      StackMap locals: java.lang.String org.apache.catalina.WebResource
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.readOnly:Z
            ifeq 8
         6: .line 757
            aload 2 /* resp */
            sipush 403
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
         7: .line 758
            return
         8: .line 761
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.isLocked:(Ljakarta/servlet/http/HttpServletRequest;)Z
            ifeq 11
         9: .line 762
            aload 2 /* resp */
            sipush 423
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        10: .line 763
            return
        11: .line 766
      StackMap locals:
      StackMap stack:
            aload 1 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getContentLengthLong:()J
            lconst_0
            lcmp
            ifle 19
        12: .line 767
            aload 0 /* this */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getDocumentBuilder:()Ljavax/xml/parsers/DocumentBuilder;
            astore 5 /* documentBuilder */
        start local 5 // javax.xml.parsers.DocumentBuilder documentBuilder
        13: .line 770
            aload 5 /* documentBuilder */
            new org.xml.sax.InputSource
            dup
            aload 1 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getInputStream:()Ljakarta/servlet/ServletInputStream;
            invokespecial org.xml.sax.InputSource.<init>:(Ljava/io/InputStream;)V
            invokevirtual javax.xml.parsers.DocumentBuilder.parse:(Lorg/xml/sax/InputSource;)Lorg/w3c/dom/Document;
            pop
        14: .line 772
            aload 2 /* resp */
            sipush 501
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        15: .line 773
            return
        16: .line 775
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse java.lang.String org.apache.catalina.WebResource javax.xml.parsers.DocumentBuilder
      StackMap stack: org.xml.sax.SAXException
            pop
        17: .line 777
            aload 2 /* resp */
            sipush 415
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        18: .line 778
            return
        end local 5 // javax.xml.parsers.DocumentBuilder documentBuilder
        19: .line 782
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 3 /* path */
            invokeinterface org.apache.catalina.WebResourceRoot.mkdir:(Ljava/lang/String;)Z
            ifeq 23
        20: .line 783
            aload 2 /* resp */
            sipush 201
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
        21: .line 785
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.lockNullResources:Ljava/util/Hashtable;
            aload 3 /* path */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 786
            goto 24
        23: .line 787
      StackMap locals:
      StackMap stack:
            aload 2 /* resp */
            sipush 409
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        24: .line 789
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.apache.catalina.WebResource resource
        end local 3 // java.lang.String path
        end local 2 // jakarta.servlet.http.HttpServletResponse resp
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   25     0             this  Lorg/apache/catalina/servlets/WebdavServlet;
            0   25     1              req  Ljakarta/servlet/http/HttpServletRequest;
            0   25     2             resp  Ljakarta/servlet/http/HttpServletResponse;
            1   25     3             path  Ljava/lang/String;
            2   25     4         resource  Lorg/apache/catalina/WebResource;
           13   19     5  documentBuilder  Ljavax/xml/parsers/DocumentBuilder;
      Exception table:
        from    to  target  type
          13    15      16  Class org.xml.sax.SAXException
    Exceptions:
      throws jakarta.servlet.ServletException, java.io.IOException
    MethodParameters:
      Name  Flags
      req   
      resp  

  protected void doDelete(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // jakarta.servlet.http.HttpServletResponse resp
         0: .line 803
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.readOnly:Z
            ifeq 3
         1: .line 804
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.sendNotAllowed:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
         2: .line 805
            return
         3: .line 808
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.isLocked:(Ljakarta/servlet/http/HttpServletRequest;)Z
            ifeq 6
         4: .line 809
            aload 2 /* resp */
            sipush 423
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
         5: .line 810
            return
         6: .line 813
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.deleteResource:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)Z
            pop
         7: .line 815
            return
        end local 2 // jakarta.servlet.http.HttpServletResponse resp
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/catalina/servlets/WebdavServlet;
            0    8     1   req  Ljakarta/servlet/http/HttpServletRequest;
            0    8     2  resp  Ljakarta/servlet/http/HttpServletResponse;
    Exceptions:
      throws jakarta.servlet.ServletException, java.io.IOException
    MethodParameters:
      Name  Flags
      req   
      resp  

  protected void doPut(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // jakarta.servlet.http.HttpServletResponse resp
         0: .line 831
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.isLocked:(Ljakarta/servlet/http/HttpServletRequest;)Z
            ifeq 3
         1: .line 832
            aload 2 /* resp */
            sipush 423
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
         2: .line 833
            return
         3: .line 836
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getRelativePath:(Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         4: .line 837
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 3 /* path */
            invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 4 /* resource */
        start local 4 // org.apache.catalina.WebResource resource
         5: .line 838
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.isDirectory:()Z
            ifeq 8
         6: .line 839
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.sendNotAllowed:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
         7: .line 840
            return
         8: .line 843
      StackMap locals: java.lang.String org.apache.catalina.WebResource
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokespecial org.apache.catalina.servlets.DefaultServlet.doPut:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
         9: .line 846
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.lockNullResources:Ljava/util/Hashtable;
            aload 3 /* path */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 848
            return
        end local 4 // org.apache.catalina.WebResource resource
        end local 3 // java.lang.String path
        end local 2 // jakarta.servlet.http.HttpServletResponse resp
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/apache/catalina/servlets/WebdavServlet;
            0   11     1       req  Ljakarta/servlet/http/HttpServletRequest;
            0   11     2      resp  Ljakarta/servlet/http/HttpServletResponse;
            4   11     3      path  Ljava/lang/String;
            5   11     4  resource  Lorg/apache/catalina/WebResource;
    Exceptions:
      throws jakarta.servlet.ServletException, java.io.IOException
    MethodParameters:
      Name  Flags
      req   
      resp  

  protected void doCopy(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // jakarta.servlet.http.HttpServletResponse resp
         0: .line 859
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.readOnly:Z
            ifeq 3
         1: .line 860
            aload 2 /* resp */
            sipush 403
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
         2: .line 861
            return
         3: .line 864
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.copyResource:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)Z
            pop
         4: .line 866
            return
        end local 2 // jakarta.servlet.http.HttpServletResponse resp
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/catalina/servlets/WebdavServlet;
            0    5     1   req  Ljakarta/servlet/http/HttpServletRequest;
            0    5     2  resp  Ljakarta/servlet/http/HttpServletResponse;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      req   
      resp  

  protected void doMove(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // jakarta.servlet.http.HttpServletResponse resp
         0: .line 878
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.readOnly:Z
            ifeq 3
         1: .line 879
            aload 2 /* resp */
            sipush 403
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
         2: .line 880
            return
         3: .line 883
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.isLocked:(Ljakarta/servlet/http/HttpServletRequest;)Z
            ifeq 6
         4: .line 884
            aload 2 /* resp */
            sipush 423
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
         5: .line 885
            return
         6: .line 888
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getRelativePath:(Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         7: .line 890
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.copyResource:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)Z
            ifeq 9
         8: .line 891
            aload 0 /* this */
            aload 3 /* path */
            aload 1 /* req */
            aload 2 /* resp */
            iconst_0
            invokevirtual org.apache.catalina.servlets.WebdavServlet.deleteResource:(Ljava/lang/String;Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;Z)Z
            pop
         9: .line 894
      StackMap locals: java.lang.String
      StackMap stack:
            return
        end local 3 // java.lang.String path
        end local 2 // jakarta.servlet.http.HttpServletResponse resp
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/apache/catalina/servlets/WebdavServlet;
            0   10     1   req  Ljakarta/servlet/http/HttpServletRequest;
            0   10     2  resp  Ljakarta/servlet/http/HttpServletResponse;
            7   10     3  path  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      req   
      resp  

  protected void doLock(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=19, args_size=3
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // jakarta.servlet.http.HttpServletResponse resp
         0: .line 907
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.readOnly:Z
            ifeq 3
         1: .line 908
            aload 2 /* resp */
            sipush 403
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
         2: .line 909
            return
         3: .line 912
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.isLocked:(Ljakarta/servlet/http/HttpServletRequest;)Z
            ifeq 6
         4: .line 913
            aload 2 /* resp */
            sipush 423
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
         5: .line 914
            return
         6: .line 917
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.servlets.WebdavServlet$LockInfo
            dup
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.maxDepth:I
            invokespecial org.apache.catalina.servlets.WebdavServlet$LockInfo.<init>:(I)V
            astore 3 /* lock */
        start local 3 // org.apache.catalina.servlets.WebdavServlet$LockInfo lock
         7: .line 923
            aload 1 /* req */
            ldc "Depth"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* depthStr */
        start local 4 // java.lang.String depthStr
         8: .line 925
            aload 4 /* depthStr */
            ifnonnull 11
         9: .line 926
            aload 3 /* lock */
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.maxDepth:I
            putfield org.apache.catalina.servlets.WebdavServlet$LockInfo.depth:I
        10: .line 927
            goto 15
        11: .line 928
      StackMap locals: org.apache.catalina.servlets.WebdavServlet$LockInfo java.lang.String
      StackMap stack:
            aload 4 /* depthStr */
            ldc "0"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 929
            aload 3 /* lock */
            iconst_0
            putfield org.apache.catalina.servlets.WebdavServlet$LockInfo.depth:I
        13: .line 930
            goto 15
        14: .line 931
      StackMap locals:
      StackMap stack:
            aload 3 /* lock */
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.maxDepth:I
            putfield org.apache.catalina.servlets.WebdavServlet$LockInfo.depth:I
        15: .line 937
      StackMap locals:
      StackMap stack:
            sipush 3600
            istore 5 /* lockDuration */
        start local 5 // int lockDuration
        16: .line 938
            aload 1 /* req */
            ldc "Timeout"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* lockDurationStr */
        start local 6 // java.lang.String lockDurationStr
        17: .line 939
            aload 6 /* lockDurationStr */
            ifnonnull 20
        18: .line 940
            sipush 3600
            istore 5 /* lockDuration */
        19: .line 941
            goto 37
        20: .line 942
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 6 /* lockDurationStr */
            bipush 44
            invokevirtual java.lang.String.indexOf:(I)I
            istore 7 /* commaPos */
        start local 7 // int commaPos
        21: .line 944
            iload 7 /* commaPos */
            iconst_m1
            if_icmpeq 23
        22: .line 945
            aload 6 /* lockDurationStr */
            iconst_0
            iload 7 /* commaPos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 6 /* lockDurationStr */
        23: .line 947
      StackMap locals: int
      StackMap stack:
            aload 6 /* lockDurationStr */
            ldc "Second-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 26
        24: .line 948
            aload 6 /* lockDurationStr */
            bipush 7
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 5 /* lockDuration */
        25: .line 949
            goto 33
        26: .line 950
      StackMap locals:
      StackMap stack:
            aload 6 /* lockDurationStr */
            ldc "infinity"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 29
        27: .line 951
            ldc 604800
            istore 5 /* lockDuration */
        28: .line 952
            goto 33
        29: .line 954
      StackMap locals:
      StackMap stack:
            aload 6 /* lockDurationStr */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 5 /* lockDuration */
        30: .line 955
            goto 33
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
        31: pop
        32: .line 956
            ldc 604800
            istore 5 /* lockDuration */
        33: .line 960
      StackMap locals:
      StackMap stack:
            iload 5 /* lockDuration */
            ifne 35
        34: .line 961
            sipush 3600
            istore 5 /* lockDuration */
        35: .line 963
      StackMap locals:
      StackMap stack:
            iload 5 /* lockDuration */
            ldc 604800
            if_icmple 37
        36: .line 964
            ldc 604800
            istore 5 /* lockDuration */
        end local 7 // int commaPos
        37: .line 967
      StackMap locals:
      StackMap stack:
            aload 3 /* lock */
            invokestatic java.lang.System.currentTimeMillis:()J
            iload 5 /* lockDuration */
            sipush 1000
            imul
            i2l
            ladd
            putfield org.apache.catalina.servlets.WebdavServlet$LockInfo.expiresAt:J
        38: .line 969
            iconst_0
            istore 7 /* lockRequestType */
        start local 7 // int lockRequestType
        39: .line 971
            aconst_null
            astore 8 /* lockInfoNode */
        start local 8 // org.w3c.dom.Node lockInfoNode
        40: .line 973
            aload 0 /* this */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getDocumentBuilder:()Ljavax/xml/parsers/DocumentBuilder;
            astore 9 /* documentBuilder */
        start local 9 // javax.xml.parsers.DocumentBuilder documentBuilder
        41: .line 976
            aload 9 /* documentBuilder */
            new org.xml.sax.InputSource
            dup
        42: .line 977
            aload 1 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getInputStream:()Ljakarta/servlet/ServletInputStream;
            invokespecial org.xml.sax.InputSource.<init>:(Ljava/io/InputStream;)V
        43: .line 976
            invokevirtual javax.xml.parsers.DocumentBuilder.parse:(Lorg/xml/sax/InputSource;)Lorg/w3c/dom/Document;
            astore 10 /* document */
        start local 10 // org.w3c.dom.Document document
        44: .line 980
            aload 10 /* document */
            invokeinterface org.w3c.dom.Document.getDocumentElement:()Lorg/w3c/dom/Element;
            astore 11 /* rootElement */
        start local 11 // org.w3c.dom.Element rootElement
        45: .line 981
            aload 11 /* rootElement */
            astore 8 /* lockInfoNode */
        end local 11 // org.w3c.dom.Element rootElement
        end local 10 // org.w3c.dom.Document document
        46: .line 982
            goto 51
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse org.apache.catalina.servlets.WebdavServlet$LockInfo java.lang.String int java.lang.String int org.w3c.dom.Node javax.xml.parsers.DocumentBuilder
      StackMap stack: java.io.IOException
        47: pop
        48: .line 983
            iconst_1
            istore 7 /* lockRequestType */
            goto 51
        49: .line 984
      StackMap locals:
      StackMap stack: org.xml.sax.SAXException
            pop
        50: .line 985
            iconst_1
            istore 7 /* lockRequestType */
        51: .line 988
      StackMap locals:
      StackMap stack:
            aload 8 /* lockInfoNode */
            ifnull 130
        52: .line 992
            aload 8 /* lockInfoNode */
            invokeinterface org.w3c.dom.Node.getChildNodes:()Lorg/w3c/dom/NodeList;
            astore 10 /* childList */
        start local 10 // org.w3c.dom.NodeList childList
        53: .line 993
            aconst_null
            astore 11 /* strWriter */
        start local 11 // java.io.StringWriter strWriter
        54: .line 994
            aconst_null
            astore 12 /* domWriter */
        start local 12 // org.apache.catalina.util.DOMWriter domWriter
        55: .line 996
            aconst_null
            astore 13 /* lockScopeNode */
        start local 13 // org.w3c.dom.Node lockScopeNode
        56: .line 997
            aconst_null
            astore 14 /* lockTypeNode */
        start local 14 // org.w3c.dom.Node lockTypeNode
        57: .line 998
            aconst_null
            astore 15 /* lockOwnerNode */
        start local 15 // org.w3c.dom.Node lockOwnerNode
        58: .line 1000
            iconst_0
            istore 16 /* i */
        start local 16 // int i
        59: goto 71
        60: .line 1001
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse org.apache.catalina.servlets.WebdavServlet$LockInfo java.lang.String int java.lang.String int org.w3c.dom.Node javax.xml.parsers.DocumentBuilder org.w3c.dom.NodeList java.io.StringWriter org.apache.catalina.util.DOMWriter org.w3c.dom.Node org.w3c.dom.Node org.w3c.dom.Node int
      StackMap stack:
            aload 10 /* childList */
            iload 16 /* i */
            invokeinterface org.w3c.dom.NodeList.item:(I)Lorg/w3c/dom/Node;
            astore 17 /* currentNode */
        start local 17 // org.w3c.dom.Node currentNode
        61: .line 1002
            aload 17 /* currentNode */
            invokeinterface org.w3c.dom.Node.getNodeType:()S
            tableswitch { // 1 - 3
                    1: 63
                    2: 70
                    3: 62
              default: 70
          }
        62: .line 1004
      StackMap locals: org.w3c.dom.Node
      StackMap stack:
            goto 70
        63: .line 1006
      StackMap locals:
      StackMap stack:
            aload 17 /* currentNode */
            invokeinterface org.w3c.dom.Node.getNodeName:()Ljava/lang/String;
            astore 18 /* nodeName */
        start local 18 // java.lang.String nodeName
        64: .line 1007
            aload 18 /* nodeName */
            ldc "lockscope"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 66
        65: .line 1008
            aload 17 /* currentNode */
            astore 13 /* lockScopeNode */
        66: .line 1010
      StackMap locals: java.lang.String
      StackMap stack:
            aload 18 /* nodeName */
            ldc "locktype"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 68
        67: .line 1011
            aload 17 /* currentNode */
            astore 14 /* lockTypeNode */
        68: .line 1013
      StackMap locals:
      StackMap stack:
            aload 18 /* nodeName */
            ldc "owner"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 70
        69: .line 1014
            aload 17 /* currentNode */
            astore 15 /* lockOwnerNode */
        end local 18 // java.lang.String nodeName
        end local 17 // org.w3c.dom.Node currentNode
        70: .line 1000
      StackMap locals:
      StackMap stack:
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        71: iload 16 /* i */
            aload 10 /* childList */
            invokeinterface org.w3c.dom.NodeList.getLength:()I
            if_icmplt 60
        end local 16 // int i
        72: .line 1020
            aload 13 /* lockScopeNode */
            ifnull 91
        73: .line 1022
            aload 13 /* lockScopeNode */
            invokeinterface org.w3c.dom.Node.getChildNodes:()Lorg/w3c/dom/NodeList;
            astore 10 /* childList */
        74: .line 1023
            iconst_0
            istore 16 /* i */
        start local 16 // int i
        75: goto 87
        76: .line 1024
      StackMap locals:
      StackMap stack:
            aload 10 /* childList */
            iload 16 /* i */
            invokeinterface org.w3c.dom.NodeList.item:(I)Lorg/w3c/dom/Node;
            astore 17 /* currentNode */
        start local 17 // org.w3c.dom.Node currentNode
        77: .line 1025
            aload 17 /* currentNode */
            invokeinterface org.w3c.dom.Node.getNodeType:()S
            tableswitch { // 1 - 3
                    1: 79
                    2: 86
                    3: 78
              default: 86
          }
        78: .line 1027
      StackMap locals: org.w3c.dom.Node
      StackMap stack:
            goto 86
        79: .line 1029
      StackMap locals:
      StackMap stack:
            aload 17 /* currentNode */
            invokeinterface org.w3c.dom.Node.getNodeName:()Ljava/lang/String;
            astore 18 /* tempScope */
        start local 18 // java.lang.String tempScope
        80: .line 1030
            aload 18 /* tempScope */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 85
        81: .line 1031
            aload 3 /* lock */
            aload 18 /* tempScope */
        82: .line 1032
            aload 18 /* tempScope */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_1
            iadd
        83: .line 1031
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            putfield org.apache.catalina.servlets.WebdavServlet$LockInfo.scope:Ljava/lang/String;
        84: .line 1033
            goto 86
        85: .line 1034
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* lock */
            aload 18 /* tempScope */
            putfield org.apache.catalina.servlets.WebdavServlet$LockInfo.scope:Ljava/lang/String;
        end local 18 // java.lang.String tempScope
        end local 17 // org.w3c.dom.Node currentNode
        86: .line 1023
      StackMap locals:
      StackMap stack:
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        87: iload 16 /* i */
            aload 10 /* childList */
            invokeinterface org.w3c.dom.NodeList.getLength:()I
            if_icmplt 76
        end local 16 // int i
        88: .line 1040
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.scope:Ljava/lang/String;
            ifnonnull 92
        89: .line 1042
            aload 2 /* resp */
            sipush 400
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
        90: .line 1045
            goto 92
        91: .line 1047
      StackMap locals:
      StackMap stack:
            aload 2 /* resp */
            sipush 400
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
        92: .line 1050
      StackMap locals:
      StackMap stack:
            aload 14 /* lockTypeNode */
            ifnull 111
        93: .line 1052
            aload 14 /* lockTypeNode */
            invokeinterface org.w3c.dom.Node.getChildNodes:()Lorg/w3c/dom/NodeList;
            astore 10 /* childList */
        94: .line 1053
            iconst_0
            istore 16 /* i */
        start local 16 // int i
        95: goto 107
        96: .line 1054
      StackMap locals: int
      StackMap stack:
            aload 10 /* childList */
            iload 16 /* i */
            invokeinterface org.w3c.dom.NodeList.item:(I)Lorg/w3c/dom/Node;
            astore 17 /* currentNode */
        start local 17 // org.w3c.dom.Node currentNode
        97: .line 1055
            aload 17 /* currentNode */
            invokeinterface org.w3c.dom.Node.getNodeType:()S
            tableswitch { // 1 - 3
                    1: 99
                    2: 106
                    3: 98
              default: 106
          }
        98: .line 1057
      StackMap locals: org.w3c.dom.Node
      StackMap stack:
            goto 106
        99: .line 1059
      StackMap locals:
      StackMap stack:
            aload 17 /* currentNode */
            invokeinterface org.w3c.dom.Node.getNodeName:()Ljava/lang/String;
            astore 18 /* tempType */
        start local 18 // java.lang.String tempType
       100: .line 1060
            aload 18 /* tempType */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 105
       101: .line 1061
            aload 3 /* lock */
       102: .line 1062
            aload 18 /* tempType */
            aload 18 /* tempType */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
       103: .line 1061
            putfield org.apache.catalina.servlets.WebdavServlet$LockInfo.type:Ljava/lang/String;
       104: .line 1063
            goto 106
       105: .line 1064
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* lock */
            aload 18 /* tempType */
            putfield org.apache.catalina.servlets.WebdavServlet$LockInfo.type:Ljava/lang/String;
        end local 18 // java.lang.String tempType
        end local 17 // org.w3c.dom.Node currentNode
       106: .line 1053
      StackMap locals:
      StackMap stack:
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
       107: iload 16 /* i */
            aload 10 /* childList */
            invokeinterface org.w3c.dom.NodeList.getLength:()I
            if_icmplt 96
        end local 16 // int i
       108: .line 1070
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.type:Ljava/lang/String;
            ifnonnull 112
       109: .line 1072
            aload 2 /* resp */
            sipush 400
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
       110: .line 1075
            goto 112
       111: .line 1077
      StackMap locals:
      StackMap stack:
            aload 2 /* resp */
            sipush 400
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
       112: .line 1080
      StackMap locals:
      StackMap stack:
            aload 15 /* lockOwnerNode */
            ifnull 129
       113: .line 1082
            aload 15 /* lockOwnerNode */
            invokeinterface org.w3c.dom.Node.getChildNodes:()Lorg/w3c/dom/NodeList;
            astore 10 /* childList */
       114: .line 1083
            iconst_0
            istore 16 /* i */
        start local 16 // int i
       115: goto 125
       116: .line 1084
      StackMap locals: int
      StackMap stack:
            aload 10 /* childList */
            iload 16 /* i */
            invokeinterface org.w3c.dom.NodeList.item:(I)Lorg/w3c/dom/Node;
            astore 17 /* currentNode */
        start local 17 // org.w3c.dom.Node currentNode
       117: .line 1085
            aload 17 /* currentNode */
            invokeinterface org.w3c.dom.Node.getNodeType:()S
            tableswitch { // 1 - 3
                    1: 120
                    2: 124
                    3: 118
              default: 124
          }
       118: .line 1087
      StackMap locals: org.w3c.dom.Node
      StackMap stack:
            aload 3 /* lock */
            dup
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.owner:Ljava/lang/String;
            new java.lang.StringBuilder
            dup_x1
            swap
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 17 /* currentNode */
            invokeinterface org.w3c.dom.Node.getNodeValue:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield org.apache.catalina.servlets.WebdavServlet$LockInfo.owner:Ljava/lang/String;
       119: .line 1088
            goto 124
       120: .line 1090
      StackMap locals:
      StackMap stack:
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 11 /* strWriter */
       121: .line 1091
            new org.apache.catalina.util.DOMWriter
            dup
            aload 11 /* strWriter */
            invokespecial org.apache.catalina.util.DOMWriter.<init>:(Ljava/io/Writer;)V
            astore 12 /* domWriter */
       122: .line 1092
            aload 12 /* domWriter */
            aload 17 /* currentNode */
            invokevirtual org.apache.catalina.util.DOMWriter.print:(Lorg/w3c/dom/Node;)V
       123: .line 1093
            aload 3 /* lock */
            dup
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.owner:Ljava/lang/String;
            new java.lang.StringBuilder
            dup_x1
            swap
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 11 /* strWriter */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield org.apache.catalina.servlets.WebdavServlet$LockInfo.owner:Ljava/lang/String;
        end local 17 // org.w3c.dom.Node currentNode
       124: .line 1083
      StackMap locals:
      StackMap stack:
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
       125: iload 16 /* i */
            aload 10 /* childList */
            invokeinterface org.w3c.dom.NodeList.getLength:()I
            if_icmplt 116
        end local 16 // int i
       126: .line 1098
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.owner:Ljava/lang/String;
            ifnonnull 130
       127: .line 1100
            aload 2 /* resp */
            sipush 400
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
       128: .line 1103
            goto 130
       129: .line 1104
      StackMap locals:
      StackMap stack:
            aload 3 /* lock */
            ldc ""
            putfield org.apache.catalina.servlets.WebdavServlet$LockInfo.owner:Ljava/lang/String;
        end local 15 // org.w3c.dom.Node lockOwnerNode
        end local 14 // org.w3c.dom.Node lockTypeNode
        end local 13 // org.w3c.dom.Node lockScopeNode
        end local 12 // org.apache.catalina.util.DOMWriter domWriter
        end local 11 // java.io.StringWriter strWriter
        end local 10 // org.w3c.dom.NodeList childList
       130: .line 1109
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse org.apache.catalina.servlets.WebdavServlet$LockInfo java.lang.String int java.lang.String int org.w3c.dom.Node javax.xml.parsers.DocumentBuilder
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getRelativePath:(Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
            astore 10 /* path */
        start local 10 // java.lang.String path
       131: .line 1111
            aload 3 /* lock */
            aload 10 /* path */
            putfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
       132: .line 1113
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 10 /* path */
            invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 11 /* resource */
        start local 11 // org.apache.catalina.WebResource resource
       133: .line 1115
            aconst_null
            astore 12 /* locksList */
        start local 12 // java.util.Enumeration locksList
       134: .line 1117
            iload 7 /* lockRequestType */
            ifne 247
       135: .line 1120
            new java.lang.StringBuilder
            dup
            aload 1 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getServletPath:()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 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.type: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;
       136: .line 1121
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.scope: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;
            aload 1 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getUserPrincipal:()Ljava/security/Principal;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       137: .line 1122
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.depth:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.owner: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;
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.tokens:Ljava/util/Vector;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       138: .line 1123
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.expiresAt:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       139: .line 1124
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.secret:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       140: .line 1120
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 13 /* lockTokenStr */
        start local 13 // java.lang.String lockTokenStr
       141: .line 1125
            iconst_1
            anewarray byte[]
            dup
            iconst_0
       142: .line 1126
            aload 13 /* lockTokenStr */
            getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            aastore
       143: .line 1125
            invokestatic org.apache.tomcat.util.security.ConcurrentMessageDigest.digestMD5:([[B)[B
            invokestatic org.apache.tomcat.util.security.MD5Encoder.encode:([B)Ljava/lang/String;
            astore 14 /* lockToken */
        start local 14 // java.lang.String lockToken
       144: .line 1128
            aload 11 /* resource */
            invokeinterface org.apache.catalina.WebResource.isDirectory:()Z
            ifeq 225
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.depth:I
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.maxDepth:I
            if_icmpne 225
       145: .line 1134
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 15 /* lockPaths */
        start local 15 // java.util.Vector lockPaths
       146: .line 1135
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.collectionLocks:Ljava/util/Vector;
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
            astore 12 /* locksList */
       147: .line 1136
            goto 156
       148: .line 1137
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse org.apache.catalina.servlets.WebdavServlet$LockInfo java.lang.String int java.lang.String int org.w3c.dom.Node javax.xml.parsers.DocumentBuilder java.lang.String org.apache.catalina.WebResource java.util.Enumeration java.lang.String java.lang.String java.util.Vector
      StackMap stack:
            aload 12 /* locksList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.apache.catalina.servlets.WebdavServlet$LockInfo
            astore 16 /* currentLock */
        start local 16 // org.apache.catalina.servlets.WebdavServlet$LockInfo currentLock
       149: .line 1138
            aload 16 /* currentLock */
            invokevirtual org.apache.catalina.servlets.WebdavServlet$LockInfo.hasExpired:()Z
            ifeq 152
       150: .line 1139
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resourceLocks:Ljava/util/Hashtable;
            aload 16 /* currentLock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
       151: .line 1140
            goto 156
       152: .line 1142
      StackMap locals: org.apache.catalina.servlets.WebdavServlet$LockInfo
      StackMap stack:
            aload 16 /* currentLock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 156
       153: .line 1143
            aload 16 /* currentLock */
            invokevirtual org.apache.catalina.servlets.WebdavServlet$LockInfo.isExclusive:()Z
            ifne 155
       154: .line 1144
            aload 3 /* lock */
            invokevirtual org.apache.catalina.servlets.WebdavServlet$LockInfo.isExclusive:()Z
            ifeq 156
       155: .line 1146
      StackMap locals:
      StackMap stack:
            aload 15 /* lockPaths */
            aload 16 /* currentLock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 16 // org.apache.catalina.servlets.WebdavServlet$LockInfo currentLock
       156: .line 1136
      StackMap locals:
      StackMap stack:
            aload 12 /* locksList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 148
       157: .line 1149
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resourceLocks:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.elements:()Ljava/util/Enumeration;
            astore 12 /* locksList */
       158: .line 1150
            goto 167
       159: .line 1151
      StackMap locals:
      StackMap stack:
            aload 12 /* locksList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.apache.catalina.servlets.WebdavServlet$LockInfo
            astore 16 /* currentLock */
        start local 16 // org.apache.catalina.servlets.WebdavServlet$LockInfo currentLock
       160: .line 1152
            aload 16 /* currentLock */
            invokevirtual org.apache.catalina.servlets.WebdavServlet$LockInfo.hasExpired:()Z
            ifeq 163
       161: .line 1153
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resourceLocks:Ljava/util/Hashtable;
            aload 16 /* currentLock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
       162: .line 1154
            goto 167
       163: .line 1156
      StackMap locals: org.apache.catalina.servlets.WebdavServlet$LockInfo
      StackMap stack:
            aload 16 /* currentLock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 167
       164: .line 1157
            aload 16 /* currentLock */
            invokevirtual org.apache.catalina.servlets.WebdavServlet$LockInfo.isExclusive:()Z
            ifne 166
       165: .line 1158
            aload 3 /* lock */
            invokevirtual org.apache.catalina.servlets.WebdavServlet$LockInfo.isExclusive:()Z
            ifeq 167
       166: .line 1160
      StackMap locals:
      StackMap stack:
            aload 15 /* lockPaths */
            aload 16 /* currentLock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 16 // org.apache.catalina.servlets.WebdavServlet$LockInfo currentLock
       167: .line 1150
      StackMap locals:
      StackMap stack:
            aload 12 /* locksList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 159
       168: .line 1164
            aload 15 /* lockPaths */
            invokevirtual java.util.Vector.isEmpty:()Z
            ifne 206
       169: .line 1169
            aload 15 /* lockPaths */
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
            astore 16 /* lockPathsList */
        start local 16 // java.util.Enumeration lockPathsList
       170: .line 1171
            aload 2 /* resp */
            sipush 409
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
       171: .line 1173
            new org.apache.catalina.util.XMLWriter
            dup
            invokespecial org.apache.catalina.util.XMLWriter.<init>:()V
            astore 17 /* generatedXML */
        start local 17 // org.apache.catalina.util.XMLWriter generatedXML
       172: .line 1174
            aload 17 /* generatedXML */
            invokevirtual org.apache.catalina.util.XMLWriter.writeXMLHeader:()V
       173: .line 1176
            aload 17 /* generatedXML */
            ldc "D"
            ldc "DAV:"
       174: .line 1177
            ldc "multistatus"
            iconst_0
       175: .line 1176
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
       176: .line 1179
            goto 198
       177: .line 1180
      StackMap locals: java.util.Enumeration org.apache.catalina.util.XMLWriter
      StackMap stack:
            aload 17 /* generatedXML */
            ldc "D"
            ldc "response"
       178: .line 1181
            iconst_0
       179: .line 1180
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       180: .line 1182
            aload 17 /* generatedXML */
            ldc "D"
            ldc "href"
       181: .line 1183
            iconst_0
       182: .line 1182
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       183: .line 1184
            aload 17 /* generatedXML */
            aload 16 /* lockPathsList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual org.apache.catalina.util.XMLWriter.writeText:(Ljava/lang/String;)V
       184: .line 1185
            aload 17 /* generatedXML */
            ldc "D"
            ldc "href"
       185: .line 1186
            iconst_1
       186: .line 1185
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       187: .line 1187
            aload 17 /* generatedXML */
            ldc "D"
            ldc "status"
       188: .line 1188
            iconst_0
       189: .line 1187
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       190: .line 1189
            aload 17 /* generatedXML */
       191: .line 1190
            ldc "HTTP/1.1 423 "
            invokevirtual org.apache.catalina.util.XMLWriter.writeText:(Ljava/lang/String;)V
       192: .line 1192
            aload 17 /* generatedXML */
            ldc "D"
            ldc "status"
       193: .line 1193
            iconst_1
       194: .line 1192
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       195: .line 1195
            aload 17 /* generatedXML */
            ldc "D"
            ldc "response"
       196: .line 1196
            iconst_1
       197: .line 1195
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       198: .line 1179
      StackMap locals:
      StackMap stack:
            aload 16 /* lockPathsList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 177
       199: .line 1199
            aload 17 /* generatedXML */
            ldc "D"
            ldc "multistatus"
       200: .line 1200
            iconst_1
       201: .line 1199
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       202: .line 1202
            aload 2 /* resp */
            invokeinterface jakarta.servlet.http.HttpServletResponse.getWriter:()Ljava/io/PrintWriter;
            astore 18 /* writer */
        start local 18 // java.io.Writer writer
       203: .line 1203
            aload 18 /* writer */
            aload 17 /* generatedXML */
            invokevirtual org.apache.catalina.util.XMLWriter.toString:()Ljava/lang/String;
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
       204: .line 1204
            aload 18 /* writer */
            invokevirtual java.io.Writer.close:()V
       205: .line 1206
            return
        end local 18 // java.io.Writer writer
        end local 17 // org.apache.catalina.util.XMLWriter generatedXML
        end local 16 // java.util.Enumeration lockPathsList
       206: .line 1210
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 16 /* addLock */
        start local 16 // boolean addLock
       207: .line 1213
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.collectionLocks:Ljava/util/Vector;
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
            astore 12 /* locksList */
       208: .line 1214
            goto 220
       209: .line 1216
      StackMap locals: int
      StackMap stack:
            aload 12 /* locksList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.apache.catalina.servlets.WebdavServlet$LockInfo
            astore 17 /* currentLock */
        start local 17 // org.apache.catalina.servlets.WebdavServlet$LockInfo currentLock
       210: .line 1217
            aload 17 /* currentLock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 220
       211: .line 1219
            aload 17 /* currentLock */
            invokevirtual org.apache.catalina.servlets.WebdavServlet$LockInfo.isExclusive:()Z
            ifeq 214
       212: .line 1220
            aload 2 /* resp */
            sipush 423
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
       213: .line 1221
            return
       214: .line 1223
      StackMap locals: org.apache.catalina.servlets.WebdavServlet$LockInfo
      StackMap stack:
            aload 3 /* lock */
            invokevirtual org.apache.catalina.servlets.WebdavServlet$LockInfo.isExclusive:()Z
            ifeq 217
       215: .line 1224
            aload 2 /* resp */
            sipush 423
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
       216: .line 1225
            return
       217: .line 1229
      StackMap locals:
      StackMap stack:
            aload 17 /* currentLock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.tokens:Ljava/util/Vector;
            aload 14 /* lockToken */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
       218: .line 1230
            aload 17 /* currentLock */
            astore 3 /* lock */
       219: .line 1231
            iconst_0
            istore 16 /* addLock */
        end local 17 // org.apache.catalina.servlets.WebdavServlet$LockInfo currentLock
       220: .line 1214
      StackMap locals:
      StackMap stack:
            aload 12 /* locksList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 209
       221: .line 1237
            iload 16 /* addLock */
            ifeq 247
       222: .line 1238
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.tokens:Ljava/util/Vector;
            aload 14 /* lockToken */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
       223: .line 1239
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.collectionLocks:Ljava/util/Vector;
            aload 3 /* lock */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 16 // boolean addLock
        end local 15 // java.util.Vector lockPaths
       224: .line 1242
            goto 247
       225: .line 1247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resourceLocks:Ljava/util/Hashtable;
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.servlets.WebdavServlet$LockInfo
            astore 15 /* presentLock */
        start local 15 // org.apache.catalina.servlets.WebdavServlet$LockInfo presentLock
       226: .line 1248
            aload 15 /* presentLock */
            ifnull 233
       227: .line 1250
            aload 15 /* presentLock */
            invokevirtual org.apache.catalina.servlets.WebdavServlet$LockInfo.isExclusive:()Z
            ifne 228
            aload 3 /* lock */
            invokevirtual org.apache.catalina.servlets.WebdavServlet$LockInfo.isExclusive:()Z
            ifeq 230
       228: .line 1253
      StackMap locals: org.apache.catalina.servlets.WebdavServlet$LockInfo
      StackMap stack:
            aload 2 /* resp */
            sipush 412
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
       229: .line 1254
            return
       230: .line 1256
      StackMap locals:
      StackMap stack:
            aload 15 /* presentLock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.tokens:Ljava/util/Vector;
            aload 14 /* lockToken */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
       231: .line 1257
            aload 15 /* presentLock */
            astore 3 /* lock */
       232: .line 1260
            goto 247
       233: .line 1262
      StackMap locals:
      StackMap stack:
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.tokens:Ljava/util/Vector;
            aload 14 /* lockToken */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
       234: .line 1263
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resourceLocks:Ljava/util/Hashtable;
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            aload 3 /* lock */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       235: .line 1266
            aload 11 /* resource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifne 244
       236: .line 1269
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 16 /* slash */
        start local 16 // int slash
       237: .line 1270
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            iconst_0
            iload 16 /* slash */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 17 /* parentPath */
        start local 17 // java.lang.String parentPath
       238: .line 1273
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.lockNullResources:Ljava/util/Hashtable;
            aload 17 /* parentPath */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Vector
       239: .line 1272
            astore 18 /* lockNulls */
        start local 18 // java.util.Vector lockNulls
       240: .line 1274
            aload 18 /* lockNulls */
            ifnonnull 243
       241: .line 1275
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 18 /* lockNulls */
       242: .line 1276
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.lockNullResources:Ljava/util/Hashtable;
            aload 17 /* parentPath */
            aload 18 /* lockNulls */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       243: .line 1279
      StackMap locals: int java.lang.String java.util.Vector
      StackMap stack:
            aload 18 /* lockNulls */
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 18 // java.util.Vector lockNulls
        end local 17 // java.lang.String parentPath
        end local 16 // int slash
       244: .line 1284
      StackMap locals:
      StackMap stack:
            aload 2 /* resp */
            ldc "Lock-Token"
            new java.lang.StringBuilder
            dup
            ldc "<opaquelocktoken:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       245: .line 1285
            aload 14 /* lockToken */
            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;
       246: .line 1284
            invokeinterface jakarta.servlet.http.HttpServletResponse.addHeader:(Ljava/lang/String;Ljava/lang/String;)V
        end local 15 // org.apache.catalina.servlets.WebdavServlet$LockInfo presentLock
        end local 14 // java.lang.String lockToken
        end local 13 // java.lang.String lockTokenStr
       247: .line 1292
      StackMap locals:
      StackMap stack:
            iload 7 /* lockRequestType */
            iconst_1
            if_icmpne 274
       248: .line 1294
            aload 1 /* req */
            ldc "If"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 13 /* ifHeader */
        start local 13 // java.lang.String ifHeader
       249: .line 1295
            aload 13 /* ifHeader */
            ifnonnull 251
       250: .line 1296
            ldc ""
            astore 13 /* ifHeader */
       251: .line 1300
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resourceLocks:Ljava/util/Hashtable;
            aload 10 /* path */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.servlets.WebdavServlet$LockInfo
            astore 14 /* toRenew */
        start local 14 // org.apache.catalina.servlets.WebdavServlet$LockInfo toRenew
       252: .line 1301
            aconst_null
            astore 15 /* tokenList */
        start local 15 // java.util.Enumeration tokenList
       253: .line 1303
            aload 14 /* toRenew */
            ifnull 261
       254: .line 1305
            aload 14 /* toRenew */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.tokens:Ljava/util/Vector;
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
            astore 15 /* tokenList */
       255: .line 1306
            goto 260
       256: .line 1307
      StackMap locals: org.apache.catalina.servlets.WebdavServlet$LockInfo java.util.Enumeration
      StackMap stack:
            aload 15 /* tokenList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 16 /* token */
        start local 16 // java.lang.String token
       257: .line 1308
            aload 13 /* ifHeader */
            aload 16 /* token */
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 260
       258: .line 1309
            aload 14 /* toRenew */
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.expiresAt:J
            putfield org.apache.catalina.servlets.WebdavServlet$LockInfo.expiresAt:J
       259: .line 1310
            aload 14 /* toRenew */
            astore 3 /* lock */
        end local 16 // java.lang.String token
       260: .line 1306
      StackMap locals:
      StackMap stack:
            aload 15 /* tokenList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 256
       261: .line 1318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.collectionLocks:Ljava/util/Vector;
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
       262: .line 1317
            astore 16 /* collectionLocksList */
        start local 16 // java.util.Enumeration collectionLocksList
       263: .line 1319
            goto 273
       264: .line 1320
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 16 /* collectionLocksList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.apache.catalina.servlets.WebdavServlet$LockInfo
            astore 14 /* toRenew */
       265: .line 1321
            aload 10 /* path */
            aload 14 /* toRenew */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 273
       266: .line 1323
            aload 14 /* toRenew */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.tokens:Ljava/util/Vector;
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
            astore 15 /* tokenList */
       267: .line 1324
            goto 272
       268: .line 1325
      StackMap locals:
      StackMap stack:
            aload 15 /* tokenList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 17 /* token */
        start local 17 // java.lang.String token
       269: .line 1326
            aload 13 /* ifHeader */
            aload 17 /* token */
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 272
       270: .line 1327
            aload 14 /* toRenew */
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.expiresAt:J
            putfield org.apache.catalina.servlets.WebdavServlet$LockInfo.expiresAt:J
       271: .line 1328
            aload 14 /* toRenew */
            astore 3 /* lock */
        end local 17 // java.lang.String token
       272: .line 1324
      StackMap locals:
      StackMap stack:
            aload 15 /* tokenList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 268
       273: .line 1319
      StackMap locals:
      StackMap stack:
            aload 16 /* collectionLocksList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 264
        end local 16 // java.util.Enumeration collectionLocksList
        end local 15 // java.util.Enumeration tokenList
        end local 14 // org.apache.catalina.servlets.WebdavServlet$LockInfo toRenew
        end local 13 // java.lang.String ifHeader
       274: .line 1339
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse org.apache.catalina.servlets.WebdavServlet$LockInfo java.lang.String int java.lang.String int org.w3c.dom.Node javax.xml.parsers.DocumentBuilder java.lang.String org.apache.catalina.WebResource java.util.Enumeration
      StackMap stack:
            new org.apache.catalina.util.XMLWriter
            dup
            invokespecial org.apache.catalina.util.XMLWriter.<init>:()V
            astore 13 /* generatedXML */
        start local 13 // org.apache.catalina.util.XMLWriter generatedXML
       275: .line 1340
            aload 13 /* generatedXML */
            invokevirtual org.apache.catalina.util.XMLWriter.writeXMLHeader:()V
       276: .line 1341
            aload 13 /* generatedXML */
            ldc "D"
            ldc "DAV:"
            ldc "prop"
       277: .line 1342
            iconst_0
       278: .line 1341
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
       279: .line 1344
            aload 13 /* generatedXML */
            ldc "D"
            ldc "lockdiscovery"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       280: .line 1346
            aload 3 /* lock */
            aload 13 /* generatedXML */
            invokevirtual org.apache.catalina.servlets.WebdavServlet$LockInfo.toXML:(Lorg/apache/catalina/util/XMLWriter;)V
       281: .line 1348
            aload 13 /* generatedXML */
            ldc "D"
            ldc "lockdiscovery"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       282: .line 1350
            aload 13 /* generatedXML */
            ldc "D"
            ldc "prop"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       283: .line 1352
            aload 2 /* resp */
            sipush 200
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
       284: .line 1353
            aload 2 /* resp */
            ldc "text/xml; charset=UTF-8"
            invokeinterface jakarta.servlet.http.HttpServletResponse.setContentType:(Ljava/lang/String;)V
       285: .line 1354
            aload 2 /* resp */
            invokeinterface jakarta.servlet.http.HttpServletResponse.getWriter:()Ljava/io/PrintWriter;
            astore 14 /* writer */
        start local 14 // java.io.Writer writer
       286: .line 1355
            aload 14 /* writer */
            aload 13 /* generatedXML */
            invokevirtual org.apache.catalina.util.XMLWriter.toString:()Ljava/lang/String;
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
       287: .line 1356
            aload 14 /* writer */
            invokevirtual java.io.Writer.close:()V
       288: .line 1358
            return
        end local 14 // java.io.Writer writer
        end local 13 // org.apache.catalina.util.XMLWriter generatedXML
        end local 12 // java.util.Enumeration locksList
        end local 11 // org.apache.catalina.WebResource resource
        end local 10 // java.lang.String path
        end local 9 // javax.xml.parsers.DocumentBuilder documentBuilder
        end local 8 // org.w3c.dom.Node lockInfoNode
        end local 7 // int lockRequestType
        end local 6 // java.lang.String lockDurationStr
        end local 5 // int lockDuration
        end local 4 // java.lang.String depthStr
        end local 3 // org.apache.catalina.servlets.WebdavServlet$LockInfo lock
        end local 2 // jakarta.servlet.http.HttpServletResponse resp
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0  289     0                 this  Lorg/apache/catalina/servlets/WebdavServlet;
            0  289     1                  req  Ljakarta/servlet/http/HttpServletRequest;
            0  289     2                 resp  Ljakarta/servlet/http/HttpServletResponse;
            7  289     3                 lock  Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;
            8  289     4             depthStr  Ljava/lang/String;
           16  289     5         lockDuration  I
           17  289     6      lockDurationStr  Ljava/lang/String;
           21   37     7             commaPos  I
           39  289     7      lockRequestType  I
           40  289     8         lockInfoNode  Lorg/w3c/dom/Node;
           41  289     9      documentBuilder  Ljavax/xml/parsers/DocumentBuilder;
           44   46    10             document  Lorg/w3c/dom/Document;
           45   46    11          rootElement  Lorg/w3c/dom/Element;
           53  130    10            childList  Lorg/w3c/dom/NodeList;
           54  130    11            strWriter  Ljava/io/StringWriter;
           55  130    12            domWriter  Lorg/apache/catalina/util/DOMWriter;
           56  130    13        lockScopeNode  Lorg/w3c/dom/Node;
           57  130    14         lockTypeNode  Lorg/w3c/dom/Node;
           58  130    15        lockOwnerNode  Lorg/w3c/dom/Node;
           59   72    16                    i  I
           61   70    17          currentNode  Lorg/w3c/dom/Node;
           64   70    18             nodeName  Ljava/lang/String;
           75   88    16                    i  I
           77   86    17          currentNode  Lorg/w3c/dom/Node;
           80   86    18            tempScope  Ljava/lang/String;
           95  108    16                    i  I
           97  106    17          currentNode  Lorg/w3c/dom/Node;
          100  106    18             tempType  Ljava/lang/String;
          115  126    16                    i  I
          117  124    17          currentNode  Lorg/w3c/dom/Node;
          131  289    10                 path  Ljava/lang/String;
          133  289    11             resource  Lorg/apache/catalina/WebResource;
          134  289    12            locksList  Ljava/util/Enumeration<Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;>;
          141  247    13         lockTokenStr  Ljava/lang/String;
          144  247    14            lockToken  Ljava/lang/String;
          146  224    15            lockPaths  Ljava/util/Vector<Ljava/lang/String;>;
          149  156    16          currentLock  Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;
          160  167    16          currentLock  Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;
          170  206    16        lockPathsList  Ljava/util/Enumeration<Ljava/lang/String;>;
          172  206    17         generatedXML  Lorg/apache/catalina/util/XMLWriter;
          203  206    18               writer  Ljava/io/Writer;
          207  224    16              addLock  Z
          210  220    17          currentLock  Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;
          226  247    15          presentLock  Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;
          237  244    16                slash  I
          238  244    17           parentPath  Ljava/lang/String;
          240  244    18            lockNulls  Ljava/util/Vector<Ljava/lang/String;>;
          249  274    13             ifHeader  Ljava/lang/String;
          252  274    14              toRenew  Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;
          253  274    15            tokenList  Ljava/util/Enumeration<Ljava/lang/String;>;
          257  260    16                token  Ljava/lang/String;
          263  274    16  collectionLocksList  Ljava/util/Enumeration<Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;>;
          269  272    17                token  Ljava/lang/String;
          275  289    13         generatedXML  Lorg/apache/catalina/util/XMLWriter;
          286  289    14               writer  Ljava/io/Writer;
      Exception table:
        from    to  target  type
          29    30      31  Class java.lang.NumberFormatException
          41    46      47  Class java.io.IOException
          41    46      49  Class org.xml.sax.SAXException
    Exceptions:
      throws jakarta.servlet.ServletException, java.io.IOException
    MethodParameters:
      Name  Flags
      req   
      resp  

  protected void doUnlock(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=9, args_size=3
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // jakarta.servlet.http.HttpServletResponse resp
         0: .line 1370
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.readOnly:Z
            ifeq 3
         1: .line 1371
            aload 2 /* resp */
            sipush 403
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
         2: .line 1372
            return
         3: .line 1375
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.isLocked:(Ljakarta/servlet/http/HttpServletRequest;)Z
            ifeq 6
         4: .line 1376
            aload 2 /* resp */
            sipush 423
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
         5: .line 1377
            return
         6: .line 1380
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getRelativePath:(Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         7: .line 1382
            aload 1 /* req */
            ldc "Lock-Token"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* lockTokenHeader */
        start local 4 // java.lang.String lockTokenHeader
         8: .line 1383
            aload 4 /* lockTokenHeader */
            ifnonnull 10
         9: .line 1384
            ldc ""
            astore 4 /* lockTokenHeader */
        10: .line 1388
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resourceLocks:Ljava/util/Hashtable;
            aload 3 /* path */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.servlets.WebdavServlet$LockInfo
            astore 5 /* lock */
        start local 5 // org.apache.catalina.servlets.WebdavServlet$LockInfo lock
        11: .line 1389
            aconst_null
            astore 6 /* tokenList */
        start local 6 // java.util.Enumeration tokenList
        12: .line 1390
            aload 5 /* lock */
            ifnull 22
        13: .line 1394
            aload 5 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.tokens:Ljava/util/Vector;
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
            astore 6 /* tokenList */
        14: .line 1395
            goto 18
        15: .line 1396
      StackMap locals: org.apache.catalina.servlets.WebdavServlet$LockInfo java.util.Enumeration
      StackMap stack:
            aload 6 /* tokenList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* token */
        start local 7 // java.lang.String token
        16: .line 1397
            aload 4 /* lockTokenHeader */
            aload 7 /* token */
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 18
        17: .line 1398
            aload 5 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.tokens:Ljava/util/Vector;
            aload 7 /* token */
            invokevirtual java.util.Vector.removeElement:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.String token
        18: .line 1395
      StackMap locals:
      StackMap stack:
            aload 6 /* tokenList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 15
        19: .line 1402
            aload 5 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.tokens:Ljava/util/Vector;
            invokevirtual java.util.Vector.isEmpty:()Z
            ifeq 22
        20: .line 1403
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resourceLocks:Ljava/util/Hashtable;
            aload 3 /* path */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        21: .line 1405
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.lockNullResources:Ljava/util/Hashtable;
            aload 3 /* path */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 1412
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.collectionLocks:Ljava/util/Vector;
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
            astore 7 /* collectionLocksList */
        start local 7 // java.util.Enumeration collectionLocksList
        23: .line 1413
            goto 36
        24: .line 1414
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 7 /* collectionLocksList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.apache.catalina.servlets.WebdavServlet$LockInfo
            astore 5 /* lock */
        25: .line 1415
            aload 3 /* path */
            aload 5 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 36
        26: .line 1417
            aload 5 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.tokens:Ljava/util/Vector;
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
            astore 6 /* tokenList */
        27: .line 1418
            goto 32
        28: .line 1419
      StackMap locals:
      StackMap stack:
            aload 6 /* tokenList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* token */
        start local 8 // java.lang.String token
        29: .line 1420
            aload 4 /* lockTokenHeader */
            aload 8 /* token */
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 32
        30: .line 1421
            aload 5 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.tokens:Ljava/util/Vector;
            aload 8 /* token */
            invokevirtual java.util.Vector.removeElement:(Ljava/lang/Object;)Z
            pop
        31: .line 1422
            goto 33
        end local 8 // java.lang.String token
        32: .line 1418
      StackMap locals:
      StackMap stack:
            aload 6 /* tokenList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 28
        33: .line 1426
      StackMap locals:
      StackMap stack:
            aload 5 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.tokens:Ljava/util/Vector;
            invokevirtual java.util.Vector.isEmpty:()Z
            ifeq 36
        34: .line 1427
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.collectionLocks:Ljava/util/Vector;
            aload 5 /* lock */
            invokevirtual java.util.Vector.removeElement:(Ljava/lang/Object;)Z
            pop
        35: .line 1429
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.lockNullResources:Ljava/util/Hashtable;
            aload 3 /* path */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        36: .line 1413
      StackMap locals:
      StackMap stack:
            aload 7 /* collectionLocksList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 24
        37: .line 1435
            aload 2 /* resp */
            sipush 204
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
        38: .line 1437
            return
        end local 7 // java.util.Enumeration collectionLocksList
        end local 6 // java.util.Enumeration tokenList
        end local 5 // org.apache.catalina.servlets.WebdavServlet$LockInfo lock
        end local 4 // java.lang.String lockTokenHeader
        end local 3 // java.lang.String path
        end local 2 // jakarta.servlet.http.HttpServletResponse resp
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   39     0                 this  Lorg/apache/catalina/servlets/WebdavServlet;
            0   39     1                  req  Ljakarta/servlet/http/HttpServletRequest;
            0   39     2                 resp  Ljakarta/servlet/http/HttpServletResponse;
            7   39     3                 path  Ljava/lang/String;
            8   39     4      lockTokenHeader  Ljava/lang/String;
           11   39     5                 lock  Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;
           12   39     6            tokenList  Ljava/util/Enumeration<Ljava/lang/String;>;
           16   18     7                token  Ljava/lang/String;
           23   39     7  collectionLocksList  Ljava/util/Enumeration<Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;>;
           29   32     8                token  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      req   
      resp  

  private boolean isLocked(jakarta.servlet.http.HttpServletRequest);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
         0: .line 1453
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getRelativePath:(Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
            astore 2 /* path */
        start local 2 // java.lang.String path
         1: .line 1455
            aload 1 /* req */
            ldc "If"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* ifHeader */
        start local 3 // java.lang.String ifHeader
         2: .line 1456
            aload 3 /* ifHeader */
            ifnonnull 4
         3: .line 1457
            ldc ""
            astore 3 /* ifHeader */
         4: .line 1459
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 1 /* req */
            ldc "Lock-Token"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* lockTokenHeader */
        start local 4 // java.lang.String lockTokenHeader
         5: .line 1460
            aload 4 /* lockTokenHeader */
            ifnonnull 7
         6: .line 1461
            ldc ""
            astore 4 /* lockTokenHeader */
         7: .line 1463
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* path */
            new java.lang.StringBuilder
            dup
            aload 3 /* ifHeader */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* lockTokenHeader */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.catalina.servlets.WebdavServlet.isLocked:(Ljava/lang/String;Ljava/lang/String;)Z
            ireturn
        end local 4 // java.lang.String lockTokenHeader
        end local 3 // java.lang.String ifHeader
        end local 2 // java.lang.String path
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lorg/apache/catalina/servlets/WebdavServlet;
            0    8     1              req  Ljakarta/servlet/http/HttpServletRequest;
            1    8     2             path  Ljava/lang/String;
            2    8     3         ifHeader  Ljava/lang/String;
            5    8     4  lockTokenHeader  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      req   

  private boolean isLocked(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=8, args_size=3
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // java.lang.String path
        start local 2 // java.lang.String ifHeader
         0: .line 1481
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resourceLocks:Ljava/util/Hashtable;
            aload 1 /* path */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.servlets.WebdavServlet$LockInfo
            astore 3 /* lock */
        start local 3 // org.apache.catalina.servlets.WebdavServlet$LockInfo lock
         1: .line 1482
            aconst_null
            astore 4 /* tokenList */
        start local 4 // java.util.Enumeration tokenList
         2: .line 1483
            aload 3 /* lock */
            ifnull 5
            aload 3 /* lock */
            invokevirtual org.apache.catalina.servlets.WebdavServlet$LockInfo.hasExpired:()Z
            ifeq 5
         3: .line 1484
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resourceLocks:Ljava/util/Hashtable;
            aload 1 /* path */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 1485
            goto 16
      StackMap locals: org.apache.catalina.servlets.WebdavServlet$LockInfo java.util.Enumeration
      StackMap stack:
         5: aload 3 /* lock */
            ifnull 16
         6: .line 1489
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.tokens:Ljava/util/Vector;
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
            astore 4 /* tokenList */
         7: .line 1490
            iconst_0
            istore 5 /* tokenMatch */
        start local 5 // boolean tokenMatch
         8: .line 1491
            goto 13
         9: .line 1492
      StackMap locals: int
      StackMap stack:
            aload 4 /* tokenList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* token */
        start local 6 // java.lang.String token
        10: .line 1493
            aload 2 /* ifHeader */
            aload 6 /* token */
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 13
        11: .line 1494
            iconst_1
            istore 5 /* tokenMatch */
        12: .line 1495
            goto 14
        end local 6 // java.lang.String token
        13: .line 1491
      StackMap locals:
      StackMap stack:
            aload 4 /* tokenList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 9
        14: .line 1498
      StackMap locals:
      StackMap stack:
            iload 5 /* tokenMatch */
            ifne 16
        15: .line 1499
            iconst_1
            ireturn
        end local 5 // boolean tokenMatch
        16: .line 1505
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.collectionLocks:Ljava/util/Vector;
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
            astore 5 /* collectionLocksList */
        start local 5 // java.util.Enumeration collectionLocksList
        17: .line 1506
            goto 33
        18: .line 1507
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 5 /* collectionLocksList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.apache.catalina.servlets.WebdavServlet$LockInfo
            astore 3 /* lock */
        19: .line 1508
            aload 3 /* lock */
            invokevirtual org.apache.catalina.servlets.WebdavServlet$LockInfo.hasExpired:()Z
            ifeq 22
        20: .line 1509
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.collectionLocks:Ljava/util/Vector;
            aload 3 /* lock */
            invokevirtual java.util.Vector.removeElement:(Ljava/lang/Object;)Z
            pop
        21: .line 1510
            goto 33
      StackMap locals:
      StackMap stack:
        22: aload 1 /* path */
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 33
        23: .line 1512
            aload 3 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.tokens:Ljava/util/Vector;
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
            astore 4 /* tokenList */
        24: .line 1513
            iconst_0
            istore 6 /* tokenMatch */
        start local 6 // boolean tokenMatch
        25: .line 1514
            goto 30
        26: .line 1515
      StackMap locals: int
      StackMap stack:
            aload 4 /* tokenList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* token */
        start local 7 // java.lang.String token
        27: .line 1516
            aload 2 /* ifHeader */
            aload 7 /* token */
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 30
        28: .line 1517
            iconst_1
            istore 6 /* tokenMatch */
        29: .line 1518
            goto 31
        end local 7 // java.lang.String token
        30: .line 1514
      StackMap locals:
      StackMap stack:
            aload 4 /* tokenList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 26
        31: .line 1521
      StackMap locals:
      StackMap stack:
            iload 6 /* tokenMatch */
            ifne 33
        32: .line 1522
            iconst_1
            ireturn
        end local 6 // boolean tokenMatch
        33: .line 1506
      StackMap locals:
      StackMap stack:
            aload 5 /* collectionLocksList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 18
        34: .line 1527
            iconst_0
            ireturn
        end local 5 // java.util.Enumeration collectionLocksList
        end local 4 // java.util.Enumeration tokenList
        end local 3 // org.apache.catalina.servlets.WebdavServlet$LockInfo lock
        end local 2 // java.lang.String ifHeader
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   35     0                 this  Lorg/apache/catalina/servlets/WebdavServlet;
            0   35     1                 path  Ljava/lang/String;
            0   35     2             ifHeader  Ljava/lang/String;
            1   35     3                 lock  Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;
            2   35     4            tokenList  Ljava/util/Enumeration<Ljava/lang/String;>;
            8   16     5           tokenMatch  Z
           10   13     6                token  Ljava/lang/String;
           17   35     5  collectionLocksList  Ljava/util/Enumeration<Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;>;
           25   33     6           tokenMatch  Z
           27   30     7                token  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      path      
      ifHeader  

  private boolean copyResource(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // jakarta.servlet.http.HttpServletResponse resp
         0: .line 1546
            aload 1 /* req */
            ldc "Destination"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* destinationPath */
        start local 3 // java.lang.String destinationPath
         1: .line 1548
            aload 3 /* destinationPath */
            ifnonnull 4
         2: .line 1549
            aload 2 /* resp */
            sipush 400
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
         3: .line 1550
            iconst_0
            ireturn
         4: .line 1554
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* destinationPath */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokestatic org.apache.tomcat.util.buf.UDecoder.URLDecode:(Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/lang/String;
            astore 3 /* destinationPath */
         5: .line 1556
            aload 3 /* destinationPath */
            ldc "://"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 4 /* protocolIndex */
        start local 4 // int protocolIndex
         6: .line 1557
            iload 4 /* protocolIndex */
            iflt 14
         7: .line 1561
            aload 3 /* destinationPath */
            bipush 47
            iload 4 /* protocolIndex */
            iconst_4
            iadd
            invokevirtual java.lang.String.indexOf:(II)I
         8: .line 1560
            istore 5 /* firstSeparator */
        start local 5 // int firstSeparator
         9: .line 1562
            iload 5 /* firstSeparator */
            ifge 12
        10: .line 1563
            ldc "/"
            astore 3 /* destinationPath */
        11: .line 1564
            goto 27
        12: .line 1565
      StackMap locals: int int
      StackMap stack:
            aload 3 /* destinationPath */
            iload 5 /* firstSeparator */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* destinationPath */
        end local 5 // int firstSeparator
        13: .line 1567
            goto 27
        14: .line 1568
      StackMap locals:
      StackMap stack:
            aload 1 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getServerName:()Ljava/lang/String;
            astore 5 /* hostName */
        start local 5 // java.lang.String hostName
        15: .line 1569
            aload 5 /* hostName */
            ifnull 17
            aload 3 /* destinationPath */
            aload 5 /* hostName */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 17
        16: .line 1570
            aload 3 /* destinationPath */
            aload 5 /* hostName */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* destinationPath */
        17: .line 1573
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* destinationPath */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            istore 6 /* portIndex */
        start local 6 // int portIndex
        18: .line 1574
            iload 6 /* portIndex */
            iflt 20
        19: .line 1575
            aload 3 /* destinationPath */
            iload 6 /* portIndex */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* destinationPath */
        20: .line 1578
      StackMap locals: int
      StackMap stack:
            aload 3 /* destinationPath */
            ldc ":"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 27
        21: .line 1579
            aload 3 /* destinationPath */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            istore 7 /* firstSeparator */
        start local 7 // int firstSeparator
        22: .line 1580
            iload 7 /* firstSeparator */
            ifge 25
        23: .line 1581
            ldc "/"
            astore 3 /* destinationPath */
        24: .line 1582
            goto 27
        25: .line 1584
      StackMap locals: int
      StackMap stack:
            aload 3 /* destinationPath */
            iload 7 /* firstSeparator */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
        26: .line 1583
            astore 3 /* destinationPath */
        end local 7 // int firstSeparator
        end local 6 // int portIndex
        end local 5 // java.lang.String hostName
        27: .line 1590
      StackMap locals:
      StackMap stack:
            aload 3 /* destinationPath */
            invokestatic org.apache.tomcat.util.http.RequestUtil.normalize:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* destinationPath */
        28: .line 1592
            aload 1 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getContextPath:()Ljava/lang/String;
            astore 5 /* contextPath */
        start local 5 // java.lang.String contextPath
        29: .line 1593
            aload 5 /* contextPath */
            ifnull 32
        30: .line 1594
            aload 3 /* destinationPath */
            aload 5 /* contextPath */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 32
        31: .line 1595
            aload 3 /* destinationPath */
            aload 5 /* contextPath */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* destinationPath */
        32: .line 1598
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getPathInfo:()Ljava/lang/String;
            astore 6 /* pathInfo */
        start local 6 // java.lang.String pathInfo
        33: .line 1599
            aload 6 /* pathInfo */
            ifnull 40
        34: .line 1600
            aload 1 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getServletPath:()Ljava/lang/String;
            astore 7 /* servletPath */
        start local 7 // java.lang.String servletPath
        35: .line 1601
            aload 7 /* servletPath */
            ifnull 40
        36: .line 1602
            aload 3 /* destinationPath */
            aload 7 /* servletPath */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 40
        37: .line 1603
            aload 3 /* destinationPath */
        38: .line 1604
            aload 7 /* servletPath */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
        39: .line 1603
            astore 3 /* destinationPath */
        end local 7 // java.lang.String servletPath
        40: .line 1608
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.debug:I
            ifle 42
        41: .line 1609
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Dest path :"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* destinationPath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.catalina.servlets.WebdavServlet.log:(Ljava/lang/String;)V
        42: .line 1612
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* destinationPath */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.isSpecialPath:(Ljava/lang/String;)Z
            ifeq 45
        43: .line 1613
            aload 2 /* resp */
            sipush 403
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        44: .line 1614
            iconst_0
            ireturn
        45: .line 1617
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getRelativePath:(Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
            astore 7 /* path */
        start local 7 // java.lang.String path
        46: .line 1619
            aload 3 /* destinationPath */
            aload 7 /* path */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 49
        47: .line 1620
            aload 2 /* resp */
            sipush 403
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        48: .line 1621
            iconst_0
            ireturn
        49: .line 1626
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_1
            istore 8 /* overwrite */
        start local 8 // boolean overwrite
        50: .line 1627
            aload 1 /* req */
            ldc "Overwrite"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* overwriteHeader */
        start local 9 // java.lang.String overwriteHeader
        51: .line 1629
            aload 9 /* overwriteHeader */
            ifnull 56
        52: .line 1630
            aload 9 /* overwriteHeader */
            ldc "T"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 55
        53: .line 1631
            iconst_1
            istore 8 /* overwrite */
        54: .line 1632
            goto 56
        55: .line 1633
      StackMap locals: int java.lang.String
      StackMap stack:
            iconst_0
            istore 8 /* overwrite */
        56: .line 1639
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 3 /* destinationPath */
            invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 10 /* destination */
        start local 10 // org.apache.catalina.WebResource destination
        57: .line 1641
            iload 8 /* overwrite */
            ifeq 63
        58: .line 1643
            aload 10 /* destination */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifeq 61
        59: .line 1644
            aload 0 /* this */
            aload 3 /* destinationPath */
            aload 1 /* req */
            aload 2 /* resp */
            iconst_1
            invokevirtual org.apache.catalina.servlets.WebdavServlet.deleteResource:(Ljava/lang/String;Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;Z)Z
            ifne 66
        60: .line 1645
            iconst_0
            ireturn
        61: .line 1648
      StackMap locals: org.apache.catalina.WebResource
      StackMap stack:
            aload 2 /* resp */
            sipush 201
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
        62: .line 1650
            goto 66
        63: .line 1652
      StackMap locals:
      StackMap stack:
            aload 10 /* destination */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifeq 66
        64: .line 1653
            aload 2 /* resp */
            sipush 412
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        65: .line 1654
            iconst_0
            ireturn
        66: .line 1660
      StackMap locals:
      StackMap stack:
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            astore 11 /* errorList */
        start local 11 // java.util.Hashtable errorList
        67: .line 1662
            aload 0 /* this */
            aload 11 /* errorList */
            aload 7 /* path */
            aload 3 /* destinationPath */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.copyResource:(Ljava/util/Hashtable;Ljava/lang/String;Ljava/lang/String;)Z
            istore 12 /* result */
        start local 12 // boolean result
        68: .line 1664
            iload 12 /* result */
            ifeq 69
            aload 11 /* errorList */
            invokevirtual java.util.Hashtable.isEmpty:()Z
            ifne 74
        69: .line 1665
      StackMap locals: java.util.Hashtable int
      StackMap stack:
            aload 11 /* errorList */
            invokevirtual java.util.Hashtable.size:()I
            iconst_1
            if_icmpne 72
        70: .line 1666
            aload 2 /* resp */
            aload 11 /* errorList */
            invokevirtual java.util.Hashtable.elements:()Ljava/util/Enumeration;
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        71: .line 1667
            goto 73
        72: .line 1668
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* req */
            aload 2 /* resp */
            aload 11 /* errorList */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.sendReport:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;Ljava/util/Hashtable;)V
        73: .line 1670
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        74: .line 1674
      StackMap locals:
      StackMap stack:
            aload 10 /* destination */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifeq 77
        75: .line 1675
            aload 2 /* resp */
            sipush 204
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
        76: .line 1676
            goto 78
        77: .line 1677
      StackMap locals:
      StackMap stack:
            aload 2 /* resp */
            sipush 201
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
        78: .line 1682
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.lockNullResources:Ljava/util/Hashtable;
            aload 3 /* destinationPath */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        79: .line 1684
            iconst_1
            ireturn
        end local 12 // boolean result
        end local 11 // java.util.Hashtable errorList
        end local 10 // org.apache.catalina.WebResource destination
        end local 9 // java.lang.String overwriteHeader
        end local 8 // boolean overwrite
        end local 7 // java.lang.String path
        end local 6 // java.lang.String pathInfo
        end local 5 // java.lang.String contextPath
        end local 4 // int protocolIndex
        end local 3 // java.lang.String destinationPath
        end local 2 // jakarta.servlet.http.HttpServletResponse resp
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   80     0             this  Lorg/apache/catalina/servlets/WebdavServlet;
            0   80     1              req  Ljakarta/servlet/http/HttpServletRequest;
            0   80     2             resp  Ljakarta/servlet/http/HttpServletResponse;
            1   80     3  destinationPath  Ljava/lang/String;
            6   80     4    protocolIndex  I
            9   13     5   firstSeparator  I
           15   27     5         hostName  Ljava/lang/String;
           18   27     6        portIndex  I
           22   27     7   firstSeparator  I
           29   80     5      contextPath  Ljava/lang/String;
           33   80     6         pathInfo  Ljava/lang/String;
           35   40     7      servletPath  Ljava/lang/String;
           46   80     7             path  Ljava/lang/String;
           50   80     8        overwrite  Z
           51   80     9  overwriteHeader  Ljava/lang/String;
           57   80    10      destination  Lorg/apache/catalina/WebResource;
           67   80    11        errorList  Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Integer;>;
           68   80    12           result  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      req   
      resp  

  private boolean copyResource(java.util.Hashtable<java.lang.String, java.lang.Integer>, java.lang.String, java.lang.String);
    descriptor: (Ljava/util/Hashtable;Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=12, args_size=4
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // java.util.Hashtable errorList
        start local 2 // java.lang.String source
        start local 3 // java.lang.String dest
         0: .line 1700
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.debug:I
            iconst_1
            if_icmple 2
         1: .line 1701
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Copy: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* source */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " To: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* dest */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.catalina.servlets.WebdavServlet.log:(Ljava/lang/String;)V
         2: .line 1703
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 2 /* source */
            invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 4 /* sourceResource */
        start local 4 // org.apache.catalina.WebResource sourceResource
         3: .line 1705
            aload 4 /* sourceResource */
            invokeinterface org.apache.catalina.WebResource.isDirectory:()Z
            ifeq 24
         4: .line 1706
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 3 /* dest */
            invokeinterface org.apache.catalina.WebResourceRoot.mkdir:(Ljava/lang/String;)Z
            ifne 9
         5: .line 1707
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 3 /* dest */
            invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 5 /* destResource */
        start local 5 // org.apache.catalina.WebResource destResource
         6: .line 1708
            aload 5 /* destResource */
            invokeinterface org.apache.catalina.WebResource.isDirectory:()Z
            ifne 9
         7: .line 1709
            aload 1 /* errorList */
            aload 3 /* dest */
            sipush 409
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 1710
            iconst_0
            ireturn
        end local 5 // org.apache.catalina.WebResource destResource
         9: .line 1714
      StackMap locals: org.apache.catalina.WebResource
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 2 /* source */
            invokeinterface org.apache.catalina.WebResourceRoot.list:(Ljava/lang/String;)[Ljava/lang/String;
            astore 5 /* entries */
        start local 5 // java.lang.String[] entries
        10: .line 1715
            aload 5 /* entries */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 22
      StackMap locals: org.apache.catalina.servlets.WebdavServlet java.util.Hashtable java.lang.String java.lang.String org.apache.catalina.WebResource java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        11: aload 9
            iload 7
            aaload
            astore 6 /* entry */
        start local 6 // java.lang.String entry
        12: .line 1716
            aload 3 /* dest */
            astore 10 /* childDest */
        start local 10 // java.lang.String childDest
        13: .line 1717
            aload 10 /* childDest */
            ldc "/"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 15
        14: .line 1718
            new java.lang.StringBuilder
            dup
            aload 10 /* childDest */
            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 10 /* childDest */
        15: .line 1720
      StackMap locals: org.apache.catalina.servlets.WebdavServlet java.util.Hashtable java.lang.String java.lang.String org.apache.catalina.WebResource java.lang.String[] java.lang.String int int java.lang.String[] java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 10 /* childDest */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* entry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* childDest */
        16: .line 1721
            aload 2 /* source */
            astore 11 /* childSrc */
        start local 11 // java.lang.String childSrc
        17: .line 1722
            aload 11 /* childSrc */
            ldc "/"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 19
        18: .line 1723
            new java.lang.StringBuilder
            dup
            aload 11 /* childSrc */
            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 11 /* childSrc */
        19: .line 1725
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 11 /* childSrc */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* entry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 11 /* childSrc */
        20: .line 1726
            aload 0 /* this */
            aload 1 /* errorList */
            aload 11 /* childSrc */
            aload 10 /* childDest */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.copyResource:(Ljava/util/Hashtable;Ljava/lang/String;Ljava/lang/String;)Z
            pop
        end local 11 // java.lang.String childSrc
        end local 10 // java.lang.String childDest
        end local 6 // java.lang.String entry
        21: .line 1715
            iinc 7 1
      StackMap locals: org.apache.catalina.servlets.WebdavServlet java.util.Hashtable java.lang.String java.lang.String org.apache.catalina.WebResource java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        22: iload 7
            iload 8
            if_icmplt 11
        end local 5 // java.lang.String[] entries
        23: .line 1728
            goto 53
      StackMap locals: org.apache.catalina.servlets.WebdavServlet java.util.Hashtable java.lang.String java.lang.String org.apache.catalina.WebResource
      StackMap stack:
        24: aload 4 /* sourceResource */
            invokeinterface org.apache.catalina.WebResource.isFile:()Z
            ifeq 51
        25: .line 1729
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 3 /* dest */
            invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 5 /* destResource */
        start local 5 // org.apache.catalina.WebResource destResource
        26: .line 1730
            aload 5 /* destResource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifne 34
            aload 5 /* destResource */
            invokeinterface org.apache.catalina.WebResource.getWebappPath:()Ljava/lang/String;
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 34
        27: .line 1731
            aload 5 /* destResource */
            invokeinterface org.apache.catalina.WebResource.getWebappPath:()Ljava/lang/String;
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 6 /* lastSlash */
        start local 6 // int lastSlash
        28: .line 1732
            iload 6 /* lastSlash */
            ifle 34
        29: .line 1733
            aload 5 /* destResource */
            invokeinterface org.apache.catalina.WebResource.getWebappPath:()Ljava/lang/String;
            iconst_0
            iload 6 /* lastSlash */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 7 /* parent */
        start local 7 // java.lang.String parent
        30: .line 1734
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 7 /* parent */
            invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 8 /* parentResource */
        start local 8 // org.apache.catalina.WebResource parentResource
        31: .line 1735
            aload 8 /* parentResource */
            invokeinterface org.apache.catalina.WebResource.isDirectory:()Z
            ifne 34
        32: .line 1736
            aload 1 /* errorList */
            aload 2 /* source */
            sipush 409
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        33: .line 1737
            iconst_0
            ireturn
        end local 8 // org.apache.catalina.WebResource parentResource
        end local 7 // java.lang.String parent
        end local 6 // int lastSlash
        34: .line 1743
      StackMap locals: org.apache.catalina.WebResource
      StackMap stack:
            aload 5 /* destResource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifne 36
            aload 3 /* dest */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 36
            aload 3 /* dest */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmple 36
        35: .line 1746
            aload 3 /* dest */
            iconst_0
            aload 3 /* dest */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* dest */
        36: .line 1748
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6
            aconst_null
            astore 7
        37: aload 4 /* sourceResource */
            invokeinterface org.apache.catalina.WebResource.getInputStream:()Ljava/io/InputStream;
            astore 8 /* is */
        start local 8 // java.io.InputStream is
        38: .line 1749
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 3 /* dest */
            aload 8 /* is */
            iconst_0
            invokeinterface org.apache.catalina.WebResourceRoot.write:(Ljava/lang/String;Ljava/io/InputStream;Z)Z
            ifne 42
        39: .line 1750
            aload 1 /* errorList */
            aload 2 /* source */
            sipush 500
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        40: .line 1753
            aload 8 /* is */
            ifnull 41
            aload 8 /* is */
            invokevirtual java.io.InputStream.close:()V
        41: .line 1751
      StackMap locals: java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack:
            iconst_0
            ireturn
        42: .line 1753
      StackMap locals:
      StackMap stack:
            aload 8 /* is */
            ifnull 53
            aload 8 /* is */
            invokevirtual java.io.InputStream.close:()V
            goto 53
      StackMap locals:
      StackMap stack: java.lang.Throwable
        43: astore 6
            aload 8 /* is */
            ifnull 44
            aload 8 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 8 // java.io.InputStream is
      StackMap locals:
      StackMap stack:
        44: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        45: astore 7
            aload 6
            ifnonnull 46
            aload 7
            astore 6
            goto 47
      StackMap locals:
      StackMap stack:
        46: aload 6
            aload 7
            if_acmpeq 47
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        47: aload 6
            athrow
      StackMap locals: org.apache.catalina.servlets.WebdavServlet java.util.Hashtable java.lang.String java.lang.String org.apache.catalina.WebResource org.apache.catalina.WebResource
      StackMap stack: java.io.IOException
        48: astore 6 /* e */
        start local 6 // java.io.IOException e
        49: .line 1754
            aload 0 /* this */
            getstatic org.apache.catalina.servlets.WebdavServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "webdavservlet.inputstreamclosefail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* source */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 6 /* e */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.log:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 6 // java.io.IOException e
        end local 5 // org.apache.catalina.WebResource destResource
        50: .line 1756
            goto 53
        51: .line 1757
      StackMap locals:
      StackMap stack:
            aload 1 /* errorList */
            aload 2 /* source */
            sipush 500
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        52: .line 1758
            iconst_0
            ireturn
        53: .line 1760
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // org.apache.catalina.WebResource sourceResource
        end local 3 // java.lang.String dest
        end local 2 // java.lang.String source
        end local 1 // java.util.Hashtable errorList
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   54     0            this  Lorg/apache/catalina/servlets/WebdavServlet;
            0   54     1       errorList  Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Integer;>;
            0   54     2          source  Ljava/lang/String;
            0   54     3            dest  Ljava/lang/String;
            3   54     4  sourceResource  Lorg/apache/catalina/WebResource;
            6    9     5    destResource  Lorg/apache/catalina/WebResource;
           10   23     5         entries  [Ljava/lang/String;
           12   21     6           entry  Ljava/lang/String;
           13   21    10       childDest  Ljava/lang/String;
           17   21    11        childSrc  Ljava/lang/String;
           26   50     5    destResource  Lorg/apache/catalina/WebResource;
           28   34     6       lastSlash  I
           30   34     7          parent  Ljava/lang/String;
           31   34     8  parentResource  Lorg/apache/catalina/WebResource;
           38   44     8              is  Ljava/io/InputStream;
           49   50     6               e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          38    40      43  any
          37    41      45  any
          42    45      45  any
          36    41      48  Class java.io.IOException
          42    48      48  Class java.io.IOException
    Signature: (Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Integer;>;Ljava/lang/String;Ljava/lang/String;)Z
    MethodParameters:
           Name  Flags
      errorList  
      source     
      dest       

  private boolean deleteResource(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // jakarta.servlet.http.HttpServletResponse resp
         0: .line 1776
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getRelativePath:(Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         1: .line 1778
            aload 0 /* this */
            aload 3 /* path */
            aload 1 /* req */
            aload 2 /* resp */
            iconst_1
            invokevirtual org.apache.catalina.servlets.WebdavServlet.deleteResource:(Ljava/lang/String;Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;Z)Z
            ireturn
        end local 3 // java.lang.String path
        end local 2 // jakarta.servlet.http.HttpServletResponse resp
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/servlets/WebdavServlet;
            0    2     1   req  Ljakarta/servlet/http/HttpServletRequest;
            0    2     2  resp  Ljakarta/servlet/http/HttpServletResponse;
            1    2     3  path  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      req   
      resp  

  private boolean deleteResource(java.lang.String, jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse, boolean);
    descriptor: (Ljava/lang/String;Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // java.lang.String path
        start local 2 // jakarta.servlet.http.HttpServletRequest req
        start local 3 // jakarta.servlet.http.HttpServletResponse resp
        start local 4 // boolean setStatus
         0: .line 1798
            aload 2 /* req */
            ldc "If"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* ifHeader */
        start local 5 // java.lang.String ifHeader
         1: .line 1799
            aload 5 /* ifHeader */
            ifnonnull 3
         2: .line 1800
            ldc ""
            astore 5 /* ifHeader */
         3: .line 1802
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* req */
            ldc "Lock-Token"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* lockTokenHeader */
        start local 6 // java.lang.String lockTokenHeader
         4: .line 1803
            aload 6 /* lockTokenHeader */
            ifnonnull 6
         5: .line 1804
            ldc ""
            astore 6 /* lockTokenHeader */
         6: .line 1806
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* path */
            new java.lang.StringBuilder
            dup
            aload 5 /* ifHeader */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* lockTokenHeader */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.catalina.servlets.WebdavServlet.isLocked:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 9
         7: .line 1807
            aload 3 /* resp */
            sipush 423
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
         8: .line 1808
            iconst_0
            ireturn
         9: .line 1811
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 1 /* path */
            invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 7 /* resource */
        start local 7 // org.apache.catalina.WebResource resource
        10: .line 1813
            aload 7 /* resource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifne 13
        11: .line 1814
            aload 3 /* resp */
            sipush 404
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        12: .line 1815
            iconst_0
            ireturn
        13: .line 1818
      StackMap locals: org.apache.catalina.WebResource
      StackMap stack:
            aload 7 /* resource */
            invokeinterface org.apache.catalina.WebResource.isDirectory:()Z
            ifne 17
        14: .line 1819
            aload 7 /* resource */
            invokeinterface org.apache.catalina.WebResource.delete:()Z
            ifne 26
        15: .line 1820
            aload 3 /* resp */
            sipush 500
            invokeinterface jakarta.servlet.http.HttpServletResponse.sendError:(I)V
        16: .line 1821
            iconst_0
            ireturn
        17: .line 1825
      StackMap locals:
      StackMap stack:
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            astore 8 /* errorList */
        start local 8 // java.util.Hashtable errorList
        18: .line 1827
            aload 0 /* this */
            aload 2 /* req */
            aload 1 /* path */
            aload 8 /* errorList */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.deleteCollection:(Ljakarta/servlet/http/HttpServletRequest;Ljava/lang/String;Ljava/util/Hashtable;)V
        19: .line 1828
            aload 7 /* resource */
            invokeinterface org.apache.catalina.WebResource.delete:()Z
            ifne 23
        20: .line 1829
            aload 8 /* errorList */
            aload 1 /* path */
        21: .line 1830
            sipush 500
        22: .line 1829
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        23: .line 1833
      StackMap locals: java.util.Hashtable
      StackMap stack:
            aload 8 /* errorList */
            invokevirtual java.util.Hashtable.isEmpty:()Z
            ifne 26
        24: .line 1834
            aload 0 /* this */
            aload 2 /* req */
            aload 3 /* resp */
            aload 8 /* errorList */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.sendReport:(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;Ljava/util/Hashtable;)V
        25: .line 1835
            iconst_0
            ireturn
        end local 8 // java.util.Hashtable errorList
        26: .line 1838
      StackMap locals:
      StackMap stack:
            iload 4 /* setStatus */
            ifeq 28
        27: .line 1839
            aload 3 /* resp */
            sipush 204
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
        28: .line 1841
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 7 // org.apache.catalina.WebResource resource
        end local 6 // java.lang.String lockTokenHeader
        end local 5 // java.lang.String ifHeader
        end local 4 // boolean setStatus
        end local 3 // jakarta.servlet.http.HttpServletResponse resp
        end local 2 // jakarta.servlet.http.HttpServletRequest req
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   29     0             this  Lorg/apache/catalina/servlets/WebdavServlet;
            0   29     1             path  Ljava/lang/String;
            0   29     2              req  Ljakarta/servlet/http/HttpServletRequest;
            0   29     3             resp  Ljakarta/servlet/http/HttpServletResponse;
            0   29     4        setStatus  Z
            1   29     5         ifHeader  Ljava/lang/String;
            4   29     6  lockTokenHeader  Ljava/lang/String;
           10   29     7         resource  Lorg/apache/catalina/WebResource;
           18   26     8        errorList  Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Integer;>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      path       
      req        
      resp       
      setStatus  

  private void deleteCollection(jakarta.servlet.http.HttpServletRequest, java.lang.String, java.util.Hashtable<java.lang.String, java.lang.Integer>);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljava/lang/String;Ljava/util/Hashtable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=4
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // java.lang.String path
        start local 3 // java.util.Hashtable errorList
         0: .line 1855
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.debug:I
            iconst_1
            if_icmple 2
         1: .line 1856
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Delete:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.catalina.servlets.WebdavServlet.log:(Ljava/lang/String;)V
         2: .line 1859
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* path */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.isSpecialPath:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 1860
            aload 3 /* errorList */
            aload 2 /* path */
            sipush 403
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 1861
            return
         5: .line 1864
      StackMap locals:
      StackMap stack:
            aload 1 /* req */
            ldc "If"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* ifHeader */
        start local 4 // java.lang.String ifHeader
         6: .line 1865
            aload 4 /* ifHeader */
            ifnonnull 8
         7: .line 1866
            ldc ""
            astore 4 /* ifHeader */
         8: .line 1868
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* req */
            ldc "Lock-Token"
            invokeinterface jakarta.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* lockTokenHeader */
        start local 5 // java.lang.String lockTokenHeader
         9: .line 1869
            aload 5 /* lockTokenHeader */
            ifnonnull 11
        10: .line 1870
            ldc ""
            astore 5 /* lockTokenHeader */
        11: .line 1872
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 2 /* path */
            invokeinterface org.apache.catalina.WebResourceRoot.list:(Ljava/lang/String;)[Ljava/lang/String;
            astore 6 /* entries */
        start local 6 // java.lang.String[] entries
        12: .line 1874
            aload 6 /* entries */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 30
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest java.lang.String java.util.Hashtable java.lang.String java.lang.String java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        13: aload 10
            iload 8
            aaload
            astore 7 /* entry */
        start local 7 // java.lang.String entry
        14: .line 1875
            aload 2 /* path */
            astore 11 /* childName */
        start local 11 // java.lang.String childName
        15: .line 1876
            aload 11 /* childName */
            ldc "/"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
        16: .line 1877
            new java.lang.StringBuilder
            dup
            aload 11 /* childName */
            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 11 /* childName */
        17: .line 1878
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest java.lang.String java.util.Hashtable java.lang.String java.lang.String java.lang.String[] java.lang.String int int java.lang.String[] java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 11 /* childName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* entry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 11 /* childName */
        18: .line 1880
            aload 0 /* this */
            aload 11 /* childName */
            new java.lang.StringBuilder
            dup
            aload 4 /* ifHeader */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* lockTokenHeader */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.catalina.servlets.WebdavServlet.isLocked:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 21
        19: .line 1882
            aload 3 /* errorList */
            aload 11 /* childName */
            sipush 423
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        20: .line 1884
            goto 29
        21: .line 1885
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 11 /* childName */
            invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 12 /* childResource */
        start local 12 // org.apache.catalina.WebResource childResource
        22: .line 1886
            aload 12 /* childResource */
            invokeinterface org.apache.catalina.WebResource.isDirectory:()Z
            ifeq 24
        23: .line 1887
            aload 0 /* this */
            aload 1 /* req */
            aload 11 /* childName */
            aload 3 /* errorList */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.deleteCollection:(Ljakarta/servlet/http/HttpServletRequest;Ljava/lang/String;Ljava/util/Hashtable;)V
        24: .line 1890
      StackMap locals: org.apache.catalina.WebResource
      StackMap stack:
            aload 12 /* childResource */
            invokeinterface org.apache.catalina.WebResource.delete:()Z
            ifne 29
        25: .line 1891
            aload 12 /* childResource */
            invokeinterface org.apache.catalina.WebResource.isDirectory:()Z
            ifne 29
        26: .line 1894
            aload 3 /* errorList */
            aload 11 /* childName */
        27: .line 1895
            sipush 500
        28: .line 1894
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 12 // org.apache.catalina.WebResource childResource
        end local 11 // java.lang.String childName
        end local 7 // java.lang.String entry
        29: .line 1874
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest java.lang.String java.util.Hashtable java.lang.String java.lang.String java.lang.String[] top int int java.lang.String[]
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        30: iload 8
            iload 9
            if_icmplt 13
        31: .line 1900
            return
        end local 6 // java.lang.String[] entries
        end local 5 // java.lang.String lockTokenHeader
        end local 4 // java.lang.String ifHeader
        end local 3 // java.util.Hashtable errorList
        end local 2 // java.lang.String path
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   32     0             this  Lorg/apache/catalina/servlets/WebdavServlet;
            0   32     1              req  Ljakarta/servlet/http/HttpServletRequest;
            0   32     2             path  Ljava/lang/String;
            0   32     3        errorList  Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Integer;>;
            6   32     4         ifHeader  Ljava/lang/String;
            9   32     5  lockTokenHeader  Ljava/lang/String;
           12   32     6          entries  [Ljava/lang/String;
           14   29     7            entry  Ljava/lang/String;
           15   29    11        childName  Ljava/lang/String;
           22   29    12    childResource  Lorg/apache/catalina/WebResource;
    Signature: (Ljakarta/servlet/http/HttpServletRequest;Ljava/lang/String;Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Integer;>;)V
    MethodParameters:
           Name  Flags
      req        
      path       
      errorList  

  private void sendReport(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse, java.util.Hashtable<java.lang.String, java.lang.Integer>);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;Ljava/util/Hashtable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=4
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // jakarta.servlet.http.HttpServletResponse resp
        start local 3 // java.util.Hashtable errorList
         0: .line 1916
            aload 2 /* resp */
            sipush 207
            invokeinterface jakarta.servlet.http.HttpServletResponse.setStatus:(I)V
         1: .line 1918
            aload 1 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getRequestURI:()Ljava/lang/String;
            astore 4 /* absoluteUri */
        start local 4 // java.lang.String absoluteUri
         2: .line 1919
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getRelativePath:(Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
            astore 5 /* relativePath */
        start local 5 // java.lang.String relativePath
         3: .line 1921
            new org.apache.catalina.util.XMLWriter
            dup
            invokespecial org.apache.catalina.util.XMLWriter.<init>:()V
            astore 6 /* generatedXML */
        start local 6 // org.apache.catalina.util.XMLWriter generatedXML
         4: .line 1922
            aload 6 /* generatedXML */
            invokevirtual org.apache.catalina.util.XMLWriter.writeXMLHeader:()V
         5: .line 1924
            aload 6 /* generatedXML */
            ldc "D"
            ldc "DAV:"
            ldc "multistatus"
         6: .line 1925
            iconst_0
         7: .line 1924
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
         8: .line 1927
            aload 3 /* errorList */
            invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
            astore 7 /* pathList */
        start local 7 // java.util.Enumeration pathList
         9: .line 1928
            goto 23
        10: .line 1930
      StackMap locals: org.apache.catalina.servlets.WebdavServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.http.HttpServletResponse java.util.Hashtable java.lang.String java.lang.String org.apache.catalina.util.XMLWriter java.util.Enumeration
      StackMap stack:
            aload 7 /* pathList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* errorPath */
        start local 8 // java.lang.String errorPath
        11: .line 1931
            aload 3 /* errorList */
            aload 8 /* errorPath */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 9 /* errorCode */
        start local 9 // int errorCode
        12: .line 1933
            aload 6 /* generatedXML */
            ldc "D"
            ldc "response"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        13: .line 1935
            aload 6 /* generatedXML */
            ldc "D"
            ldc "href"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        14: .line 1936
            aload 8 /* errorPath */
            aload 5 /* relativePath */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 10 /* toAppend */
        start local 10 // java.lang.String toAppend
        15: .line 1937
            aload 10 /* toAppend */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 17
        16: .line 1938
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* toAppend */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* toAppend */
        17: .line 1939
      StackMap locals: java.lang.String int java.lang.String
      StackMap stack:
            aload 6 /* generatedXML */
            new java.lang.StringBuilder
            dup
            aload 4 /* absoluteUri */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* toAppend */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.catalina.util.XMLWriter.writeText:(Ljava/lang/String;)V
        18: .line 1940
            aload 6 /* generatedXML */
            ldc "D"
            ldc "href"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        19: .line 1941
            aload 6 /* generatedXML */
            ldc "D"
            ldc "status"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        20: .line 1942
            aload 6 /* generatedXML */
            new java.lang.StringBuilder
            dup
            ldc "HTTP/1.1 "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* errorCode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.catalina.util.XMLWriter.writeText:(Ljava/lang/String;)V
        21: .line 1943
            aload 6 /* generatedXML */
            ldc "D"
            ldc "status"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        22: .line 1945
            aload 6 /* generatedXML */
            ldc "D"
            ldc "response"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        end local 10 // java.lang.String toAppend
        end local 9 // int errorCode
        end local 8 // java.lang.String errorPath
        23: .line 1928
      StackMap locals:
      StackMap stack:
            aload 7 /* pathList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 10
        24: .line 1949
            aload 6 /* generatedXML */
            ldc "D"
            ldc "multistatus"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        25: .line 1951
            aload 2 /* resp */
            invokeinterface jakarta.servlet.http.HttpServletResponse.getWriter:()Ljava/io/PrintWriter;
            astore 8 /* writer */
        start local 8 // java.io.Writer writer
        26: .line 1952
            aload 8 /* writer */
            aload 6 /* generatedXML */
            invokevirtual org.apache.catalina.util.XMLWriter.toString:()Ljava/lang/String;
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        27: .line 1953
            aload 8 /* writer */
            invokevirtual java.io.Writer.close:()V
        28: .line 1955
            return
        end local 8 // java.io.Writer writer
        end local 7 // java.util.Enumeration pathList
        end local 6 // org.apache.catalina.util.XMLWriter generatedXML
        end local 5 // java.lang.String relativePath
        end local 4 // java.lang.String absoluteUri
        end local 3 // java.util.Hashtable errorList
        end local 2 // jakarta.servlet.http.HttpServletResponse resp
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   29     0          this  Lorg/apache/catalina/servlets/WebdavServlet;
            0   29     1           req  Ljakarta/servlet/http/HttpServletRequest;
            0   29     2          resp  Ljakarta/servlet/http/HttpServletResponse;
            0   29     3     errorList  Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Integer;>;
            2   29     4   absoluteUri  Ljava/lang/String;
            3   29     5  relativePath  Ljava/lang/String;
            4   29     6  generatedXML  Lorg/apache/catalina/util/XMLWriter;
            9   29     7      pathList  Ljava/util/Enumeration<Ljava/lang/String;>;
           11   23     8     errorPath  Ljava/lang/String;
           12   23     9     errorCode  I
           15   23    10      toAppend  Ljava/lang/String;
           26   29     8        writer  Ljava/io/Writer;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Integer;>;)V
    MethodParameters:
           Name  Flags
      req        
      resp       
      errorList  

  private void parseProperties(jakarta.servlet.http.HttpServletRequest, org.apache.catalina.util.XMLWriter, java.lang.String, int, java.util.Vector<java.lang.String>);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Lorg/apache/catalina/util/XMLWriter;Ljava/lang/String;ILjava/util/Vector;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=17, locals=9, args_size=6
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // org.apache.catalina.util.XMLWriter generatedXML
        start local 3 // java.lang.String path
        start local 4 // int type
        start local 5 // java.util.Vector propertiesVector
         0: .line 1974
            aload 0 /* this */
            aload 3 /* path */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.isSpecialPath:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1975
            return
         2: .line 1977
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 3 /* path */
            invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 6 /* resource */
        start local 6 // org.apache.catalina.WebResource resource
         3: .line 1978
            aload 6 /* resource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifne 5
         4: .line 1981
            return
         5: .line 1984
      StackMap locals: org.apache.catalina.WebResource
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getContextPath:()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 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getServletPath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* href */
        start local 7 // java.lang.String href
         6: .line 1985
            aload 7 /* href */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 8
            aload 3 /* path */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 1986
            new java.lang.StringBuilder
            dup
            aload 7 /* href */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* path */
            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 7 /* href */
            goto 9
         8: .line 1988
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 7 /* href */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* href */
         9: .line 1989
      StackMap locals:
      StackMap stack:
            aload 6 /* resource */
            invokeinterface org.apache.catalina.WebResource.isDirectory:()Z
            ifeq 11
            aload 7 /* href */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 11
        10: .line 1990
            new java.lang.StringBuilder
            dup
            aload 7 /* href */
            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 7 /* href */
        11: .line 1992
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* href */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.rewriteUrl:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* rewrittenUrl */
        start local 8 // java.lang.String rewrittenUrl
        12: .line 1994
            aload 0 /* this */
            aload 2 /* generatedXML */
            aload 8 /* rewrittenUrl */
            aload 3 /* path */
            iload 4 /* type */
            aload 5 /* propertiesVector */
        13: .line 1995
            aload 6 /* resource */
            invokeinterface org.apache.catalina.WebResource.isFile:()Z
            iconst_0
            aload 6 /* resource */
            invokeinterface org.apache.catalina.WebResource.getCreation:()J
            aload 6 /* resource */
            invokeinterface org.apache.catalina.WebResource.getLastModified:()J
        14: .line 1996
            aload 6 /* resource */
            invokeinterface org.apache.catalina.WebResource.getContentLength:()J
            aload 0 /* this */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getServletContext:()Ljakarta/servlet/ServletContext;
            aload 6 /* resource */
            invokeinterface org.apache.catalina.WebResource.getName:()Ljava/lang/String;
            invokeinterface jakarta.servlet.ServletContext.getMimeType:(Ljava/lang/String;)Ljava/lang/String;
        15: .line 1997
            aload 0 /* this */
            aload 6 /* resource */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.generateETag:(Lorg/apache/catalina/WebResource;)Ljava/lang/String;
        16: .line 1994
            invokevirtual org.apache.catalina.servlets.WebdavServlet.generatePropFindResponse:(Lorg/apache/catalina/util/XMLWriter;Ljava/lang/String;Ljava/lang/String;ILjava/util/Vector;ZZJJJLjava/lang/String;Ljava/lang/String;)V
        17: .line 1998
            return
        end local 8 // java.lang.String rewrittenUrl
        end local 7 // java.lang.String href
        end local 6 // org.apache.catalina.WebResource resource
        end local 5 // java.util.Vector propertiesVector
        end local 4 // int type
        end local 3 // java.lang.String path
        end local 2 // org.apache.catalina.util.XMLWriter generatedXML
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0              this  Lorg/apache/catalina/servlets/WebdavServlet;
            0   18     1               req  Ljakarta/servlet/http/HttpServletRequest;
            0   18     2      generatedXML  Lorg/apache/catalina/util/XMLWriter;
            0   18     3              path  Ljava/lang/String;
            0   18     4              type  I
            0   18     5  propertiesVector  Ljava/util/Vector<Ljava/lang/String;>;
            3   18     6          resource  Lorg/apache/catalina/WebResource;
            6   18     7              href  Ljava/lang/String;
           12   18     8      rewrittenUrl  Ljava/lang/String;
    Signature: (Ljakarta/servlet/http/HttpServletRequest;Lorg/apache/catalina/util/XMLWriter;Ljava/lang/String;ILjava/util/Vector<Ljava/lang/String;>;)V
    MethodParameters:
                  Name  Flags
      req               
      generatedXML      
      path              
      type              
      propertiesVector  

  private void parseLockNullProperties(jakarta.servlet.http.HttpServletRequest, org.apache.catalina.util.XMLWriter, java.lang.String, int, java.util.Vector<java.lang.String>);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;Lorg/apache/catalina/util/XMLWriter;Ljava/lang/String;ILjava/util/Vector;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=16, locals=11, args_size=6
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
        start local 2 // org.apache.catalina.util.XMLWriter generatedXML
        start local 3 // java.lang.String path
        start local 4 // int type
        start local 5 // java.util.Vector propertiesVector
         0: .line 2017
            aload 0 /* this */
            aload 3 /* path */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.isSpecialPath:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 2018
            return
         2: .line 2021
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resourceLocks:Ljava/util/Hashtable;
            aload 3 /* path */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.servlets.WebdavServlet$LockInfo
            astore 6 /* lock */
        start local 6 // org.apache.catalina.servlets.WebdavServlet$LockInfo lock
         3: .line 2023
            aload 6 /* lock */
            ifnonnull 5
         4: .line 2024
            return
         5: .line 2026
      StackMap locals: org.apache.catalina.servlets.WebdavServlet$LockInfo
      StackMap stack:
            aload 1 /* req */
            invokeinterface jakarta.servlet.http.HttpServletRequest.getRequestURI:()Ljava/lang/String;
            astore 7 /* absoluteUri */
        start local 7 // java.lang.String absoluteUri
         6: .line 2027
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getRelativePath:(Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
            astore 8 /* relativePath */
        start local 8 // java.lang.String relativePath
         7: .line 2028
            aload 3 /* path */
            aload 8 /* relativePath */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 9 /* toAppend */
        start local 9 // java.lang.String toAppend
         8: .line 2029
            aload 9 /* toAppend */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 10
         9: .line 2030
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* toAppend */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* toAppend */
        10: .line 2032
      StackMap locals: java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
        11: .line 2033
            new java.lang.StringBuilder
            dup
            aload 7 /* absoluteUri */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* toAppend */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 2032
            invokestatic org.apache.tomcat.util.http.RequestUtil.normalize:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.apache.catalina.servlets.WebdavServlet.rewriteUrl:(Ljava/lang/String;)Ljava/lang/String;
            astore 10 /* rewrittenUrl */
        start local 10 // java.lang.String rewrittenUrl
        13: .line 2035
            aload 0 /* this */
            aload 2 /* generatedXML */
            aload 10 /* rewrittenUrl */
            aload 3 /* path */
            iload 4 /* type */
            aload 5 /* propertiesVector */
        14: .line 2036
            iconst_1
            iconst_1
            aload 6 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.creationDate:Ljava/util/Date;
            invokevirtual java.util.Date.getTime:()J
            aload 6 /* lock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.creationDate:Ljava/util/Date;
            invokevirtual java.util.Date.getTime:()J
        15: .line 2037
            lconst_0
            ldc ""
            ldc ""
        16: .line 2035
            invokevirtual org.apache.catalina.servlets.WebdavServlet.generatePropFindResponse:(Lorg/apache/catalina/util/XMLWriter;Ljava/lang/String;Ljava/lang/String;ILjava/util/Vector;ZZJJJLjava/lang/String;Ljava/lang/String;)V
        17: .line 2038
            return
        end local 10 // java.lang.String rewrittenUrl
        end local 9 // java.lang.String toAppend
        end local 8 // java.lang.String relativePath
        end local 7 // java.lang.String absoluteUri
        end local 6 // org.apache.catalina.servlets.WebdavServlet$LockInfo lock
        end local 5 // java.util.Vector propertiesVector
        end local 4 // int type
        end local 3 // java.lang.String path
        end local 2 // org.apache.catalina.util.XMLWriter generatedXML
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0              this  Lorg/apache/catalina/servlets/WebdavServlet;
            0   18     1               req  Ljakarta/servlet/http/HttpServletRequest;
            0   18     2      generatedXML  Lorg/apache/catalina/util/XMLWriter;
            0   18     3              path  Ljava/lang/String;
            0   18     4              type  I
            0   18     5  propertiesVector  Ljava/util/Vector<Ljava/lang/String;>;
            3   18     6              lock  Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;
            6   18     7       absoluteUri  Ljava/lang/String;
            7   18     8      relativePath  Ljava/lang/String;
            8   18     9          toAppend  Ljava/lang/String;
           13   18    10      rewrittenUrl  Ljava/lang/String;
    Signature: (Ljakarta/servlet/http/HttpServletRequest;Lorg/apache/catalina/util/XMLWriter;Ljava/lang/String;ILjava/util/Vector<Ljava/lang/String;>;)V
    MethodParameters:
                  Name  Flags
      req               
      generatedXML      
      path              
      type              
      propertiesVector  

  private void generatePropFindResponse(org.apache.catalina.util.XMLWriter, java.lang.String, java.lang.String, int, java.util.Vector<java.lang.String>, boolean, boolean, long, long, long, java.lang.String, java.lang.String);
    descriptor: (Lorg/apache/catalina/util/XMLWriter;Ljava/lang/String;Ljava/lang/String;ILjava/util/Vector;ZZJJJLjava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=23, args_size=13
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // org.apache.catalina.util.XMLWriter generatedXML
        start local 2 // java.lang.String rewrittenUrl
        start local 3 // java.lang.String path
        start local 4 // int propFindType
        start local 5 // java.util.Vector propertiesVector
        start local 6 // boolean isFile
        start local 7 // boolean isLockNull
        start local 8 // long created
        start local 10 // long lastModified
        start local 12 // long contentLength
        start local 14 // java.lang.String contentType
        start local 15 // java.lang.String eTag
         0: .line 2046
            aload 1 /* generatedXML */
            ldc "D"
            ldc "response"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
         1: .line 2047
            ldc "HTTP/1.1 200 "
            astore 16 /* status */
        start local 16 // java.lang.String status
         2: .line 2050
            aload 1 /* generatedXML */
            ldc "D"
            ldc "href"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
         3: .line 2051
            aload 1 /* generatedXML */
            aload 2 /* rewrittenUrl */
            invokevirtual org.apache.catalina.util.XMLWriter.writeText:(Ljava/lang/String;)V
         4: .line 2052
            aload 1 /* generatedXML */
            ldc "D"
            ldc "href"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
         5: .line 2054
            aload 3 /* path */
            astore 17 /* resourceName */
        start local 17 // java.lang.String resourceName
         6: .line 2055
            aload 3 /* path */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 18 /* lastSlash */
        start local 18 // int lastSlash
         7: .line 2056
            iload 18 /* lastSlash */
            iconst_m1
            if_icmpeq 9
         8: .line 2057
            aload 17 /* resourceName */
            iload 18 /* lastSlash */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 17 /* resourceName */
         9: .line 2059
      StackMap locals: java.lang.String java.lang.String int
      StackMap stack:
            iload 4 /* propFindType */
            tableswitch { // 0 - 2
                    0: 68
                    1: 10
                    2: 49
              default: 166
          }
        10: .line 2063
      StackMap locals:
      StackMap stack:
            aload 1 /* generatedXML */
            ldc "D"
            ldc "propstat"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        11: .line 2064
            aload 1 /* generatedXML */
            ldc "D"
            ldc "prop"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        12: .line 2066
            aload 1 /* generatedXML */
            ldc "D"
            ldc "creationdate"
            aload 0 /* this */
            lload 8 /* created */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getISOCreationDate:(J)Ljava/lang/String;
            invokevirtual org.apache.catalina.util.XMLWriter.writeProperty:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        13: .line 2067
            aload 1 /* generatedXML */
            ldc "D"
            ldc "displayname"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        14: .line 2068
            aload 1 /* generatedXML */
            aload 17 /* resourceName */
            invokevirtual org.apache.catalina.util.XMLWriter.writeData:(Ljava/lang/String;)V
        15: .line 2069
            aload 1 /* generatedXML */
            ldc "D"
            ldc "displayname"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        16: .line 2070
            iload 6 /* isFile */
            ifeq 31
        17: .line 2071
            aload 1 /* generatedXML */
            ldc "D"
            ldc "getlastmodified"
        18: .line 2072
            lload 10 /* lastModified */
            invokestatic org.apache.tomcat.util.http.FastHttpDateFormat.formatDate:(J)Ljava/lang/String;
        19: .line 2071
            invokevirtual org.apache.catalina.util.XMLWriter.writeProperty:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        20: .line 2073
            aload 1 /* generatedXML */
            ldc "D"
            ldc "getcontentlength"
            lload 12 /* contentLength */
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            invokevirtual org.apache.catalina.util.XMLWriter.writeProperty:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        21: .line 2074
            aload 14 /* contentType */
            ifnull 23
        22: .line 2075
            aload 1 /* generatedXML */
            ldc "D"
            ldc "getcontenttype"
            aload 14 /* contentType */
            invokevirtual org.apache.catalina.util.XMLWriter.writeProperty:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        23: .line 2077
      StackMap locals:
      StackMap stack:
            aload 1 /* generatedXML */
            ldc "D"
            ldc "getetag"
            aload 15 /* eTag */
            invokevirtual org.apache.catalina.util.XMLWriter.writeProperty:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        24: .line 2078
            iload 7 /* isLockNull */
            ifeq 29
        25: .line 2079
            aload 1 /* generatedXML */
            ldc "D"
            ldc "resourcetype"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        26: .line 2080
            aload 1 /* generatedXML */
            ldc "D"
            ldc "lock-null"
            iconst_2
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        27: .line 2081
            aload 1 /* generatedXML */
            ldc "D"
            ldc "resourcetype"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        28: .line 2082
            goto 37
        29: .line 2083
      StackMap locals:
      StackMap stack:
            aload 1 /* generatedXML */
            ldc "D"
            ldc "resourcetype"
            iconst_2
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        30: .line 2085
            goto 37
        31: .line 2086
      StackMap locals:
      StackMap stack:
            aload 1 /* generatedXML */
            ldc "D"
            ldc "getlastmodified"
        32: .line 2087
            lload 10 /* lastModified */
            invokestatic org.apache.tomcat.util.http.FastHttpDateFormat.formatDate:(J)Ljava/lang/String;
        33: .line 2086
            invokevirtual org.apache.catalina.util.XMLWriter.writeProperty:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        34: .line 2088
            aload 1 /* generatedXML */
            ldc "D"
            ldc "resourcetype"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        35: .line 2089
            aload 1 /* generatedXML */
            ldc "D"
            ldc "collection"
            iconst_2
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        36: .line 2090
            aload 1 /* generatedXML */
            ldc "D"
            ldc "resourcetype"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        37: .line 2093
      StackMap locals:
      StackMap stack:
            aload 1 /* generatedXML */
            ldc "D"
            ldc "source"
            ldc ""
            invokevirtual org.apache.catalina.util.XMLWriter.writeProperty:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        38: .line 2095
            ldc "<D:lockentry><D:lockscope><D:exclusive/></D:lockscope><D:locktype><D:write/></D:locktype></D:lockentry><D:lockentry><D:lockscope><D:shared/></D:lockscope><D:locktype><D:write/></D:locktype></D:lockentry>"
            astore 19 /* supportedLocks */
        start local 19 // java.lang.String supportedLocks
        39: .line 2102
            aload 1 /* generatedXML */
            ldc "D"
            ldc "supportedlock"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        40: .line 2103
            aload 1 /* generatedXML */
            aload 19 /* supportedLocks */
            invokevirtual org.apache.catalina.util.XMLWriter.writeText:(Ljava/lang/String;)V
        41: .line 2104
            aload 1 /* generatedXML */
            ldc "D"
            ldc "supportedlock"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        42: .line 2106
            aload 0 /* this */
            aload 3 /* path */
            aload 1 /* generatedXML */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.generateLockDiscovery:(Ljava/lang/String;Lorg/apache/catalina/util/XMLWriter;)Z
            pop
        43: .line 2108
            aload 1 /* generatedXML */
            ldc "D"
            ldc "prop"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        44: .line 2109
            aload 1 /* generatedXML */
            ldc "D"
            ldc "status"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        45: .line 2110
            aload 1 /* generatedXML */
            aload 16 /* status */
            invokevirtual org.apache.catalina.util.XMLWriter.writeText:(Ljava/lang/String;)V
        46: .line 2111
            aload 1 /* generatedXML */
            ldc "D"
            ldc "status"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        47: .line 2112
            aload 1 /* generatedXML */
            ldc "D"
            ldc "propstat"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        48: .line 2114
            goto 166
        end local 19 // java.lang.String supportedLocks
        49: .line 2118
      StackMap locals:
      StackMap stack:
            aload 1 /* generatedXML */
            ldc "D"
            ldc "propstat"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        50: .line 2119
            aload 1 /* generatedXML */
            ldc "D"
            ldc "prop"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        51: .line 2121
            aload 1 /* generatedXML */
            ldc "D"
            ldc "creationdate"
            iconst_2
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        52: .line 2122
            aload 1 /* generatedXML */
            ldc "D"
            ldc "displayname"
            iconst_2
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        53: .line 2123
            iload 6 /* isFile */
            ifeq 59
        54: .line 2124
            aload 1 /* generatedXML */
            ldc "D"
            ldc "getcontentlanguage"
            iconst_2
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        55: .line 2125
            aload 1 /* generatedXML */
            ldc "D"
            ldc "getcontentlength"
            iconst_2
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        56: .line 2126
            aload 1 /* generatedXML */
            ldc "D"
            ldc "getcontenttype"
            iconst_2
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        57: .line 2127
            aload 1 /* generatedXML */
            ldc "D"
            ldc "getetag"
            iconst_2
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        58: .line 2128
            aload 1 /* generatedXML */
            ldc "D"
            ldc "getlastmodified"
            iconst_2
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        59: .line 2130
      StackMap locals:
      StackMap stack:
            aload 1 /* generatedXML */
            ldc "D"
            ldc "resourcetype"
            iconst_2
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        60: .line 2131
            aload 1 /* generatedXML */
            ldc "D"
            ldc "source"
            iconst_2
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        61: .line 2132
            aload 1 /* generatedXML */
            ldc "D"
            ldc "lockdiscovery"
            iconst_2
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        62: .line 2134
            aload 1 /* generatedXML */
            ldc "D"
            ldc "prop"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        63: .line 2135
            aload 1 /* generatedXML */
            ldc "D"
            ldc "status"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        64: .line 2136
            aload 1 /* generatedXML */
            aload 16 /* status */
            invokevirtual org.apache.catalina.util.XMLWriter.writeText:(Ljava/lang/String;)V
        65: .line 2137
            aload 1 /* generatedXML */
            ldc "D"
            ldc "status"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        66: .line 2138
            aload 1 /* generatedXML */
            ldc "D"
            ldc "propstat"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        67: .line 2140
            goto 166
        68: .line 2144
      StackMap locals:
      StackMap stack:
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 20 /* propertiesNotFound */
        start local 20 // java.util.Vector propertiesNotFound
        69: .line 2148
            aload 1 /* generatedXML */
            ldc "D"
            ldc "propstat"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        70: .line 2149
            aload 1 /* generatedXML */
            ldc "D"
            ldc "prop"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        71: .line 2151
            aload 5 /* propertiesVector */
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
            astore 21 /* properties */
        start local 21 // java.util.Enumeration properties
        72: .line 2153
            goto 145
        73: .line 2155
      StackMap locals: org.apache.catalina.servlets.WebdavServlet org.apache.catalina.util.XMLWriter java.lang.String java.lang.String int java.util.Vector int int long long long java.lang.String java.lang.String java.lang.String java.lang.String int top java.util.Vector java.util.Enumeration
      StackMap stack:
            aload 21 /* properties */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 22 /* property */
        start local 22 // java.lang.String property
        74: .line 2157
            aload 22 /* property */
            ldc "creationdate"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 77
        75: .line 2158
            aload 1 /* generatedXML */
            ldc "D"
            ldc "creationdate"
            aload 0 /* this */
            lload 8 /* created */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getISOCreationDate:(J)Ljava/lang/String;
            invokevirtual org.apache.catalina.util.XMLWriter.writeProperty:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        76: .line 2159
            goto 145
      StackMap locals: java.lang.String
      StackMap stack:
        77: aload 22 /* property */
            ldc "displayname"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 82
        78: .line 2160
            aload 1 /* generatedXML */
            ldc "D"
            ldc "displayname"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        79: .line 2161
            aload 1 /* generatedXML */
            aload 17 /* resourceName */
            invokevirtual org.apache.catalina.util.XMLWriter.writeData:(Ljava/lang/String;)V
        80: .line 2162
            aload 1 /* generatedXML */
            ldc "D"
            ldc "displayname"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        81: .line 2163
            goto 145
      StackMap locals:
      StackMap stack:
        82: aload 22 /* property */
            ldc "getcontentlanguage"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 90
        83: .line 2164
            iload 6 /* isFile */
            ifeq 88
        84: .line 2165
            aload 1 /* generatedXML */
            ldc "D"
            ldc "getcontentlanguage"
        85: .line 2166
            iconst_2
        86: .line 2165
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        87: .line 2167
            goto 145
        88: .line 2168
      StackMap locals:
      StackMap stack:
            aload 20 /* propertiesNotFound */
            aload 22 /* property */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        89: .line 2170
            goto 145
      StackMap locals:
      StackMap stack:
        90: aload 22 /* property */
            ldc "getcontentlength"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 98
        91: .line 2171
            iload 6 /* isFile */
            ifeq 96
        92: .line 2172
            aload 1 /* generatedXML */
            ldc "D"
            ldc "getcontentlength"
        93: .line 2173
            lload 12 /* contentLength */
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
        94: .line 2172
            invokevirtual org.apache.catalina.util.XMLWriter.writeProperty:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        95: .line 2174
            goto 145
        96: .line 2175
      StackMap locals:
      StackMap stack:
            aload 20 /* propertiesNotFound */
            aload 22 /* property */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        97: .line 2177
            goto 145
      StackMap locals:
      StackMap stack:
        98: aload 22 /* property */
            ldc "getcontenttype"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 104
        99: .line 2178
            iload 6 /* isFile */
            ifeq 102
       100: .line 2179
            aload 1 /* generatedXML */
            ldc "D"
            ldc "getcontenttype"
            aload 14 /* contentType */
            invokevirtual org.apache.catalina.util.XMLWriter.writeProperty:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       101: .line 2180
            goto 145
       102: .line 2181
      StackMap locals:
      StackMap stack:
            aload 20 /* propertiesNotFound */
            aload 22 /* property */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
       103: .line 2183
            goto 145
      StackMap locals:
      StackMap stack:
       104: aload 22 /* property */
            ldc "getetag"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 110
       105: .line 2184
            iload 6 /* isFile */
            ifeq 108
       106: .line 2185
            aload 1 /* generatedXML */
            ldc "D"
            ldc "getetag"
            aload 15 /* eTag */
            invokevirtual org.apache.catalina.util.XMLWriter.writeProperty:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       107: .line 2186
            goto 145
       108: .line 2187
      StackMap locals:
      StackMap stack:
            aload 20 /* propertiesNotFound */
            aload 22 /* property */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
       109: .line 2189
            goto 145
      StackMap locals:
      StackMap stack:
       110: aload 22 /* property */
            ldc "getlastmodified"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 118
       111: .line 2190
            iload 6 /* isFile */
            ifeq 116
       112: .line 2191
            aload 1 /* generatedXML */
            ldc "D"
            ldc "getlastmodified"
       113: .line 2192
            lload 10 /* lastModified */
            invokestatic org.apache.tomcat.util.http.FastHttpDateFormat.formatDate:(J)Ljava/lang/String;
       114: .line 2191
            invokevirtual org.apache.catalina.util.XMLWriter.writeProperty:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       115: .line 2193
            goto 145
       116: .line 2194
      StackMap locals:
      StackMap stack:
            aload 20 /* propertiesNotFound */
            aload 22 /* property */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
       117: .line 2196
            goto 145
      StackMap locals:
      StackMap stack:
       118: aload 22 /* property */
            ldc "resourcetype"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 131
       119: .line 2197
            iload 6 /* isFile */
            ifeq 127
       120: .line 2198
            iload 7 /* isLockNull */
            ifeq 125
       121: .line 2199
            aload 1 /* generatedXML */
            ldc "D"
            ldc "resourcetype"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       122: .line 2200
            aload 1 /* generatedXML */
            ldc "D"
            ldc "lock-null"
            iconst_2
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       123: .line 2201
            aload 1 /* generatedXML */
            ldc "D"
            ldc "resourcetype"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       124: .line 2202
            goto 145
       125: .line 2203
      StackMap locals:
      StackMap stack:
            aload 1 /* generatedXML */
            ldc "D"
            ldc "resourcetype"
            iconst_2
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       126: .line 2205
            goto 145
       127: .line 2206
      StackMap locals:
      StackMap stack:
            aload 1 /* generatedXML */
            ldc "D"
            ldc "resourcetype"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       128: .line 2207
            aload 1 /* generatedXML */
            ldc "D"
            ldc "collection"
            iconst_2
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       129: .line 2208
            aload 1 /* generatedXML */
            ldc "D"
            ldc "resourcetype"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       130: .line 2210
            goto 145
      StackMap locals:
      StackMap stack:
       131: aload 22 /* property */
            ldc "source"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 134
       132: .line 2211
            aload 1 /* generatedXML */
            ldc "D"
            ldc "source"
            ldc ""
            invokevirtual org.apache.catalina.util.XMLWriter.writeProperty:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
       133: .line 2212
            goto 145
      StackMap locals:
      StackMap stack:
       134: aload 22 /* property */
            ldc "supportedlock"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 140
       135: .line 2213
            ldc "<D:lockentry><D:lockscope><D:exclusive/></D:lockscope><D:locktype><D:write/></D:locktype></D:lockentry><D:lockentry><D:lockscope><D:shared/></D:lockscope><D:locktype><D:write/></D:locktype></D:lockentry>"
            astore 19 /* supportedLocks */
        start local 19 // java.lang.String supportedLocks
       136: .line 2220
            aload 1 /* generatedXML */
            ldc "D"
            ldc "supportedlock"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       137: .line 2221
            aload 1 /* generatedXML */
            aload 19 /* supportedLocks */
            invokevirtual org.apache.catalina.util.XMLWriter.writeText:(Ljava/lang/String;)V
       138: .line 2222
            aload 1 /* generatedXML */
            ldc "D"
            ldc "supportedlock"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       139: .line 2223
            goto 145
        end local 19 // java.lang.String supportedLocks
      StackMap locals:
      StackMap stack:
       140: aload 22 /* property */
            ldc "lockdiscovery"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 144
       141: .line 2224
            aload 0 /* this */
            aload 3 /* path */
            aload 1 /* generatedXML */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.generateLockDiscovery:(Ljava/lang/String;Lorg/apache/catalina/util/XMLWriter;)Z
            ifne 145
       142: .line 2225
            aload 20 /* propertiesNotFound */
            aload 22 /* property */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
       143: .line 2226
            goto 145
       144: .line 2227
      StackMap locals:
      StackMap stack:
            aload 20 /* propertiesNotFound */
            aload 22 /* property */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 22 // java.lang.String property
       145: .line 2153
      StackMap locals:
      StackMap stack:
            aload 21 /* properties */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 73
       146: .line 2232
            aload 1 /* generatedXML */
            ldc "D"
            ldc "prop"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       147: .line 2233
            aload 1 /* generatedXML */
            ldc "D"
            ldc "status"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       148: .line 2234
            aload 1 /* generatedXML */
            aload 16 /* status */
            invokevirtual org.apache.catalina.util.XMLWriter.writeText:(Ljava/lang/String;)V
       149: .line 2235
            aload 1 /* generatedXML */
            ldc "D"
            ldc "status"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       150: .line 2236
            aload 1 /* generatedXML */
            ldc "D"
            ldc "propstat"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       151: .line 2238
            aload 20 /* propertiesNotFound */
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
            astore 22 /* propertiesNotFoundList */
        start local 22 // java.util.Enumeration propertiesNotFoundList
       152: .line 2240
            aload 22 /* propertiesNotFoundList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifeq 166
       153: .line 2242
            ldc "HTTP/1.1 404 "
            astore 16 /* status */
       154: .line 2244
            aload 1 /* generatedXML */
            ldc "D"
            ldc "propstat"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       155: .line 2245
            aload 1 /* generatedXML */
            ldc "D"
            ldc "prop"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       156: .line 2247
            goto 160
       157: .line 2248
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 1 /* generatedXML */
            ldc "D"
            aload 22 /* propertiesNotFoundList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
       158: .line 2249
            iconst_2
       159: .line 2248
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       160: .line 2247
      StackMap locals:
      StackMap stack:
            aload 22 /* propertiesNotFoundList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 157
       161: .line 2252
            aload 1 /* generatedXML */
            ldc "D"
            ldc "prop"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       162: .line 2253
            aload 1 /* generatedXML */
            ldc "D"
            ldc "status"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       163: .line 2254
            aload 1 /* generatedXML */
            aload 16 /* status */
            invokevirtual org.apache.catalina.util.XMLWriter.writeText:(Ljava/lang/String;)V
       164: .line 2255
            aload 1 /* generatedXML */
            ldc "D"
            ldc "status"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       165: .line 2256
            aload 1 /* generatedXML */
            ldc "D"
            ldc "propstat"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        end local 22 // java.util.Enumeration propertiesNotFoundList
        end local 21 // java.util.Enumeration properties
        end local 20 // java.util.Vector propertiesNotFound
       166: .line 2264
      StackMap locals: org.apache.catalina.servlets.WebdavServlet org.apache.catalina.util.XMLWriter java.lang.String java.lang.String int java.util.Vector int int long long long java.lang.String java.lang.String java.lang.String java.lang.String int
      StackMap stack:
            aload 1 /* generatedXML */
            ldc "D"
            ldc "response"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
       167: .line 2265
            return
        end local 18 // int lastSlash
        end local 17 // java.lang.String resourceName
        end local 16 // java.lang.String status
        end local 15 // java.lang.String eTag
        end local 14 // java.lang.String contentType
        end local 12 // long contentLength
        end local 10 // long lastModified
        end local 8 // long created
        end local 7 // boolean isLockNull
        end local 6 // boolean isFile
        end local 5 // java.util.Vector propertiesVector
        end local 4 // int propFindType
        end local 3 // java.lang.String path
        end local 2 // java.lang.String rewrittenUrl
        end local 1 // org.apache.catalina.util.XMLWriter generatedXML
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0  168     0                    this  Lorg/apache/catalina/servlets/WebdavServlet;
            0  168     1            generatedXML  Lorg/apache/catalina/util/XMLWriter;
            0  168     2            rewrittenUrl  Ljava/lang/String;
            0  168     3                    path  Ljava/lang/String;
            0  168     4            propFindType  I
            0  168     5        propertiesVector  Ljava/util/Vector<Ljava/lang/String;>;
            0  168     6                  isFile  Z
            0  168     7              isLockNull  Z
            0  168     8                 created  J
            0  168    10            lastModified  J
            0  168    12           contentLength  J
            0  168    14             contentType  Ljava/lang/String;
            0  168    15                    eTag  Ljava/lang/String;
            2  168    16                  status  Ljava/lang/String;
            6  168    17            resourceName  Ljava/lang/String;
            7  168    18               lastSlash  I
           39   49    19          supportedLocks  Ljava/lang/String;
          136  140    19          supportedLocks  Ljava/lang/String;
           69  166    20      propertiesNotFound  Ljava/util/Vector<Ljava/lang/String;>;
           72  166    21              properties  Ljava/util/Enumeration<Ljava/lang/String;>;
           74  145    22                property  Ljava/lang/String;
          152  166    22  propertiesNotFoundList  Ljava/util/Enumeration<Ljava/lang/String;>;
    Signature: (Lorg/apache/catalina/util/XMLWriter;Ljava/lang/String;Ljava/lang/String;ILjava/util/Vector<Ljava/lang/String;>;ZZJJJLjava/lang/String;Ljava/lang/String;)V
    MethodParameters:
                  Name  Flags
      generatedXML      
      rewrittenUrl      
      path              
      propFindType      
      propertiesVector  
      isFile            
      isLockNull        
      created           
      lastModified      
      contentLength     
      contentType       
      eTag              

  private boolean generateLockDiscovery(java.lang.String, org.apache.catalina.util.XMLWriter);
    descriptor: (Ljava/lang/String;Lorg/apache/catalina/util/XMLWriter;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // java.lang.String path
        start local 2 // org.apache.catalina.util.XMLWriter generatedXML
         0: .line 2278
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resourceLocks:Ljava/util/Hashtable;
            aload 1 /* path */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.servlets.WebdavServlet$LockInfo
            astore 3 /* resourceLock */
        start local 3 // org.apache.catalina.servlets.WebdavServlet$LockInfo resourceLock
         1: .line 2279
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.collectionLocks:Ljava/util/Vector;
            invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
            astore 4 /* collectionLocksList */
        start local 4 // java.util.Enumeration collectionLocksList
         2: .line 2281
            iconst_0
            istore 5 /* wroteStart */
        start local 5 // boolean wroteStart
         3: .line 2283
            aload 3 /* resourceLock */
            ifnull 16
         4: .line 2284
            iconst_1
            istore 5 /* wroteStart */
         5: .line 2285
            aload 2 /* generatedXML */
            ldc "D"
            ldc "lockdiscovery"
            iconst_0
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
         6: .line 2286
            aload 3 /* resourceLock */
            aload 2 /* generatedXML */
            invokevirtual org.apache.catalina.servlets.WebdavServlet$LockInfo.toXML:(Lorg/apache/catalina/util/XMLWriter;)V
         7: .line 2289
            goto 16
         8: .line 2290
      StackMap locals: org.apache.catalina.servlets.WebdavServlet$LockInfo java.util.Enumeration int
      StackMap stack:
            aload 4 /* collectionLocksList */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.apache.catalina.servlets.WebdavServlet$LockInfo
            astore 6 /* currentLock */
        start local 6 // org.apache.catalina.servlets.WebdavServlet$LockInfo currentLock
         9: .line 2291
            aload 1 /* path */
            aload 6 /* currentLock */
            getfield org.apache.catalina.servlets.WebdavServlet$LockInfo.path:Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 16
        10: .line 2292
            iload 5 /* wroteStart */
            ifne 15
        11: .line 2293
            iconst_1
            istore 5 /* wroteStart */
        12: .line 2294
            aload 2 /* generatedXML */
            ldc "D"
            ldc "lockdiscovery"
        13: .line 2295
            iconst_0
        14: .line 2294
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        15: .line 2297
      StackMap locals: org.apache.catalina.servlets.WebdavServlet$LockInfo
      StackMap stack:
            aload 6 /* currentLock */
            aload 2 /* generatedXML */
            invokevirtual org.apache.catalina.servlets.WebdavServlet$LockInfo.toXML:(Lorg/apache/catalina/util/XMLWriter;)V
        end local 6 // org.apache.catalina.servlets.WebdavServlet$LockInfo currentLock
        16: .line 2289
      StackMap locals:
      StackMap stack:
            aload 4 /* collectionLocksList */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 8
        17: .line 2301
            iload 5 /* wroteStart */
            ifeq 20
        18: .line 2302
            aload 2 /* generatedXML */
            ldc "D"
            ldc "lockdiscovery"
            iconst_1
            invokevirtual org.apache.catalina.util.XMLWriter.writeElement:(Ljava/lang/String;Ljava/lang/String;I)V
        19: .line 2303
            goto 21
        20: .line 2304
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        21: .line 2307
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // boolean wroteStart
        end local 4 // java.util.Enumeration collectionLocksList
        end local 3 // org.apache.catalina.servlets.WebdavServlet$LockInfo resourceLock
        end local 2 // org.apache.catalina.util.XMLWriter generatedXML
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   22     0                 this  Lorg/apache/catalina/servlets/WebdavServlet;
            0   22     1                 path  Ljava/lang/String;
            0   22     2         generatedXML  Lorg/apache/catalina/util/XMLWriter;
            1   22     3         resourceLock  Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;
            2   22     4  collectionLocksList  Ljava/util/Enumeration<Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;>;
            3   22     5           wroteStart  Z
            9   16     6          currentLock  Lorg/apache/catalina/servlets/WebdavServlet$LockInfo;
    MethodParameters:
              Name  Flags
      path          
      generatedXML  

  private java.lang.String getISOCreationDate(long);
    descriptor: (J)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // long creationDate
         0: .line 2317
            getstatic org.apache.catalina.servlets.WebdavServlet.creationDateFormat:Lorg/apache/tomcat/util/http/ConcurrentDateFormat;
            new java.util.Date
            dup
            lload 1 /* creationDate */
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual org.apache.tomcat.util.http.ConcurrentDateFormat.format:(Ljava/util/Date;)Ljava/lang/String;
            areturn
        end local 1 // long creationDate
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/apache/catalina/servlets/WebdavServlet;
            0    1     1  creationDate  J
    MethodParameters:
              Name  Flags
      creationDate  

  protected java.lang.String determineMethodsAllowed(jakarta.servlet.http.HttpServletRequest);
    descriptor: (Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.catalina.servlets.WebdavServlet this
        start local 1 // jakarta.servlet.http.HttpServletRequest req
         0: .line 2331
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 0 /* this */
            aload 1 /* req */
            invokevirtual org.apache.catalina.servlets.WebdavServlet.getRelativePath:(Ljakarta/servlet/http/HttpServletRequest;)Ljava/lang/String;
            invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 2 /* resource */
        start local 2 // org.apache.catalina.WebResource resource
         1: .line 2335
            new java.lang.StringBuilder
            dup
         2: .line 2336
            ldc "OPTIONS, GET, POST, HEAD"
         3: .line 2335
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 3 /* methodsAllowed */
        start local 3 // java.lang.StringBuilder methodsAllowed
         4: .line 2338
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.readOnly:Z
            ifne 8
         5: .line 2339
            aload 3 /* methodsAllowed */
            ldc ", DELETE"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 2340
            aload 2 /* resource */
            invokeinterface org.apache.catalina.WebResource.isDirectory:()Z
            ifne 8
         7: .line 2341
            aload 3 /* methodsAllowed */
            ldc ", PUT"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 2346
      StackMap locals: org.apache.catalina.WebResource java.lang.StringBuilder
      StackMap stack:
            aload 1 /* req */
            instanceof org.apache.catalina.connector.RequestFacade
            ifeq 11
         9: .line 2347
            aload 1 /* req */
            checkcast org.apache.catalina.connector.RequestFacade
            invokevirtual org.apache.catalina.connector.RequestFacade.getAllowTrace:()Z
            ifeq 11
        10: .line 2348
            aload 3 /* methodsAllowed */
            ldc ", TRACE"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 2351
      StackMap locals:
      StackMap stack:
            aload 3 /* methodsAllowed */
            ldc ", LOCK, UNLOCK, PROPPATCH, COPY, MOVE"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 2353
            aload 0 /* this */
            getfield org.apache.catalina.servlets.WebdavServlet.listings:Z
            ifeq 14
        13: .line 2354
            aload 3 /* methodsAllowed */
            ldc ", PROPFIND"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 2357
      StackMap locals:
      StackMap stack:
            aload 2 /* resource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifne 16
        15: .line 2358
            aload 3 /* methodsAllowed */
            ldc ", MKCOL"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 2361
      StackMap locals:
      StackMap stack:
            aload 3 /* methodsAllowed */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder methodsAllowed
        end local 2 // org.apache.catalina.WebResource resource
        end local 1 // jakarta.servlet.http.HttpServletRequest req
        end local 0 // org.apache.catalina.servlets.WebdavServlet this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   17     0            this  Lorg/apache/catalina/servlets/WebdavServlet;
            0   17     1             req  Ljakarta/servlet/http/HttpServletRequest;
            1   17     2        resource  Lorg/apache/catalina/WebResource;
            4   17     3  methodsAllowed  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      req   
}
SourceFile: "WebdavServlet.java"
NestMembers:
  org.apache.catalina.servlets.WebdavServlet$LockInfo  org.apache.catalina.servlets.WebdavServlet$WebdavResolver
InnerClasses:
  private LockInfo = org.apache.catalina.servlets.WebdavServlet$LockInfo of org.apache.catalina.servlets.WebdavServlet
  private WebdavResolver = org.apache.catalina.servlets.WebdavServlet$WebdavResolver of org.apache.catalina.servlets.WebdavServlet