class sun.nio.fs.WindowsUriSupport
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.nio.fs.WindowsUriSupport
  super_class: java.lang.Object
{
  private static final java.lang.String IPV6_LITERAL_SUFFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ".ipv6-literal.net"

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.fs.WindowsUriSupport this
         0: .line 36
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 37
            return
        end local 0 // sun.nio.fs.WindowsUriSupport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/fs/WindowsUriSupport;

  private static java.net.URI toUri(java.lang.String, boolean, boolean);
    descriptor: (Ljava/lang/String;ZZ)Ljava/net/URI;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // java.lang.String path
        start local 1 // boolean isUnc
        start local 2 // boolean addSlash
         0: .line 49
            iload 1 /* isUnc */
            ifeq 11
         1: .line 50
            aload 0 /* path */
            bipush 92
            iconst_2
            invokevirtual java.lang.String.indexOf:(II)I
            istore 5 /* slash */
        start local 5 // int slash
         2: .line 51
            aload 0 /* path */
            iconst_2
            iload 5 /* slash */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* uriHost */
        start local 3 // java.lang.String uriHost
         3: .line 52
            aload 0 /* path */
            iload 5 /* slash */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            bipush 92
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 4 /* uriPath */
        start local 4 // java.lang.String uriPath
         4: .line 58
            aload 3 /* uriHost */
            ldc ".ipv6-literal.net"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 13
         5: .line 59
            aload 3 /* uriHost */
         6: .line 60
            iconst_0
            aload 3 /* uriHost */
            invokevirtual java.lang.String.length:()I
            ldc ".ipv6-literal.net"
            invokevirtual java.lang.String.length:()I
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
         7: .line 61
            bipush 45
            bipush 58
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
         8: .line 62
            bipush 115
            bipush 37
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
         9: .line 59
            astore 3 /* uriHost */
        end local 5 // int slash
        10: .line 64
            goto 13
        end local 4 // java.lang.String uriPath
        end local 3 // java.lang.String uriHost
        11: .line 65
      StackMap locals:
      StackMap stack:
            ldc ""
            astore 3 /* uriHost */
        start local 3 // java.lang.String uriHost
        12: .line 66
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* path */
            bipush 92
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* uriPath */
        start local 4 // java.lang.String uriPath
        13: .line 70
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            iload 2 /* addSlash */
            ifeq 15
        14: .line 71
            new java.lang.StringBuilder
            dup
            aload 4 /* uriPath */
            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 4 /* uriPath */
        15: .line 75
      StackMap locals:
      StackMap stack:
            new java.net.URI
            dup
            ldc "file"
            aload 3 /* uriHost */
            aload 4 /* uriPath */
            aconst_null
            invokespecial java.net.URI.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        16: areturn
        17: .line 76
      StackMap locals:
      StackMap stack: java.net.URISyntaxException
            astore 5 /* x */
        start local 5 // java.net.URISyntaxException x
        18: .line 77
            iload 1 /* isUnc */
            ifne 20
        19: .line 78
            new java.lang.AssertionError
            dup
            aload 5 /* x */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 5 // java.net.URISyntaxException x
        20: .line 85
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "//"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* path */
            bipush 92
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* uriPath */
        21: .line 86
            iload 2 /* addSlash */
            ifeq 23
        22: .line 87
            new java.lang.StringBuilder
            dup
            aload 4 /* uriPath */
            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 4 /* uriPath */
        23: .line 89
      StackMap locals:
      StackMap stack:
            new java.net.URI
            dup
            ldc "file"
            aconst_null
            aload 4 /* uriPath */
            aconst_null
            invokespecial java.net.URI.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        24: areturn
        25: .line 90
      StackMap locals:
      StackMap stack: java.net.URISyntaxException
            astore 5 /* x */
        start local 5 // java.net.URISyntaxException x
        26: .line 91
            new java.lang.AssertionError
            dup
            aload 5 /* x */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 5 // java.net.URISyntaxException x
        end local 4 // java.lang.String uriPath
        end local 3 // java.lang.String uriHost
        end local 2 // boolean addSlash
        end local 1 // boolean isUnc
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   27     0      path  Ljava/lang/String;
            0   27     1     isUnc  Z
            0   27     2  addSlash  Z
            3   11     3   uriHost  Ljava/lang/String;
           12   27     3   uriHost  Ljava/lang/String;
            4   11     4   uriPath  Ljava/lang/String;
           13   27     4   uriPath  Ljava/lang/String;
            2   10     5     slash  I
           18   20     5         x  Ljava/net/URISyntaxException;
           26   27     5         x  Ljava/net/URISyntaxException;
      Exception table:
        from    to  target  type
          15    16      17  Class java.net.URISyntaxException
          23    24      25  Class java.net.URISyntaxException
    MethodParameters:
          Name  Flags
      path      
      isUnc     
      addSlash  

  static java.net.URI toUri(sun.nio.fs.WindowsPath);
    descriptor: (Lsun/nio/fs/WindowsPath;)Ljava/net/URI;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // sun.nio.fs.WindowsPath path
         0: .line 99
            aload 0 /* path */
            invokevirtual sun.nio.fs.WindowsPath.toAbsolutePath:()Lsun/nio/fs/WindowsPath;
            astore 0 /* path */
         1: .line 100
            aload 0 /* path */
            invokevirtual sun.nio.fs.WindowsPath.toString:()Ljava/lang/String;
            astore 1 /* s */
        start local 1 // java.lang.String s
         2: .line 104
            iconst_0
            istore 2 /* addSlash */
        start local 2 // boolean addSlash
         3: .line 105
            aload 1 /* s */
            ldc "\\"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 7
         4: .line 107
            aload 0 /* path */
            iconst_1
            invokestatic sun.nio.fs.WindowsFileAttributes.get:(Lsun/nio/fs/WindowsPath;Z)Lsun/nio/fs/WindowsFileAttributes;
            invokevirtual sun.nio.fs.WindowsFileAttributes.isDirectory:()Z
            istore 2 /* addSlash */
         5: .line 108
            goto 7
      StackMap locals: sun.nio.fs.WindowsPath java.lang.String int
      StackMap stack: sun.nio.fs.WindowsException
         6: pop
         7: .line 112
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            aload 0 /* path */
            invokevirtual sun.nio.fs.WindowsPath.isUnc:()Z
            iload 2 /* addSlash */
            invokestatic sun.nio.fs.WindowsUriSupport.toUri:(Ljava/lang/String;ZZ)Ljava/net/URI;
            areturn
        end local 2 // boolean addSlash
        end local 1 // java.lang.String s
        end local 0 // sun.nio.fs.WindowsPath path
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      path  Lsun/nio/fs/WindowsPath;
            2    8     1         s  Ljava/lang/String;
            3    8     2  addSlash  Z
      Exception table:
        from    to  target  type
           4     5       6  Class sun.nio.fs.WindowsException
    MethodParameters:
      Name  Flags
      path  

  static sun.nio.fs.WindowsPath fromUri(sun.nio.fs.WindowsFileSystem, java.net.URI);
    descriptor: (Lsun/nio/fs/WindowsFileSystem;Ljava/net/URI;)Lsun/nio/fs/WindowsPath;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // sun.nio.fs.WindowsFileSystem fs
        start local 1 // java.net.URI uri
         0: .line 119
            aload 1 /* uri */
            invokevirtual java.net.URI.isAbsolute:()Z
            ifne 2
         1: .line 120
            new java.lang.IllegalArgumentException
            dup
            ldc "URI is not absolute"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 121
      StackMap locals:
      StackMap stack:
            aload 1 /* uri */
            invokevirtual java.net.URI.isOpaque:()Z
            ifeq 4
         3: .line 122
            new java.lang.IllegalArgumentException
            dup
            ldc "URI is not hierarchical"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 123
      StackMap locals:
      StackMap stack:
            aload 1 /* uri */
            invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
            astore 2 /* scheme */
        start local 2 // java.lang.String scheme
         5: .line 124
            aload 2 /* scheme */
            ifnull 6
            aload 2 /* scheme */
            ldc "file"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 7
         6: .line 125
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "URI scheme is not \"file\""
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 126
      StackMap locals:
      StackMap stack:
            aload 1 /* uri */
            invokevirtual java.net.URI.getFragment:()Ljava/lang/String;
            ifnull 9
         8: .line 127
            new java.lang.IllegalArgumentException
            dup
            ldc "URI has a fragment component"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 128
      StackMap locals:
      StackMap stack:
            aload 1 /* uri */
            invokevirtual java.net.URI.getQuery:()Ljava/lang/String;
            ifnull 11
        10: .line 129
            new java.lang.IllegalArgumentException
            dup
            ldc "URI has a query component"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 130
      StackMap locals:
      StackMap stack:
            aload 1 /* uri */
            invokevirtual java.net.URI.getPath:()Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
        12: .line 131
            aload 3 /* path */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 132
            new java.lang.IllegalArgumentException
            dup
            ldc "URI path component is empty"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 135
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* uri */
            invokevirtual java.net.URI.getAuthority:()Ljava/lang/String;
            astore 4 /* auth */
        start local 4 // java.lang.String auth
        15: .line 136
            aload 4 /* auth */
            ifnull 31
            aload 4 /* auth */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 31
        16: .line 137
            aload 1 /* uri */
            invokevirtual java.net.URI.getHost:()Ljava/lang/String;
            astore 5 /* host */
        start local 5 // java.lang.String host
        17: .line 138
            aload 5 /* host */
            ifnonnull 19
        18: .line 139
            new java.lang.IllegalArgumentException
            dup
            ldc "URI authority component has undefined host"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 140
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 1 /* uri */
            invokevirtual java.net.URI.getUserInfo:()Ljava/lang/String;
            ifnull 21
        20: .line 141
            new java.lang.IllegalArgumentException
            dup
            ldc "URI authority component has user-info"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 142
      StackMap locals:
      StackMap stack:
            aload 1 /* uri */
            invokevirtual java.net.URI.getPort:()I
            iconst_m1
            if_icmpeq 23
        22: .line 143
            new java.lang.IllegalArgumentException
            dup
            ldc "URI authority component has port number"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 150
      StackMap locals:
      StackMap stack:
            aload 5 /* host */
            ldc "["
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 29
        24: .line 151
            aload 5 /* host */
            iconst_1
            aload 5 /* host */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
        25: .line 152
            bipush 58
            bipush 45
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
        26: .line 153
            bipush 37
            bipush 115
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
        27: .line 151
            astore 5 /* host */
        28: .line 154
            new java.lang.StringBuilder
            dup
            aload 5 /* host */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".ipv6-literal.net"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* host */
        29: .line 158
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "\\\\"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* host */
            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;
            astore 3 /* path */
        end local 5 // java.lang.String host
        30: .line 159
            goto 33
        31: .line 160
      StackMap locals:
      StackMap stack:
            aload 3 /* path */
            invokevirtual java.lang.String.length:()I
            iconst_2
            if_icmple 33
            aload 3 /* path */
            iconst_2
            invokevirtual java.lang.String.charAt:(I)C
            bipush 58
            if_icmpne 33
        32: .line 162
            aload 3 /* path */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* path */
        33: .line 165
      StackMap locals:
      StackMap stack:
            aload 0 /* fs */
            aload 3 /* path */
            invokestatic sun.nio.fs.WindowsPath.parse:(Lsun/nio/fs/WindowsFileSystem;Ljava/lang/String;)Lsun/nio/fs/WindowsPath;
            areturn
        end local 4 // java.lang.String auth
        end local 3 // java.lang.String path
        end local 2 // java.lang.String scheme
        end local 1 // java.net.URI uri
        end local 0 // sun.nio.fs.WindowsFileSystem fs
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   34     0      fs  Lsun/nio/fs/WindowsFileSystem;
            0   34     1     uri  Ljava/net/URI;
            5   34     2  scheme  Ljava/lang/String;
           12   34     3    path  Ljava/lang/String;
           15   34     4    auth  Ljava/lang/String;
           17   30     5    host  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      fs    
      uri   
}
SourceFile: "WindowsUriSupport.java"