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 static boolean trustProxy;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  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 static final int ephemeralLow;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 233
            aconst_null
            putstatic java.net.SocketPermission.debug:Lsun/security/util/Debug;
         1: .line 234
            iconst_0
            putstatic java.net.SocketPermission.debugInit:Z
         2: .line 238
            ldc "low"
            ldc 49152
         3: .line 237
            invokestatic java.net.SocketPermission.initEphemeralPorts:(Ljava/lang/String;I)I
            putstatic java.net.SocketPermission.ephemeralLow:I
         4: .line 241
            ldc "high"
            ldc 65535
         5: .line 240
            invokestatic java.net.SocketPermission.initEphemeralPorts:(Ljava/lang/String;I)I
            putstatic java.net.SocketPermission.ephemeralHigh:I
         6: .line 246
            new sun.security.action.GetBooleanAction
            dup
            ldc "trustProxy"
            invokespecial sun.security.action.GetBooleanAction.<init>:(Ljava/lang/String;)V
         7: .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
         8: .line 247
            aload 0 /* tmp */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putstatic java.net.SocketPermission.trustProxy:Z
         9: .line 249
            new sun.security.action.GetBooleanAction
            dup
            ldc "sun.net.trustNameService"
            invokespecial sun.security.action.GetBooleanAction.<init>:(Ljava/lang/String;)V
        10: .line 248
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 0 /* tmp */
        11: .line 250
            aload 0 /* tmp */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putstatic java.net.SocketPermission.trustNameService:Z
        end local 0 // java.lang.Boolean tmp
        12: .line 251
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            8   12     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 255
            getstatic java.net.SocketPermission.debugInit:Z
            ifne 3
         1: .line 256
            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 257
            iconst_1
            putstatic java.net.SocketPermission.debugInit:Z
         3: .line 259
      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 293
            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 221
            aload 0 /* this */
            iconst_0
            putfield java.net.SocketPermission.defaultDeny:Z
         2: .line 295
            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 296
            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 300
            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 221
            aload 0 /* this */
            iconst_0
            putfield java.net.SocketPermission.defaultDeny:Z
         2: .line 302
            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 303
            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 306
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.defaultDeny:Z
         1: .line 307
            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 311
            aload 0 /* host */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 312
            ldc "localhost"
            areturn
         2: .line 319
      StackMap locals:
      StackMap stack:
            aload 0 /* host */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpeq 17
         3: .line 320
            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 325
            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 326
            aload 2 /* st */
            invokevirtual java.util.StringTokenizer.countTokens:()I
            istore 3 /* tokens */
        start local 3 // int tokens
         7: .line 327
            iload 3 /* tokens */
            bipush 9
            if_icmpne 13
         8: .line 329
            aload 0 /* host */
            bipush 58
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* ind */
         9: .line 330
            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 331
            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 330
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 0 /* host */
        12: .line 332
            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 334
            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 335
            goto 17
        16: .line 337
      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 342
      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 350
            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 351
      StackMap locals:
      StackMap stack:
            iconst_2
            newarray 10
            dup
            iconst_1
            ldc 65535
            iastore
            areturn
         2: .line 354
      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 356
            iload 2 /* dash */
            iconst_m1
            if_icmpne 6
         4: .line 357
            aload 1 /* port */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 3 /* p */
        start local 3 // int p
         5: .line 358
            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 360
      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 361
            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 364
            aload 3 /* low */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 365
            iconst_0
            istore 5 /* l */
        start local 5 // int l
        10: .line 366
            goto 12
        end local 5 // int l
        11: .line 367
      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 370
      StackMap locals: int
      StackMap stack:
            aload 4 /* high */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        13: .line 371
            ldc 65535
            istore 6 /* h */
        start local 6 // int h
        14: .line 372
            goto 16
        end local 6 // int h
        15: .line 373
      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 375
      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 376
      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 378
      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 387
            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 398
            iload 2 /* mask */
            bipush 15
            iand
            iload 2 /* mask */
            if_icmpeq 2
         1: .line 399
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid actions mask"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* mask */
            bipush 8
            ior
            putfield java.net.SocketPermission.mask:I
         3: .line 413
            iconst_0
            istore 3 /* rb */
        start local 3 // int rb
         4: .line 414
            iconst_0
            istore 4 /* start */
        start local 4 // int start
         5: iconst_0
            istore 5 /* end */
        start local 5 // int end
         6: .line 415
            iconst_m1
            istore 6 /* sep */
        start local 6 // int sep
         7: .line 416
            aload 1 /* host */
            astore 7 /* hostport */
        start local 7 // java.lang.String hostport
         8: .line 417
            aload 1 /* host */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 18
         9: .line 418
            iconst_1
            istore 4 /* start */
        10: .line 419
            aload 1 /* host */
            bipush 93
            invokevirtual java.lang.String.indexOf:(I)I
            istore 3 /* rb */
        11: .line 420
            iload 3 /* rb */
            iconst_m1
            if_icmpeq 14
        12: .line 421
            aload 1 /* host */
            iload 4 /* start */
            iload 3 /* rb */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* host */
        13: .line 422
            goto 16
        14: .line 424
      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 423
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 426
      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 427
            goto 23
        18: .line 428
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* start */
        19: .line 429
            aload 1 /* host */
            bipush 58
            iload 3 /* rb */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 6 /* sep */
        20: .line 430
            iload 6 /* sep */
            istore 5 /* end */
        21: .line 431
            iload 6 /* sep */
            iconst_m1
            if_icmpeq 23
        22: .line 432
            aload 1 /* host */
            iload 4 /* start */
            iload 5 /* end */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* host */
        23: .line 436
      StackMap locals:
      StackMap stack:
            iload 6 /* sep */
            iconst_m1
            if_icmpeq 30
        24: .line 437
            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 439
            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 440
            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 442
            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 441
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.lang.String port
        30: .line 445
      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 448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* host */
            putfield java.net.SocketPermission.hostname:Ljava/lang/String;
        32: .line 451
            aload 1 /* host */
            bipush 42
            invokevirtual java.lang.String.lastIndexOf:(I)I
            ifle 35
        33: .line 453
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid host wildcard specification"
        34: .line 452
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        35: .line 454
      StackMap locals:
      StackMap stack:
            aload 1 /* host */
            ldc "*"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 46
        36: .line 455
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.wildcard:Z
        37: .line 456
            aload 1 /* host */
            ldc "*"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 40
        38: .line 457
            aload 0 /* this */
            ldc ""
            putfield java.net.SocketPermission.cname:Ljava/lang/String;
        39: .line 458
            goto 45
      StackMap locals:
      StackMap stack:
        40: aload 1 /* host */
            ldc "*."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 43
        41: .line 459
            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 460
            goto 45
        43: .line 462
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid host wildcard specification"
        44: .line 461
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        45: .line 464
      StackMap locals:
      StackMap stack:
            return
        46: .line 466
      StackMap locals:
      StackMap stack:
            aload 1 /* host */
            invokevirtual java.lang.String.length:()I
            ifle 60
        47: .line 468
            aload 1 /* host */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 8 /* ch */
        start local 8 // char ch
        48: .line 469
            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 470
      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 471
            aload 9 /* ip */
            ifnonnull 52
        51: .line 472
            aload 1 /* host */
            invokestatic sun.net.util.IPAddressUtil.textToNumericFormatV6:(Ljava/lang/String;)[B
            astore 9 /* ip */
        52: .line 474
      StackMap locals: byte[]
      StackMap stack:
            aload 9 /* ip */
            ifnull 60
        53: .line 476
            aload 0 /* this */
        54: .line 478
            iconst_1
            anewarray java.net.InetAddress
            dup
            iconst_0
            aload 9 /* ip */
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
            aastore
        55: .line 476
            putfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
        56: .line 479
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.init_with_ip:Z
        57: .line 480
            goto 60
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        58: pop
        59: .line 482
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        end local 9 // byte[] ip
        end local 8 // char ch
        60: .line 488
      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 499
            aload 0 /* action */
            ifnonnull 2
         1: .line 500
            new java.lang.NullPointerException
            dup
            ldc "action can't be null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 503
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 504
            new java.lang.IllegalArgumentException
            dup
            ldc "action can't be empty"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 507
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* mask */
        start local 1 // int mask
         5: .line 510
            aload 0 /* action */
            ldc "resolve"
            if_acmpne 7
         6: .line 511
            bipush 8
            ireturn
         7: .line 512
      StackMap locals: int
      StackMap stack:
            aload 0 /* action */
            ldc "connect"
            if_acmpne 9
         8: .line 513
            iconst_1
            ireturn
         9: .line 514
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            ldc "listen"
            if_acmpne 11
        10: .line 515
            iconst_2
            ireturn
        11: .line 516
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            ldc "accept"
            if_acmpne 13
        12: .line 517
            iconst_4
            ireturn
        13: .line 518
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            ldc "connect,accept"
            if_acmpne 15
        14: .line 519
            iconst_5
            ireturn
        15: .line 522
      StackMap locals:
      StackMap stack:
            aload 0 /* action */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 2 /* a */
        start local 2 // char[] a
        16: .line 524
            aload 2 /* a */
            arraylength
            iconst_1
            isub
            istore 3 /* i */
        start local 3 // int i
        17: .line 525
            iload 3 /* i */
            ifge 78
        18: .line 526
            iload 1 /* mask */
            ireturn
        start local 4 // char c
        19: .line 537
      StackMap locals: char[] int int
      StackMap stack:
            iinc 3 /* i */ -1
        end local 4 // char c
        20: .line 532
      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 533
            iload 4 /* c */
            bipush 13
            if_icmpeq 19
        23: .line 534
            iload 4 /* c */
            bipush 10
            if_icmpeq 19
        24: .line 535
            iload 4 /* c */
            bipush 12
            if_icmpeq 19
        25: .line 536
            iload 4 /* c */
            bipush 9
            if_icmpeq 19
        end local 4 // char c
        26: .line 542
      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 543
      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 544
      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 545
      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 546
      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 547
      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 548
      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 550
      StackMap locals:
      StackMap stack:
            bipush 7
            istore 5 /* matchlen */
        start local 5 // int matchlen
        34: .line 551
            iload 1 /* mask */
            iconst_1
            ior
            istore 1 /* mask */
        35: .line 553
            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 554
      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 555
      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 556
      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 557
      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 558
      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 559
      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 561
      StackMap locals:
      StackMap stack:
            bipush 7
            istore 5 /* matchlen */
        start local 5 // int matchlen
        44: .line 562
            iload 1 /* mask */
            bipush 8
            ior
            istore 1 /* mask */
        45: .line 564
            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 565
      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 566
      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 567
      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 568
      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 569
      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 571
      StackMap locals:
      StackMap stack:
            bipush 6
            istore 5 /* matchlen */
        start local 5 // int matchlen
        53: .line 572
            iload 1 /* mask */
            iconst_2
            ior
            istore 1 /* mask */
        54: .line 574
            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 575
      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 576
      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 577
      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 578
      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 579
      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 581
      StackMap locals:
      StackMap stack:
            bipush 6
            istore 5 /* matchlen */
        start local 5 // int matchlen
        62: .line 582
            iload 1 /* mask */
            iconst_4
            ior
            istore 1 /* mask */
        63: .line 584
            goto 67
        end local 5 // int matchlen
        64: .line 586
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        65: .line 587
            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 586
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 5 // int matchlen
        67: .line 592
      StackMap locals: java.lang.String int char[] int top int
      StackMap stack:
            iconst_0
            istore 6 /* seencomma */
        start local 6 // boolean seencomma
        68: .line 593
            goto 76
        69: .line 594
      StackMap locals: int
      StackMap stack:
            aload 2 /* a */
            iload 3 /* i */
            iload 5 /* matchlen */
            isub
            caload
            lookupswitch { // 6
                    9: 71
                   10: 71
                   12: 71
                   13: 71
                   32: 71
                   44: 70
              default: 72
          }
        70: .line 596
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* seencomma */
        71: .line 600
      StackMap locals:
      StackMap stack:
            goto 75
        72: .line 602
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        73: .line 603
            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;
        74: .line 602
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        75: .line 605
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ -1
        76: .line 593
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 5 /* matchlen */
            if_icmplt 77
            iload 6 /* seencomma */
            ifeq 69
        77: .line 609
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iload 5 /* matchlen */
            isub
            istore 3 /* i */
        end local 6 // boolean seencomma
        end local 5 // int matchlen
        78: .line 528
      StackMap locals: java.lang.String int char[] int
      StackMap stack:
            iload 3 /* i */
            iconst_m1
            if_icmpne 20
        79: .line 612
            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   80     0     action  Ljava/lang/String;
            5   80     1       mask  I
           16   80     2          a  [C
           17   80     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   78     5   matchlen  I
           68   78     6  seencomma  Z
    MethodParameters:
        Name  Flags
      action  

  void getCanonName();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.net.SocketPermission this
         0: .line 622
            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 630
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 4
         3: .line 631
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getIP:()V
         4: .line 636
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifeq 7
         5: .line 637
            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 638
            goto 22
         7: .line 639
      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 640
            iconst_0
            invokevirtual java.net.InetAddress.getHostName:(Z)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
         9: .line 639
            putfield java.net.SocketPermission.cname:Ljava/lang/String;
        10: .line 641
            getstatic java.net.SocketPermission.trustNameService:Z
            ifne 22
            aload 0 /* this */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            invokestatic sun.net.www.URLConnection.isProxiedHost:(Ljava/lang/String;)Z
            ifeq 22
        11: .line 642
            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 22
        12: .line 643
            aload 0 /* this */
            getfield java.net.SocketPermission.defaultDeny:Z
            ifne 13
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            iconst_0
            aaload
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
        13: .line 645
      StackMap locals:
      StackMap stack:
            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 22
        14: .line 646
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.untrusted:Z
        15: .line 647
            invokestatic java.net.SocketPermission.getDebug:()Lsun/security/util/Debug;
            astore 1 /* debug */
        start local 1 // sun.security.util.Debug debug
        16: .line 648
            aload 1 /* debug */
            ifnull 22
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 22
        17: .line 649
            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
        end local 1 // sun.security.util.Debug debug
        18: .line 655
            goto 22
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        19: astore 1 /* uhe */
        start local 1 // java.net.UnknownHostException uhe
        20: .line 656
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        21: .line 657
            aload 1 /* uhe */
            athrow
        end local 1 // java.net.UnknownHostException uhe
        22: .line 659
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   23     0   this  Ljava/net/SocketPermission;
           16   18     1  debug  Lsun/security/util/Debug;
           20   22     1    uhe  Ljava/net/UnknownHostException;
      Exception table:
        from    to  target  type
           2    18      19  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=7, 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 662
            aload 1 /* cname */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 3 /* a */
        start local 3 // java.lang.String a
         1: .line 663
            aload 2 /* hname */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 4 /* b */
        start local 4 // java.lang.String b
         2: .line 664
            aload 3 /* a */
            aload 4 /* b */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 665
            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 666
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            iconst_1
            ireturn
         5: .line 667
      StackMap locals:
      StackMap stack:
            aload 4 /* b */
            ldc ".akamai.net"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 6
            aload 4 /* b */
            ldc ".akamai.com"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 668
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         7: .line 669
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* a */
            invokevirtual java.net.SocketPermission.fragment:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* af */
        start local 5 // java.lang.String af
         8: .line 670
            aload 0 /* this */
            aload 4 /* b */
            invokevirtual java.net.SocketPermission.fragment:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* bf */
        start local 6 // java.lang.String bf
         9: .line 671
            aload 5 /* af */
            invokevirtual java.lang.String.length:()I
            ifeq 10
            aload 6 /* bf */
            invokevirtual java.lang.String.length:()I
            ifeq 10
            aload 0 /* this */
            aload 3 /* a */
            invokevirtual java.net.SocketPermission.fragment:(Ljava/lang/String;)Ljava/lang/String;
            aload 0 /* this */
            aload 4 /* b */
            invokevirtual java.net.SocketPermission.fragment:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
            iconst_1
            ireturn
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
        10: iconst_0
            ireturn
        end local 6 // java.lang.String bf
        end local 5 // java.lang.String af
        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   11     0   this  Ljava/net/SocketPermission;
            0   11     1  cname  Ljava/lang/String;
            0   11     2  hname  Ljava/lang/String;
            1   11     3      a  Ljava/lang/String;
            2   11     4      b  Ljava/lang/String;
            8   11     5     af  Ljava/lang/String;
            9   11     6     bf  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      cname  
      hname  

  private java.lang.String fragment(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.net.SocketPermission this
        start local 1 // java.lang.String cname
         0: .line 679
            aload 1 /* cname */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 2 /* dot */
        start local 2 // int dot
         1: .line 680
            iload 2 /* dot */
            iconst_m1
            if_icmpne 3
         2: .line 681
            aload 1 /* cname */
            areturn
         3: .line 682
      StackMap locals: int
      StackMap stack:
            iload 2 /* dot */
            ifne 5
         4: .line 683
            ldc ""
            areturn
         5: .line 684
      StackMap locals:
      StackMap stack:
            iload 2 /* dot */
            aload 1 /* cname */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            if_icmpne 8
         6: .line 685
            aload 1 /* cname */
            iconst_0
            aload 1 /* cname */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* cname */
         7: .line 686
            aload 1 /* cname */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 2 /* dot */
         8: .line 688
      StackMap locals:
      StackMap stack:
            iload 2 /* dot */
            iconst_1
            if_icmpge 10
         9: .line 689
            ldc ""
            areturn
        10: .line 690
      StackMap locals:
      StackMap stack:
            aload 1 /* cname */
            bipush 46
            iload 2 /* dot */
            iconst_1
            isub
            invokevirtual java.lang.String.lastIndexOf:(II)I
            istore 3 /* second */
        start local 3 // int second
        11: .line 691
            iload 3 /* second */
            iconst_m1
            if_icmpne 13
        12: .line 692
            aload 1 /* cname */
            areturn
        13: .line 693
      StackMap locals: int
      StackMap stack:
            aload 1 /* cname */
            invokevirtual java.lang.String.length:()I
            iload 2 /* dot */
            isub
            iconst_3
            if_icmpgt 22
            iload 2 /* dot */
            iload 3 /* second */
            isub
            iconst_4
            if_icmpgt 22
            iload 3 /* second */
            ifle 22
        14: .line 694
            iload 2 /* dot */
            iload 3 /* second */
            isub
            iconst_4
            if_icmpne 18
        15: .line 695
            aload 1 /* cname */
            iload 3 /* second */
            iconst_1
            iadd
            iload 2 /* dot */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 4 /* s */
        start local 4 // java.lang.String s
        16: .line 696
            aload 4 /* s */
            ldc "com"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
            aload 4 /* s */
            ldc "org"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
            aload 4 /* s */
            ldc "edu"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
        17: .line 697
            aload 1 /* cname */
            iload 3 /* second */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 4 // java.lang.String s
        18: .line 700
      StackMap locals:
      StackMap stack:
            aload 1 /* cname */
            bipush 46
            iload 3 /* second */
            iconst_1
            isub
            invokevirtual java.lang.String.lastIndexOf:(II)I
            istore 4 /* third */
        start local 4 // int third
        19: .line 701
            iload 4 /* third */
            iconst_m1
            if_icmpne 21
        20: .line 702
            aload 1 /* cname */
            iload 3 /* second */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        21: .line 704
      StackMap locals: int
      StackMap stack:
            aload 1 /* cname */
            iload 4 /* third */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 4 // int third
        22: .line 706
      StackMap locals:
      StackMap stack:
            aload 1 /* cname */
            iload 3 /* second */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 3 // int second
        end local 2 // int dot
        end local 1 // java.lang.String cname
        end local 0 // java.net.SocketPermission this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   23     0    this  Ljava/net/SocketPermission;
            0   23     1   cname  Ljava/lang/String;
            1   23     2     dot  I
           11   23     3  second  I
           16   18     4       s  Ljava/lang/String;
           19   22     4   third  I
    MethodParameters:
       Name  Flags
      cname  

  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 710
            aload 2 /* addr */
            arraylength
            iconst_4
            if_icmpne 2
         1: .line 711
            aload 0 /* this */
            aload 1 /* cname */
            aload 2 /* addr */
            invokevirtual java.net.SocketPermission.authorizedIPv4:(Ljava/lang/String;[B)Z
            ireturn
         2: .line 712
      StackMap locals:
      StackMap stack:
            aload 2 /* addr */
            arraylength
            bipush 16
            if_icmpne 4
         3: .line 713
            aload 0 /* this */
            aload 1 /* cname */
            aload 2 /* addr */
            invokevirtual java.net.SocketPermission.authorizedIPv6:(Ljava/lang/String;[B)Z
            ireturn
         4: .line 715
      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 719
            ldc ""
            astore 3 /* authHost */
        start local 3 // java.lang.String authHost
         1: .line 723
            new java.lang.StringBuilder
            dup
            ldc "auth."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 724
            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 725
            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 726
            ldc ".in-addr.arpa"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 723
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* authHost */
         6: .line 728
            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 729
            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 730
            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 731
            iconst_1
            ireturn
        10: .line 732
      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 733
            aload 5 /* debug */
            ifnull 20
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 20
        12: .line 734
            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 736
            goto 20
        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 737
            invokestatic java.net.SocketPermission.getDebug:()Lsun/security/util/Debug;
            astore 5 /* debug */
        start local 5 // sun.security.util.Debug debug
        16: .line 738
            aload 5 /* debug */
            ifnull 20
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 20
        17: .line 739
            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: goto 20
        19: .line 741
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        20: .line 743
      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   21     0      this  Ljava/net/SocketPermission;
            0   21     1     cname  Ljava/lang/String;
            0   21     2      addr  [B
            1   21     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
           1     9      19  Class java.io.IOException
          10    13      19  Class java.io.IOException
    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 747
            ldc ""
            astore 3 /* authHost */
        start local 3 // java.lang.String authHost
         1: .line 751
            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 753
            bipush 15
            istore 6 /* i */
        start local 6 // int i
         3: goto 9
         4: .line 754
      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 755
            aload 5 /* sb */
            bipush 46
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         6: .line 756
            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 757
            aload 5 /* sb */
            bipush 46
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         8: .line 753
            iinc 6 /* i */ -1
      StackMap locals:
      StackMap stack:
         9: iload 6 /* i */
            ifge 4
        end local 6 // int i
        10: .line 759
            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 761
            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 762
            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 763
            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 764
            iconst_1
            ireturn
        15: .line 765
      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 766
            aload 6 /* debug */
            ifnull 25
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 25
        17: .line 767
            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 769
            goto 25
        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 770
            invokestatic java.net.SocketPermission.getDebug:()Lsun/security/util/Debug;
            astore 5 /* debug */
        start local 5 // sun.security.util.Debug debug
        21: .line 771
            aload 5 /* debug */
            ifnull 25
            ldc "failure"
            invokestatic sun.security.util.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 25
        22: .line 772
            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: goto 25
        24: .line 774
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        25: .line 776
      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   26     0      this  Ljava/net/SocketPermission;
            0   26     1     cname  Ljava/lang/String;
            0   26     2      addr  [B
            1   26     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
           1    14      24  Class java.io.IOException
          15    18      24  Class java.io.IOException
    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 786
            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 791
      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 793
            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 794
            goto 10
        end local 1 // java.lang.String host
         5: .line 795
      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 796
            iload 2 /* i */
            iconst_m1
            if_icmpne 9
         7: .line 797
            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 799
      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 803
      StackMap locals: java.net.SocketPermission java.lang.String
      StackMap stack:
            aload 0 /* this */
        11: .line 804
            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 803
            putfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
        end local 1 // java.lang.String host
        13: .line 806
            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 807
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        16: .line 808
            aload 1 /* uhe */
            athrow
        end local 1 // java.net.UnknownHostException uhe
        17: .line 809
      StackMap locals:
      StackMap stack: java.lang.IndexOutOfBoundsException
            pop
        18: .line 810
            aload 0 /* this */
            iconst_1
            putfield java.net.SocketPermission.invalid:Z
        19: .line 811
            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 813
      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 853
            aload 1 /* p */
            instanceof java.net.SocketPermission
            ifne 2
         1: .line 854
            iconst_0
            ireturn
         2: .line 856
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            aload 0 /* this */
            if_acmpne 4
         3: .line 857
            iconst_1
            ireturn
         4: .line 859
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            checkcast java.net.SocketPermission
            astore 2 /* that */
        start local 2 // java.net.SocketPermission that
         5: .line 861
            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 862
            aload 0 /* this */
            aload 2 /* that */
            invokevirtual java.net.SocketPermission.impliesIgnoreMask:(Ljava/net/SocketPermission;)Z
            ifeq 8
         7: .line 861
            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 892
            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 895
            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 896
            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 899
      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 900
      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 901
            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 900
            invokestatic java.net.SocketPermission.inRange:(IIII)Z
         7: .line 901
            ifne 10
         8: .line 903
            iconst_0
            ireturn
         9: .line 906
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        10: .line 912
      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 913
            iconst_1
            ireturn
        12: .line 916
      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 16
        13: .line 917
      StackMap locals:
      StackMap stack:
            getstatic java.net.SocketPermission.trustProxy:Z
            ifeq 14
            aload 0 /* this */
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.inProxyWeTrust:(Ljava/net/SocketPermission;)Z
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: ireturn
        16: .line 921
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 18
        17: .line 922
            iconst_1
            ireturn
        18: .line 926
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifeq 33
        19: .line 927
            aload 1 /* that */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 21
        20: .line 928
            iconst_0
            ireturn
        21: .line 930
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifeq 24
        22: .line 931
            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
        23: ireturn
        24: .line 933
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 26
        25: .line 934
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getIP:()V
        26: .line 936
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        27: goto 31
        28: .line 937
      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 30
        29: .line 938
            iconst_1
            ireturn
        30: .line 936
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 2 /* i */
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            arraylength
            if_icmplt 28
        32: .line 943
            iconst_0
            ireturn
        end local 2 // int i
        33: .line 947
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.wildcard:Z
            ifne 34
            aload 1 /* that */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 43
        34: .line 951
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 37
            aload 1 /* that */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 37
        35: .line 952
            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
        36: ireturn
        37: .line 955
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.wildcard:Z
            ifeq 39
        38: .line 956
            iconst_0
            ireturn
        39: .line 960
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 41
        40: .line 961
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        41: .line 963
      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
        42: ireturn
        43: .line 966
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 45
        44: .line 967
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        45: .line 971
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 47
        46: .line 972
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getIP:()V
        47: .line 975
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            ifnonnull 49
        48: .line 976
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getIP:()V
        49: .line 979
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.net.SocketPermission.init_with_ip:Z
            ifeq 50
            aload 0 /* this */
            getfield java.net.SocketPermission.untrusted:Z
            ifne 67
        50: .line 980
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* j */
        start local 3 // int j
        51: goto 59
        52: .line 981
      StackMap locals: java.net.SocketPermission java.net.SocketPermission top int
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        53: goto 57
        54: .line 982
      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 56
        55: .line 983
            iconst_1
            ireturn
        56: .line 981
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        57: iload 2 /* i */
            aload 1 /* that */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            arraylength
            if_icmplt 54
        58: .line 980
            iinc 3 /* j */ 1
        end local 2 // int i
      StackMap locals: java.net.SocketPermission java.net.SocketPermission top int
      StackMap stack:
        59: iload 3 /* j */
            aload 0 /* this */
            getfield java.net.SocketPermission.addresses:[Ljava/net/InetAddress;
            arraylength
            if_icmplt 52
        60: .line 989
            aload 1 /* that */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnonnull 62
        61: .line 990
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        62: .line 993
      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
        63: ireturn
        end local 3 // int j
        64: .line 996
      StackMap locals: java.net.SocketPermission java.net.SocketPermission
      StackMap stack: java.net.UnknownHostException
            pop
        65: .line 997
            getstatic java.net.SocketPermission.trustProxy:Z
            ifeq 67
        66: .line 998
            aload 0 /* this */
            aload 1 /* that */
            invokevirtual java.net.SocketPermission.inProxyWeTrust:(Ljava/net/SocketPermission;)Z
            ireturn
        67: .line 1004
      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   68     0  this  Ljava/net/SocketPermission;
            0   68     1  that  Ljava/net/SocketPermission;
           27   33     2     i  I
           53   59     2     i  I
           51   64     3     j  I
      Exception table:
        from    to  target  type
          18    20      64  Class java.net.UnknownHostException
          21    23      64  Class java.net.UnknownHostException
          24    29      64  Class java.net.UnknownHostException
          30    32      64  Class java.net.UnknownHostException
          33    36      64  Class java.net.UnknownHostException
          37    38      64  Class java.net.UnknownHostException
          39    42      64  Class java.net.UnknownHostException
          43    55      64  Class java.net.UnknownHostException
          56    63      64  Class java.net.UnknownHostException
    MethodParameters:
      Name  Flags
      that  

  private boolean inProxyWeTrust(java.net.SocketPermission);
    descriptor: (Ljava/net/SocketPermission;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.net.SocketPermission this
        start local 1 // java.net.SocketPermission that
         0: .line 1011
            aload 0 /* this */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            astore 2 /* thisHost */
        start local 2 // java.lang.String thisHost
         1: .line 1012
            aload 1 /* that */
            getfield java.net.SocketPermission.hostname:Ljava/lang/String;
            astore 3 /* thatHost */
        start local 3 // java.lang.String thatHost
         2: .line 1014
            aload 2 /* thisHost */
            ifnonnull 4
         3: .line 1015
            iconst_0
            ireturn
         4: .line 1017
      StackMap locals: java.lang.String java.lang.String
      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    5     0      this  Ljava/net/SocketPermission;
            0    5     1      that  Ljava/net/SocketPermission;
            1    5     2  thisHost  Ljava/lang/String;
            2    5     3  thatHost  Ljava/lang/String;
    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 1031
            aload 1 /* obj */
            aload 0 /* this */
            if_acmpne 2
         1: .line 1032
            iconst_1
            ireturn
         2: .line 1034
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.net.SocketPermission
            ifne 4
         3: .line 1035
            iconst_0
            ireturn
         4: .line 1037
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast java.net.SocketPermission
            astore 2 /* that */
        start local 2 // java.net.SocketPermission that
         5: .line 1042
            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 1044
      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 1046
            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 1047
            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 1048
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        10: .line 1059
      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 1060
            iconst_1
            ireturn
        12: .line 1068
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        13: .line 1069
            aload 2 /* that */
            invokevirtual java.net.SocketPermission.getCanonName:()V
        14: .line 1070
            goto 17
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
        15: pop
        16: .line 1071
            iconst_0
            ireturn
        17: .line 1074
      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 1075
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        19: .line 1077
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.SocketPermission.cname:Ljava/lang/String;
            ifnull 21
        20: .line 1078
            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 1081
      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 1098
            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 1099
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
         2: .line 1103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getCanonName:()V
         3: .line 1104
            goto 5
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
         4: pop
         5: .line 1108
      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 1109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
         7: .line 1111
      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 1121
            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 1135
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 1136
            iconst_0
            istore 2 /* comma */
        start local 2 // boolean comma
         2: .line 1138
            iload 0 /* mask */
            iconst_1
            iand
            iconst_1
            if_icmpne 5
         3: .line 1139
            iconst_1
            istore 2 /* comma */
         4: .line 1140
            aload 1 /* sb */
            ldc "connect"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 1143
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            iload 0 /* mask */
            iconst_2
            iand
            iconst_2
            if_icmpne 9
         6: .line 1144
            iload 2 /* comma */
            ifeq 7
            aload 1 /* sb */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
            goto 8
         7: .line 1145
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* comma */
         8: .line 1146
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "listen"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 1149
      StackMap locals:
      StackMap stack:
            iload 0 /* mask */
            iconst_4
            iand
            iconst_4
            if_icmpne 13
        10: .line 1150
            iload 2 /* comma */
            ifeq 11
            aload 1 /* sb */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
            goto 12
        11: .line 1151
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* comma */
        12: .line 1152
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "accept"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 1156
      StackMap locals:
      StackMap stack:
            iload 0 /* mask */
            bipush 8
            iand
            bipush 8
            if_icmpne 17
        14: .line 1157
            iload 2 /* comma */
            ifeq 15
            aload 1 /* sb */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
            goto 16
        15: .line 1158
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* comma */
        16: .line 1159
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "resolve"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 1162
      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 1174
            aload 0 /* this */
            getfield java.net.SocketPermission.actions:Ljava/lang/String;
            ifnonnull 2
         1: .line 1175
            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 1177
      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 1193
            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 1206
            aload 0 /* this */
            getfield java.net.SocketPermission.actions:Ljava/lang/String;
            ifnonnull 2
         1: .line 1207
            aload 0 /* this */
            invokevirtual java.net.SocketPermission.getActions:()Ljava/lang/String;
            pop
         2: .line 1208
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
         3: .line 1209
            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 1219
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         1: .line 1220
            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 1221
            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 1232
            new java.net.SocketPermission$1
            dup
            aload 0 /* suffix */
            invokespecial java.net.SocketPermission$1.<init>:(Ljava/lang/String;)V
         1: .line 1231
            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  final
      defval  final

  private static boolean inRange(int, int, int, int);
    descriptor: (IIII)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, 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 1257
            iload 2 /* targetLow */
            ifne 6
         1: .line 1259
            iload 0 /* policyLow */
            iload 1 /* policyHigh */
            getstatic java.net.SocketPermission.ephemeralLow:I
            getstatic java.net.SocketPermission.ephemeralHigh:I
            invokestatic java.net.SocketPermission.inRange:(IIII)Z
            ifne 3
         2: .line 1260
            iconst_0
            ireturn
         3: .line 1262
      StackMap locals:
      StackMap stack:
            iload 3 /* targetHigh */
            ifne 5
         4: .line 1264
            iconst_1
            ireturn
         5: .line 1267
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* targetLow */
         6: .line 1270
      StackMap locals:
      StackMap stack:
            iload 0 /* policyLow */
            ifne 9
            iload 1 /* policyHigh */
            ifne 9
         7: .line 1272
            iload 2 /* targetLow */
            getstatic java.net.SocketPermission.ephemeralLow:I
            if_icmplt 8
            iload 3 /* targetHigh */
            getstatic java.net.SocketPermission.ephemeralHigh:I
            if_icmpgt 8
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         8: iconst_0
            ireturn
         9: .line 1275
      StackMap locals:
      StackMap stack:
            iload 0 /* policyLow */
            ifeq 12
        10: .line 1277
            iload 2 /* targetLow */
            iload 0 /* policyLow */
            if_icmplt 11
            iload 3 /* targetHigh */
            iload 1 /* policyHigh */
            if_icmpgt 11
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        11: iconst_0
            ireturn
        12: .line 1284
      StackMap locals:
      StackMap stack:
            iload 1 /* policyHigh */
            getstatic java.net.SocketPermission.ephemeralLow:I
            iconst_1
            isub
            if_icmplt 15
        13: .line 1285
            iload 3 /* targetHigh */
            getstatic java.net.SocketPermission.ephemeralHigh:I
            if_icmpgt 14
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        14: iconst_0
            ireturn
        15: .line 1292
      StackMap locals:
      StackMap stack:
            iload 2 /* targetLow */
            iload 1 /* policyHigh */
            if_icmpgt 16
            iload 3 /* targetHigh */
            iload 1 /* policyHigh */
            if_icmple 19
        16: .line 1293
      StackMap locals:
      StackMap stack:
            iload 2 /* targetLow */
            getstatic java.net.SocketPermission.ephemeralLow:I
            if_icmplt 18
            iload 3 /* targetHigh */
            getstatic java.net.SocketPermission.ephemeralHigh:I
        17: .line 1292
            if_icmple 19
      StackMap locals:
      StackMap stack:
        18: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        19: iconst_1
            ireturn
        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   20     0   policyLow  I
            0   20     1  policyHigh  I
            0   20     2   targetLow  I
            0   20     3  targetHigh  I
    MethodParameters:
            Name  Flags
      policyLow   
      policyHigh  
      targetLow   
      targetHigh  
}
SourceFile: "SocketPermission.java"
NestMembers:
  java.net.SocketPermission$1
InnerClasses:
  java.net.SocketPermission$1