public final class java.net.SocketPermission extends java.security.Permission implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: java.net.SocketPermission
  super_class: java.security.Permission
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -7204263841984476862

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

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

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

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

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

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

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

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

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

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

  private transient int mask;
    descriptor: I
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

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

  private transient java.lang.String hostname;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.lang.String cname;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.net.InetAddress[] addresses;
    descriptor: [Ljava/net/InetAddress;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient boolean wildcard;
    descriptor: Z
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient boolean init_with_ip;
    descriptor: Z
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient boolean invalid;
    descriptor: Z
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient int[] portrange;
    descriptor: [I
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient boolean defaultDeny;
    descriptor: Z
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient boolean untrusted;
    descriptor: Z
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient boolean trusted;
    descriptor: Z
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private static boolean trustNameService;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.security.util.Debug debug;
    descriptor: Lsun/security/util/Debug;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static boolean debugInit;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private transient java.lang.String cdomain;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.lang.String hdomain;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 235
            aconst_null
            putstatic java.net.SocketPermission.debug:Lsun/security/util/Debug;
         1: .line 236
            iconst_0
            putstatic java.net.SocketPermission.debugInit:Z
         2: .line 246
            new sun.security.action.GetBooleanAction
            dup
            ldc "sun.net.trustNameService"
            invokespecial sun.security.action.GetBooleanAction.<init>:(Ljava/lang/String;)V
         3: .line 245
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 0 /* tmp */
        start local 0 // java.lang.Boolean tmp
         4: .line 247
            aload 0 /* tmp */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putstatic java.net.SocketPermission.trustNameService:Z
        end local 0 // java.lang.Boolean tmp
         5: .line 248
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            4    5     0   tmp  Ljava/lang/Boolean;

  private static synchronized sun.security.util.Debug getDebug();
    descriptor: ()Lsun/security/util/Debug;
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=0, args_size=0
         0: .line 251
            getstatic java.net.SocketPermission.debugInit:Z
            ifne 3
         1: .line 252
            ldc "access"
            invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;)Lsun/security/util/Debug;
            putstatic java.net.SocketPermission.debug:Lsun/security/util/Debug;
         2: .line 253
            iconst_1
            putstatic java.net.SocketPermission.debugInit:Z
         3: .line 255
      StackMap locals:
      StackMap stack:
            getstatic java.net.SocketPermission.debug:Lsun/security/util/Debug;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String host
        start local 2 // java.lang.String action
         0: .line 289
            aload 0 /* this */
            aload 1 /* host */
            invokestatic java.net.SocketPermission.getHost:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.security.Permission.<init>:(Ljava/lang/String;)V
         1: .line 225
            aload 0 /* this */
            iconst_0
            putfield java.net.SocketPermission.defaultDeny:Z
         2: .line 291
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            aload 2 /* action */
            invokestatic java.net.SocketPermission.getMask:(Ljava/lang/String;)I
            invokevirtual java.net.SocketPermission.init:(Ljava/lang/String;I)V
         3: .line 292
            return
        end local 2 // java.lang.String action
        end local 1 // java.lang.String host
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljava/net/SocketPermission;
            0    4     1    host  Ljava/lang/String;
            0    4     2  action  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      host    
      action  

  void <init>(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String host
        start local 2 // int mask
         0: .line 296
            aload 0 /* this */
            aload 1 /* host */
            invokestatic java.net.SocketPermission.getHost:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.security.Permission.<init>:(Ljava/lang/String;)V
         1: .line 225
            aload 0 /* this */
            iconst_0
            putfield java.net.SocketPermission.defaultDeny:Z
         2: .line 298
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            iload 2 /* mask */
            invokevirtual java.net.SocketPermission.init:(Ljava/lang/String;I)V
         3: .line 299
            return
        end local 2 // int mask
        end local 1 // java.lang.String host
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/net/SocketPermission;
            0    4     1  host  Ljava/lang/String;
            0    4     2  mask  I
    MethodParameters:
      Name  Flags
      host  
      mask  

  private void setDeny();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 302
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.defaultDeny:Z
         1: .line 303
            return
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/net/SocketPermission;

  private static java.lang.String getHost(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.lang.String host
         0: .line 306
            aload 0 /* host */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 307
            ldc "localhost"
            areturn
         2: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* host */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpeq 17
         3: .line 315
            aload 0 /* host */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            dup
            istore 1 /* ind */
        start local 1 // int ind
         4: aload 0 /* host */
            bipush 58
            invokevirtual java.lang.String.lastIndexOf:(I)I
            if_icmpeq 17
         5: .line 320
            new java.util.StringTokenizer
            dup
            aload 0 /* host */
            ldc ":"
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 2 /* st */
        start local 2 // java.util.StringTokenizer st
         6: .line 321
            aload 2 /* st */
            invokevirtual java.util.StringTokenizer.countTokens:()I
            istore 3 /* tokens */
        start local 3 // int tokens
         7: .line 322
            iload 3 /* tokens */
            bipush 9
            if_icmpne 13
         8: .line 324
            aload 0 /* host */
            bipush 58
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* ind */
         9: .line 325
            new java.lang.StringBuilder
            dup
            ldc "["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* host */
            iconst_0
            iload 1 /* ind */
            invokevirtual java.lang.String.substring:(II)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;
        10: .line 326
            aload 0 /* host */
            iload 1 /* ind */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 325
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 0 /* host */
        12: .line 327
            goto 17
      StackMap locals: int java.util.StringTokenizer int
      StackMap stack:
        13: iload 3 /* tokens */
            bipush 8
            if_icmpne 16
            aload 0 /* host */
            ldc "::"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_m1
            if_icmpne 16
        14: .line 329
            new java.lang.StringBuilder
            dup
            ldc "["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* host */
            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;
            astore 0 /* host */
        15: .line 330
            goto 17
        16: .line 332
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Ambiguous hostport part"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int tokens
        end local 2 // java.util.StringTokenizer st
        end local 1 // int ind
        17: .line 337
      StackMap locals:
      StackMap stack:
            aload 0 /* host */
            areturn
        end local 0 // java.lang.String host
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0    host  Ljava/lang/String;
            4   17     1     ind  I
            6   17     2      st  Ljava/util/StringTokenizer;
            7   17     3  tokens  I
    MethodParameters:
      Name  Flags
      host  

  private int[] parsePort(java.lang.String);
    descriptor: (Ljava/lang/String;)[I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String port
         0: .line 345
            aload 1 /* port */
            ifnull 1
            aload 1 /* port */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 1
            aload 1 /* port */
            ldc "*"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 346
      StackMap locals:
      StackMap stack:
            iconst_2
            newarray 10
            dup
            iconst_1
            ldc 65535
            iastore
            areturn
         2: .line 349
      StackMap locals:
      StackMap stack:
            aload 1 /* port */
            bipush 45
            invokevirtual java.lang.String.indexOf:(I)I
            istore 2 /* dash */
        start local 2 // int dash
         3: .line 351
            iload 2 /* dash */
            iconst_m1
            if_icmpne 6
         4: .line 352
            aload 1 /* port */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 3 /* p */
        start local 3 // int p
         5: .line 353
            iconst_2
            newarray 10
            dup
            iconst_0
            iload 3 /* p */
            iastore
            dup
            iconst_1
            iload 3 /* p */
            iastore
            areturn
        end local 3 // int p
         6: .line 355
      StackMap locals: int
      StackMap stack:
            aload 1 /* port */
            iconst_0
            iload 2 /* dash */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* low */
        start local 3 // java.lang.String low
         7: .line 356
            aload 1 /* port */
            iload 2 /* dash */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* high */
        start local 4 // java.lang.String high
         8: .line 359
            aload 3 /* low */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 360
            iconst_0
            istore 5 /* l */
        start local 5 // int l
        10: .line 361
            goto 12
        end local 5 // int l
        11: .line 362
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 3 /* low */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 5 /* l */
        start local 5 // int l
        12: .line 365
      StackMap locals: int
      StackMap stack:
            aload 4 /* high */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 366
            ldc 65535
            istore 6 /* h */
        start local 6 // int h
        14: .line 367
            goto 16
        end local 6 // int h
        15: .line 368
      StackMap locals:
      StackMap stack:
            aload 4 /* high */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 6 /* h */
        start local 6 // int h
        16: .line 370
      StackMap locals: int
      StackMap stack:
            iload 5 /* l */
            iflt 17
            iload 6 /* h */
            iflt 17
            iload 6 /* h */
            iload 5 /* l */
            if_icmpge 18
        17: .line 371
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid port range"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 373
      StackMap locals:
      StackMap stack:
            iconst_2
            newarray 10
            dup
            iconst_0
            iload 5 /* l */
            iastore
            dup
            iconst_1
            iload 6 /* h */
            iastore
            areturn
        end local 6 // int h
        end local 5 // int l
        end local 4 // java.lang.String high
        end local 3 // java.lang.String low
        end local 2 // int dash
        end local 1 // java.lang.String port
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Ljava/net/SocketPermission;
            0   19     1  port  Ljava/lang/String;
            3   19     2  dash  I
            5    6     3     p  I
            7   19     3   low  Ljava/lang/String;
            8   19     4  high  Ljava/lang/String;
           10   11     5     l  I
           12   19     5     l  I
           14   15     6     h  I
           16   19     6     h  I
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      port  

  private boolean includesEphemerals();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 382
            aload 0 /* this */
            getfield java.net.SocketPermission.portrange:[I
            iconst_0
            iaload
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/net/SocketPermission;

  private void init(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String host
        start local 2 // int mask
         0: .line 393
            iload 2 /* mask */
            bipush 15
            iand
            iload 2 /* mask */
            if_icmpeq 2
         1: .line 394
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid actions mask"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* mask */
            bipush 8
            ior
            putfield java.net.SocketPermission.mask:I
         3: .line 408
            iconst_0
            istore 3 /* rb */
        start local 3 // int rb
         4: .line 409
            iconst_0
            istore 4 /* start */
        start local 4 // int start
         5: iconst_0
            istore 5 /* end */
        start local 5 // int end
         6: .line 410
            iconst_m1
            istore 6 /* sep */
        start local 6 // int sep
         7: .line 411
            aload 1 /* host */
            astore 7 /* hostport */
        start local 7 // java.lang.String hostport
         8: .line 412
            aload 1 /* host */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 18
         9: .line 413
            iconst_1
            istore 4 /* start */
        10: .line 414
            aload 1 /* host */
            bipush 93
            invokevirtual java.lang.String.indexOf:(I)I
            istore 3 /* rb */
        11: .line 415
            iload 3 /* rb */
            iconst_m1
            if_icmpeq 14
        12: .line 416
            aload 1 /* host */
            iload 4 /* start */
            iload 3 /* rb */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* host */
        13: .line 417
            goto 16
        14: .line 419
      StackMap locals: java.net.SocketPermission java.lang.String int int int int int java.lang.String
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid host/port: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* host */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 418
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 421
      StackMap locals:
      StackMap stack:
            aload 7 /* hostport */
            bipush 58
            iload 3 /* rb */
            iconst_1
            iadd
            invokevirtual java.lang.String.indexOf:(II)I
            istore 6 /* sep */
        17: .line 422
            goto 23
        18: .line 423
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* start */
        19: .line 424
            aload 1 /* host */
            bipush 58
            iload 3 /* rb */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 6 /* sep */
        20: .line 425
            iload 6 /* sep */
            istore 5 /* end */
        21: .line 426
            iload 6 /* sep */
            iconst_m1
            if_icmpeq 23
        22: .line 427
            aload 1 /* host */
            iload 4 /* start */
            iload 5 /* end */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* host */
        23: .line 431
      StackMap locals:
      StackMap stack:
            iload 6 /* sep */
            iconst_m1
            if_icmpeq 30
        24: .line 432
            aload 7 /* hostport */
            iload 6 /* sep */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 8 /* port */
        start local 8 // java.lang.String port
        25: .line 434
            aload 0 /* this */
            aload 0 /* this */
            aload 8 /* port */
            invokevirtual java.net.SocketPermission.parsePort:(Ljava/lang/String;)[I
            putfield java.net.SocketPermission.portrange:[I
        26: .line 435
            goto 31
      StackMap locals: java.net.SocketPermission java.lang.String int int int int int java.lang.String java.lang.String
      StackMap stack: java.lang.Exception
        27: pop
        28: .line 437
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid port range: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* port */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 436
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.lang.String port
        30: .line 440
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            newarray 10
            dup
            iconst_1
            ldc 65535
            iastore
            putfield java.net.SocketPermission.portrange:[I
        31: .line 443
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* host */
            putfield java.net.SocketPermission.hostname:Ljava/lang/String;
        32: .line 446
            aload 1 /* host */
            bipush 42
            invokevirtual java.lang.String.lastIndexOf:(I)I
            ifle 35
        33: .line 448
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid host wildcard specification"
        34: .line 447
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        35: .line 449
      StackMap locals:
      StackMap stack:
            aload 1 /* host */
            ldc "*"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 46
        36: .line 450
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.wildcard:Z
        37: .line 451
            aload 1 /* host */
            ldc "*"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 40
        38: .line 452
            aload 0 /* this */
            ldc ""
            putfield java.net.SocketPermission.cname:Ljava/lang/String;
        39: .line 453
            goto 45
      StackMap locals:
      StackMap stack:
        40: aload 1 /* host */
            ldc "*."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 43
        41: .line 454
            aload 0 /* this */
            aload 1 /* host */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            putfield java.net.SocketPermission.cname:Ljava/lang/String;
        42: .line 455
            goto 45
        43: .line 457
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid host wildcard specification"
        44: .line 456
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        45: .line 459
      StackMap locals:
      StackMap stack:
            return
        46: .line 461
      StackMap locals:
      StackMap stack:
            aload 1 /* host */
            invokevirtual java.lang.String.length:()I
            ifle 60
        47: .line 463
            aload 1 /* host */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 8 /* ch */
        start local 8 // char ch
        48: .line 464
            iload 8 /* ch */
            bipush 58
            if_icmpeq 49
            iload 8 /* ch */
            bipush 16
            invokestatic java.lang.Character.digit:(CI)I
            iconst_m1
            if_icmpeq 60
        49: .line 465
      StackMap locals: int
      StackMap stack:
            aload 1 /* host */
            invokestatic sun.net.util.IPAddressUtil.textToNumericFormatV4:(Ljava/lang/String;)[B
            astore 9 /* ip */
        start local 9 // byte[] ip
        50: .line 466
            aload 9 /* ip */
            ifnonnull 52
        51: .line 467
            aload 1 /* host */
            invokestatic sun.net.util.IPAddressUtil.textToNumericFormatV6:(Ljava/lang/String;)[B
            astore 9 /* ip */
        52: .line 469
      StackMap locals: byte[]
      StackMap stack:
            aload 9 /* ip */
            ifnull 60
        53: .line 471
            aload 0 /* this */
        54: .line 473
            iconst_1
            anewarray java.net.InetAddress
            dup
            iconst_0
            aload 9 /* ip */
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
            aastore
        55: .line 471
            putfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
        56: .line 474
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.init_with_ip:Z
        57: .line 475
            goto 60
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        58: pop
        59: .line 477
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        end local 9 // byte[] ip
        end local 8 // char ch
        60: .line 483
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.lang.String hostport
        end local 6 // int sep
        end local 5 // int end
        end local 4 // int start
        end local 3 // int rb
        end local 2 // int mask
        end local 1 // java.lang.String host
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   61     0      this  Ljava/net/SocketPermission;
            0   61     1      host  Ljava/lang/String;
            0   61     2      mask  I
            4   61     3        rb  I
            5   61     4     start  I
            6   61     5       end  I
            7   61     6       sep  I
            8   61     7  hostport  Ljava/lang/String;
           25   30     8      port  Ljava/lang/String;
           48   60     8        ch  C
           50   60     9        ip  [B
      Exception table:
        from    to  target  type
          25    26      27  Class java.lang.Exception
          53    57      58  Class java.net.UnknownHostException
    MethodParameters:
      Name  Flags
      host  
      mask  

  private static int getMask(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // java.lang.String action
         0: .line 493
            aload 0 /* action */
            ifnonnull 2
         1: .line 494
            new java.lang.NullPointerException
            dup
            ldc "action can't be null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 497
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 498
            new java.lang.IllegalArgumentException
            dup
            ldc "action can't be empty"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 501
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* mask */
        start local 1 // int mask
         5: .line 505
            aload 0 /* action */
            ldc "resolve"
            if_acmpne 7
         6: .line 506
            bipush 8
            ireturn
         7: .line 507
      StackMap locals: int
      StackMap stack:
            aload 0 /* action */
            ldc "connect"
            if_acmpne 9
         8: .line 508
            iconst_1
            ireturn
         9: .line 509
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            ldc "listen"
            if_acmpne 11
        10: .line 510
            iconst_2
            ireturn
        11: .line 511
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            ldc "accept"
            if_acmpne 13
        12: .line 512
            iconst_4
            ireturn
        13: .line 513
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            ldc "connect,accept"
            if_acmpne 15
        14: .line 514
            iconst_5
            ireturn
        15: .line 517
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 2 /* a */
        start local 2 // char[] a
        16: .line 519
            aload 2 /* a */
            arraylength
            iconst_1
            isub
            istore 3 /* i */
        start local 3 // int i
        17: .line 520
            iload 3 /* i */
            ifge 79
        18: .line 521
            iload 1 /* mask */
            ireturn
        start local 4 // char c
        19: .line 532
      StackMap locals: char[] int int
      StackMap stack:
            iinc 3 /* i */ -1
        end local 4 // char c
        20: .line 527
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iconst_m1
            if_icmpeq 26
            aload 2 /* a */
            iload 3 /* i */
            caload
            dup
            istore 4 /* c */
        start local 4 // char c
        21: bipush 32
            if_icmpeq 19
        22: .line 528
            iload 4 /* c */
            bipush 13
            if_icmpeq 19
        23: .line 529
            iload 4 /* c */
            bipush 10
            if_icmpeq 19
        24: .line 530
            iload 4 /* c */
            bipush 12
            if_icmpeq 19
        25: .line 531
            iload 4 /* c */
            bipush 9
            if_icmpeq 19
        end local 4 // char c
        26: .line 537
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            bipush 6
            if_icmplt 36
            aload 2 /* a */
            iload 3 /* i */
            bipush 6
            isub
            caload
            bipush 99
            if_icmpeq 27
            aload 2 /* a */
            iload 3 /* i */
            bipush 6
            isub
            caload
            bipush 67
            if_icmpne 36
        27: .line 538
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_5
            isub
            caload
            bipush 111
            if_icmpeq 28
            aload 2 /* a */
            iload 3 /* i */
            iconst_5
            isub
            caload
            bipush 79
            if_icmpne 36
        28: .line 539
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_4
            isub
            caload
            bipush 110
            if_icmpeq 29
            aload 2 /* a */
            iload 3 /* i */
            iconst_4
            isub
            caload
            bipush 78
            if_icmpne 36
        29: .line 540
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_3
            isub
            caload
            bipush 110
            if_icmpeq 30
            aload 2 /* a */
            iload 3 /* i */
            iconst_3
            isub
            caload
            bipush 78
            if_icmpne 36
        30: .line 541
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_2
            isub
            caload
            bipush 101
            if_icmpeq 31
            aload 2 /* a */
            iload 3 /* i */
            iconst_2
            isub
            caload
            bipush 69
            if_icmpne 36
        31: .line 542
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_1
            isub
            caload
            bipush 99
            if_icmpeq 32
            aload 2 /* a */
            iload 3 /* i */
            iconst_1
            isub
            caload
            bipush 67
            if_icmpne 36
        32: .line 543
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            caload
            bipush 116
            if_icmpeq 33
            aload 2 /* a */
            iload 3 /* i */
            caload
            bipush 84
            if_icmpne 36
        33: .line 545
      StackMap locals:
      StackMap stack:
            bipush 7
            istore 5 /* matchlen */
        start local 5 // int matchlen
        34: .line 546
            iload 1 /* mask */
            iconst_1
            ior
            istore 1 /* mask */
        35: .line 548
            goto 67
        end local 5 // int matchlen
      StackMap locals:
      StackMap stack:
        36: iload 3 /* i */
            bipush 6
            if_icmplt 46
            aload 2 /* a */
            iload 3 /* i */
            bipush 6
            isub
            caload
            bipush 114
            if_icmpeq 37
            aload 2 /* a */
            iload 3 /* i */
            bipush 6
            isub
            caload
            bipush 82
            if_icmpne 46
        37: .line 549
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_5
            isub
            caload
            bipush 101
            if_icmpeq 38
            aload 2 /* a */
            iload 3 /* i */
            iconst_5
            isub
            caload
            bipush 69
            if_icmpne 46
        38: .line 550
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_4
            isub
            caload
            bipush 115
            if_icmpeq 39
            aload 2 /* a */
            iload 3 /* i */
            iconst_4
            isub
            caload
            bipush 83
            if_icmpne 46
        39: .line 551
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_3
            isub
            caload
            bipush 111
            if_icmpeq 40
            aload 2 /* a */
            iload 3 /* i */
            iconst_3
            isub
            caload
            bipush 79
            if_icmpne 46
        40: .line 552
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_2
            isub
            caload
            bipush 108
            if_icmpeq 41
            aload 2 /* a */
            iload 3 /* i */
            iconst_2
            isub
            caload
            bipush 76
            if_icmpne 46
        41: .line 553
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_1
            isub
            caload
            bipush 118
            if_icmpeq 42
            aload 2 /* a */
            iload 3 /* i */
            iconst_1
            isub
            caload
            bipush 86
            if_icmpne 46
        42: .line 554
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            caload
            bipush 101
            if_icmpeq 43
            aload 2 /* a */
            iload 3 /* i */
            caload
            bipush 69
            if_icmpne 46
        43: .line 556
      StackMap locals:
      StackMap stack:
            bipush 7
            istore 5 /* matchlen */
        start local 5 // int matchlen
        44: .line 557
            iload 1 /* mask */
            bipush 8
            ior
            istore 1 /* mask */
        45: .line 559
            goto 67
        end local 5 // int matchlen
      StackMap locals:
      StackMap stack:
        46: iload 3 /* i */
            iconst_5
            if_icmplt 55
            aload 2 /* a */
            iload 3 /* i */
            iconst_5
            isub
            caload
            bipush 108
            if_icmpeq 47
            aload 2 /* a */
            iload 3 /* i */
            iconst_5
            isub
            caload
            bipush 76
            if_icmpne 55
        47: .line 560
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_4
            isub
            caload
            bipush 105
            if_icmpeq 48
            aload 2 /* a */
            iload 3 /* i */
            iconst_4
            isub
            caload
            bipush 73
            if_icmpne 55
        48: .line 561
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_3
            isub
            caload
            bipush 115
            if_icmpeq 49
            aload 2 /* a */
            iload 3 /* i */
            iconst_3
            isub
            caload
            bipush 83
            if_icmpne 55
        49: .line 562
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_2
            isub
            caload
            bipush 116
            if_icmpeq 50
            aload 2 /* a */
            iload 3 /* i */
            iconst_2
            isub
            caload
            bipush 84
            if_icmpne 55
        50: .line 563
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_1
            isub
            caload
            bipush 101
            if_icmpeq 51
            aload 2 /* a */
            iload 3 /* i */
            iconst_1
            isub
            caload
            bipush 69
            if_icmpne 55
        51: .line 564
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            caload
            bipush 110
            if_icmpeq 52
            aload 2 /* a */
            iload 3 /* i */
            caload
            bipush 78
            if_icmpne 55
        52: .line 566
      StackMap locals:
      StackMap stack:
            bipush 6
            istore 5 /* matchlen */
        start local 5 // int matchlen
        53: .line 567
            iload 1 /* mask */
            iconst_2
            ior
            istore 1 /* mask */
        54: .line 569
            goto 67
        end local 5 // int matchlen
      StackMap locals:
      StackMap stack:
        55: iload 3 /* i */
            iconst_5
            if_icmplt 64
            aload 2 /* a */
            iload 3 /* i */
            iconst_5
            isub
            caload
            bipush 97
            if_icmpeq 56
            aload 2 /* a */
            iload 3 /* i */
            iconst_5
            isub
            caload
            bipush 65
            if_icmpne 64
        56: .line 570
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_4
            isub
            caload
            bipush 99
            if_icmpeq 57
            aload 2 /* a */
            iload 3 /* i */
            iconst_4
            isub
            caload
            bipush 67
            if_icmpne 64
        57: .line 571
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_3
            isub
            caload
            bipush 99
            if_icmpeq 58
            aload 2 /* a */
            iload 3 /* i */
            iconst_3
            isub
            caload
            bipush 67
            if_icmpne 64
        58: .line 572
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_2
            isub
            caload
            bipush 101
            if_icmpeq 59
            aload 2 /* a */
            iload 3 /* i */
            iconst_2
            isub
            caload
            bipush 69
            if_icmpne 64
        59: .line 573
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iconst_1
            isub
            caload
            bipush 112
            if_icmpeq 60
            aload 2 /* a */
            iload 3 /* i */
            iconst_1
            isub
            caload
            bipush 80
            if_icmpne 64
        60: .line 574
      StackMap locals:
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            caload
            bipush 116
            if_icmpeq 61
            aload 2 /* a */
            iload 3 /* i */
            caload
            bipush 84
            if_icmpne 64
        61: .line 576
      StackMap locals:
      StackMap stack:
            bipush 6
            istore 5 /* matchlen */
        start local 5 // int matchlen
        62: .line 577
            iload 1 /* mask */
            iconst_4
            ior
            istore 1 /* mask */
        63: .line 579
            goto 67
        end local 5 // int matchlen
        64: .line 581
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        65: .line 582
            new java.lang.StringBuilder
            dup
            ldc "invalid permission: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* action */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        66: .line 581
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 5 // int matchlen
        67: .line 587
      StackMap locals: java.lang.String int char[] int top int
      StackMap stack:
            iconst_0
            istore 6 /* seencomma */
        start local 6 // boolean seencomma
        68: .line 588
            goto 77
        69: .line 589
      StackMap locals: int
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iload 5 /* matchlen */
            isub
            caload
            lookupswitch { // 6
                    9: 72
                   10: 72
                   12: 72
                   13: 72
                   32: 72
                   44: 70
              default: 73
          }
        70: .line 591
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* seencomma */
        71: .line 592
            goto 76
        72: .line 595
      StackMap locals:
      StackMap stack:
            goto 76
        73: .line 597
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        74: .line 598
            new java.lang.StringBuilder
            dup
            ldc "invalid permission: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* action */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        75: .line 597
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        76: .line 600
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ -1
        77: .line 588
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 5 /* matchlen */
            if_icmplt 78
            iload 6 /* seencomma */
            ifeq 69
        78: .line 604
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 5 /* matchlen */
            isub
            istore 3 /* i */
        end local 6 // boolean seencomma
        end local 5 // int matchlen
        79: .line 523
      StackMap locals: java.lang.String int char[] int
      StackMap stack:
            iload 3 /* i */
            iconst_m1
            if_icmpne 20
        80: .line 607
            iload 1 /* mask */
            ireturn
        end local 3 // int i
        end local 2 // char[] a
        end local 1 // int mask
        end local 0 // java.lang.String action
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   81     0     action  Ljava/lang/String;
            5   81     1       mask  I
           16   81     2          a  [C
           17   81     3          i  I
           19   20     4          c  C
           21   26     4          c  C
           34   36     5   matchlen  I
           44   46     5   matchlen  I
           53   55     5   matchlen  I
           62   64     5   matchlen  I
           67   79     5   matchlen  I
           68   79     6  seencomma  Z
    MethodParameters:
        Name  Flags
      action  

  private boolean isUntrusted();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 613
            aload 0 /* this */
            getfield java.net.SocketPermission.trusted:Z
            ifeq 1
            iconst_0
            ireturn
         1: .line 614
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.invalid:Z
            ifne 2
            aload 0 /* this */
            getfield java.net.SocketPermission.untrusted:Z
            ifeq 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
         3: .line 616
      StackMap locals:
      StackMap stack:
            getstatic java.net.SocketPermission.trustNameService:Z
            ifne 19
            aload 0 /* this */
            getfield java.net.SocketPermission.defaultDeny:Z
            ifne 5
         4: .line 617
            aload 0 /* this */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            invokestatic sun.net.www.URLConnection.isProxiedHost:(Ljava/lang/String;)Z
            ifeq 19
         5: .line 618
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 7
         6: .line 619
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getCanonName:()V
         7: .line 621
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            aload 0 /* this */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            invokevirtual java.net.SocketPermission.match:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 14
         8: .line 623
            aload 0 /* this */
            aload 0 /* this */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iconst_0
            aaload
            invokevirtual java.net.InetAddress.getAddress:()[B
            invokevirtual java.net.SocketPermission.authorized:(Ljava/lang/String;[B)Z
            ifne 14
         9: .line 624
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.untrusted:Z
        10: .line 625
            invokestatic java.net.SocketPermission.getDebug:()Lsun/security/util/Debug;
            astore 1 /* debug */
        start local 1 // sun.security.util.Debug debug
        11: .line 626
            aload 1 /* debug */
            ifnull 13
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 13
        12: .line 627
            aload 1 /* debug */
            new java.lang.StringBuilder
            dup
            ldc "socket access restriction: proxied host ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iconst_0
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " does not match "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " from reverse lookup"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        13: .line 629
      StackMap locals: sun.security.util.Debug
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // sun.security.util.Debug debug
        14: .line 632
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.trusted:Z
        15: .line 634
            goto 19
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        16: astore 1 /* uhe */
        start local 1 // java.net.UnknownHostException uhe
        17: .line 635
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        18: .line 636
            aload 1 /* uhe */
            athrow
        end local 1 // java.net.UnknownHostException uhe
        19: .line 638
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Ljava/net/SocketPermission;
           11   14     1  debug  Lsun/security/util/Debug;
           17   19     1    uhe  Ljava/net/UnknownHostException;
      Exception table:
        from    to  target  type
           3    13      16  Class java.net.UnknownHostException
          14    15      16  Class java.net.UnknownHostException
    Exceptions:
      throws java.net.UnknownHostException

  void getCanonName();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 648
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 1
            aload 0 /* this */
            getfield java.net.SocketPermission.invalid:Z
            ifne 1
            aload 0 /* this */
            getfield java.net.SocketPermission.untrusted:Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: return
         2: .line 656
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 4
         3: .line 657
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getIP:()V
         4: .line 662
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifeq 7
         5: .line 663
            aload 0 /* this */
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iconst_0
            aaload
            iconst_0
            invokevirtual java.net.InetAddress.getHostName:(Z)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            putfield java.net.SocketPermission.cname:Ljava/lang/String;
         6: .line 664
            goto 14
         7: .line 665
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iconst_0
            aaload
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
         8: .line 666
            iconst_0
            invokevirtual java.net.InetAddress.getHostName:(Z)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
         9: .line 665
            putfield java.net.SocketPermission.cname:Ljava/lang/String;
        10: .line 668
            goto 14
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        11: astore 1 /* uhe */
        start local 1 // java.net.UnknownHostException uhe
        12: .line 669
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        13: .line 670
            aload 1 /* uhe */
            athrow
        end local 1 // java.net.UnknownHostException uhe
        14: .line 672
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Ljava/net/SocketPermission;
           12   14     1   uhe  Ljava/net/UnknownHostException;
      Exception table:
        from    to  target  type
           2    10      11  Class java.net.UnknownHostException
    Exceptions:
      throws java.net.UnknownHostException

  private boolean match(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String cname
        start local 2 // java.lang.String hname
         0: .line 677
            aload 1 /* cname */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 3 /* a */
        start local 3 // java.lang.String a
         1: .line 678
            aload 2 /* hname */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 4 /* b */
        start local 4 // java.lang.String b
         2: .line 679
            aload 3 /* a */
            aload 4 /* b */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 680
            aload 3 /* a */
            invokevirtual java.lang.String.length:()I
            aload 4 /* b */
            invokevirtual java.lang.String.length:()I
            if_icmpeq 4
            aload 3 /* a */
            aload 4 /* b */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.charAt:(I)C
            bipush 46
            if_icmpne 5
         4: .line 681
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            iconst_1
            ireturn
         5: .line 683
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cdomain:Ljava/lang/String;
            ifnonnull 10
         6: .line 684
            aload 0 /* this */
            aload 3 /* a */
            invokestatic sun.security.util.RegisteredDomain.from:(Ljava/lang/String;)Ljava/util/Optional;
         7: .line 685
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/security/util/RegisteredDomain.name()Ljava/lang/String; (9 itf)
                  (Lsun/security/util/RegisteredDomain;)Ljava/lang/String;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
         8: .line 686
            aload 3 /* a */
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
         9: .line 684
            putfield java.net.SocketPermission.cdomain:Ljava/lang/String;
        10: .line 688
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.hdomain:Ljava/lang/String;
            ifnonnull 15
        11: .line 689
            aload 0 /* this */
            aload 4 /* b */
            invokestatic sun.security.util.RegisteredDomain.from:(Ljava/lang/String;)Ljava/util/Optional;
        12: .line 690
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  sun/security/util/RegisteredDomain.name()Ljava/lang/String; (9 itf)
                  (Lsun/security/util/RegisteredDomain;)Ljava/lang/String;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
        13: .line 691
            aload 4 /* b */
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
        14: .line 689
            putfield java.net.SocketPermission.hdomain:Ljava/lang/String;
        15: .line 694
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cdomain:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifeq 18
            aload 0 /* this */
            getfield java.net.SocketPermission.hdomain:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifeq 18
        16: .line 695
            aload 0 /* this */
            getfield java.net.SocketPermission.cdomain:Ljava/lang/String;
            aload 0 /* this */
            getfield java.net.SocketPermission.hdomain:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        17: .line 694
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        18: iconst_0
            ireturn
        end local 4 // java.lang.String b
        end local 3 // java.lang.String a
        end local 2 // java.lang.String hname
        end local 1 // java.lang.String cname
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   19     0   this  Ljava/net/SocketPermission;
            0   19     1  cname  Ljava/lang/String;
            0   19     2  hname  Ljava/lang/String;
            1   19     3      a  Ljava/lang/String;
            2   19     4      b  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      cname  
      hname  

  private boolean authorized(java.lang.String, byte[]);
    descriptor: (Ljava/lang/String;[B)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String cname
        start local 2 // byte[] addr
         0: .line 699
            aload 2 /* addr */
            arraylength
            iconst_4
            if_icmpne 2
         1: .line 700
            aload 0 /* this */
            aload 1 /* cname */
            aload 2 /* addr */
            invokevirtual java.net.SocketPermission.authorizedIPv4:(Ljava/lang/String;[B)Z
            ireturn
         2: .line 701
      StackMap locals:
      StackMap stack:
            aload 2 /* addr */
            arraylength
            bipush 16
            if_icmpne 4
         3: .line 702
            aload 0 /* this */
            aload 1 /* cname */
            aload 2 /* addr */
            invokevirtual java.net.SocketPermission.authorizedIPv6:(Ljava/lang/String;[B)Z
            ireturn
         4: .line 704
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // byte[] addr
        end local 1 // java.lang.String cname
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Ljava/net/SocketPermission;
            0    5     1  cname  Ljava/lang/String;
            0    5     2   addr  [B
    MethodParameters:
       Name  Flags
      cname  
      addr   

  private boolean authorizedIPv4(java.lang.String, byte[]);
    descriptor: (Ljava/lang/String;[B)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String cname
        start local 2 // byte[] addr
         0: .line 708
            ldc ""
            astore 3 /* authHost */
        start local 3 // java.lang.String authHost
         1: .line 712
            new java.lang.StringBuilder
            dup
            ldc "auth."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 713
            aload 2 /* addr */
            iconst_3
            baload
            sipush 255
            iand
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* addr */
            iconst_2
            baload
            sipush 255
            iand
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 714
            aload 2 /* addr */
            iconst_1
            baload
            sipush 255
            iand
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* addr */
            iconst_0
            baload
            sipush 255
            iand
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         4: .line 715
            ldc ".in-addr.arpa"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 712
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* authHost */
         6: .line 718
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 3 /* authHost */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* authHost */
         7: .line 719
            aload 3 /* authHost */
            iconst_0
            invokestatic java.net.InetAddress.getAllByName0:(Ljava/lang/String;Z)[Ljava/net/InetAddress;
            iconst_0
            aaload
            astore 4 /* auth */
        start local 4 // java.net.InetAddress auth
         8: .line 720
            aload 4 /* auth */
            aload 2 /* addr */
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 721
            iconst_1
            ireturn
        10: .line 723
      StackMap locals: java.lang.String java.net.InetAddress
      StackMap stack:
            invokestatic java.net.SocketPermission.getDebug:()Lsun/security/util/Debug;
            astore 5 /* debug */
        start local 5 // sun.security.util.Debug debug
        11: .line 724
            aload 5 /* debug */
            ifnull 18
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 18
        12: .line 725
            aload 5 /* debug */
            new java.lang.StringBuilder
            dup
            ldc "socket access restriction: IP address of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* auth */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* addr */
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 5 // sun.security.util.Debug debug
        13: .line 727
            goto 18
        end local 4 // java.net.InetAddress auth
      StackMap locals: java.net.SocketPermission java.lang.String byte[] java.lang.String
      StackMap stack: java.net.UnknownHostException
        14: pop
        15: .line 728
            invokestatic java.net.SocketPermission.getDebug:()Lsun/security/util/Debug;
            astore 5 /* debug */
        start local 5 // sun.security.util.Debug debug
        16: .line 729
            aload 5 /* debug */
            ifnull 18
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 18
        17: .line 730
            aload 5 /* debug */
            new java.lang.StringBuilder
            dup
            ldc "socket access restriction: forward lookup failed for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* authHost */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 5 // sun.security.util.Debug debug
        18: .line 733
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // java.lang.String authHost
        end local 2 // byte[] addr
        end local 1 // java.lang.String cname
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Ljava/net/SocketPermission;
            0   19     1     cname  Ljava/lang/String;
            0   19     2      addr  [B
            1   19     3  authHost  Ljava/lang/String;
            8   14     4      auth  Ljava/net/InetAddress;
           11   13     5     debug  Lsun/security/util/Debug;
           16   18     5     debug  Lsun/security/util/Debug;
      Exception table:
        from    to  target  type
           1     9      14  Class java.net.UnknownHostException
          10    13      14  Class java.net.UnknownHostException
    MethodParameters:
       Name  Flags
      cname  
      addr   

  private boolean authorizedIPv6(java.lang.String, byte[]);
    descriptor: (Ljava/lang/String;[B)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String cname
        start local 2 // byte[] addr
         0: .line 737
            ldc ""
            astore 3 /* authHost */
        start local 3 // java.lang.String authHost
         1: .line 741
            new java.lang.StringBuffer
            dup
            bipush 39
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 5 /* sb */
        start local 5 // java.lang.StringBuffer sb
         2: .line 743
            bipush 15
            istore 6 /* i */
        start local 6 // int i
         3: goto 9
         4: .line 744
      StackMap locals: java.net.SocketPermission java.lang.String byte[] java.lang.String top java.lang.StringBuffer int
      StackMap stack:
            aload 5 /* sb */
            aload 2 /* addr */
            iload 6 /* i */
            baload
            bipush 15
            iand
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         5: .line 745
            aload 5 /* sb */
            bipush 46
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         6: .line 746
            aload 5 /* sb */
            aload 2 /* addr */
            iload 6 /* i */
            baload
            iconst_4
            ishr
            bipush 15
            iand
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         7: .line 747
            aload 5 /* sb */
            bipush 46
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         8: .line 743
            iinc 6 /* i */ -1
      StackMap locals:
      StackMap stack:
         9: iload 6 /* i */
            ifge 4
        end local 6 // int i
        10: .line 749
            new java.lang.StringBuilder
            dup
            ldc "auth."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* sb */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "IP6.ARPA"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* authHost */
        11: .line 751
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 3 /* authHost */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* authHost */
        12: .line 752
            aload 3 /* authHost */
            iconst_0
            invokestatic java.net.InetAddress.getAllByName0:(Ljava/lang/String;Z)[Ljava/net/InetAddress;
            iconst_0
            aaload
            astore 4 /* auth */
        start local 4 // java.net.InetAddress auth
        13: .line 753
            aload 4 /* auth */
            aload 2 /* addr */
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 754
            iconst_1
            ireturn
        15: .line 755
      StackMap locals: java.net.SocketPermission java.lang.String byte[] java.lang.String java.net.InetAddress java.lang.StringBuffer
      StackMap stack:
            invokestatic java.net.SocketPermission.getDebug:()Lsun/security/util/Debug;
            astore 6 /* debug */
        start local 6 // sun.security.util.Debug debug
        16: .line 756
            aload 6 /* debug */
            ifnull 23
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 23
        17: .line 757
            aload 6 /* debug */
            new java.lang.StringBuilder
            dup
            ldc "socket access restriction: IP address of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* auth */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* addr */
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 6 // sun.security.util.Debug debug
        end local 5 // java.lang.StringBuffer sb
        18: .line 759
            goto 23
        end local 4 // java.net.InetAddress auth
      StackMap locals: java.net.SocketPermission java.lang.String byte[] java.lang.String
      StackMap stack: java.net.UnknownHostException
        19: pop
        20: .line 760
            invokestatic java.net.SocketPermission.getDebug:()Lsun/security/util/Debug;
            astore 5 /* debug */
        start local 5 // sun.security.util.Debug debug
        21: .line 761
            aload 5 /* debug */
            ifnull 23
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 23
        22: .line 762
            aload 5 /* debug */
            new java.lang.StringBuilder
            dup
            ldc "socket access restriction: forward lookup failed for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* authHost */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 5 // sun.security.util.Debug debug
        23: .line 765
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // java.lang.String authHost
        end local 2 // byte[] addr
        end local 1 // java.lang.String cname
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Ljava/net/SocketPermission;
            0   24     1     cname  Ljava/lang/String;
            0   24     2      addr  [B
            1   24     3  authHost  Ljava/lang/String;
           13   19     4      auth  Ljava/net/InetAddress;
            2   18     5        sb  Ljava/lang/StringBuffer;
            3   10     6         i  I
           16   18     6     debug  Lsun/security/util/Debug;
           21   23     5     debug  Lsun/security/util/Debug;
      Exception table:
        from    to  target  type
           1    14      19  Class java.net.UnknownHostException
          15    18      19  Class java.net.UnknownHostException
    MethodParameters:
       Name  Flags
      cname  
      addr   

  void getIP();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 776
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 1
            aload 0 /* this */
            getfield java.net.SocketPermission.wildcard:Z
            ifne 1
            aload 0 /* this */
            getfield java.net.SocketPermission.invalid:Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: return
         2: .line 781
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 5
         3: .line 783
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            iconst_1
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            bipush 93
            invokevirtual java.lang.String.indexOf:(I)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* host */
        start local 1 // java.lang.String host
         4: .line 784
            goto 10
        end local 1 // java.lang.String host
         5: .line 785
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            ldc ":"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 2 /* i */
        start local 2 // int i
         6: .line 786
            iload 2 /* i */
            iconst_m1
            if_icmpne 9
         7: .line 787
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            astore 1 /* host */
        start local 1 // java.lang.String host
         8: goto 10
        end local 1 // java.lang.String host
         9: .line 789
      StackMap locals: java.net.SocketPermission top int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            iconst_0
            iload 2 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* host */
        end local 2 // int i
        start local 1 // java.lang.String host
        10: .line 793
      StackMap locals: java.net.SocketPermission java.lang.String
      StackMap stack:
            aload 0 /* this */
        11: .line 794
            iconst_1
            anewarray java.net.InetAddress
            dup
            iconst_0
            aload 1 /* host */
            iconst_0
            invokestatic java.net.InetAddress.getAllByName0:(Ljava/lang/String;Z)[Ljava/net/InetAddress;
            iconst_0
            aaload
            aastore
        12: .line 793
            putfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
        end local 1 // java.lang.String host
        13: .line 796
            goto 20
      StackMap locals: java.net.SocketPermission
      StackMap stack: java.net.UnknownHostException
        14: astore 1 /* uhe */
        start local 1 // java.net.UnknownHostException uhe
        15: .line 797
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        16: .line 798
            aload 1 /* uhe */
            athrow
        end local 1 // java.net.UnknownHostException uhe
        17: .line 799
      StackMap locals:
      StackMap stack: java.lang.IndexOutOfBoundsException
            pop
        18: .line 800
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        19: .line 801
            new java.net.UnknownHostException
            dup
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            invokespecial java.net.UnknownHostException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 803
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0  this  Ljava/net/SocketPermission;
            4    5     1  host  Ljava/lang/String;
            8    9     1  host  Ljava/lang/String;
           10   13     1  host  Ljava/lang/String;
            6   10     2     i  I
           15   17     1   uhe  Ljava/net/UnknownHostException;
      Exception table:
        from    to  target  type
           2    13      14  Class java.net.UnknownHostException
           2    13      17  Class java.lang.IndexOutOfBoundsException
    Exceptions:
      throws java.net.UnknownHostException

  public boolean implies(java.security.Permission);
    descriptor: (Ljava/security/Permission;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.net.SocketPermission this
        start local 1 // java.security.Permission p
         0: .line 842
            aload 1 /* p */
            instanceof java.net.SocketPermission
            ifne 2
         1: .line 843
            iconst_0
            ireturn
         2: .line 845
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            aload 0 /* this */
            if_acmpne 4
         3: .line 846
            iconst_1
            ireturn
         4: .line 848
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            checkcast java.net.SocketPermission
            astore 2 /* that */
        start local 2 // java.net.SocketPermission that
         5: .line 850
            aload 0 /* this */
            getfield java.net.SocketPermission.mask:I
            aload 2 /* that */
            getfield java.net.SocketPermission.mask:I
            iand
            aload 2 /* that */
            getfield java.net.SocketPermission.mask:I
            if_icmpne 8
         6: .line 851
            aload 0 /* this */
            aload 2 /* that */
            invokevirtual java.net.SocketPermission.impliesIgnoreMask:(Ljava/net/SocketPermission;)Z
            ifeq 8
         7: .line 850
            iconst_1
            ireturn
      StackMap locals: java.net.SocketPermission
      StackMap stack:
         8: iconst_0
            ireturn
        end local 2 // java.net.SocketPermission that
        end local 1 // java.security.Permission p
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljava/net/SocketPermission;
            0    9     1     p  Ljava/security/Permission;
            5    9     2  that  Ljava/net/SocketPermission;
    MethodParameters:
      Name  Flags
      p     

  boolean impliesIgnoreMask(java.net.SocketPermission);
    descriptor: (Ljava/net/SocketPermission;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // java.net.SocketPermission this
        start local 1 // java.net.SocketPermission that
         0: .line 880
            aload 1 /* that */
            getfield java.net.SocketPermission.mask:I
            bipush 8
            iand
            aload 1 /* that */
            getfield java.net.SocketPermission.mask:I
            if_icmpeq 10
         1: .line 883
            aload 1 /* that */
            getfield java.net.SocketPermission.portrange:[I
            iconst_0
            iaload
            aload 0 /* this */
            getfield java.net.SocketPermission.portrange:[I
            iconst_0
            iaload
            if_icmplt 3
         2: .line 884
            aload 1 /* that */
            getfield java.net.SocketPermission.portrange:[I
            iconst_1
            iaload
            aload 0 /* this */
            getfield java.net.SocketPermission.portrange:[I
            iconst_1
            iaload
            if_icmple 10
         3: .line 887
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.includesEphemerals:()Z
            ifne 4
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.includesEphemerals:()Z
            ifeq 9
         4: .line 888
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.portrange:[I
            iconst_0
            iaload
            aload 0 /* this */
            getfield java.net.SocketPermission.portrange:[I
            iconst_1
            iaload
         5: .line 889
            aload 1 /* that */
            getfield java.net.SocketPermission.portrange:[I
            iconst_0
            iaload
            aload 1 /* that */
            getfield java.net.SocketPermission.portrange:[I
            iconst_1
            iaload
         6: .line 888
            invokestatic java.net.SocketPermission.inRange:(IIII)Z
         7: .line 889
            ifne 10
         8: .line 891
            iconst_0
            ireturn
         9: .line 894
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        10: .line 900
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 12
            ldc ""
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 901
            iconst_1
            ireturn
        12: .line 904
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.invalid:Z
            ifne 13
            aload 1 /* that */
            getfield java.net.SocketPermission.invalid:Z
            ifeq 14
        13: .line 905
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.compareHostnames:(Ljava/net/SocketPermission;)Z
            ireturn
        14: .line 909
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifeq 29
        15: .line 910
            aload 1 /* that */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 17
        16: .line 911
            iconst_0
            ireturn
        17: .line 913
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifeq 20
        18: .line 914
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iconst_0
            aaload
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iconst_0
            aaload
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
        19: ireturn
        20: .line 916
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 22
        21: .line 917
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getIP:()V
        22: .line 919
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        23: goto 27
        24: .line 920
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iconst_0
            aaload
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iload 2 /* i */
            aaload
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 26
        25: .line 921
            iconst_1
            ireturn
        26: .line 919
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 2 /* i */
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            arraylength
            if_icmplt 24
        28: .line 926
            iconst_0
            ireturn
        end local 2 // int i
        29: .line 930
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.wildcard:Z
            ifne 30
            aload 1 /* that */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 39
        30: .line 934
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 33
            aload 1 /* that */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 33
        31: .line 935
            aload 1 /* that */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
        32: ireturn
        33: .line 938
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 35
        34: .line 939
            iconst_0
            ireturn
        35: .line 943
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 37
        36: .line 944
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        37: .line 946
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
        38: ireturn
        39: .line 950
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 41
        40: .line 951
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getIP:()V
        41: .line 954
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 43
        42: .line 955
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getIP:()V
        43: .line 958
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifeq 44
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.isUntrusted:()Z
            ifne 62
        44: .line 959
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* j */
        start local 3 // int j
        45: goto 53
        46: .line 960
      StackMap locals: java.net.SocketPermission java.net.SocketPermission top int
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        47: goto 51
        48: .line 961
      StackMap locals: java.net.SocketPermission java.net.SocketPermission int int
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iload 3 /* j */
            aaload
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iload 2 /* i */
            aaload
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 50
        49: .line 962
            iconst_1
            ireturn
        50: .line 960
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        51: iload 2 /* i */
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            arraylength
            if_icmplt 48
        52: .line 959
            iinc 3 /* j */ 1
        end local 2 // int i
      StackMap locals: java.net.SocketPermission java.net.SocketPermission top int
      StackMap stack:
        53: iload 3 /* j */
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            arraylength
            if_icmplt 46
        54: .line 968
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 56
        55: .line 969
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        56: .line 972
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 58
        57: .line 973
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        58: .line 976
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            aload 1 /* that */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
        59: ireturn
        end local 3 // int j
        60: .line 979
      StackMap locals: java.net.SocketPermission java.net.SocketPermission
      StackMap stack: java.net.UnknownHostException
            pop
        61: .line 980
            aload 0 /* this */
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.compareHostnames:(Ljava/net/SocketPermission;)Z
            ireturn
        62: .line 986
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.net.SocketPermission that
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   63     0  this  Ljava/net/SocketPermission;
            0   63     1  that  Ljava/net/SocketPermission;
           23   29     2     i  I
           47   53     2     i  I
           45   60     3     j  I
      Exception table:
        from    to  target  type
          14    16      60  Class java.net.UnknownHostException
          17    19      60  Class java.net.UnknownHostException
          20    25      60  Class java.net.UnknownHostException
          26    28      60  Class java.net.UnknownHostException
          29    32      60  Class java.net.UnknownHostException
          33    34      60  Class java.net.UnknownHostException
          35    38      60  Class java.net.UnknownHostException
          39    49      60  Class java.net.UnknownHostException
          50    59      60  Class java.net.UnknownHostException
    MethodParameters:
      Name  Flags
      that  

  private boolean compareHostnames(java.net.SocketPermission);
    descriptor: (Ljava/net/SocketPermission;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // java.net.SocketPermission this
        start local 1 // java.net.SocketPermission that
         0: .line 992
            aload 0 /* this */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            astore 2 /* thisHost */
        start local 2 // java.lang.String thisHost
         1: .line 993
            aload 1 /* that */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            astore 3 /* thatHost */
        start local 3 // java.lang.String thatHost
         2: .line 995
            aload 2 /* thisHost */
            ifnonnull 4
         3: .line 996
            iconst_0
            ireturn
         4: .line 997
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 10
         5: .line 998
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            istore 4 /* cnameLength */
        start local 4 // int cnameLength
         6: .line 999
            aload 3 /* thatHost */
            iconst_1
         7: .line 1000
            aload 3 /* thatHost */
            invokevirtual java.lang.String.length:()I
            iload 4 /* cnameLength */
            isub
         8: .line 1001
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            iconst_0
            iload 4 /* cnameLength */
         9: .line 999
            invokevirtual java.lang.String.regionMatches:(ZILjava/lang/String;II)Z
            ireturn
        end local 4 // int cnameLength
        10: .line 1003
      StackMap locals:
      StackMap stack:
            aload 2 /* thisHost */
            aload 3 /* thatHost */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ireturn
        end local 3 // java.lang.String thatHost
        end local 2 // java.lang.String thisHost
        end local 1 // java.net.SocketPermission that
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Ljava/net/SocketPermission;
            0   11     1         that  Ljava/net/SocketPermission;
            1   11     2     thisHost  Ljava/lang/String;
            2   11     3     thatHost  Ljava/lang/String;
            6   10     4  cnameLength  I
    MethodParameters:
      Name  Flags
      that  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.Object obj
         0: .line 1018
            aload 1 /* obj */
            aload 0 /* this */
            if_acmpne 2
         1: .line 1019
            iconst_1
            ireturn
         2: .line 1021
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.net.SocketPermission
            ifne 4
         3: .line 1022
            iconst_0
            ireturn
         4: .line 1024
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast java.net.SocketPermission
            astore 2 /* that */
        start local 2 // java.net.SocketPermission that
         5: .line 1029
            aload 0 /* this */
            getfield java.net.SocketPermission.mask:I
            aload 2 /* that */
            getfield java.net.SocketPermission.mask:I
            if_icmpeq 6
            iconst_0
            ireturn
         6: .line 1031
      StackMap locals: java.net.SocketPermission
      StackMap stack:
            aload 2 /* that */
            getfield java.net.SocketPermission.mask:I
            bipush 8
            iand
            aload 2 /* that */
            getfield java.net.SocketPermission.mask:I
            if_icmpeq 10
         7: .line 1033
            aload 0 /* this */
            getfield java.net.SocketPermission.portrange:[I
            iconst_0
            iaload
            aload 2 /* that */
            getfield java.net.SocketPermission.portrange:[I
            iconst_0
            iaload
            if_icmpne 9
         8: .line 1034
            aload 0 /* this */
            getfield java.net.SocketPermission.portrange:[I
            iconst_1
            iaload
            aload 2 /* that */
            getfield java.net.SocketPermission.portrange:[I
            iconst_1
            iaload
            if_icmpeq 10
         9: .line 1035
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        10: .line 1046
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            aload 2 /* that */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 12
        11: .line 1047
            iconst_1
            ireturn
        12: .line 1055
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        13: .line 1056
            aload 2 /* that */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        14: .line 1057
            goto 17
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        15: pop
        16: .line 1058
            iconst_0
            ireturn
        17: .line 1061
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.invalid:Z
            ifne 18
            aload 2 /* that */
            getfield java.net.SocketPermission.invalid:Z
            ifeq 19
        18: .line 1062
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        19: .line 1064
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnull 21
        20: .line 1065
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            aload 2 /* that */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ireturn
        21: .line 1068
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.net.SocketPermission that
        end local 1 // java.lang.Object obj
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Ljava/net/SocketPermission;
            0   22     1   obj  Ljava/lang/Object;
            5   22     2  that  Ljava/net/SocketPermission;
      Exception table:
        from    to  target  type
          12    14      15  Class java.net.UnknownHostException
    MethodParameters:
      Name  Flags
      obj   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 1085
            aload 0 /* this */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifne 1
            aload 0 /* this */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 2
         1: .line 1086
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
         2: .line 1090
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getCanonName:()V
         3: .line 1091
            goto 5
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
         4: pop
         5: .line 1095
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.invalid:Z
            ifne 6
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 7
         6: .line 1096
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
         7: .line 1098
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljava/net/SocketPermission;
      Exception table:
        from    to  target  type
           2     3       4  Class java.net.UnknownHostException

  int getMask();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 1108
            aload 0 /* this */
            getfield java.net.SocketPermission.mask:I
            ireturn
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/SocketPermission;

  private static java.lang.String getActions(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // int mask
         0: .line 1122
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 1123
            iconst_0
            istore 2 /* comma */
        start local 2 // boolean comma
         2: .line 1125
            iload 0 /* mask */
            iconst_1
            iand
            iconst_1
            if_icmpne 5
         3: .line 1126
            iconst_1
            istore 2 /* comma */
         4: .line 1127
            aload 1 /* sb */
            ldc "connect"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 1130
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            iload 0 /* mask */
            iconst_2
            iand
            iconst_2
            if_icmpne 9
         6: .line 1131
            iload 2 /* comma */
            ifeq 7
            aload 1 /* sb */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
            goto 8
         7: .line 1132
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* comma */
         8: .line 1133
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "listen"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 1136
      StackMap locals:
      StackMap stack:
            iload 0 /* mask */
            iconst_4
            iand
            iconst_4
            if_icmpne 13
        10: .line 1137
            iload 2 /* comma */
            ifeq 11
            aload 1 /* sb */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
            goto 12
        11: .line 1138
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* comma */
        12: .line 1139
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "accept"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 1143
      StackMap locals:
      StackMap stack:
            iload 0 /* mask */
            bipush 8
            iand
            bipush 8
            if_icmpne 17
        14: .line 1144
            iload 2 /* comma */
            ifeq 15
            aload 1 /* sb */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
            goto 16
        15: .line 1145
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* comma */
        16: .line 1146
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "resolve"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 1149
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // boolean comma
        end local 1 // java.lang.StringBuilder sb
        end local 0 // int mask
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   mask  I
            1   18     1     sb  Ljava/lang/StringBuilder;
            2   18     2  comma  Z
    MethodParameters:
      Name  Flags
      mask  

  public java.lang.String getActions();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 1161
            aload 0 /* this */
            getfield java.net.SocketPermission.actions:Ljava/lang/String;
            ifnonnull 2
         1: .line 1162
            aload 0 /* this */
            aload 0 /* this */
            getfield java.net.SocketPermission.mask:I
            invokestatic java.net.SocketPermission.getActions:(I)Ljava/lang/String;
            putfield java.net.SocketPermission.actions:Ljava/lang/String;
         2: .line 1164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.actions:Ljava/lang/String;
            areturn
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/net/SocketPermission;

  public java.security.PermissionCollection newPermissionCollection();
    descriptor: ()Ljava/security/PermissionCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 1180
            new java.net.SocketPermissionCollection
            dup
            invokespecial java.net.SocketPermissionCollection.<init>:()V
            areturn
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/SocketPermission;

  private synchronized void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.net.SocketPermission this
        start local 1 // java.io.ObjectOutputStream s
         0: .line 1193
            aload 0 /* this */
            getfield java.net.SocketPermission.actions:Ljava/lang/String;
            ifnonnull 2
         1: .line 1194
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getActions:()Ljava/lang/String;
            pop
         2: .line 1195
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
         3: .line 1196
            return
        end local 1 // java.io.ObjectOutputStream s
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/net/SocketPermission;
            0    4     1     s  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  private synchronized void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.net.SocketPermission this
        start local 1 // java.io.ObjectInputStream s
         0: .line 1206
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         1: .line 1207
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            aload 0 /* this */
            getfield java.net.SocketPermission.actions:Ljava/lang/String;
            invokestatic java.net.SocketPermission.getMask:(Ljava/lang/String;)I
            invokevirtual java.net.SocketPermission.init:(Ljava/lang/String;I)V
         2: .line 1208
            return
        end local 1 // java.io.ObjectInputStream s
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/net/SocketPermission;
            0    3     1     s  Ljava/io/ObjectInputStream;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      s     

  private static int initEphemeralPorts(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String suffix
        start local 1 // int defval
         0: .line 1216
            new java.net.SocketPermission$1
            dup
            aload 0 /* suffix */
            invokespecial java.net.SocketPermission$1.<init>:(Ljava/lang/String;)V
         1: .line 1215
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 1 // int defval
        end local 0 // java.lang.String suffix
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  suffix  Ljava/lang/String;
            0    2     1  defval  I
    MethodParameters:
        Name  Flags
      suffix  
      defval  

  private static boolean inRange(int, int, int, int);
    descriptor: (IIII)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // int policyLow
        start local 1 // int policyHigh
        start local 2 // int targetLow
        start local 3 // int targetHigh
         0: .line 1241
            getstatic java.net.SocketPermission$EphemeralRange.low:I
            istore 4 /* ephemeralLow */
        start local 4 // int ephemeralLow
         1: .line 1242
            getstatic java.net.SocketPermission$EphemeralRange.high:I
            istore 5 /* ephemeralHigh */
        start local 5 // int ephemeralHigh
         2: .line 1244
            iload 2 /* targetLow */
            ifne 8
         3: .line 1246
            iload 0 /* policyLow */
            iload 1 /* policyHigh */
            iload 4 /* ephemeralLow */
            iload 5 /* ephemeralHigh */
            invokestatic java.net.SocketPermission.inRange:(IIII)Z
            ifne 5
         4: .line 1247
            iconst_0
            ireturn
         5: .line 1249
      StackMap locals: int int
      StackMap stack:
            iload 3 /* targetHigh */
            ifne 7
         6: .line 1251
            iconst_1
            ireturn
         7: .line 1254
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* targetLow */
         8: .line 1257
      StackMap locals:
      StackMap stack:
            iload 0 /* policyLow */
            ifne 11
            iload 1 /* policyHigh */
            ifne 11
         9: .line 1259
            iload 2 /* targetLow */
            iload 4 /* ephemeralLow */
            if_icmplt 10
            iload 3 /* targetHigh */
            iload 5 /* ephemeralHigh */
            if_icmpgt 10
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        10: iconst_0
            ireturn
        11: .line 1262
      StackMap locals:
      StackMap stack:
            iload 0 /* policyLow */
            ifeq 14
        12: .line 1264
            iload 2 /* targetLow */
            iload 0 /* policyLow */
            if_icmplt 13
            iload 3 /* targetHigh */
            iload 1 /* policyHigh */
            if_icmpgt 13
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        13: iconst_0
            ireturn
        14: .line 1271
      StackMap locals:
      StackMap stack:
            iload 1 /* policyHigh */
            iload 4 /* ephemeralLow */
            iconst_1
            isub
            if_icmplt 17
        15: .line 1272
            iload 3 /* targetHigh */
            iload 5 /* ephemeralHigh */
            if_icmpgt 16
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        16: iconst_0
            ireturn
        17: .line 1279
      StackMap locals:
      StackMap stack:
            iload 2 /* targetLow */
            iload 1 /* policyHigh */
            if_icmpgt 18
            iload 3 /* targetHigh */
            iload 1 /* policyHigh */
            if_icmple 21
        18: .line 1280
      StackMap locals:
      StackMap stack:
            iload 2 /* targetLow */
            iload 4 /* ephemeralLow */
            if_icmplt 20
            iload 3 /* targetHigh */
            iload 5 /* ephemeralHigh */
        19: .line 1279
            if_icmple 21
      StackMap locals:
      StackMap stack:
        20: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        21: iconst_1
            ireturn
        end local 5 // int ephemeralHigh
        end local 4 // int ephemeralLow
        end local 3 // int targetHigh
        end local 2 // int targetLow
        end local 1 // int policyHigh
        end local 0 // int policyLow
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   22     0      policyLow  I
            0   22     1     policyHigh  I
            0   22     2      targetLow  I
            0   22     3     targetHigh  I
            1   22     4   ephemeralLow  I
            2   22     5  ephemeralHigh  I
    MethodParameters:
            Name  Flags
      policyLow   
      policyHigh  
      targetLow   
      targetHigh  
}
SourceFile: "SocketPermission.java"
NestMembers:
  java.net.SocketPermission$1  java.net.SocketPermission$EphemeralRange
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  java.net.SocketPermission$1
  private EphemeralRange = java.net.SocketPermission$EphemeralRange of java.net.SocketPermission