public class jdk.net.Sockets
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.net.Sockets
  super_class: java.lang.Object
{
  private static final java.util.Map<java.lang.Class<?>, java.util.Set<java.net.SocketOption<?>>> options;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/Set<Ljava/net/SocketOption<*>;>;>;

  private static volatile boolean checkedReusePort;
    descriptor: Z
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static volatile boolean isReusePortAvailable;
    descriptor: Z
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 58
            invokestatic jdk.net.Sockets.optionSets:()Ljava/util/Map;
            putstatic jdk.net.Sockets.options:Ljava/util/Map;
         1: .line 248
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.net.Sockets this
         0: .line 60
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // jdk.net.Sockets this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/net/Sockets;

  public static <T> void setOption(java.net.Socket, java.net.SocketOption<T>, );
    descriptor: (Ljava/net/Socket;Ljava/net/SocketOption;Ljava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.net.Socket s
        start local 1 // java.net.SocketOption name
        start local 2 // java.lang.Object value
         0: .line 87
            aload 0 /* s */
            aload 1 /* name */
            aload 2 /* value */
            invokevirtual java.net.Socket.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/net/Socket;
            pop
         1: .line 88
            return
        end local 2 // java.lang.Object value
        end local 1 // java.net.SocketOption name
        end local 0 // java.net.Socket s
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0      s  Ljava/net/Socket;
            0    2     1   name  Ljava/net/SocketOption<TT;>;
            0    2     2  value  TT;
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Ljava/net/Socket;Ljava/net/SocketOption<TT;>;TT;)V
    MethodParameters:
       Name  Flags
      s      
      name   
      value  

  public static <T> T getOption(java.net.Socket, java.net.SocketOption<T>);
    descriptor: (Ljava/net/Socket;Ljava/net/SocketOption;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.net.Socket s
        start local 1 // java.net.SocketOption name
         0: .line 112
            aload 0 /* s */
            aload 1 /* name */
            invokevirtual java.net.Socket.getOption:(Ljava/net/SocketOption;)Ljava/lang/Object;
            areturn
        end local 1 // java.net.SocketOption name
        end local 0 // java.net.Socket s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Ljava/net/Socket;
            0    1     1  name  Ljava/net/SocketOption<TT;>;
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Ljava/net/Socket;Ljava/net/SocketOption<TT;>;)TT;
    MethodParameters:
      Name  Flags
      s     
      name  

  public static <T> void setOption(java.net.ServerSocket, java.net.SocketOption<T>, );
    descriptor: (Ljava/net/ServerSocket;Ljava/net/SocketOption;Ljava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.net.ServerSocket s
        start local 1 // java.net.SocketOption name
        start local 2 // java.lang.Object value
         0: .line 139
            aload 0 /* s */
            aload 1 /* name */
            aload 2 /* value */
            invokevirtual java.net.ServerSocket.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/net/ServerSocket;
            pop
         1: .line 140
            return
        end local 2 // java.lang.Object value
        end local 1 // java.net.SocketOption name
        end local 0 // java.net.ServerSocket s
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0      s  Ljava/net/ServerSocket;
            0    2     1   name  Ljava/net/SocketOption<TT;>;
            0    2     2  value  TT;
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Ljava/net/ServerSocket;Ljava/net/SocketOption<TT;>;TT;)V
    MethodParameters:
       Name  Flags
      s      
      name   
      value  

  public static <T> T getOption(java.net.ServerSocket, java.net.SocketOption<T>);
    descriptor: (Ljava/net/ServerSocket;Ljava/net/SocketOption;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.net.ServerSocket s
        start local 1 // java.net.SocketOption name
         0: .line 164
            aload 0 /* s */
            aload 1 /* name */
            invokevirtual java.net.ServerSocket.getOption:(Ljava/net/SocketOption;)Ljava/lang/Object;
            areturn
        end local 1 // java.net.SocketOption name
        end local 0 // java.net.ServerSocket s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Ljava/net/ServerSocket;
            0    1     1  name  Ljava/net/SocketOption<TT;>;
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Ljava/net/ServerSocket;Ljava/net/SocketOption<TT;>;)TT;
    MethodParameters:
      Name  Flags
      s     
      name  

  public static <T> void setOption(java.net.DatagramSocket, java.net.SocketOption<T>, );
    descriptor: (Ljava/net/DatagramSocket;Ljava/net/SocketOption;Ljava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.net.DatagramSocket s
        start local 1 // java.net.SocketOption name
        start local 2 // java.lang.Object value
         0: .line 192
            aload 0 /* s */
            aload 1 /* name */
            aload 2 /* value */
            invokevirtual java.net.DatagramSocket.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/net/DatagramSocket;
            pop
         1: .line 193
            return
        end local 2 // java.lang.Object value
        end local 1 // java.net.SocketOption name
        end local 0 // java.net.DatagramSocket s
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0      s  Ljava/net/DatagramSocket;
            0    2     1   name  Ljava/net/SocketOption<TT;>;
            0    2     2  value  TT;
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Ljava/net/DatagramSocket;Ljava/net/SocketOption<TT;>;TT;)V
    MethodParameters:
       Name  Flags
      s      
      name   
      value  

  public static <T> T getOption(java.net.DatagramSocket, java.net.SocketOption<T>);
    descriptor: (Ljava/net/DatagramSocket;Ljava/net/SocketOption;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.net.DatagramSocket s
        start local 1 // java.net.SocketOption name
         0: .line 218
            aload 0 /* s */
            aload 1 /* name */
            invokevirtual java.net.DatagramSocket.getOption:(Ljava/net/SocketOption;)Ljava/lang/Object;
            areturn
        end local 1 // java.net.SocketOption name
        end local 0 // java.net.DatagramSocket s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Ljava/net/DatagramSocket;
            0    1     1  name  Ljava/net/SocketOption<TT;>;
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Ljava/net/DatagramSocket;Ljava/net/SocketOption<TT;>;)TT;
    MethodParameters:
      Name  Flags
      s     
      name  

  public static java.util.Set<java.net.SocketOption<?>> supportedOptions(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/util/Set;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class socketType
         0: .line 232
            getstatic jdk.net.Sockets.options:Ljava/util/Map;
            aload 0 /* socketType */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 1 /* set */
        start local 1 // java.util.Set set
         1: .line 233
            aload 1 /* set */
            ifnonnull 3
         2: .line 234
            new java.lang.IllegalArgumentException
            dup
            ldc "unknown socket type"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 236
      StackMap locals: java.util.Set
      StackMap stack:
            aload 1 /* set */
            areturn
        end local 1 // java.util.Set set
        end local 0 // java.lang.Class socketType
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0  socketType  Ljava/lang/Class<*>;
            1    4     1         set  Ljava/util/Set<Ljava/net/SocketOption<*>;>;
    Signature: (Ljava/lang/Class<*>;)Ljava/util/Set<Ljava/net/SocketOption<*>;>;
    MethodParameters:
            Name  Flags
      socketType  

  private static void checkValueType(, java.lang.Class<?>);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.Object value
        start local 1 // java.lang.Class type
         0: .line 240
            aload 1 /* type */
            aload 0 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 5
         1: .line 241
            new java.lang.StringBuilder
            dup
            ldc "Found: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " Expected: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 242
            aload 1 /* type */
            invokevirtual java.lang.Class.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 241
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* s */
        start local 2 // java.lang.String s
         4: .line 243
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* s */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String s
         5: .line 245
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Class type
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  value  Ljava/lang/Object;
            0    6     1   type  Ljava/lang/Class<*>;
            4    5     2      s  Ljava/lang/String;
    Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;)V
    MethodParameters:
       Name  Flags
      value  
      type   

  static boolean isReusePortAvailable();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 254
            getstatic jdk.net.Sockets.checkedReusePort:Z
            ifne 4
         1: .line 255
            new java.net.Socket
            dup
            invokespecial java.net.Socket.<init>:()V
            invokevirtual java.net.Socket.supportedOptions:()Ljava/util/Set;
            astore 0 /* s */
        start local 0 // java.util.Set s
         2: .line 256
            aload 0 /* s */
            getstatic java.net.StandardSocketOptions.SO_REUSEPORT:Ljava/net/SocketOption;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            putstatic jdk.net.Sockets.isReusePortAvailable:Z
         3: .line 257
            iconst_1
            putstatic jdk.net.Sockets.checkedReusePort:Z
        end local 0 // java.util.Set s
         4: .line 259
      StackMap locals:
      StackMap stack:
            getstatic jdk.net.Sockets.isReusePortAvailable:Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            2    4     0     s  Ljava/util/Set<Ljava/net/SocketOption<*>;>;

  private static java.util.Map<java.lang.Class<?>, java.util.Set<java.net.SocketOption<?>>> optionSets();
    descriptor: ()Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=0
         0: .line 263
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 0 /* options */
        start local 0 // java.util.Map options
         1: .line 264
            invokestatic jdk.net.ExtendedSocketOptions$PlatformSocketOptions.get:()Ljdk/net/ExtendedSocketOptions$PlatformSocketOptions;
            invokevirtual jdk.net.ExtendedSocketOptions$PlatformSocketOptions.flowSupported:()Z
            istore 1 /* flowsupported */
        start local 1 // boolean flowsupported
         2: .line 265
            invokestatic jdk.net.Sockets.isReusePortAvailable:()Z
            istore 2 /* reuseportsupported */
        start local 2 // boolean reuseportsupported
         3: .line 268
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* set */
        start local 3 // java.util.Set set
         4: .line 269
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_KEEPALIVE:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 270
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_SNDBUF:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 271
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_RCVBUF:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 272
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         8: .line 273
            iload 2 /* reuseportsupported */
            ifeq 10
         9: .line 274
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_REUSEPORT:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        10: .line 276
      StackMap locals: java.util.Map int int java.util.Set
      StackMap stack:
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_LINGER:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        11: .line 277
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        12: .line 278
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.TCP_NODELAY:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 279
            iload 1 /* flowsupported */
            ifeq 15
        14: .line 280
            aload 3 /* set */
            getstatic jdk.net.ExtendedSocketOptions.SO_FLOW_SLA:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        15: .line 282
      StackMap locals:
      StackMap stack:
            getstatic jdk.net.Sockets$QuickAck.available:Z
            ifeq 17
        16: .line 283
            aload 3 /* set */
            getstatic jdk.net.ExtendedSocketOptions.TCP_QUICKACK:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        17: .line 285
      StackMap locals:
      StackMap stack:
            getstatic jdk.net.Sockets$KeepAliveOptions.AVAILABLE:Z
            ifeq 22
        18: .line 286
            aload 3 /* set */
            getstatic jdk.net.ExtendedSocketOptions.TCP_KEEPCOUNT:Ljava/net/SocketOption;
        19: .line 287
            getstatic jdk.net.ExtendedSocketOptions.TCP_KEEPIDLE:Ljava/net/SocketOption;
        20: .line 288
            getstatic jdk.net.ExtendedSocketOptions.TCP_KEEPINTERVAL:Ljava/net/SocketOption;
        21: .line 286
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        22: .line 290
      StackMap locals:
      StackMap stack:
            aload 3 /* set */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            astore 3 /* set */
        23: .line 291
            aload 0 /* options */
            ldc Ljava/net/Socket;
            aload 3 /* set */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 295
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* set */
        25: .line 296
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_RCVBUF:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        26: .line 297
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        27: .line 298
            iload 2 /* reuseportsupported */
            ifeq 29
        28: .line 299
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_REUSEPORT:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        29: .line 301
      StackMap locals:
      StackMap stack:
            getstatic jdk.net.Sockets$QuickAck.available:Z
            ifeq 31
        30: .line 302
            aload 3 /* set */
            getstatic jdk.net.ExtendedSocketOptions.TCP_QUICKACK:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        31: .line 304
      StackMap locals:
      StackMap stack:
            getstatic jdk.net.Sockets$KeepAliveOptions.AVAILABLE:Z
            ifeq 36
        32: .line 305
            aload 3 /* set */
            getstatic jdk.net.ExtendedSocketOptions.TCP_KEEPCOUNT:Ljava/net/SocketOption;
        33: .line 306
            getstatic jdk.net.ExtendedSocketOptions.TCP_KEEPIDLE:Ljava/net/SocketOption;
        34: .line 307
            getstatic jdk.net.ExtendedSocketOptions.TCP_KEEPINTERVAL:Ljava/net/SocketOption;
        35: .line 305
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        36: .line 309
      StackMap locals:
      StackMap stack:
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        37: .line 310
            aload 3 /* set */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            astore 3 /* set */
        38: .line 311
            aload 0 /* options */
            ldc Ljava/net/ServerSocket;
            aload 3 /* set */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        39: .line 315
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* set */
        40: .line 316
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_SNDBUF:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        41: .line 317
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_RCVBUF:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        42: .line 318
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        43: .line 319
            iload 2 /* reuseportsupported */
            ifeq 45
        44: .line 320
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_REUSEPORT:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        45: .line 322
      StackMap locals:
      StackMap stack:
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        46: .line 323
            iload 1 /* flowsupported */
            ifeq 48
        47: .line 324
            aload 3 /* set */
            getstatic jdk.net.ExtendedSocketOptions.SO_FLOW_SLA:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        48: .line 326
      StackMap locals:
      StackMap stack:
            aload 3 /* set */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            astore 3 /* set */
        49: .line 327
            aload 0 /* options */
            ldc Ljava/net/DatagramSocket;
            aload 3 /* set */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        50: .line 331
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* set */
        51: .line 332
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_SNDBUF:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        52: .line 333
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_RCVBUF:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        53: .line 334
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        54: .line 335
            iload 2 /* reuseportsupported */
            ifeq 56
        55: .line 336
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.SO_REUSEPORT:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        56: .line 338
      StackMap locals:
      StackMap stack:
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        57: .line 339
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.IP_MULTICAST_IF:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        58: .line 340
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.IP_MULTICAST_TTL:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        59: .line 341
            aload 3 /* set */
            getstatic java.net.StandardSocketOptions.IP_MULTICAST_LOOP:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        60: .line 342
            iload 1 /* flowsupported */
            ifeq 62
        61: .line 343
            aload 3 /* set */
            getstatic jdk.net.ExtendedSocketOptions.SO_FLOW_SLA:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        62: .line 345
      StackMap locals:
      StackMap stack:
            aload 3 /* set */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            astore 3 /* set */
        63: .line 346
            aload 0 /* options */
            ldc Ljava/net/MulticastSocket;
            aload 3 /* set */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        64: .line 348
            aload 0 /* options */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            areturn
        end local 3 // java.util.Set set
        end local 2 // boolean reuseportsupported
        end local 1 // boolean flowsupported
        end local 0 // java.util.Map options
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            1   65     0             options  Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/Set<Ljava/net/SocketOption<*>;>;>;
            2   65     1       flowsupported  Z
            3   65     2  reuseportsupported  Z
            4   65     3                 set  Ljava/util/Set<Ljava/net/SocketOption<*>;>;
    Signature: ()Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/Set<Ljava/net/SocketOption<*>;>;>;
}
SourceFile: "Sockets.java"
NestMembers:
  jdk.net.Sockets$KeepAliveOptions  jdk.net.Sockets$QuickAck
InnerClasses:
  PlatformSocketOptions = jdk.net.ExtendedSocketOptions$PlatformSocketOptions of jdk.net.ExtendedSocketOptions
  KeepAliveOptions = jdk.net.Sockets$KeepAliveOptions of jdk.net.Sockets
  QuickAck = jdk.net.Sockets$QuickAck of jdk.net.Sockets